Changeset 321 in SHVCSoftware for branches/SHM-3.0-dev/source/Lib/TLibDecoder
- Timestamp:
- 2 Aug 2013, 22:52:20 (11 years ago)
- Location:
- branches/SHM-3.0-dev/source/Lib/TLibDecoder
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r313 r321 2215 2215 return (cnt>0); 2216 2216 } 2217 2218 #if INTRA_BL2219 Void TDecCavlc::parseIntraBLFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )2220 {2221 assert(0);2222 }2223 #endif2224 2225 2217 //! \} 2226 2218 -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCAVLC.h
r313 r321 118 118 Void updateContextTables ( SliceType /*eSliceType*/, Int /*iQp*/ ) { return; } 119 119 120 #if INTRA_BL121 Void parseIntraBLFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );122 #endif123 124 120 Void xParsePredWeightTable ( TComSlice* pcSlice ); 125 121 Void parseScalingList ( TComScalingList* scalingList ); -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCu.cpp
r319 r321 334 334 return; 335 335 } 336 #if INTRA_BL337 m_pcEntropyDecoder->decodeIntraBLFlag( pcCU, uiAbsPartIdx, 0, uiDepth );338 if ( pcCU->isIntraBL( uiAbsPartIdx ) )339 {340 pcCU->setSizeSubParts( g_uiMaxCUWidth>>uiDepth, g_uiMaxCUHeight>>uiDepth, uiAbsPartIdx, uiDepth );341 }342 else343 {344 #endif345 336 346 337 m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth ); … … 357 348 } 358 349 } 359 #if INTRA_BL 350 351 UInt uiCurrWidth = pcCU->getWidth ( uiAbsPartIdx ); 352 UInt uiCurrHeight = pcCU->getHeight( uiAbsPartIdx ); 353 360 354 // prediction mode ( Intra : direction mode, Inter : Mv, reference idx ) 361 355 m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]); 362 }363 #endif364 365 UInt uiCurrWidth = pcCU->getWidth ( uiAbsPartIdx );366 UInt uiCurrHeight = pcCU->getHeight( uiAbsPartIdx );367 368 #if !INTRA_BL369 // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )370 m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);371 #endif372 356 373 357 // Coefficient decoding … … 440 424 xReconIntraQT( m_ppcCU[uiDepth], uiDepth ); 441 425 break; 442 #if INTRA_BL443 case MODE_INTRA_BL:444 xReconIntraQT( m_ppcCU[uiDepth], uiAbsPartIdx, uiDepth );445 break;446 #endif447 426 default: 448 427 assert(0); … … 512 491 513 492 //===== get prediction signal ===== 514 #if INTRA_BL515 if(pcCU->isIntraBL ( uiAbsPartIdx ) )516 {517 pcCU->getBaseLumaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride );518 }519 else520 #endif521 493 m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 522 494 … … 603 575 604 576 //===== get prediction signal ===== 605 #if INTRA_BL 606 if(pcCU->isIntraBL ( uiAbsPartIdx ) ) 607 { 608 pcCU->getBaseChromaBlk( uiWidth, uiHeight, uiAbsPartIdx, piPred, uiStride, uiChromaId ); 609 } 610 else 611 #endif 612 { 613 if( uiChromaPredMode == DM_CHROMA_IDX ) 614 { 615 uiChromaPredMode = pcCU->getLumaIntraDir( 0 ); 616 } 617 m_pcPrediction->predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 618 } 577 if( uiChromaPredMode == DM_CHROMA_IDX ) 578 { 579 uiChromaPredMode = pcCU->getLumaIntraDir( 0 ); 580 } 581 m_pcPrediction->predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 619 582 620 583 //===== inverse transform ===== -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCu.h
r319 r321 77 77 #endif 78 78 79 #if INTRA_BL80 TComPicYuv* m_pcPicYuvRecBase; ///< reconstructed base layer81 #endif82 83 79 public: 84 80 TDecCu(); … … 106 102 #if SVC_EXTENSION 107 103 TDecTop* getLayerDec ( UInt LayerId ) { return m_ppcTDecTop[LayerId]; } 108 #if INTRA_BL109 Void setBaseRecPic ( TComPicYuv* p ) { m_pcPicYuvRecBase = p; }110 #endif111 104 #endif 112 105 protected: -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecEntropy.cpp
r319 r321 58 58 } 59 59 60 #if INTRA_BL61 Void TDecEntropy::decodeIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )62 {63 m_pcEntropyDecoderIf->parseIntraBLFlag( pcCU, uiAbsPartIdx, uiPartIdx, uiDepth );64 }65 #endif66 67 60 /** decode merge flag 68 61 * \param pcSubCU … … 111 104 Void TDecEntropy::decodePredInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU ) 112 105 { 113 #if INTRA_BL114 if( pcCU->isIntraBL( uiAbsPartIdx ) ) // Do nothing for Intra BL mode.115 {116 return;117 }118 #endif119 106 if( pcCU->isIntra( uiAbsPartIdx ) ) // If it is Intra mode, encode intra prediction mode. 120 107 { … … 450 437 451 438 pcCU->setCbfSubParts ( 0, TEXT_LUMA, uiAbsPartIdx, uiDepth ); 452 #if INTRA_BL453 if( ( !pcCU->isIntra(uiAbsPartIdx) ) && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) )454 #else455 439 if( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) ) 456 #endif457 440 { 458 441 pcCU->setCbfSubParts( 1 << uiTrDepth, TEXT_LUMA, uiAbsPartIdx, uiDepth ); -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecEntropy.h
r313 r321 107 107 virtual Void parseTransformSkipFlags ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt width, UInt height, UInt uiDepth, TextType eTType) = 0; 108 108 109 #if INTRA_BL110 virtual Void parseIntraBLFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) = 0;111 #endif112 113 109 virtual Void updateContextTables( SliceType eSliceType, Int iQp ) = 0; 114 110 … … 170 166 Void updateContextTables ( SliceType eSliceType, Int iQp ) { m_pcEntropyDecoderIf->updateContextTables( eSliceType, iQp ); } 171 167 172 #if INTRA_BL173 Void decodeIntraBLFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );174 #endif175 176 168 private: 177 169 Void xDecodeTransform ( TComDataCU* pcCU, UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP ); -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSbac.cpp
r313 r321 77 77 , m_cTransformSkipSCModel ( 1, 2, NUM_TRANSFORMSKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 78 78 , m_CUTransquantBypassFlagSCModel( 1, 1, NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX, m_contextModels + m_numContextModels, m_numContextModels) 79 #if INTRA_BL80 , m_cIntraBLPredFlagSCModel (1, 1, NUM_INTRA_BL_PRED_CTX , m_contextModels + m_numContextModels, m_numContextModels)81 #endif82 79 { 83 80 assert( m_numContextModels <= MAX_NUM_CTX_MOD ); … … 138 135 139 136 m_cCUTransSubdivFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_TRANS_SUBDIV_FLAG ); 140 #if INTRA_BL141 m_cIntraBLPredFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTRA_BL_PRED_FLAG );142 #endif143 137 m_cTransformSkipSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_TRANSFORMSKIP_FLAG ); 144 138 m_CUTransquantBypassFlagSCModel.initBuffer( sliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); … … 186 180 m_cSaoTypeIdxSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SAO_TYPE_IDX ); 187 181 m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG ); 188 #if INTRA_BL189 m_cIntraBLPredFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTRA_BL_PRED_FLAG );190 #endif191 182 m_cTransformSkipSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANSFORMSKIP_FLAG ); 192 183 m_CUTransquantBypassFlagSCModel.initBuffer( eSliceType, iQp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); … … 438 429 } 439 430 440 #if INTRA_BL441 Void TDecSbac::parseIntraBLFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )442 {443 if( pcCU->getLayerId() == 0 )444 {445 return;446 }447 448 UInt uiSymbol = 0;449 450 UInt uiCtxIntraBL = pcCU->getCtxIntraBLFlag( uiAbsPartIdx ) ;451 m_pcTDecBinIf->decodeBin( uiSymbol, m_cIntraBLPredFlagSCModel.get( 0, 0, uiCtxIntraBL ));452 DTRACE_CABAC_VL( g_nSymbolCounter++ );453 DTRACE_CABAC_T( "\tIntrBLFlag" );454 DTRACE_CABAC_T( "\tuiSymbol: ");455 DTRACE_CABAC_V( uiSymbol );456 DTRACE_CABAC_T( "\n");457 458 if ( uiSymbol )459 {460 pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth );461 pcCU->setPredModeSubParts( MODE_INTRA_BL, uiAbsPartIdx, uiDepth );462 pcCU->setTrIdxSubParts( 0, uiAbsPartIdx, uiDepth );463 pcCU->setLumaIntraDirSubParts ( DC_IDX, uiAbsPartIdx, uiDepth );464 }465 }466 #endif467 468 431 /** parse merge flag 469 432 * \param pcCU … … 555 518 UInt uiSymbol, uiMode = 0; 556 519 PartSize eMode; 557 558 #if INTRA_BL 559 if ( pcCU->isIntraBL( uiAbsPartIdx ) ) 560 { 561 assert( 0 ); 562 } 563 #endif 520 564 521 if ( pcCU->isIntra( uiAbsPartIdx ) ) 565 522 { -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSbac.h
r313 r321 135 135 Void parseScalingList ( TComScalingList* /*scalingList*/ ) {} 136 136 137 #if INTRA_BL138 Void parseIntraBLFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );139 #endif140 137 private: 141 138 UInt m_uiLastDQpNonZero; … … 174 171 ContextModel3DBuffer m_cTransformSkipSCModel; 175 172 ContextModel3DBuffer m_CUTransquantBypassFlagSCModel; 176 #if INTRA_BL177 ContextModel3DBuffer m_cIntraBLPredFlagSCModel;178 #endif179 173 }; 180 174 -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecSlice.cpp
r313 r321 197 197 UInt uiTileLCUX; 198 198 Int iNumSubstreamsPerTile = 1; // if independent. 199 #if INTRA_BL 200 m_pcCuDecoder->setBaseRecPic( rpcPic->getLayerId() > 0 ? rpcPic->getFullPelBaseRec(rpcPic->getLayerId()-1) : NULL); 201 #endif 199 202 200 Bool depSliceSegmentsEnabled = rpcPic->getSlice(rpcPic->getCurrSliceIdx())->getPPS()->getDependentSliceSegmentsEnabledFlag(); 203 201 uiTileStartLCU = rpcPic->getPicSym()->getTComTile(rpcPic->getPicSym()->getTileIdxMap(iStartCUAddr))->getFirstCUAddr(); -
branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecTop.cpp
r313 r321 812 812 #if REF_IDX_FRAMEWORK 813 813 if (m_layerId == 0) 814 #elif INTRA_BL815 if( m_layerId > 0 )816 {817 pcSlice->setRefPicList( m_cListPic );818 }819 else820 814 #endif 821 815 #if FIX1071
Note: See TracChangeset for help on using the changeset viewer.