本文整理汇总了C++中MbDataAccess::getAvailableMask方法的典型用法代码示例。如果您正苦于以下问题:C++ MbDataAccess::getAvailableMask方法的具体用法?C++ MbDataAccess::getAvailableMask怎么用?C++ MbDataAccess::getAvailableMask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MbDataAccess
的用法示例。
在下文中一共展示了MbDataAccess::getAvailableMask方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: process
ErrVal MbDecoder::process( MbDataAccess& rcMbDataAccess,
Bool bReconstructAll )
{
ROF( m_bInitDone );
RNOK( xScaleTCoeffs( rcMbDataAccess ) );
YuvPicBuffer *pcRecYuvBuffer;
RNOK( m_pcFrameMng->getRecYuvBuffer( pcRecYuvBuffer ) );
IntYuvMbBuffer cPredIntYuvMbBuffer;
IntYuvMbBuffer cResIntYuvMbBuffer;
YuvMbBuffer cYuvMbBuffer;
if( rcMbDataAccess.getMbData().isPCM() )
{
RNOK( xDecodeMbPCM( rcMbDataAccess, cYuvMbBuffer ) );
cResIntYuvMbBuffer .setAllSamplesToZero();
cPredIntYuvMbBuffer.loadBuffer( &cYuvMbBuffer );
}
else
{
if( rcMbDataAccess.getMbData().isIntra() )
{
m_pcIntraPrediction->setAvailableMaskMb( rcMbDataAccess.getAvailableMask() );
cResIntYuvMbBuffer.loadIntraPredictors( pcRecYuvBuffer );
if( rcMbDataAccess.getMbData().isIntra4x4() )
{
if( rcMbDataAccess.getMbData().isTransformSize8x8() )
{
RNOK( xDecodeMbIntra8x8( rcMbDataAccess, cResIntYuvMbBuffer, cPredIntYuvMbBuffer ) );
}
else
{
RNOK( xDecodeMbIntra4x4( rcMbDataAccess, cResIntYuvMbBuffer, cPredIntYuvMbBuffer ) );
}
}
else
{
RNOK( xDecodeMbIntra16x16( rcMbDataAccess, cResIntYuvMbBuffer, cPredIntYuvMbBuffer ) );
}
cYuvMbBuffer.loadBuffer( &cResIntYuvMbBuffer );
}
else
{
RNOK( xDecodeMbInter( rcMbDataAccess, cYuvMbBuffer, cPredIntYuvMbBuffer, cResIntYuvMbBuffer, bReconstructAll ) );
}
}
pcRecYuvBuffer->loadBuffer( &cYuvMbBuffer );
{
B4x4Idx cdx;
XPel* puc = cResIntYuvMbBuffer.getYBlk(cdx);
for (int i = 0; i < 16; ++i)
{
for (int j = 0; j < 16; ++j)
{
printf("%4d", puc[i*24+j]);
}
printf("\n");
}
printf("\n");
}
return Err::m_nOK;
}
示例2: if
ErrVal
MbDecoder::decode( MbDataAccess& rcMbDataAccess,
MbDataAccess* pcMbDataAccessBase,
IntFrame* pcFrame,
IntFrame* pcResidual,
IntFrame* pcPredSignal,
IntFrame* pcBaseLayer,
IntFrame* pcBaseLayerResidual,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
Bool bReconstructAll )
{
ROF( m_bInitDone );
RNOK( xPredictionFromBaseLayer( rcMbDataAccess, pcMbDataAccessBase ) );
IntYuvMbBuffer cPredBuffer; cPredBuffer.setAllSamplesToZero();
//===== scale coefficients =====
RNOK( xScaleTCoeffs( rcMbDataAccess ) );
if( rcMbDataAccess.getMbData().isIntra() )
{
//===== clear residual signal for intra macroblocks =====
if( pcResidual )
{
IntYuvMbBuffer cYuvMbBuffer; cYuvMbBuffer.setAllSamplesToZero();
RNOK( pcResidual->getFullPelYuvBuffer()->loadBuffer( &cYuvMbBuffer ) );
}
if( rcMbDataAccess.getMbData().isPCM() )
{
//===== I_PCM mode =====
RNOK( xDecodeMbPCM( rcMbDataAccess, pcFrame->getFullPelYuvBuffer() ) );
cPredBuffer.loadBuffer( pcFrame->getFullPelYuvBuffer() );
}
else if( rcMbDataAccess.getMbData().getMbMode() == INTRA_BL )
{
//===== I_BL mode =====
RNOK( xDecodeMbIntraBL( rcMbDataAccess, pcFrame->getFullPelYuvBuffer(),
cPredBuffer, pcBaseLayer->getFullPelYuvBuffer() ) );
}
else
{
m_pcIntraPrediction->setAvailableMaskMb( rcMbDataAccess.getAvailableMask() );
IntYuvMbBuffer cRecBuffer; cRecBuffer.loadIntraPredictors( pcFrame->getFullPelYuvBuffer() );
if( rcMbDataAccess.getMbData().isIntra16x16() )
{
//===== I_16x16 mode ====
RNOK( xDecodeMbIntra16x16( rcMbDataAccess, cRecBuffer, cPredBuffer ) );
}
else if( rcMbDataAccess.getMbData().isTransformSize8x8() )
{
//===== I_8x8 mode =====
RNOK( xDecodeMbIntra8x8( rcMbDataAccess, cRecBuffer, cPredBuffer ) );
}
else
{
//===== I_4x4 mode =====
RNOK( xDecodeMbIntra4x4( rcMbDataAccess, cRecBuffer, cPredBuffer ) );
}
RNOK( pcFrame->getFullPelYuvBuffer()->loadBuffer( &cRecBuffer ) );
}
}
else
{
//===== motion-compensated modes =====
RNOK( xDecodeMbInter( rcMbDataAccess, pcMbDataAccessBase,
cPredBuffer, pcFrame->getFullPelYuvBuffer(),
pcResidual, pcBaseLayerResidual,
*pcRefFrameList0, *pcRefFrameList1, bReconstructAll ) );
}
//===== store prediction signal =====
if( pcPredSignal )
{
RNOK( pcPredSignal->getFullPelYuvBuffer()->loadBuffer( &cPredBuffer ) );
}
return Err::m_nOK;
}