Changeset 1270 in 3DVCSoftware for branches/HTM-14.1-update-dev3/source/Lib/TLibDecoder/TDecCu.cpp
- Timestamp:
- 13 Jul 2015, 15:22:02 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev3/source/Lib/TLibDecoder/TDecCu.cpp
r1259 r1270 52 52 m_ppcYuvReco = NULL; 53 53 m_ppcCU = NULL; 54 #if H_3D_DBBP54 #if NH_3D_DBBP 55 55 m_ppcYuvRecoDBBP = NULL; 56 56 #endif … … 81 81 m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1]; 82 82 m_ppcCU = new TComDataCU*[m_uiMaxDepth-1]; 83 #if H_3D_DBBP83 #if NH_3D_DBBP 84 84 m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1]; 85 85 #endif … … 95 95 m_ppcYuvReco[ui] = new TComYuv; m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 96 96 m_ppcCU [ui] = new TComDataCU; m_ppcCU [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) ); 97 #if H_3D_DBBP98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight );97 #if NH_3D_DBBP 98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 99 99 #endif 100 100 } … … 119 119 m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL; 120 120 m_ppcCU [ui]->destroy(); delete m_ppcCU [ui]; m_ppcCU [ui] = NULL; 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL; 123 123 #endif … … 127 127 delete [] m_ppcYuvReco; m_ppcYuvReco = NULL; 128 128 delete [] m_ppcCU ; m_ppcCU = NULL; 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL; 131 131 #endif … … 163 163 Void TDecCu::decompressCtu( TComDataCU* pCtu ) 164 164 { 165 #if ! NH_3D_IV_MERGE165 #if !H_3D_IV_MERGE 166 166 xDecompressCU( pCtu, 0, 0 ); 167 167 #endif … … 306 306 #else 307 307 #if H_3D_ARP 308 if( pcCU->getSlice()->get VPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) )308 if( pcCU->getSlice()->getIvResPredFlag( ) ) 309 309 #else 310 310 #if H_3D_IV_MERGE 311 311 if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) ) 312 312 #else 313 #if NH_3D_DBBP 314 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) 315 #else 313 316 if (0) 317 #endif 314 318 #endif 315 319 #endif … … 412 416 m_pcEntropyDecoder->decodeMergeIndex( pcCU, 0, uiAbsPartIdx, uiDepth ); 413 417 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 414 #if H_3D_ARP418 #if NH_3D_ARP 415 419 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 416 420 #endif … … 637 641 { 638 642 case MODE_INTER: 639 #if H_3D_DBBP643 #if NH_3D_DBBP 640 644 if( m_ppcCU[uiDepth]->getDBBPFlag(0) ) 641 645 { … … 657 661 } 658 662 #endif 659 #if H_3D_DBBP663 #if NH_3D_DBBP 660 664 } 661 665 #endif … … 865 869 #endif 866 870 867 #if H_3D_DBBP871 #if NH_3D_DBBP 868 872 Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 869 873 { … … 871 875 AOF(!pcCU->getSlice()->isIntra()); 872 876 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 877 878 Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 873 879 874 880 // get collocated depth block … … 891 897 892 898 // first, extract the two sets of motion parameters 893 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;899 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 894 900 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 895 901 { … … 897 903 898 904 pDBBPTmpData->auhInterDir[uiSegment] = pcCU->getInterDir(uiPartAddr); 905 assert( pDBBPTmpData->auhInterDir[uiSegment] == 1 || pDBBPTmpData->auhInterDir[uiSegment] == 2 ); // only uni-prediction allowed 899 906 900 907 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 904 911 } 905 912 913 #if H_3D 906 914 AOF( pcCU->getARPW(uiPartAddr) == 0 ); 907 915 AOF( pcCU->getICFlag(uiPartAddr) == false ); 908 916 AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false ); 909 917 AOF( pcCU->getVSPFlag(uiPartAddr) == 0 ); 918 #endif 910 919 } 911 920 … … 947 956 948 957 // reconstruct final prediction signal by combining both segments 949 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize );958 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize, bitDepthY); 950 959 951 960 // inter recon 952 xDecodeInterTexture( pcCU, 0,uiDepth );961 xDecodeInterTexture( pcCU, uiDepth ); 953 962 954 963 // clip for only non-zero cbp case 955 if ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V) ) )956 { 957 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );964 if ( ( pcCU->getCbf( 0, COMPONENT_Y ) ) || ( pcCU->getCbf( 0, COMPONENT_Cb ) ) || ( pcCU->getCbf(0, COMPONENT_Cr ) ) ) 965 { 966 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() ); 958 967 } 959 968 else
Note: See TracChangeset for help on using the changeset viewer.