Changeset 773 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecCu.cpp
- Timestamp:
- 16 Jan 2014, 09:56:13 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r758 r773 135 135 Void TDecCu::decompressCU( TComDataCU* pcCU ) 136 136 { 137 #if ! QC_DEPTH_IV_MRG_F0125137 #if !H_3D_IV_MERGE 138 138 xDecompressCU( pcCU, 0, 0 ); 139 139 #endif … … 315 315 m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth) ); 316 316 m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 317 #if QC_DEPTH_IV_MRG_F0125317 #if H_3D_IV_MERGE 318 318 if( pcCU->getSlice()->getIsDepth()) 319 319 { … … 333 333 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 334 334 } 335 #if QC_DEPTH_IV_MRG_F0125335 #if H_3D_IV_MERGE 336 336 } 337 337 #endif … … 390 390 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 391 391 392 #if LGE_SHARP_VSP_INHERIT_F0104393 392 #if H_3D_IC 394 393 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 396 395 #if H_3D_ARP 397 396 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 398 #endif399 397 #endif 400 398 … … 403 401 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 404 402 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 405 #if MTK_SPIVMP_F0110403 #if H_3D_SPIVMP 406 404 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 407 405 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); … … 411 409 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 412 410 #endif 413 #if ETRIKHU_MERGE_REUSE_F0093414 411 m_ppcCU[uiDepth]->initAvailableFlags(); 415 412 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 416 413 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 417 #if MTK_SPIVMP_F0110414 #if H_3D_SPIVMP 418 415 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 419 416 #endif 420 417 , numValidMergeCand, uiMergeIndex ); 421 #else422 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand, uiMergeIndex );423 #endif424 418 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 425 419 #else 426 #if ETRIKHU_MERGE_REUSE_F0093420 #if H_3D 427 421 m_ppcCU[uiDepth]->initAvailableFlags(); 428 422 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); … … 468 462 } 469 463 } 470 #if MTK_SPIVMP_F0110464 #if H_3D_SPIVMP 471 465 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 472 466 if (bSPIVMPFlag[uiMergeIndex]) … … 488 482 } 489 483 } 490 #if MTK_F0110_FIX491 484 delete[] pcMvFieldSP; 492 485 delete[] puhInterDirSP; 493 #else494 delete pcMvFieldSP;495 delete puhInterDirSP;496 #endif497 #endif498 #if !LGE_SHARP_VSP_INHERIT_F0104499 #if H_3D_IC500 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );501 #endif502 #if H_3D_ARP503 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );504 #endif505 486 #endif 506 487 507 488 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 508 #if QC_DEPTH_IV_MRG_F0125489 #if H_3D_IV_MERGE 509 490 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 510 491 #endif … … 522 503 { 523 504 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 524 #if QC_DEPTH_IV_MRG_F0125505 #if H_3D_IV_MERGE 525 506 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 526 507 #endif … … 534 515 // prediction mode ( Intra : direction mode, Inter : Mv, reference idx ) 535 516 m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]); 536 #if !LGE_SHARP_VSP_INHERIT_F0104537 #if H_3D_IC538 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );539 #endif540 #if H_3D_ARP541 m_pcEntropyDecoder->decodeARPW ( pcCU , uiAbsPartIdx , uiDepth );542 #endif543 #endif544 517 #if H_3D_INTER_SDC 545 518 m_pcEntropyDecoder->decodeInterSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 550 523 setdQPFlag( bCodeDQP ); 551 524 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 552 #if QC_DEPTH_IV_MRG_F0125525 #if H_3D_IV_MERGE 553 526 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 554 527 #endif … … 568 541 { 569 542 TComPic* pcPic = pcCU->getPic(); 570 #if ! QC_DEPTH_IV_MRG_F0125543 #if !H_3D_IV_MERGE 571 544 Bool bBoundary = false; 572 545 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ]; … … 780 753 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 781 754 { 782 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 783 #if DLT_DIFF_CODING_IN_PPS 755 #if H_3D 784 756 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 785 #else 786 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 787 #endif 788 { 789 #if DLT_DIFF_CODING_IN_PPS 790 pReco [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 791 #else 792 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 793 #endif 794 } 795 else 796 { 797 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 798 } 757 { 758 pReco [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 759 } 760 else 761 { 762 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 763 } 799 764 #else 800 765 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); … … 1008 973 { 1009 974 #if H_3D_DIM_DLT 1010 #if DLT_DIFF_CODING_IN_PPS1011 975 Pel pPredIdx = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] ); 1012 976 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx); 1013 977 Pel pRecoValue = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx ); 1014 #else1015 Pel pPredIdx = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );1016 Pel pResiIdx = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);1017 Pel pRecoValue = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );1018 #endif1019 978 1020 979 apDCResiValues[uiSegment] = pRecoValue - apDCPredValues[uiSegment];
Note: See TracChangeset for help on using the changeset viewer.