Changeset 1274 in 3DVCSoftware for branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder
- Timestamp:
- 14 Jul 2015, 12:31:09 (10 years ago)
- Location:
- branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1225 r1274 1840 1840 else 1841 1841 { 1842 vpsVui->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1 );1842 vpsVui->setVpsNumVideoSignalInfoMinus1( (pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag()) ? 0 : 1 ); 1843 1843 } 1844 1844 … … 2805 2805 { 2806 2806 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 2807 #if H_3D_IV_MERGE2807 #if NH_3D_IV_MERGE 2808 2808 pcSlice->setMaxNumMergeCand(( ( pcSlice->getMpiFlag() || pcSlice->getIvMvPredFlag() || pcSlice->getViewSynthesisPredFlag() ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 2809 2809 #else … … 3376 3376 } 3377 3377 3378 #if H_3D_ARP3378 #if NH_3D_ARP 3379 3379 Void TDecCavlc::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3380 3380 { … … 3400 3400 3401 3401 #endif 3402 #if H_3D_DBBP3402 #if NH_3D_DBBP 3403 3403 Void TDecCavlc::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3404 3404 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCAVLC.h
r1225 r1274 117 117 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 118 118 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ); 119 #if H_3D_ARP119 #if NH_3D_ARP 120 120 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 121 121 #endif … … 127 127 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 128 128 #endif 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 131 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCu.cpp
r1225 r1274 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 … … 152 152 setIsChromaQpAdjCoded(true); 153 153 } 154 154 155 155 // start from the top level CU 156 156 xDecodeCU( pCtu, 0, 0, isLastCtuOfSliceSegment); … … 163 163 Void TDecCu::decompressCtu( TComDataCU* pCtu ) 164 164 { 165 #if ! H_3D_IV_MERGE165 #if !NH_3D_IV_MERGE 166 166 xDecompressCU( pCtu, 0, 0 ); 167 167 #endif … … 283 283 pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP 284 284 } 285 #if H_3D_NBDV285 #if NH_3D_NBDV 286 286 DisInfo DvInfo; 287 287 DvInfo.m_acNBDV.setZero(); 288 288 DvInfo.m_aVIdxCan = 0; 289 #if H_3D_NBDV_REF289 #if NH_3D_NBDV_REF 290 290 DvInfo.m_acDoNBDV.setZero(); 291 291 #endif … … 293 293 if(!pcCU->getSlice()->isIntra()) 294 294 { 295 #if H_3D_ARP && H_3D_IV_MERGE296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() )295 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP 296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 297 297 #else 298 #if NH_3D_IV_MERGE && NH_3D_VSP 299 if( pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 300 #else 301 #if NH_3D_ARP && NH_3D_VSP 302 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 303 #else 304 #if NH_3D_VSP 305 if( pcCU->getSlice()->getViewSynthesisPredFlag() ) 306 #else 298 307 #if H_3D_ARP 299 if( pcCU->getSlice()->get VPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) )308 if( pcCU->getSlice()->getIvResPredFlag( ) ) 300 309 #else 301 310 #if H_3D_IV_MERGE 302 311 if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) ) 303 312 #else 313 #if NH_3D_DBBP 314 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) 315 #else 304 316 if (0) 305 317 #endif 306 318 #endif 307 319 #endif 308 { 309 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true ); 310 m_ppcCU[uiDepth]->copyDVInfoFrom( pcCU, uiAbsPartIdx); 320 #endif 321 #endif 322 #endif 323 #endif 324 { 325 m_ppcCU[uiDepth]->copyInterPredInfoFrom(pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true); 326 m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx); 311 327 PartSize ePartTemp = m_ppcCU[uiDepth]->getPartitionSize(0); 312 328 UChar cWidTemp = m_ppcCU[uiDepth]->getWidth(0); 313 329 UChar cHeightTemp = m_ppcCU[uiDepth]->getHeight(0); 314 m_ppcCU[uiDepth]->setWidth ( 0, pcCU->getSlice()->getSPS()->getMaxCUWidth ()/(1<<uiDepth));315 m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth));316 m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth);317 #if H_3D_IV_MERGE330 m_ppcCU[uiDepth]->setWidth (0, pcCU->getSlice()->getSPS()->getMaxCUWidth () / (1 << uiDepth)); 331 m_ppcCU[uiDepth]->setHeight(0, pcCU->getSlice()->getSPS()->getMaxCUHeight() / (1 << uiDepth)); 332 m_ppcCU[uiDepth]->setPartSizeSubParts(SIZE_2Nx2N, 0, uiDepth); 333 #if NH_3D_IV_MERGE 318 334 if( pcCU->getSlice()->getIsDepth()) 319 335 { … … 323 339 { 324 340 #endif 325 #if H_3D_NBDV_REF341 #if NH_3D_NBDV_REF 326 342 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 327 343 { … … 333 349 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 334 350 } 335 #if H_3D_IV_MERGE351 #if NH_3D_IV_MERGE 336 352 } 337 353 #endif … … 346 362 } 347 363 #endif 348 349 364 pcCU->setDvInfoSubParts(DvInfo, uiAbsPartIdx, uiDepth); 350 m_ppcCU[uiDepth]->setPartSizeSubParts( ePartTemp, 0, uiDepth);351 m_ppcCU[uiDepth]->setWidth ( 0, cWidTemp);352 m_ppcCU[uiDepth]->setHeight ( 0, cHeightTemp);365 m_ppcCU[uiDepth]->setPartSizeSubParts(ePartTemp, 0, uiDepth); 366 m_ppcCU[uiDepth]->setWidth(0, cWidTemp); 367 m_ppcCU[uiDepth]->setHeight(0, cHeightTemp); 353 368 } 354 369 } … … 381 396 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 382 397 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 383 #if H_3D_IV_MERGE398 #if NH_3D_IV_MERGE 384 399 m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx); 400 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 401 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; 402 #else 403 #if NH_3D_MLC 385 404 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 386 405 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 389 408 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 390 409 #endif 410 #endif 391 411 Int numValidMergeCand = 0; 392 412 for( UInt ui = 0; ui < m_ppcCU[uiDepth]->getSlice()->getMaxNumMergeCand(); ++ui ) … … 396 416 m_pcEntropyDecoder->decodeMergeIndex( pcCU, 0, uiAbsPartIdx, uiDepth ); 397 417 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 398 #if H_3D_ARP418 #if NH_3D_ARP 399 419 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 400 420 #endif … … 403 423 #endif 404 424 405 #if H_3D_VSP 425 426 #if NH_3D_VSP 406 427 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 407 428 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 408 #if H_3D_SPIVMP 429 #endif 430 #if NH_3D_SPIVMP 409 431 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 410 432 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 411 433 TComMvField* pcMvFieldSP; 412 434 UChar* puhInterDirSP; 413 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 414 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 415 #endif 435 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 436 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 437 #endif 438 439 #if NH_3D_MLC 416 440 m_ppcCU[uiDepth]->initAvailableFlags(); 441 #endif 417 442 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 443 #if NH_3D_MLC 418 444 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 419 #if H_3D_SPIVMP445 #if NH_3D_SPIVMP 420 446 , pcMvFieldSP, puhInterDirSP 421 447 #endif 422 448 , numValidMergeCand, uiMergeIndex ); 423 449 424 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 425 #if H_3D_SPIVMP 450 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 451 #if NH_3D_VSP 452 , vspFlag 453 #endif 454 #if NH_3D_SPIVMP 426 455 , bSPIVMPFlag 427 456 #endif 428 457 , numValidMergeCand ); 458 #endif 459 #if NH_3D_VSP 429 460 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 430 #else 431 #if H_3D 432 m_ppcCU[uiDepth]->initAvailableFlags(); 433 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 434 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 435 #else 436 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 437 #endif 438 #endif 461 #endif 462 439 463 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 440 464 … … 448 472 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 449 473 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 450 #if H_3D_VSP474 #if NH_3D_VSP 451 475 if( pcCU->getVSPFlag( uiAbsPartIdx ) != 0 ) 452 476 { … … 481 505 } 482 506 } 483 #if H_3D_SPIVMP507 #if NH_3D_SPIVMP 484 508 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 485 509 if (bSPIVMPFlag[uiMergeIndex]) … … 506 530 507 531 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 508 #if H_3D_IV_MERGE532 #if NH_3D_IV_MERGE 509 533 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 510 534 #endif … … 531 555 #endif 532 556 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 533 #if H_3D_IV_MERGE557 #if NH_3D_IV_MERGE 534 558 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 535 559 #endif … … 551 575 #endif 552 576 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 553 #if H_3D_IV_MERGE577 #if NH_3D_IV_MERGE 554 578 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 555 579 #endif … … 574 598 { 575 599 TComPic* pcPic = pCtu->getPic(); 576 #if ! H_3D_IV_MERGE600 #if !NH_3D_IV_MERGE 577 601 TComSlice * pcSlice = pCtu->getSlice(); 578 602 const TComSPS &sps=*(pcSlice->getSPS()); … … 617 641 { 618 642 case MODE_INTER: 619 #if H_3D_DBBP643 #if NH_3D_DBBP 620 644 if( m_ppcCU[uiDepth]->getDBBPFlag(0) ) 621 645 { … … 637 661 } 638 662 #endif 639 #if H_3D_DBBP663 #if NH_3D_DBBP 640 664 } 641 665 #endif … … 845 869 #endif 846 870 847 #if H_3D_DBBP871 #if NH_3D_DBBP 848 872 Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 849 873 { … … 851 875 AOF(!pcCU->getSlice()->isIntra()); 852 876 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 877 878 Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 853 879 854 880 // get collocated depth block … … 871 897 872 898 // first, extract the two sets of motion parameters 873 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; 874 900 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 875 901 { … … 877 903 878 904 pDBBPTmpData->auhInterDir[uiSegment] = pcCU->getInterDir(uiPartAddr); 905 assert( pDBBPTmpData->auhInterDir[uiSegment] == 1 || pDBBPTmpData->auhInterDir[uiSegment] == 2 ); // only uni-prediction allowed 879 906 880 907 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 884 911 } 885 912 913 #if H_3D 886 914 AOF( pcCU->getARPW(uiPartAddr) == 0 ); 887 915 AOF( pcCU->getICFlag(uiPartAddr) == false ); 888 916 AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false ); 889 917 AOF( pcCU->getVSPFlag(uiPartAddr) == 0 ); 918 #endif 890 919 } 891 920 … … 927 956 928 957 // reconstruct final prediction signal by combining both segments 929 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); 930 959 931 960 // inter recon 932 xDecodeInterTexture( pcCU, 0,uiDepth );961 xDecodeInterTexture( pcCU, uiDepth ); 933 962 934 963 // clip for only non-zero cbp case 935 if ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V) ) )936 { 937 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() ); 938 967 } 939 968 else -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCu.h
r1200 r1274 62 62 TComDataCU** m_ppcCU; ///< CU data array 63 63 64 #if H_3D_DBBP64 #if NH_3D_DBBP 65 65 TComYuv** m_ppcYuvRecoDBBP; 66 66 #endif … … 102 102 Void xReconInter ( TComDataCU* pcCU, UInt uiDepth ); 103 103 104 #if H_3D_DBBP104 #if NH_3D_DBBP 105 105 Void xReconInterDBBP ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 106 106 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecEntropy.cpp
r1225 r1274 105 105 } 106 106 107 #if H_3D_ARP107 #if NH_3D_ARP 108 108 Void TDecEntropy::decodeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 109 109 { … … 129 129 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 130 130 131 #if H_3D_ARP131 #if NH_3D_ARP 132 132 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 ) 133 133 #else … … 240 240 UInt uiNumPU = ( ePartSize == SIZE_2Nx2N ? 1 : ( ePartSize == SIZE_NxN ? 4 : 2 ) ); 241 241 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 242 #if H_3D_IV_MERGE 242 //#if H_3D_IV_MERGE 243 #if NH_3D_MLC 243 244 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 244 245 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 247 248 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 248 249 #endif 249 #if H_3D_SPIVMP250 #if NH_3D_SPIVMP 250 251 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 251 TComMvField* pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition ()*2];252 UChar* puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition ()];253 #endif 254 #if H_3D_IV_MERGE252 TComMvField* pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 253 UChar* puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 254 #endif 255 #if NH_3D_IV_MERGE 255 256 pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx); 256 257 #endif … … 260 261 } 261 262 Int numValidMergeCand = 0; 263 #if !NH_3D 262 264 Bool hasMergedCandList = false; 265 #else 266 Bool isMerged = false; 267 #endif 263 268 264 269 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 265 270 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 266 #if H_3D271 #if NH_3D 267 272 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 268 273 { … … 296 301 297 302 ////// Parse CUs extension syntax 303 #if NH_3D_DBBP 298 304 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 299 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 300 301 #if H_3D_ARP 305 #endif 306 //decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 307 308 #if NH_3D_ARP 302 309 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 303 310 #endif … … 312 319 { 313 320 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 314 #if H_3D_DBBP321 #if NH_3D_DBBP 315 322 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) 316 323 #else … … 321 328 if ( !isMerged ) 322 329 { 323 #if H_3D_VSP330 #if NH_3D_VSP 324 331 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 325 332 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 330 337 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 331 338 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 332 #if H_3D_SPIVMP339 #if NH_3D_SPIVMP 333 340 , pcMvFieldSP, puhInterDirSP 334 341 #endif 335 342 , numValidMergeCand ); 336 343 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 337 #if H_3D_SPIVMP344 #if NH_3D_SPIVMP 338 345 , bSPIVMPFlag 339 346 #endif 340 347 , numValidMergeCand ); 341 348 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 342 343 349 #else 344 350 #if H_3D … … 358 364 { 359 365 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 360 #if H_3D_VSP366 #if NH_3D_VSP 361 367 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 362 368 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 367 373 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 368 374 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 369 #if H_3D_SPIVMP375 #if NH_3D_SPIVMP 370 376 , pcMvFieldSP, puhInterDirSP 371 377 #endif 372 378 ,numValidMergeCand, uiMergeIndex ); 373 379 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 374 #if H_3D_SPIVMP380 #if NH_3D_SPIVMP 375 381 , bSPIVMPFlag 376 382 #endif … … 398 404 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 399 405 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 400 #if H_3D_VSP401 #if H_3D_DBBP406 #if NH_3D_VSP 407 #if NH_3D_DBBP 402 408 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) 403 409 #else … … 490 496 { 491 497 pcSubCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); // temporarily set. 498 499 #if NH_3D_MLC 500 #if NH_3D_VSP 501 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 502 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 503 #endif 504 #if NH_3D_SPIVMP 505 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 506 #endif 507 pcSubCU->initAvailableFlags(); 508 #endif 492 509 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 510 #if NH_3D_MLC 511 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 512 #if NH_3D_SPIVMP 513 , pcMvFieldSP, puhInterDirSP 514 #endif 515 , numValidMergeCand ); 516 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 517 #if NH_3D_VSP 518 , vspFlag 519 #endif 520 #if NH_3D_SPIVMP 521 , bSPIVMPFlag 522 #endif 523 , numValidMergeCand ); 524 #if NH_3D_VSP 525 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 526 #endif 527 #endif 493 528 pcSubCU->setPartSizeSubParts( ePartSize, 0, uiDepth ); // restore. 494 529 hasMergedCandList = true; … … 498 533 { 499 534 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 535 536 #if NH_3D_MLC 537 #if NH_3D_VSP 538 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 539 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 540 #endif 541 #if NH_3D_SPIVMP 542 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 543 #endif 544 pcSubCU->initAvailableFlags(); 545 #endif 500 546 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 547 #if NH_3D_MLC 548 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 549 #if NH_3D_SPIVMP 550 , pcMvFieldSP, puhInterDirSP 551 #endif 552 ,numValidMergeCand, uiMergeIndex ); 553 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 554 #if NH_3D_VSP 555 , vspFlag 556 #endif 557 #if NH_3D_SPIVMP 558 , bSPIVMPFlag 559 #endif 560 ,numValidMergeCand ); 561 #if NH_3D_VSP 562 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 563 #endif 564 #endif 501 565 } 502 566 … … 512 576 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 513 577 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 514 515 } 516 } 578 #if NH_3D_VSP 579 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 ) 580 { 581 if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) ) 582 { 583 UInt dummy; 584 Int vspSize; 585 Int width, height; 586 pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 ); 587 pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize ); 588 pcCU->setVSPFlag( uiSubPartIdx, vspSize ); 589 } 590 } 591 #endif 592 } 593 } 594 #if NH_3D_SPIVMP 595 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 596 if (bSPIVMPFlag[uiMergeIndex] != 0) 597 { 598 Int iWidth, iHeight; 599 UInt uiIdx; 600 pcCU->getPartIndexAndSize( uiPartIdx, uiIdx, iWidth, iHeight, uiSubPartIdx, true ); 601 602 UInt uiSPAddr; 603 604 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 605 606 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 607 608 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 609 { 610 pcCU->getSPAbsPartIdx(uiSubPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 611 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 612 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 613 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 614 } 615 } 616 #endif 517 617 } 518 618 else … … 551 651 } 552 652 #endif 553 #if H_3D_SPIVMP653 #if NH_3D_SPIVMP 554 654 delete[] pcMvFieldSP; 555 655 delete[] puhInterDirSP; … … 619 719 } 620 720 621 #if H_3D721 #if NH_3D 622 722 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 623 723 { … … 1070 1170 } 1071 1171 #endif 1072 #if H_3D_DBBP1172 #if NH_3D_DBBP 1073 1173 Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1074 1174 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecEntropy.h
r1225 r1274 85 85 virtual Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ) = 0; 86 86 virtual Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ) = 0; 87 #if H_3D_ARP87 #if NH_3D_ARP 88 88 virtual Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 89 89 #endif … … 95 95 virtual Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 96 96 #endif 97 #if H_3D_DBBP97 #if NH_3D_DBBP 98 98 virtual Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 99 99 #endif … … 145 145 Void decodeMvdPU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 146 146 Void decodeMVPIdxPU ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 147 #if H_3D147 #if NH_3D 148 148 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, 149 149 RefPicList eRefList ); … … 174 174 Void decodePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 175 175 176 #if H_3D_ARP176 #if NH_3D_ARP 177 177 Void decodeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 178 178 #endif … … 183 183 Void decodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 184 184 #endif 185 #if H_3D_DBBP185 #if NH_3D_DBBP 186 186 Void decodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 187 187 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecGop.cpp
r1200 r1274 122 122 } 123 123 124 #if H_3D_NBDV124 #if NH_3D_NBDV 125 125 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 126 126 { 127 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 -pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx());128 rpcPic->setNumDdvCandPics(rpcPic->getDisCandRefPictures(iColPoc));127 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 - pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx()); 128 pcPic->setNumDdvCandPics(pcPic->getDisCandRefPictures(iColPoc)); 129 129 } 130 130 131 131 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 132 132 { 133 rpcPic->checkTemporalIVRef();133 pcPic->checkTemporalIVRef(); 134 134 } 135 135 136 136 if(pcSlice->getIsDepth()) 137 137 { 138 rpcPic->checkTextureRef();138 pcPic->checkTextureRef(); 139 139 } 140 140 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecSbac.cpp
r1256 r1274 73 73 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 74 74 , m_cCUMergeIdxExtSCModel ( 1, 1, NUM_MERGE_IDX_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 75 #if H_3D_ARP75 #if NH_3D_ARP 76 76 , m_cCUPUARPWSCModel ( 1, 1, NUM_ARPW_CTX , m_contextModels + m_numContextModels, m_numContextModels) 77 77 #endif … … 119 119 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 120 120 #endif 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 , m_cDBBPFlagSCModel ( 1, 1, DBBP_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 123 123 #endif … … 164 164 m_cCUMergeFlagExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT ); 165 165 m_cCUMergeIdxExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_IDX_EXT ); 166 #if H_3D_ARP166 #if NH_3D_ARP 167 167 m_cCUPUARPWSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_ARPW ); 168 168 #endif … … 210 210 m_cSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_FLAG ); 211 211 #endif 212 #if H_3D_DBBP212 #if NH_3D_DBBP 213 213 m_cDBBPFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DBBP_FLAG ); 214 214 #endif … … 240 240 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 241 241 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 242 #endif243 #if H_3D_ARP244 m_cCUPUARPWSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW );245 242 #endif 246 243 #if H_3D_DIM … … 256 253 #if H_3D_DIM_SDC 257 254 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 258 #endif259 #if H_3D_DBBP260 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );261 255 #endif 262 256 … … 2417 2411 } 2418 2412 2419 #if H_3D_ARP2413 #if NH_3D_ARP 2420 2414 Void TDecSbac::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2421 2415 { 2422 UInt uiMaxW = pcCU->getSlice()->getARPStepNum() - 1;2423 2416 UInt uiW = 0; 2424 2417 UInt uiOffset = pcCU->getCTXARPWFlag(uiAbsPartIdx); 2425 2418 UInt uiCode = 0; 2426 2419 2427 assert ( uiMaxW > 0 ); 2428 2429 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 0 + uiOffset ) ); 2420 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 0 + uiOffset ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__ARP_FLAG)); 2430 2421 2431 2422 uiW = uiCode; 2432 2423 if( 1 == uiW ) 2433 2424 { 2434 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) );2425 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__ARP_FLAG)); 2435 2426 uiW += ( 1 == uiCode ? 1 : 0 ); 2436 2427 } … … 2539 2530 #endif 2540 2531 2541 #if H_3D_DBBP2532 #if NH_3D_DBBP 2542 2533 Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2543 2534 { … … 2547 2538 UInt uiSymbol = 0; 2548 2539 2549 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );2540 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__DBBP_FLAG) ); 2550 2541 DTRACE_CU("dbbp_flag", uiSymbol) 2551 2542 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2552 2543 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); 2553 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;2544 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 2554 2545 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth); 2555 2546 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth); -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecSbac.h
r1225 r1274 121 121 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 122 122 #endif 123 #if H_3D_DBBP123 #if NH_3D_DBBP 124 124 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 125 125 #endif … … 139 139 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 140 140 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ); 141 #if H_3D_ARP141 #if NH_3D_ARP 142 142 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 143 143 #endif … … 190 190 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; 191 191 ContextModel3DBuffer m_cCUMergeIdxExtSCModel; 192 #if H_3D_ARP192 #if NH_3D_ARP 193 193 ContextModel3DBuffer m_cCUPUARPWSCModel; 194 194 #endif … … 240 240 ContextModel3DBuffer m_cSDCFlagSCModel; 241 241 #endif 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 ContextModel3DBuffer m_cDBBPFlagSCModel; 244 244 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecTop.cpp
r1225 r1274 292 292 293 293 294 #if H_3D_IV_MERGE294 #if NH_3D_IV_MERGE 295 295 Void 296 296 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) … … 1149 1149 pcSlice->getTempRefPicLists( m_cListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr); 1150 1150 pcSlice->setRefPicList ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true ); 1151 #if H_3D1151 #if NH_3D_NBDV 1152 1152 pcSlice->setDefaultRefView(); 1153 1153 #endif 1154 #if H_3D_ARP1154 #if NH_3D_ARP 1155 1155 pcSlice->setARPStepNum(m_ivPicLists); 1156 if( pcSlice->getARPStepNum() > 1 )1157 {1158 // GT: This seems to be broken, not all nuh_layer_ids are necessarily present1159 for(Int iLayerId = 0; iLayerId < nalu.m_nuhLayerId; iLayerId ++ )1160 {1161 Int iViewIdx = pcSlice->getVPS()->getViewIndex(iLayerId);1162 Bool bIsDepth = ( pcSlice->getVPS()->getDepthId ( iLayerId ) == 1 );1163 if( iViewIdx<getViewIndex() && !bIsDepth )1164 {1165 pcSlice->setBaseViewRefPicList( m_ivPicLists->getPicList( iLayerId ), iViewIdx );1166 }1167 }1168 }1169 1156 #endif 1170 1157 #else … … 1174 1161 #if NH_3D 1175 1162 pcSlice->checkInCompPredRefLayers(); 1176 #if H_3D_IV_MERGE1163 #if NH_3D_IV_MERGE 1177 1164 #if H_3D_FCO 1178 1165 //assert( !getIsDepth() ); … … 1271 1258 } 1272 1259 1273 #if H_3D_IV_MERGE1260 #if NH_3D_IV_MERGE 1274 1261 #if H_3D_FCO 1275 1262 if( !pcSlice->getIsDepth() && m_pcCamParsCollector ) -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecTop.h
r1200 r1274 81 81 Int**** getBaseViewShiftLUTI() { return m_aiBaseViewShiftLUT; } 82 82 83 #if H_3D_IV_MERGE83 #if NH_3D_IV_MERGE 84 84 Void copyCamParamForSlice( TComSlice* pcSlice ); 85 85 #endif
Note: See TracChangeset for help on using the changeset viewer.