本文整理汇总了C++中MbDataAccess::getDefaultFieldFlag方法的典型用法代码示例。如果您正苦于以下问题:C++ MbDataAccess::getDefaultFieldFlag方法的具体用法?C++ MbDataAccess::getDefaultFieldFlag怎么用?C++ MbDataAccess::getDefaultFieldFlag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MbDataAccess
的用法示例。
在下文中一共展示了MbDataAccess::getDefaultFieldFlag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
{
UInt auiLastQpTest [2] = { uiLastQP, uiLastQP };
Bool abSkipModeAllowed [4] = { true, true, true, true };
Double adMbPairCost [2] = { 0.0, 0.0 };
//===== determine macroblock data =====
for( UInt uiMbTest = 0; uiMbTest < 4; uiMbTest++ )
{
//--- set basic parameters ---
UInt uiMbAddressMbAff = ( uiMbTest % 2 ) + uiMbAddress;
UInt uiFieldMode = ( uiMbTest < 2 ? 1 : 0 );
RefListStruct& rcRefListPicStruct = ( uiFieldMode ? acRefListFieldStruct[ uiMbTest ] : rcRefListStruct );
//--- macroblock initialization ---
MbDataAccess* pcMbDataAccess = NULL;
MbDataAccess* pcMbDataAccessBase = NULL;
Double dCost = 0;
UInt uiMbY, uiMbX;
rcSliceHeader.getMbPositionFromAddress ( uiMbY, uiMbX, uiMbAddressMbAff );
RNOK( pcMbDataCtrl ->initMb ( pcMbDataAccess, uiMbY, uiMbX ) );
if ( pcBaseMbDataCtrl && ( !uiFieldMode || bSNR ) )
{
RNOK( pcBaseMbDataCtrl ->initMb ( pcMbDataAccessBase, uiMbY, uiMbX ) );
}
if ( pcBaseMbDataCtrlField && uiFieldMode && !bSNR )
{
RNOK( pcBaseMbDataCtrlField ->initMb ( pcMbDataAccessBase, uiMbY, uiMbX ) );
}
RNOK( m_pcControlMng ->initMbForCoding ( *pcMbDataAccess, uiMbY, uiMbX, true, uiFieldMode == 1 ) );
pcMbDataAccess ->setMbDataAccessBase ( pcMbDataAccessBase );
pcMbDataAccess ->setLastQp ( auiLastQpTest[ uiFieldMode ] );
if( uiMbTest == 0 )
{
abSkipModeAllowed[ 1 ] = pcMbDataAccess->getDefaultFieldFlag();
abSkipModeAllowed[ 3 ] = ! abSkipModeAllowed[ 1 ];
}
if( ! rcSliceHeader.getNoInterLayerPredFlag () )
{
m_pcMbEncoder->setBaseModeAllowedFlag ( m_apabBaseModeFlagAllowedArrays[ uiFieldMode ][ uiMbAddressMbAff ] );
}
//--- determine macroblock data ---
pcMbDataAccess->getMbData().setQp( rcSliceHeader.getSliceQp() );
UInt uiDeltaQp = ( rcSliceHeader.getTemporalId() == 0 ? 0 : uiMaxDeltaQp ); // old JSVM behaviour
RNOK( m_pcMbEncoder->encodeMacroblockSVC( *pcMbDataAccess, pcMbDataAccessBase,
*apcOrgPic[ uiMbTest ], *apcPic[ uiMbTest ], apcResidualPicLF[ uiMbTest ], apcResidualPicILPred[ uiMbTest ], apcPredPic[ uiMbTest ],
apcBaseIntraRecPic[ uiMbTest ], apcBaseResidualPic[ uiMbTest ], rcRefListPicStruct,
uiMaxMvPerMb, uiNumMaxIter, uiIterSearchRange, bBiPred8x8Disable, bMCBlks8x8Disable,
abSkipModeAllowed[ uiMbTest ], uiDeltaQp, dLambda, dCost ) );
auiLastQpTest [ uiFieldMode ] = pcMbDataAccess->getMbData().getQp();
if( adMbPairCost[ uiFieldMode ] != DOUBLE_MAX )
{
adMbPairCost [ uiFieldMode ] += dCost;
}
//--- store field macroblock data ---
if( uiFieldMode )
{
acFldMbData[uiMbTest].copy( pcMbDataAccess->getMbData() );
if( apcPic [uiMbTest] ) acFldMbRec [uiMbTest].loadBuffer( apcPic [uiMbTest]->getFullPelYuvBuffer() );
if( apcResidualPicLF [uiMbTest] ) acFldMbResLF [uiMbTest].loadBuffer( apcResidualPicLF [uiMbTest]->getFullPelYuvBuffer() );
if( apcResidualPicILPred[uiMbTest] ) acFldMbResILPred [uiMbTest].loadBuffer( apcResidualPicILPred[uiMbTest]->getFullPelYuvBuffer() );
if( apcPredPic [uiMbTest] ) acFldMbPredSignal[uiMbTest].loadBuffer( apcPredPic [uiMbTest]->getFullPelYuvBuffer() );
}
}