本文整理汇总了C++中MbDataAccess::resetQp方法的典型用法代码示例。如果您正苦于以下问题:C++ MbDataAccess::resetQp方法的具体用法?C++ MbDataAccess::resetQp怎么用?C++ MbDataAccess::resetQp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MbDataAccess
的用法示例。
在下文中一共展示了MbDataAccess::resetQp方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ROFRS
Bool
MbParser::xCheckSkipSliceMb( MbDataAccess& rcMbDataAccess, UInt uiNumMbRead, Bool& rbEndOfSlice )
{
ROFRS( rcMbDataAccess.getSH().getSliceSkipFlag(), false );
MbData& rcMbData = rcMbDataAccess.getMbData();
rcMbData.setSkipFlag ( false );
rcMbData.setBLSkipFlag ( true );
rcMbData.setResidualPredFlag ( true );
rcMbData.setMbExtCbp ( 0 );
rcMbData.setFwdBwd ( 0 );
rcMbDataAccess.resetQp ();
rcMbDataAccess.getMbMotionData( LIST_0 ).clear( BLOCK_NOT_PREDICTED );
rcMbDataAccess.getMbMotionData( LIST_1 ).clear( BLOCK_NOT_PREDICTED );
rcMbDataAccess.getMbMvdData ( LIST_0 ).clear();
rcMbDataAccess.getMbMvdData ( LIST_1 ).clear();
rbEndOfSlice = ( uiNumMbRead >= rcMbDataAccess.getSH().getNumMbsInSliceMinus1() );
return true;
}
示例2: DECRNOK
ErrVal
MbParser::xReadTextureInfo( MbDataAccess& rcMbDataAccess,
Bool bTrafo8x8Flag,
Bool bBaseLayerAvailable,
UInt uiStart,
UInt uiStop )
{
Bool bReadDQp = ( uiStart < uiStop );
if( !rcMbDataAccess.getSH().isIntraSlice() &&
rcMbDataAccess.getMbData().getInCropWindowFlag() &&
( rcMbDataAccess.getMbData().getBLSkipFlag() || !rcMbDataAccess.getMbData().isIntra() ) )
{
if( rcMbDataAccess.getSH().getAdaptiveResidualPredictionFlag() )
{
DECRNOK( m_pcMbSymbolReadIf->resPredFlag( rcMbDataAccess ) );
}
else
{
rcMbDataAccess.getMbData().setResidualPredFlag( rcMbDataAccess.getSH().getDefaultResidualPredictionFlag() );
}
}
else
{
rcMbDataAccess.getMbData().setResidualPredFlag( false );
}
if( rcMbDataAccess.getMbData().getBLSkipFlag() ||
!rcMbDataAccess.getMbData().isIntra16x16() )
{
if( uiStart >= uiStop )
{
rcMbDataAccess.getMbData().setMbCbp( 0 );
}
else
{
DECRNOK( m_pcMbSymbolReadIf->cbp( rcMbDataAccess, uiStart, uiStop ) );
}
bReadDQp = rcMbDataAccess.getMbData().getMbCbp() != 0;
}
if( bTrafo8x8Flag && ( rcMbDataAccess.getMbData().getMbCbp() & 0x0F ) )
{
DECRNOK( m_pcMbSymbolReadIf->transformSize8x8Flag( rcMbDataAccess ) );
}
if( bReadDQp )
{
DECRNOK( m_pcMbSymbolReadIf->deltaQp( rcMbDataAccess ) );
}
else
{
rcMbDataAccess.resetQp();
}
Bool bIntra16x16 = ( !rcMbDataAccess.getMbData().getBLSkipFlag() &&
rcMbDataAccess.getMbData().isIntra16x16 () );
if( bIntra16x16 )
{
UInt uiDummy = 0;
if( uiStart == 0 && uiStop != 0 )
{
DECRNOK( m_pcMbSymbolReadIf->residualBlock( rcMbDataAccess, B4x4Idx(0), LUMA_I16_DC, uiDummy, uiStart, uiStop ) );
}
if( rcMbDataAccess.getMbData().isAcCoded() && uiStop > 1 )
{
for( S4x4Idx cIdx; cIdx.isLegal(); cIdx++ )
{
DECRNOK( m_pcMbSymbolReadIf->residualBlock( rcMbDataAccess, cIdx, LUMA_I16_AC, uiDummy, uiStart, uiStop ) );
}
rcMbDataAccess.getMbData().setMbCbp( 0xf + ( rcMbDataAccess.getMbData().getCbpChroma16x16() << 4) );
}
else
{
rcMbDataAccess.getMbData().setMbCbp( 0x0 + ( rcMbDataAccess.getMbData().getCbpChroma16x16() << 4) );
}
DECRNOK( xScanChromaBlocks( rcMbDataAccess, rcMbDataAccess.getMbData().getCbpChroma16x16(), uiStart, uiStop ) );
return Err::m_nOK;
}
UInt uiMbExtCbp = rcMbDataAccess.getMbData().getMbExtCbp();
if( rcMbDataAccess.getMbData().isTransformSize8x8() )
{
for( B8x8Idx c8x8Idx; c8x8Idx.isLegal(); c8x8Idx++ )
{
if( uiMbExtCbp & ( 1 << c8x8Idx.b4x4() ) )
{
DECRNOK( m_pcMbSymbolReadIf->residualBlock8x8( rcMbDataAccess, c8x8Idx, uiStart, uiStop ) );
}
}
}
else
{
for( B8x8Idx c8x8Idx; c8x8Idx.isLegal(); c8x8Idx++ )
{
if( uiMbExtCbp & ( 1 << c8x8Idx.b4x4() ) )
{
//.........这里部分代码省略.........
示例3: if
ErrVal
MbParser::read( MbDataAccess& rcMbDataAccess,
UInt uiNumMbRead,
Bool& rbEndOfSlice,
UInt& ruiNextSkippedVLC )
{
const CommonMainH264* pcMainH264 = CommonMain::getMainH264();
// FIXME:
if (pcMainH264->getCurrentPictureId() == 1 && pcMainH264->getCurrentLayerId() == 16 && rcMbDataAccess.getMbData().getMbAddr() == 76)
{
int a = 0;
}
ROF( m_bInitDone );
ROTRS( xCheckSkipSliceMb( rcMbDataAccess, uiNumMbRead, rbEndOfSlice ), Err::m_nOK );
Bool bIsCoded = true;
if( m_pcMbSymbolReadIf->isMbSkipped( rcMbDataAccess, ruiNextSkippedVLC ) )
{
bIsCoded = false;
rcMbDataAccess.getMbTCoeffs().clear();
rcMbDataAccess.getMbData().clearIntraPredictionModes( true );
RNOK( xSkipMb( rcMbDataAccess ) );
rcMbDataAccess.getMbData().setBLSkipFlag( false );
rcMbDataAccess.getMbData().setResidualPredFlag( rcMbDataAccess.getMbData().getInCropWindowFlag() ? rcMbDataAccess.getSH().getDefaultResidualPredictionFlag() : false );
if( rcMbDataAccess.getSH().isBSlice() )
{
rcMbDataAccess.getMbData().setFwdBwd( 0x3333 );
rcMbDataAccess.getMbMotionData( LIST_0 ).clear( RefIdxValues(1) );
rcMbDataAccess.getMbMvdData ( LIST_0 ).clear();
rcMbDataAccess.getMbMotionData( LIST_1 ).clear( RefIdxValues(1) );
rcMbDataAccess.getMbMvdData ( LIST_1 ).clear();
}
else
{
rcMbDataAccess.getMbData().setFwdBwd( 0x1111 );
rcMbDataAccess.getMbMotionData( LIST_0 ).clear( RefIdxValues(1) );
rcMbDataAccess.getMbMvdData ( LIST_0 ).clear();
}
rcMbDataAccess.resetQp(); // set QP to that of the last macroblock
}
if( bIsCoded )
{
if( rcMbDataAccess.getSH().isMbaffFrame() && ( rcMbDataAccess.isTopMb() || m_bPrevIsSkipped ) )
{
RNOK( m_pcMbSymbolReadIf->fieldFlag( rcMbDataAccess) );
}
Bool bBaseLayerAvailable = ! rcMbDataAccess.getSH().getNoInterLayerPredFlag();
//===== base layer mode flag and base layer refinement flag =====
if( bBaseLayerAvailable )
{
if ( rcMbDataAccess.getMbData().getInCropWindowFlag() == true )
{
if( rcMbDataAccess.getSH().getAdaptiveBaseModeFlag() )
{
m_pcMbSymbolReadIf->isBLSkipped( rcMbDataAccess );
}
else
{
rcMbDataAccess.getMbData().setBLSkipFlag( rcMbDataAccess.getSH().getDefaultBaseModeFlag() );
}
}
else
{
rcMbDataAccess.getMbData().setBLSkipFlag( false );
}
}
else
{
rcMbDataAccess.getMbData().setBLSkipFlag( false );
}
if( rcMbDataAccess.getSH().getStoreRefBasePicFlag() && rcMbDataAccess.getSH().getQualityId() > 0 && rcMbDataAccess.getMbData().getBLSkipFlag() == false )
{
printf("Conformance Issue: base_mode_flag = 0 in enhancement layer MGS key picture\n");
}
//===== macroblock mode =====
if( ! rcMbDataAccess.getMbData().getBLSkipFlag() )
{
DECRNOK( m_pcMbSymbolReadIf->mbMode( rcMbDataAccess ) );
}
if( rcMbDataAccess.getMbData().getBLSkipFlag() )
{
//===== copy motion data from base layer ======
rcMbDataAccess.getMbMvdData( LIST_0 ).clear();
rcMbDataAccess.getMbMvdData( LIST_1 ).clear();
rcMbDataAccess.getMbData().setBLSkipFlag( true );
}
else
{
//===== BLOCK MODES =====
if( rcMbDataAccess.getMbData().isInter8x8() )
{
//.........这里部分代码省略.........