Void MbTransformCoeffs::clearLumaLevels8x8( B8x8Idx c8x8Idx ) { UInt uiIndex = c8x8Idx.b8x8(); ::memset( &m_aaiLevel[uiIndex ][0], 0, sizeof(TCoeff)*16 ); ::memset( &m_aaiLevel[uiIndex+1][0], 0, sizeof(TCoeff)*16 ); ::memset( &m_aaiLevel[uiIndex+4][0], 0, sizeof(TCoeff)*16 ); ::memset( &m_aaiLevel[uiIndex+5][0], 0, sizeof(TCoeff)*16 ); }
ErrVal MbCoder::xWriteBlockMv( MbDataAccess& rcMbDataAccess, B8x8Idx c8x8Idx, ListIdx eLstIdx ) { BlkMode eBlkMode = rcMbDataAccess.getMbData().getBlkMode( c8x8Idx.b8x8Index() ); ParIdx8x8 eParIdx = c8x8Idx.b8x8(); switch( eBlkMode ) { case BLK_8x8: { RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx ) ); break; } case BLK_8x4: { RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_8x4_0 ) ); RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_8x4_1 ) ); break; } case BLK_4x8: { RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x8_0 ) ); RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x8_1 ) ); break; } case BLK_4x4: { RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_0 ) ); RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_1 ) ); RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_2 ) ); RNOK( m_pcMbSymbolWriteIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_3 ) ); break; } case BLK_SKIP: { break; } default: { AF(); return Err::m_nERR; } } return Err::m_nOK; }
ErrVal MbParser::xGet8x8BlockMv( MbDataAccess& rcMbDataAccess, B8x8Idx c8x8Idx, ListIdx eLstIdx ) { ParIdx8x8 eParIdx = c8x8Idx.b8x8(); switch( rcMbDataAccess.getMbData().getBlkMode( c8x8Idx.b8x8Index() ) ) { case BLK_8x8: { DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx ) ); break; } case BLK_8x4: { DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_8x4_0 ) ); DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_8x4_1 ) ); break; } case BLK_4x8: { DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x8_0 ) ); DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x8_1 ) ); break; } case BLK_4x4: { DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_0 ) ); DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_1 ) ); DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_2 ) ); DECRNOK( m_pcMbSymbolReadIf->mvd( rcMbDataAccess, eLstIdx, eParIdx, SPART_4x4_3 ) ); break; } case BLK_SKIP: { break; } default: { return Err::m_nERR; } } return Err::m_nOK; }