Bool VUI::ChromaLocationInfo::isSame( const VUI::ChromaLocationInfo& rcChromaLocationInfo ) const { ROFRS( m_bChromaLocationInfoPresentFlag == rcChromaLocationInfo.m_bChromaLocationInfoPresentFlag, false ); ROFRS( m_bChromaLocationInfoPresentFlag, true ); ROFRS( m_uiChromaLocationFrame == rcChromaLocationInfo.m_uiChromaLocationFrame, false ); ROFRS( m_uiChromaLocationField == rcChromaLocationInfo.m_uiChromaLocationField, false ); return true; }
Bool VUI::TimingInfo::isSame( const VUI::TimingInfo& rcTimingInfo ) const { ROFRS( m_bTimingInfoPresentFlag == rcTimingInfo.m_bTimingInfoPresentFlag, false ); ROFRS( m_bTimingInfoPresentFlag, true ); ROFRS( m_uiNumUnitsInTick == rcTimingInfo.m_uiNumUnitsInTick, false ); ROFRS( m_uiTimeScale == rcTimingInfo.m_uiTimeScale, false ); ROFRS( m_bFixedFrameRateFlag == rcTimingInfo.m_bFixedFrameRateFlag, false ); return true; }
ErrVal ReadBitstreamFile::releasePacket( BinData* pcBinData ) { ROFRS( pcBinData, Err::m_nOK ); pcBinData->deleteData(); delete pcBinData; return Err::m_nOK; }
Bool ReconstructionBypass::xRequiresOutsidePadding( UInt uiMbX, UInt uiMbY, UInt uiFrameWidth, UInt uiFrameHeight, Bool bMbAff, UInt uiOrgMask, UInt* pauiMask ) { AOT( uiMbX >= uiFrameWidth ); AOT( uiMbY >= uiFrameHeight ); //===== reset mask ===== for( UInt uiIndex = 0; uiIndex < 9; uiIndex++ ) { pauiMask[uiIndex] = MSYS_UINT_MAX; } //===== quick check ===== uiMbY >>= ( bMbAff ? 1 : 0 ); uiFrameHeight >>= ( bMbAff ? 1 : 0 ); Bool bLeftBorder = ( uiMbX == 0 ); Bool bRightBorder = ( uiMbX == uiFrameWidth - 1 ); Bool bTopBorder = ( uiMbY == 0 ); Bool bBottomBorder = ( uiMbY == uiFrameHeight - 1 ); ROFRS ( bLeftBorder || bRightBorder || bTopBorder || bBottomBorder, false ); //===== update masks and return ===== #define UPDATE_MASK(b,d) if((b)) { if( xOutshiftMask( bMbAff, (d), uiOrgMask, pauiMask[(d)] ) != Err::m_nOK ) assert( 0 ); } UPDATE_MASK( bLeftBorder && bTopBorder, 0 ); UPDATE_MASK( bTopBorder, 1 ); UPDATE_MASK( bRightBorder && bTopBorder, 2 ); UPDATE_MASK( bLeftBorder, 3 ); UPDATE_MASK( bRightBorder, 5 ); UPDATE_MASK( bLeftBorder && bBottomBorder, 6 ); UPDATE_MASK( bBottomBorder, 7 ); UPDATE_MASK( bRightBorder && bBottomBorder, 8 ); #undef UPDATE_MASK return true; }
ErrVal VUI::BitstreamRestriction::read( HeaderSymbolReadIf *pcReadIf ) { RNOKS( pcReadIf->getFlag( m_bBitstreamRestrictionFlag, "VUI: bitstream_restriction_flag")); ROFRS( m_bBitstreamRestrictionFlag, Err::m_nOK ); RNOKS( pcReadIf->getFlag( m_bMotionVectorsOverPicBoundariesFlag, "VUI: motion_vectors_over_pic_boundaries_flag")); RNOKS( pcReadIf->getUvlc( m_uiMaxBytesPerPicDenom, "VUI: max_bytes_per_pic_denom")); ROTRS( m_uiMaxBytesPerPicDenom > 16, Err::m_nInvalidParameter ); RNOKS( pcReadIf->getUvlc( m_uiMaxBitsPerMbDenom, "VUI: max_bits_per_mb_denom")); ROTRS( m_uiMaxBitsPerMbDenom > 16, Err::m_nInvalidParameter ); RNOKS( pcReadIf->getUvlc( m_uiLog2MaxMvLengthHorizontal, "VUI: log2_max_mv_length_horizontal")); ROTRS( m_uiLog2MaxMvLengthHorizontal > 16, Err::m_nInvalidParameter ); RNOKS( pcReadIf->getUvlc( m_uiLog2MaxMvLengthVertical, "VUI: log2_max_mv_length_vertical")); ROTRS( m_uiLog2MaxMvLengthVertical > 16, Err::m_nInvalidParameter ); RNOKS( pcReadIf->getUvlc( m_uiMaxDecFrameReordering, "VUI: max_dec_frame_reordering")); UInt uiTmp; RNOKS( pcReadIf->getUvlc( uiTmp, "VUI: max_dec_frame_buffering")); ROTRS(uiTmp>16, Err::m_nInvalidParameter); ROTRS(getMaxDecFrameReordering() > uiTmp, Err::m_nInvalidParameter); setMaxDecFrameBuffering(uiTmp); return Err::m_nOK; }
ErrVal MbCoder::xWriteIntraPredModes( MbDataAccess& rcMbDataAccess ) { ROFRS( rcMbDataAccess.getMbData().isIntra(), Err::m_nOK ); if( rcMbDataAccess.getMbData().isIntra4x4() ) { if( rcMbDataAccess.getSH().getPPS().getTransform8x8ModeFlag() ) { RNOK( m_pcMbSymbolWriteIf->transformSize8x8Flag( rcMbDataAccess ) ); } if( rcMbDataAccess.getMbData().isTransformSize8x8() ) { for( B8x8Idx cIdx; cIdx.isLegal(); cIdx++ ) { RNOK( m_pcMbSymbolWriteIf->intraPredModeLuma( rcMbDataAccess, cIdx ) ); } } else { for( S4x4Idx cIdx; cIdx.isLegal(); cIdx++ ) { RNOK( m_pcMbSymbolWriteIf->intraPredModeLuma( rcMbDataAccess, cIdx ) ); } } } if( rcMbDataAccess.getMbData().isIntra4x4() || rcMbDataAccess.getMbData().isIntra16x16() ) { RNOK( m_pcMbSymbolWriteIf->intraPredModeChroma( rcMbDataAccess ) ); } return Err::m_nOK; }
Bool VUI::BitstreamRestriction::isSame( const VUI::BitstreamRestriction& rcBitstreamRestriction ) const { ROFRS( m_bBitstreamRestrictionFlag == rcBitstreamRestriction.m_bBitstreamRestrictionFlag, false ); ROFRS( m_bBitstreamRestrictionFlag, true ); ROFRS( m_bMotionVectorsOverPicBoundariesFlag == rcBitstreamRestriction.m_bMotionVectorsOverPicBoundariesFlag, false ); ROFRS( m_uiMaxBytesPerPicDenom == rcBitstreamRestriction.m_uiMaxBytesPerPicDenom, false ); ROFRS( m_uiMaxBitsPerMbDenom == rcBitstreamRestriction.m_uiMaxBitsPerMbDenom, false ); ROFRS( m_uiLog2MaxMvLengthHorizontal == rcBitstreamRestriction.m_uiLog2MaxMvLengthHorizontal, false ); ROFRS( m_uiLog2MaxMvLengthVertical == rcBitstreamRestriction.m_uiLog2MaxMvLengthVertical, false ); ROFRS( m_uiMaxDecFrameReordering == rcBitstreamRestriction.m_uiMaxDecFrameReordering, false ); ROFRS( m_uiMaxDecFrameBuffering == rcBitstreamRestriction.m_uiMaxDecFrameBuffering, false ); return true; }
Bool VUI::VideoSignalType::isSame( const VUI::VideoSignalType& rcVideoSignalType ) const { ROFRS( m_bVideoSignalTypePresentFlag == rcVideoSignalType.m_bVideoSignalTypePresentFlag, false ); ROFRS( m_bVideoSignalTypePresentFlag, true ); ROFRS( m_uiVideoFormat == rcVideoSignalType.m_uiVideoFormat, false ); ROFRS( m_bVideoFullRangeFlag == rcVideoSignalType.m_bVideoFullRangeFlag, false ); ROFRS( m_bColourDescriptionPresentFlag == rcVideoSignalType.m_bColourDescriptionPresentFlag, false ); ROFRS( m_bColourDescriptionPresentFlag, true ); ROFRS( m_uiColourPrimaries == rcVideoSignalType.m_uiColourPrimaries, false ); ROFRS( m_uiTransferCharacteristics == rcVideoSignalType.m_uiTransferCharacteristics, false ); ROFRS( m_uiMatrixCoefficients == rcVideoSignalType.m_uiMatrixCoefficients, false ); return true; }
ErrVal VUI::ChromaLocationInfo::write( HeaderSymbolWriteIf* pcWriteIf ) const { RNOK( pcWriteIf->writeFlag( m_bChromaLocationInfoPresentFlag, "VUI: chroma_location_info_present_flag")); ROFRS( m_bChromaLocationInfoPresentFlag, Err::m_nOK ); RNOK( pcWriteIf->writeUvlc( m_uiChromaLocationFrame, "VUI: chroma_location_frame")); RNOK( pcWriteIf->writeUvlc( m_uiChromaLocationField, "VUI: chroma_location_field")); return Err::m_nOK; }
Bool RefPicIdc::isValid() const { ROTRS( m_ePicType == NOT_SPECIFIED, false ); const Frame* pcFrame = m_pcFrame->getPic( m_ePicType ); AOF ( pcFrame ); ROFRS( pcFrame->getPoc() == m_iPoc, false ); return true; }
ErrVal VUI::TimingInfo::read( HeaderSymbolReadIf *pcReadIf ) { RNOKS( pcReadIf->getFlag( m_bTimingInfoPresentFlag, "VUI: timing_info_present_flag")); ROFRS( m_bTimingInfoPresentFlag, Err::m_nOK ); RNOKS( pcReadIf->getCode( m_uiNumUnitsInTick, 32, "VUI: num_units_in_tick")); RNOKS( pcReadIf->getCode( m_uiTimeScale, 32, "VUI: time_scale")); RNOKS( pcReadIf->getFlag( m_bFixedFrameRateFlag, "VUI: fixed_frame_rate_flag")); return Err::m_nOK; }
ErrVal VUI::TimingInfo::write( HeaderSymbolWriteIf* pcWriteIf ) const { RNOK( pcWriteIf->writeFlag( m_bTimingInfoPresentFlag, "VUI: timing_info_present_flag")); ROFRS( m_bTimingInfoPresentFlag, Err::m_nOK ); RNOK( pcWriteIf->writeCode( m_uiNumUnitsInTick, 32, "VUI: num_units_in_tick")); RNOK( pcWriteIf->writeCode( m_uiTimeScale, 32, "VUI: time_scale")); RNOK( pcWriteIf->writeFlag( m_bFixedFrameRateFlag, "VUI: fixed_frame_rate_flag")); return Err::m_nOK; }
ErrVal VUI::ChromaLocationInfo::read( HeaderSymbolReadIf *pcReadIf ) { RNOKS( pcReadIf->getFlag( m_bChromaLocationInfoPresentFlag, "VUI: chroma_location_info_present_flag")); ROFRS( m_bChromaLocationInfoPresentFlag, Err::m_nOK ); RNOKS( pcReadIf->getUvlc( m_uiChromaLocationFrame, "VUI: chroma_location_frame")); ROTRS( m_uiChromaLocationFrame>3, Err::m_nInvalidParameter); RNOKS( pcReadIf->getUvlc( m_uiChromaLocationField, "VUI: chroma_location_field")); ROTRS( m_uiChromaLocationField>3, Err::m_nInvalidParameter); return Err::m_nOK; }
Bool VUI::isSameExceptHRDParametersAndSVCExt( const VUI& rcVUI ) const { ROFRS( m_bVuiParametersPresentFlag == rcVUI.m_bVuiParametersPresentFlag, false ); ROFRS( m_bVuiParametersPresentFlag, true ); ROFRS( m_bOverscanInfoPresentFlag == rcVUI.m_bOverscanInfoPresentFlag, false ); if( m_bOverscanInfoPresentFlag ) { ROFRS( m_bOverscanAppropriateFlag == rcVUI.m_bOverscanAppropriateFlag, false ); } ROFRS( m_cAspectRatioInfo .isSame( rcVUI.m_cAspectRatioInfo ), false ); ROFRS( m_cVideoSignalType .isSame( rcVUI.m_cVideoSignalType ), false ); ROFRS( m_cChromaLocationInfo .isSame( rcVUI.m_cChromaLocationInfo ), false ); ROFRS( m_cBitstreamRestriction .isSame( rcVUI.m_cBitstreamRestriction ), false ); return true; }
ErrVal VUI::BitstreamRestriction::write( HeaderSymbolWriteIf* pcWriteIf ) const { RNOK( pcWriteIf->writeFlag( m_bBitstreamRestrictionFlag, "VUI: bitstream_restriction_flag")); ROFRS( m_bBitstreamRestrictionFlag, Err::m_nOK ); RNOK( pcWriteIf->writeFlag( getMotionVectorsOverPicBoundariesFlag(), "VUI: motion_vectors_over_pic_boundaries_flag")); RNOK( pcWriteIf->writeUvlc( getMaxBytesPerPicDenom(), "VUI: max_bytes_per_pic_denom")); RNOK( pcWriteIf->writeUvlc( getMaxBitsPerMbDenom(), "VUI: max_bits_per_mb_denom")); RNOK( pcWriteIf->writeUvlc( getLog2MaxMvLengthHorizontal(), "VUI: log2_max_mv_length_horizontal")); RNOK( pcWriteIf->writeUvlc( getLog2MaxMvLengthVertical(), "VUI: log2_max_mv_length_vertical")); RNOK( pcWriteIf->writeUvlc( getMaxDecFrameReordering(), "VUI: max_dec_frame_reordering")); RNOK( pcWriteIf->writeUvlc( getMaxDecFrameBuffering(), "VUI: max_dec_frame_buffering")); return Err::m_nOK; }
ErrVal VUI::AspectRatioInfo::write( HeaderSymbolWriteIf* pcWriteIf ) const { RNOK( pcWriteIf->writeFlag( m_bAspectRatioInfoPresentFlag, "VUI: aspect_ratio_info_present_flag")); ROFRS( m_bAspectRatioInfoPresentFlag, Err::m_nOK ); RNOK( pcWriteIf->writeCode( m_uiAspectRatioIdc, 8, "VUI: aspect_ratio_idc")); if( 0xFF == m_uiAspectRatioIdc ) //Extendet_SAR { RNOK( pcWriteIf->writeCode( m_uiSarWith, 16, "VUI: sar_width")); RNOK( pcWriteIf->writeCode( m_uiSarHeight, 16, "VUI: sar_height")); } return Err::m_nOK; }
ErrVal VUI::VideoSignalType::write( HeaderSymbolWriteIf* pcWriteIf ) const { RNOK( pcWriteIf->writeFlag( m_bVideoSignalTypePresentFlag, "VUI: video_signal_type_present_flag")); ROFRS( m_bVideoSignalTypePresentFlag, Err::m_nOK ); RNOK( pcWriteIf->writeCode( m_uiVideoFormat, 3, "VUI: video_format")); RNOK( pcWriteIf->writeFlag( m_bVideoFullRangeFlag, "VUI: video_full_range_flag")); RNOK( pcWriteIf->writeFlag( m_bColourDescriptionPresentFlag, "VUI: colour_description_present_flag")); if( m_bColourDescriptionPresentFlag ) { RNOK( pcWriteIf->writeCode( m_uiColourPrimaries, 8, "VUI: colour_primaries")); RNOK( pcWriteIf->writeCode( m_uiTransferCharacteristics, 8, "VUI: transfer_characteristics")); RNOK( pcWriteIf->writeCode( m_uiMatrixCoefficients, 8, "VUI: matrix_coefficients")); } return Err::m_nOK; }
Bool VUI::AspectRatioInfo::isSame( const VUI::AspectRatioInfo& rcAspectRatioInfo ) const { ROFRS( m_bAspectRatioInfoPresentFlag == rcAspectRatioInfo.m_bAspectRatioInfoPresentFlag, false ); ROFRS( m_bAspectRatioInfoPresentFlag, true ); ROFRS( m_uiAspectRatioIdc == rcAspectRatioInfo.m_uiAspectRatioIdc, false ); ROFRS( m_uiAspectRatioIdc == 255, true ); ROFRS( m_uiSarWith == rcAspectRatioInfo.m_uiSarWith, false ); ROFRS( m_uiSarHeight == rcAspectRatioInfo.m_uiSarHeight, false ); return true; }
ErrVal VUI::AspectRatioInfo::read( HeaderSymbolReadIf *pcReadIf ) { RNOKS( pcReadIf->getFlag( m_bAspectRatioInfoPresentFlag, "VUI: aspect_ratio_info_present_flag")); ROFRS( m_bAspectRatioInfoPresentFlag, Err::m_nOK ); RNOKS( pcReadIf->getCode( m_uiAspectRatioIdc, 8, "VUI: aspect_ratio_idc")); if( m_uiAspectRatioIdc == 0xFF ) //Extendet_SAR { RNOKS( pcReadIf->getCode( m_uiSarWith, 16, "VUI: sar_width")); ROTRS(0 == m_uiSarWith, Err::m_nInvalidParameter); RNOKS( pcReadIf->getCode( m_uiSarHeight, 16, "VUI: sar_height")); ROTRS(0 == m_uiSarHeight, Err::m_nInvalidParameter); } return Err::m_nOK; }
ErrVal MbParser::xReadIntraPredModes( MbDataAccess& rcMbDataAccess ) { ROFRS( rcMbDataAccess.getMbData().isIntra(), Err::m_nOK ); if( rcMbDataAccess.getMbData().isIntra4x4() ) { if( rcMbDataAccess.getSH().getPPS().getTransform8x8ModeFlag() ) { DECRNOK( m_pcMbSymbolReadIf->transformSize8x8Flag( rcMbDataAccess ) ); } if( rcMbDataAccess.getMbData().isTransformSize8x8() ) { for( B8x8Idx cIdx; cIdx.isLegal(); cIdx++ ) { DECRNOK( m_pcMbSymbolReadIf->intraPredModeLuma8x8( rcMbDataAccess, cIdx ) ); } } else { for( S4x4Idx cIdx; cIdx.isLegal(); cIdx++ ) { DECRNOK( m_pcMbSymbolReadIf->intraPredModeLuma( rcMbDataAccess, cIdx ) ); } } } if( rcMbDataAccess.getMbData().isIntra4x4() || rcMbDataAccess.getMbData().isIntra16x16() ) { if( rcMbDataAccess.getSH().getSPS().getChromaFormatIdc() ) { DECRNOK( m_pcMbSymbolReadIf->intraPredModeChroma( rcMbDataAccess ) ); } else { rcMbDataAccess.getMbData().setChromaPredMode( 0 ); // DC prediction } } return Err::m_nOK; }
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; }
ErrVal MbCoder::xWriteMotionPredFlags( MbDataAccess& rcMbDataAccess, MbMode eMbMode, ListIdx eLstIdx ) { AOT_DBG( rcMbDataAccess.getMbData().isIntra() ); ROFRS ( rcMbDataAccess.getSH().getAdaptivePredictionFlag (), Err::m_nOK ); switch( eMbMode ) { case MODE_SKIP: { break; } case MODE_16x16: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx ) ); } break; } case MODE_16x8: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_16x8_0 ) ); } if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_2, eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_16x8_1 ) ); } break; } case MODE_8x16: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_8x16_0 ) ); } if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_1, eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_8x16_1 ) ); } break; } case MODE_8x8: case MODE_8x8ref0: { for( B8x8Idx c8x8Idx; c8x8Idx.isLegal(); c8x8Idx++ ) { if( BLK_SKIP != rcMbDataAccess.getMbData().getBlkMode ( c8x8Idx.b8x8Index() ) && rcMbDataAccess .getMbData().isBlockFwdBwd( c8x8Idx.b8x8Index(), eLstIdx) ) { RNOK( m_pcMbSymbolWriteIf->motionPredFlag( rcMbDataAccess, eLstIdx, c8x8Idx.b8x8() ) ); } } break; } default: { AF(); return Err::m_nERR; } } return Err::m_nOK; }
ErrVal MbParser::xReadMotionPredFlags( MbDataAccess& rcMbDataAccess, MbMode eMbMode, ListIdx eLstIdx ) { ROTRS( rcMbDataAccess.getSH ().getNoInterLayerPredFlag(), Err::m_nOK ); ROFRS( rcMbDataAccess.getMbData ().getInCropWindowFlag(), Err::m_nOK ); MbMotionData& rcMbMotionData = rcMbDataAccess.getMbMotionData( eLstIdx ); rcMbMotionData.setMotPredFlag( rcMbDataAccess.getSH().getDefaultMotionPredictionFlag() ); ROFRS ( rcMbDataAccess.getSH().getAdaptiveMotionPredictionFlag(), Err::m_nOK ); //--- clear --- rcMbMotionData.setMotPredFlag( false ); if( rcMbDataAccess.getMbData().isIntra() ) { return Err::m_nOK; } switch( eMbMode ) { case MODE_SKIP: { break; } case MODE_16x16: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx ) ); } break; } case MODE_16x8: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_16x8_0 ) ); } if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_2, eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_16x8_1 ) ); } break; } case MODE_8x16: { if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_0, eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_8x16_0 ) ); } if( rcMbDataAccess.getMbData().isBlockFwdBwd( B_8x8_1, eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx, PART_8x16_1 ) ); } break; } case MODE_8x8: case MODE_8x8ref0: { for( B8x8Idx c8x8Idx; c8x8Idx.isLegal(); c8x8Idx++ ) { if( BLK_SKIP != rcMbDataAccess.getMbData().getBlkMode ( c8x8Idx.b8x8Index() ) && rcMbDataAccess .getMbData().isBlockFwdBwd( c8x8Idx.b8x8Index(), eLstIdx ) ) { DECRNOK( m_pcMbSymbolReadIf->motionPredFlag( rcMbDataAccess, eLstIdx, c8x8Idx.b8x8() ) ); } } break; } default: { AF(); return Err::m_nERR; } } return Err::m_nOK; }