Changeset 765 in 3DVCSoftware for branches/HTM-9.2-dev0/source/Lib
- Timestamp:
- 12 Jan 2014, 02:46:46 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source/Lib
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/Lib/TLibCommon/ContextTables.h
r764 r765 367 367 INIT_ARPW[3][NUM_ARPW_CTX] = 368 368 { 369 #if LGE_ARP_CTX_F0161370 369 { 162, 153, 154, 162 }, 371 370 { 162, 153, 154, 162 }, 372 371 { 162, 153, 154, 162 }, 373 #else374 { 154, 154, 154, 154 },375 { 154, 154, 154, 154 },376 { 154, 154, 154, 154 },377 #endif378 372 }; 379 373 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r764 r765 136 136 m_piVSPFlag = NULL; 137 137 #endif 138 #if MTK_SPIVMP_F0110138 #if H_3D_SPIVMP 139 139 m_pbSPIVMPFlag = NULL; 140 140 #endif … … 190 190 m_piVSPFlag = (Char* )xMalloc(Char, uiNumPartition); 191 191 #endif 192 #if MTK_SPIVMP_F0110192 #if H_3D_SPIVMP 193 193 m_pbSPIVMPFlag = (Bool* )xMalloc(Bool, uiNumPartition); 194 194 #endif … … 342 342 if ( m_piVSPFlag ) { xFree(m_piVSPFlag); m_piVSPFlag = NULL; } 343 343 #endif 344 #if MTK_SPIVMP_F0110344 #if H_3D_SPIVMP 345 345 if ( m_pbSPIVMPFlag ) { xFree(m_pbSPIVMPFlag); m_pbSPIVMPFlag = NULL; } 346 346 #endif … … 541 541 m_piVSPFlag[ui] = pcFrom->m_piVSPFlag[ui]; 542 542 #endif 543 #if MTK_SPIVMP_F0110543 #if H_3D_SPIVMP 544 544 m_pbSPIVMPFlag[ui] = pcFrom->m_pbSPIVMPFlag[ui]; 545 545 #endif … … 586 586 memset( m_piVSPFlag + firstElement, 0, numElements * sizeof( *m_piVSPFlag ) ); 587 587 #endif 588 #if MTK_SPIVMP_F0110588 #if H_3D_SPIVMP 589 589 memset( m_pbSPIVMPFlag + firstElement, 0, numElements * sizeof( *m_pbSPIVMPFlag ) ); 590 590 #endif … … 759 759 m_piVSPFlag[ui] = 0; 760 760 #endif 761 #if MTK_SPIVMP_F0110761 #if H_3D_SPIVMP 762 762 m_pbSPIVMPFlag[ui] = 0; 763 763 #endif … … 859 859 memset( m_piVSPFlag, 0, sizeof( Char ) * m_uiNumPartition ); 860 860 #endif 861 #if MTK_SPIVMP_F0110861 #if H_3D_SPIVMP 862 862 memset( m_pbSPIVMPFlag, 0, sizeof( Bool ) * m_uiNumPartition ); 863 863 #endif … … 948 948 m_pDvInfo[ ui ] = pcCU->m_pDvInfo[uiPartOffset+ui]; 949 949 #endif 950 #if MTK_SPIVMP_F0110950 #if H_3D_SPIVMP 951 951 m_pbSPIVMPFlag[ui]=pcCU->m_pbSPIVMPFlag[uiPartOffset+ui]; 952 952 #endif … … 1098 1098 m_piVSPFlag = pcCU->getVSPFlag() + uiPart; 1099 1099 #endif 1100 #if MTK_SPIVMP_F01101100 #if H_3D_SPIVMP 1101 1101 m_pbSPIVMPFlag = pcCU->getSPIVMPFlag() + uiPart; 1102 1102 #endif … … 1247 1247 m_pDvInfo = pcCU->getDvInfo() + uiAbsPartIdx; 1248 1248 #endif 1249 #if MTK_SPIVMP_F01101249 #if H_3D_SPIVMP 1250 1250 m_pbSPIVMPFlag = pcCU->getSPIVMPFlag() + uiAbsPartIdx; 1251 1251 #endif … … 1299 1299 1300 1300 #endif 1301 #if MTK_SPIVMP_F01101301 #if H_3D_SPIVMP 1302 1302 memcpy( m_pbSPIVMPFlag + uiOffset, pcCU->getSPIVMPFlag(), sizeof( Bool ) * uiNumPartition ); 1303 1303 #endif … … 1421 1421 memcpy( rpcCU->getDvInfo() + m_uiAbsIdxInLCU, m_pDvInfo, sizeof( *m_pDvInfo ) * m_uiNumPartition ); 1422 1422 #endif 1423 #if MTK_SPIVMP_F01101423 #if H_3D_SPIVMP 1424 1424 memcpy( rpcCU->getSPIVMPFlag() + m_uiAbsIdxInLCU, m_pbSPIVMPFlag, sizeof( Bool ) * m_uiNumPartition ); 1425 1425 #endif … … 1530 1530 memcpy( rpcCU->getVSPFlag() + uiPartOffset, m_piVSPFlag, sizeof(Char) * uiQNumPart ); 1531 1531 #endif 1532 #if MTK_SPIVMP_F01101532 #if H_3D_SPIVMP 1533 1533 memcpy( rpcCU->getSPIVMPFlag() + uiPartOffset, m_pbSPIVMPFlag, sizeof(Bool) * uiQNumPart ); 1534 1534 #endif … … 2647 2647 } 2648 2648 2649 #if MTK_SPIVMP_F01102649 #if H_3D_SPIVMP 2650 2650 Void TComDataCU::setSPIVMPFlagSubParts( Bool bSPIVMPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2651 2651 { … … 3860 3860 , InheritedVSPDisInfo* inheritedVSPDisInfo 3861 3861 #endif 3862 #if MTK_SPIVMP_F01103862 #if H_3D_SPIVMP 3863 3863 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3864 3864 #endif … … 3980 3980 iPosLeftAbove[1] = numA1B1B0; 3981 3981 #if H_3D_VSP 3982 #if BUGFIX_2_F0093 && MTK_VSP_SIMPLIFICATION_F01113983 3982 if ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1) 3984 #else3985 if (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 13986 #endif3987 3983 #if H_3D_IC 3988 3984 && !bICFlag … … 3994 3990 { 3995 3991 vspFlag[numA1B1B0] = 1; 3996 #if !MTK_VSP_SIMPLIFICATION_F01113997 xInheritVSPDisInfo(pcCUAbove,uiAbovePartIdx,iCount,inheritedVSPDisInfo);3998 #endif3999 3992 } 4000 3993 #endif … … 6368 6361 } 6369 6362 #endif 6370 #if QC_DEPTH_IV_MRG_F01256363 #if H_3D_IV_MERGE 6371 6364 Bool TComDataCU::getDispNeighBlocks (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp) 6372 6365 { … … 6948 6941 #endif 6949 6942 6950 #if MTK_SPIVMP_F01106943 #if H_3D_SPIVMP 6951 6944 Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight) 6952 6945 { … … 7000 6993 #if H_3D_IV_MERGE 7001 6994 Bool 7002 TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc 7003 #if QC_DEPTH_IV_MRG_F0125 7004 , Bool bIsDepth 7005 #endif 7006 #if MTK_SPIVMP_F0110 6995 TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc , Bool bIsDepth 6996 #if H_3D_SPIVMP 7007 6997 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 7008 6998 #endif … … 7013 7003 7014 7004 //--- get base CU/PU and check prediction mode --- 7015 #if QC_DEPTH_IV_MRG_F01257016 7005 TComPic* pcBasePic = pcSlice->getIvPic( bIsDepth, iViewIndex ); 7017 #else7018 TComPic* pcBasePic = pcSlice->getIvPic( false, iViewIndex );7019 #endif7020 7006 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec (); 7021 7007 … … 7028 7014 pcBaseRec->getTopLeftSamplePos( getAddr(), getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY ); 7029 7015 7030 #if !MTK_SPIVMP_F0110 7031 #if QC_DEPTH_IV_MRG_F0125 7016 #if !H_3D_SPIVMP 7032 7017 iCurrPosX += ( iWidth >> 1 ); 7033 7018 iCurrPosY += ( iHeight >> 1 ); 7034 #else7035 iCurrPosX += ( ( iWidth - 1 ) >> 1 );7036 iCurrPosY += ( ( iHeight - 1 ) >> 1 );7037 #endif7038 7019 #endif 7039 7020 … … 7053 7034 #endif 7054 7035 7055 #if MTK_SPIVMP_F01107036 #if H_3D_SPIVMP 7056 7037 //////////////////////////////// 7057 7038 //////////sub-PU IvMC/////////// … … 7183 7164 //////////////////////////////// 7184 7165 7185 #if MTK_SPIVMP_F01107166 #if H_3D_SPIVMP 7186 7167 for(Int iLoopCan = 1; iLoopCan < 2; iLoopCan ++) 7187 7168 #else … … 7192 7173 // iLoopCan == 1 --> IvMCShift 7193 7174 7194 #if ! MTK_SPIVMP_F01107175 #if !H_3D_SPIVMP 7195 7176 Int iBaseCUAddr; 7196 7177 Int iBaseAbsPartIdx; … … 7200 7181 Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 ); 7201 7182 7202 #if MTK_SPIVMP_F01107183 #if H_3D_SPIVMP 7203 7184 iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); 7204 7185 iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) ); … … 7209 7190 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 7210 7191 7211 #if MTK_SPIVMP_F01107192 #if H_3D_SPIVMP 7212 7193 pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 7213 7194 #else … … 7241 7222 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 7242 7223 #if H_3D_NBDV 7243 #if QC_DEPTH_IV_MRG_F01257224 #if H_3D_IV_MERGE 7244 7225 if( !bIsDepth ) 7245 7226 { … … 7249 7230 cMv.setIDVVer (cDv.getVer()); 7250 7231 cMv.setIDVVId (iViewIndex); 7251 #if QC_DEPTH_IV_MRG_F01257232 #if H_3D_IV_MERGE 7252 7233 } 7253 7234 #endif … … 7266 7247 } 7267 7248 } 7268 #if MTK_SPIVMP_F01107249 #if H_3D_SPIVMP 7269 7250 for(Int iLoopCan = 1; iLoopCan < 2; iLoopCan ++) 7270 7251 #else … … 7297 7278 #endif 7298 7279 cMv.setHor( cMv.getHor() + ioffsetDV ); 7299 #if QC_DEPTH_IV_MRG_F01257280 #if H_3D_IV_MERGE 7300 7281 if( bIsDepth ) 7301 7282 cMv.setHor((cMv.getHor()+2)>>2); -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComDataCU.h
r764 r765 198 198 ///< 0: non-VSP; 1: VSP 199 199 #endif 200 #if MTK_SPIVMP_F0110200 #if H_3D_SPIVMP 201 201 Bool* m_pbSPIVMPFlag; ///< array of sub-PU IVMP flags to indicate whehter a block uses sub-PU IVMP 202 202 ///< 0: non-SPIVMP; 1: SPIVMP … … 501 501 #if H_3D 502 502 Void rightShiftMergeCandList( TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int* iVSPIndexTrue, InheritedVSPDisInfo* inheritedVSPDisInfo, UInt start, UInt num, Int &iCount3DV); 503 #endif504 #if QC_DEPTH_IV_MRG_F0125505 503 Bool getDispNeighBlocks ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 506 504 Bool getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm ); … … 515 513 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 516 514 #endif 517 #if MTK_SPIVMP_F0110515 #if H_3D_SPIVMP 518 516 Void getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight); 519 517 Void getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr ); … … 521 519 #endif 522 520 #if H_3D_IV_MERGE 523 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc 524 #if QC_DEPTH_IV_MRG_F0125 525 , Bool bIsDepth 526 #endif 527 #if MTK_SPIVMP_F0110 521 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc, Bool bIsDepth 522 523 #if H_3D_SPIVMP 528 524 , TComMvField* pcMFieldSP, UChar* puhInterDirSP 529 525 #endif … … 675 671 , InheritedVSPDisInfo* inheritedVSPDisInfo 676 672 #endif 677 #if MTK_SPIVMP_F0110673 #if H_3D_SPIVMP 678 674 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 679 675 #endif … … 684 680 inline Void xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo* inheritedVSPDisInfo); 685 681 686 #if MTK_SPIVMP_F0110682 #if H_3D_SPIVMP 687 683 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } 688 684 Bool getSPIVMPFlag ( UInt uiIdx ) { return m_pbSPIVMPFlag[uiIdx]; } -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComMotionInfo.cpp
r724 r765 40 40 #include "assert.h" 41 41 #include <stdlib.h> 42 #if MTK_SPIVMP_F011042 #if H_3D_SPIVMP 43 43 #include "TComDataCU.h" 44 44 #include "TComPic.h" … … 328 328 } 329 329 330 #if MTK_SPIVMP_F0110330 #if H_3D_SPIVMP 331 331 Void TComCUMvField::setMvFieldSP( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight ) 332 332 { -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComMotionInfo.h
r724 r765 50 50 // ==================================================================================================================== 51 51 52 #if MTK_SPIVMP_F011052 #if H_3D_SPIVMP 53 53 class TComDataCU; 54 54 #endif … … 173 173 Void setAllRefIdx ( Int iRefIdx, PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 ); 174 174 Void setAllMvField( TComMvField const & mvField, PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 ); 175 #if MTK_SPIVMP_F0110175 #if H_3D_SPIVMP 176 176 Void setMvFieldSP ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight ); 177 177 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r764 r765 520 520 } 521 521 522 #if MTK_SPIVMP_F0110522 #if H_3D_SPIVMP 523 523 Void TComPrediction::xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr ) 524 524 { … … 631 631 else 632 632 { 633 #if MTK_SPIVMP_F0110633 #if H_3D_SPIVMP 634 634 if ( pcCU->getSPIVMPFlag(uiPartAddr)!=0) 635 635 { … … 671 671 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 672 672 } 673 #if MTK_SPIVMP_F0110673 #if H_3D_SPIVMP 674 674 } 675 675 #endif … … 717 717 else 718 718 { 719 #if MTK_SPIVMP_F0110719 #if H_3D_SPIVMP 720 720 if (pcCU->getSPIVMPFlag(uiPartAddr)!=0) 721 721 { … … 756 756 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 757 757 } 758 #if MTK_SPIVMP_F0110758 #if H_3D_SPIVMP 759 759 } 760 760 #endif … … 784 784 pcCU->clipMv(cMv); 785 785 #if H_3D_ARP 786 #if QC_MTK_INTERVIEW_ARP_F0123_F0108787 786 if(pcCU->getARPW( uiPartAddr ) > 0 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC()) 788 787 { 789 788 xPredInterUniARPviewRef( pcCU , uiPartAddr , iWidth , iHeight , eRefPicList , rpcYuvPred , bi ); 790 789 } 791 790 else 792 #endif 793 if( pcCU->getARPW( uiPartAddr ) > 0794 && pcCU->getPartitionSize(uiPartAddr)==SIZE_2Nx2N795 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()!= pcCU->getSlice()->getPOC()796 )797 {798 xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi );799 }800 else801 {791 { 792 if( pcCU->getARPW( uiPartAddr ) > 0 793 && pcCU->getPartitionSize(uiPartAddr)==SIZE_2Nx2N 794 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() 795 ) 796 { 797 xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi ); 798 } 799 else 800 { 802 801 #endif 803 802 #if H_3D_IC 804 Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() );805 xPredInterLumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi803 Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() ); 804 xPredInterLumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi 806 805 #if H_3D_ARP 807 , false808 #endif 809 , bICFlag );810 bICFlag = bICFlag && (iWidth > 8);811 xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi806 , false 807 #endif 808 , bICFlag ); 809 bICFlag = bICFlag && (iWidth > 8); 810 xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi 812 811 #if H_3D_ARP 813 , false814 #endif 815 , bICFlag );812 , false 813 #endif 814 , bICFlag ); 816 815 #else 817 xPredInterLumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );818 xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );816 xPredInterLumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi ); 817 xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi ); 819 818 #endif 820 819 #if H_3D_ARP 820 } 821 821 } 822 822 #endif … … 872 872 pcBaseViewDepthPicYuv->extendPicBorder(); 873 873 874 #if MTK_F0109_LG_F0120_VSP_BLOCK875 874 Int vspSize=0; 876 875 xGetVirtualDepth( pcCU, pcBaseViewDepthPicYuv, &cDv, uiPartAddr, iWidth, iHeight, &m_cYuvDepthOnVsp,vspSize ); … … 878 877 xPredInterLumaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize); 879 878 xPredInterChromaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize); 880 #else881 xGetVirtualDepth( pcCU, pcBaseViewDepthPicYuv, &cDv, uiPartAddr, iWidth, iHeight, &m_cYuvDepthOnVsp );882 // sub-PU based compensation883 xPredInterLumaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi );884 xPredInterChromaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi );885 #endif886 879 } 887 880 #endif … … 913 906 if( cDistparity.bDV ) 914 907 { 915 #if SHARP_ARP_REF_CHECK_F0105916 908 Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList); 917 909 if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() ) 918 #else919 if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC()!= pcCU->getSlice()->getPOC() )920 #endif921 910 { 922 911 bTobeScaled = true; … … 925 914 pcPicYuvBaseCol = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getPOC(), cDistparity.m_aVIdxCan ); 926 915 927 #if SHARP_ARP_REF_CHECK_F0105928 916 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC(), cDistparity.m_aVIdxCan ); 929 917 930 918 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, cDistparity.m_aVIdxCan)) 931 #else932 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC(), cDistparity.m_aVIdxCan );933 934 if( ( !pcPicYuvBaseCol || pcPicYuvBaseCol->getPOC() != pcCU->getSlice()->getPOC() ) || ( !pcPicYuvBaseRef || pcPicYuvBaseRef->getPOC() != pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() ) )935 #endif936 919 { 937 920 dW = 0; … … 940 923 else 941 924 { 942 #if SHARP_ARP_REF_CHECK_F0105943 925 assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC() ); 944 #else945 assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() );946 #endif947 926 } 948 927 … … 993 972 } 994 973 } 995 #if QC_MTK_INTERVIEW_ARP_F0123_F0108996 974 Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled ) 997 975 { … … 1015 993 1016 994 assert(dW > 0); 1017 #if SHARP_ARP_REF_CHECK_F01051018 995 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, pcPicYuvBaseCol->getViewIndex())) 1019 996 { 1020 997 dW = 0; 1021 998 } 1022 #endif1023 999 Int uiLCUAddr,uiAbsPartAddr; 1024 1000 Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2 + ((cDMv.getHor() + 2)>>2); … … 1098 1074 } 1099 1075 } 1100 #endif1101 1076 1102 1077 #endif … … 1758 1733 #if H_3D_VSP 1759 1734 // not fully support iRatioTxtPerDepth* != 1 1760 #if MTK_F0109_LG_F0120_VSP_BLOCK1761 1735 Void TComPrediction::xGetVirtualDepth( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *mv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int &vspSize, Int ratioTxtPerDepthX, Int ratioTxtPerDepthY ) 1762 #else1763 Void TComPrediction::xGetVirtualDepth( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *mv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int ratioTxtPerDepthX, Int ratioTxtPerDepthY )1764 #endif1765 1736 { 1766 1737 Int nTxtPerDepthX = H_3D_VSP_BLOCKSIZE; … … 1790 1761 Pel *depth = yuvDepth->getLumaAddr(); 1791 1762 1792 #if !SHARP_VSP_BLOCK_IN_AMP_F01021793 if( width<8 || height<8 )1794 { // no split1795 Int rightOffset = width - 1;1796 Int depStrideBlock = depStride * nTxtPerDepthY;1797 Pel *refDepthTop = refDepth;1798 Pel *refDepthBot = refDepthTop + (height-1)*refDepStride;1799 1800 Pel maxDepth = refDepthTop[0] > refDepthBot[0] ? refDepthTop[0] : refDepthBot[0];1801 if( maxDepth < refDepthTop[rightOffset] ) { maxDepth = refDepthTop[rightOffset]; }1802 if( maxDepth < refDepthBot[rightOffset] ) { maxDepth = refDepthBot[rightOffset]; }1803 1804 for( Int sY=0; sY<height; sY+=nTxtPerDepthY )1805 {1806 for( Int sX=0; sX<width; sX+=nTxtPerDepthX )1807 {1808 depth[sX] = maxDepth;1809 }1810 depth += depStrideBlock;1811 }1812 #if MTK_F0109_LG_F0120_VSP_BLOCK1813 if(width==4)1814 vspSize=0;1815 else1816 vspSize=1;1817 #endif1818 }1819 else1820 { // split to 4x8, or 8x41821 Int blocksize = 8;1822 Int subblocksize = 4;1823 Int depStrideBlock = depStride * blocksize;1824 Pel *depthTmp = NULL;1825 Int depStrideTmp = depStride * nTxtPerDepthY;1826 Int offset[4] = { 0, subblocksize-1, subblocksize, blocksize-1 };1827 Pel *refDepthTmp[4] = { NULL, NULL, NULL, NULL };1828 Pel repDepth4x8[2] = {0, 0};1829 Pel repDepth8x4[2] = {0, 0};1830 #endif1831 1832 #if !MTK_F0109_LG_F0120_VSP_BLOCK1833 #if SHARP_VSP_BLOCK_IN_AMP_F01021834 Int blocksize = 8;1835 Int subblocksize = 4;1836 Int depStrideBlock = depStride * blocksize;1837 Pel *depthTmp = NULL;1838 Int depStrideTmp = depStride * nTxtPerDepthY;1839 Int offset[4] = { 0, subblocksize-1, subblocksize, blocksize-1 };1840 Pel *refDepthTmp[4] = { NULL, NULL, NULL, NULL };1841 #endif1842 Int refDepStrideBlock = refDepStride * blocksize;1843 Int refDepStrideSubBlock = refDepStride * subblocksize;1844 1845 refDepthTmp[0] = refDepth;1846 refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock;1847 refDepthTmp[1] = refDepthTmp[2] - refDepStride;1848 refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock;1849 1850 #if SHARP_VSP_BLOCK_IN_AMP_F01021851 Int subBlockW, subBlockH;1852 Int blockW, blockH;1853 subBlockW = subBlockH = 8;1854 if (height % 8)1855 {1856 subBlockW = 8;1857 subBlockH = 4;1858 blockW = width; // no further split1859 blockH = height; // no further split1860 }1861 else if (width % 8)1862 {1863 subBlockW = 4;1864 subBlockH = 8;1865 blockW = width; // no further split1866 blockH = height; // no further split1867 }1868 else1869 {1870 blockW = blockH = 8;1871 }1872 for( Int y=0; y<height; y+=blockH )1873 {1874 for( Int x=0; x<width; x+=blockW )1875 {1876 if (blockW == 8 && blockH == 8)1877 {1878 Bool ULvsBR = false, URvsBL = false;1879 ULvsBR = refDepthTmp[0][x+offset[0]] < refDepthTmp[3][x+offset[3]];1880 URvsBL = refDepthTmp[0][x+offset[3]] < refDepthTmp[3][x+offset[0]];1881 if( ULvsBR ^ URvsBL )1882 { // 4x81883 subBlockW = 4;1884 subBlockH = 8;1885 }1886 else1887 {1888 subBlockW = 8;1889 subBlockH = 4;1890 }1891 }1892 for( Int yy=0; yy<blockH; yy+=subBlockH )1893 {1894 for( Int xx=0; xx<blockW; xx+=subBlockW )1895 {1896 Pel maxDepthVal = 0;1897 Int xP0, xP1, yP0, yP1;1898 xP0 = x+xx;1899 xP1 = x+xx+subBlockW-1;1900 yP0 = yy;1901 yP1 = yy+subBlockH-1;1902 maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP0+yP0*refDepStride]);1903 maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP1+yP0*refDepStride]);1904 maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP0+yP1*refDepStride]);1905 maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP1+yP1*refDepStride]);1906 depthTmp = &depth[x+xx+yy*depStride];1907 for( Int sY=0; sY<subBlockH; sY+=nTxtPerDepthY )1908 {1909 for( Int sX=0; sX<subBlockW; sX+=nTxtPerDepthX )1910 {1911 depthTmp[sX] = maxDepthVal;1912 }1913 depthTmp += depStrideTmp;1914 }1915 }1916 }1917 }1918 refDepthTmp[0] += refDepStrideBlock;1919 depth += depStrideBlock;1920 }1921 #else // SHARP_VSP_BLOCK_IN_AMP_F01021922 for( Int y=0; y<height; y+=blocksize )1923 {1924 for( Int x=0; x<width; x+=blocksize )1925 {1926 Bool ULvsBR = false, URvsBL = false;1927 1928 ULvsBR = refDepthTmp[0][x+offset[0]] < refDepthTmp[3][x+offset[3]];1929 URvsBL = refDepthTmp[0][x+offset[3]] < refDepthTmp[3][x+offset[0]];1930 1931 if( ULvsBR ^ URvsBL )1932 { // 4x81933 repDepth4x8[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[1]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[1]];1934 if( repDepth4x8[0] < refDepthTmp[3][x+offset[0]] )1935 {1936 repDepth4x8[0] = refDepthTmp[3][x+offset[0]];1937 }1938 if( repDepth4x8[0] < refDepthTmp[3][x+offset[1]] )1939 {1940 repDepth4x8[0] = refDepthTmp[3][x+offset[1]];1941 }1942 repDepth4x8[1] = refDepthTmp[0][x+offset[2]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[2]] : refDepthTmp[0][x+offset[3]];1943 if( repDepth4x8[1] < refDepthTmp[3][x+offset[2]] )1944 {1945 repDepth4x8[1] = refDepthTmp[3][x+offset[2]];1946 }1947 if( repDepth4x8[1] < refDepthTmp[3][x+offset[3]] )1948 {1949 repDepth4x8[1] = refDepthTmp[3][x+offset[3]];1950 }1951 1952 depthTmp = &depth[x];1953 for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )1954 {1955 for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )1956 {1957 depthTmp[sX] = repDepth4x8[0];1958 }1959 depthTmp += depStrideTmp;1960 }1961 depthTmp = &depth[x+subblocksize];1962 for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )1963 {1964 for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )1965 {1966 depthTmp[sX] = repDepth4x8[1];1967 }1968 depthTmp += depStrideTmp;1969 }1970 }1971 else1972 { // 8x41973 repDepth8x4[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[3]];1974 if( repDepth8x4[0] < refDepthTmp[1][x+offset[0]] )1975 {1976 repDepth8x4[0] = refDepthTmp[1][x+offset[0]];1977 }1978 if( repDepth8x4[0] < refDepthTmp[1][x+offset[3]] )1979 {1980 repDepth8x4[0] = refDepthTmp[1][x+offset[3]];1981 }1982 repDepth8x4[1] = refDepthTmp[2][x+offset[0]] > refDepthTmp[2][x+offset[3]] ? refDepthTmp[2][x+offset[0]] : refDepthTmp[2][x+offset[3]];1983 if( repDepth8x4[1] < refDepthTmp[3][x+offset[0]] )1984 {1985 repDepth8x4[1] = refDepthTmp[3][x+offset[0]];1986 }1987 if( repDepth8x4[1] < refDepthTmp[3][x+offset[3]] )1988 {1989 repDepth8x4[1] = refDepthTmp[3][x+offset[3]];1990 }1991 1992 depthTmp = &depth[x];1993 for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )1994 {1995 for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )1996 {1997 depthTmp[sX] = repDepth8x4[0];1998 }1999 depthTmp += depStrideTmp;2000 }2001 for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )2002 {2003 for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )2004 {2005 depthTmp[sX] = repDepth8x4[1];2006 }2007 depthTmp += depStrideTmp;2008 }2009 }2010 }2011 refDepthTmp[0] += refDepStrideBlock;2012 refDepthTmp[1] += refDepStrideBlock;2013 refDepthTmp[2] += refDepStrideBlock;2014 refDepthTmp[3] += refDepStrideBlock;2015 depth += depStrideBlock;2016 }2017 #endif // SHARP_VSP_BLOCK_IN_AMP_F01022018 #else2019 #if SHARP_VSP_BLOCK_IN_AMP_F01022020 1763 if ((height % 8)) 2021 1764 { … … 2069 1812 } 2070 1813 } 2071 } 2072 #else // SHARP_VSP_BLOCK_IN_AMP_F0102 2073 Int refDepStrideBlock = refDepStride * height; 2074 Int refDepStrideSubBlock = refDepStride * height/2; 2075 refDepthTmp[0] = refDepth; 2076 refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock; 2077 refDepthTmp[1] = refDepthTmp[2] - refDepStride; 2078 refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock; 2079 offset[3] = width-1; 2080 Bool ULvsBR = false, URvsBL = false; 2081 ULvsBR = refDepthTmp[0][0+offset[0]] < refDepthTmp[3][0+offset[3]]; 2082 URvsBL = refDepthTmp[0][0+offset[3]] < refDepthTmp[3][0+offset[0]]; 2083 refDepStrideBlock = refDepStride * blocksize; 2084 refDepStrideSubBlock = refDepStride * subblocksize; 2085 refDepthTmp[0] = refDepth; 2086 refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock; 2087 refDepthTmp[1] = refDepthTmp[2] - refDepStride; 2088 refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock; 2089 offset[3] = blocksize-1; 2090 if( ULvsBR ^ URvsBL ) 2091 { 2092 vspSize = 0;//4x8 2093 for( Int y=0; y<height; y+=blocksize ) 2094 { 2095 for( Int x=0; x<width; x+=blocksize ) 2096 { 2097 { // 4x8 2098 repDepth4x8[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[1]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[1]]; 2099 if( repDepth4x8[0] < refDepthTmp[3][x+offset[0]] ) 2100 { 2101 repDepth4x8[0] = refDepthTmp[3][x+offset[0]]; 2102 } 2103 if( repDepth4x8[0] < refDepthTmp[3][x+offset[1]] ) 2104 { 2105 repDepth4x8[0] = refDepthTmp[3][x+offset[1]]; 2106 } 2107 repDepth4x8[1] = refDepthTmp[0][x+offset[2]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[2]] : refDepthTmp[0][x+offset[3]]; 2108 if( repDepth4x8[1] < refDepthTmp[3][x+offset[2]] ) 2109 { 2110 repDepth4x8[1] = refDepthTmp[3][x+offset[2]]; 2111 } 2112 if( repDepth4x8[1] < refDepthTmp[3][x+offset[3]] ) 2113 { 2114 repDepth4x8[1] = refDepthTmp[3][x+offset[3]]; 2115 } 2116 2117 depthTmp = &depth[x]; 2118 for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY ) 2119 { 2120 for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX ) 2121 { 2122 depthTmp[sX] = repDepth4x8[0]; 2123 } 2124 depthTmp += depStrideTmp; 2125 } 2126 depthTmp = &depth[x+subblocksize]; 2127 for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY ) 2128 { 2129 for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX ) 2130 { 2131 depthTmp[sX] = repDepth4x8[1]; 2132 } 2133 depthTmp += depStrideTmp; 2134 } 2135 } 2136 } 2137 refDepthTmp[0] += refDepStrideBlock; 2138 refDepthTmp[1] += refDepStrideBlock; 2139 refDepthTmp[2] += refDepStrideBlock; 2140 refDepthTmp[3] += refDepStrideBlock; 2141 depth += depStrideBlock; 2142 } 2143 } 2144 else 2145 { // 8x4 2146 vspSize = 1; 2147 for( Int y=0; y<height; y+=blocksize ) 2148 { 2149 for( Int x=0; x<width; x+=blocksize ) 2150 { 2151 repDepth8x4[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[3]]; 2152 if( repDepth8x4[0] < refDepthTmp[1][x+offset[0]] ) 2153 { 2154 repDepth8x4[0] = refDepthTmp[1][x+offset[0]]; 2155 } 2156 if( repDepth8x4[0] < refDepthTmp[1][x+offset[3]] ) 2157 { 2158 repDepth8x4[0] = refDepthTmp[1][x+offset[3]]; 2159 } 2160 repDepth8x4[1] = refDepthTmp[2][x+offset[0]] > refDepthTmp[2][x+offset[3]] ? refDepthTmp[2][x+offset[0]] : refDepthTmp[2][x+offset[3]]; 2161 if( repDepth8x4[1] < refDepthTmp[3][x+offset[0]] ) 2162 { 2163 repDepth8x4[1] = refDepthTmp[3][x+offset[0]]; 2164 } 2165 if( repDepth8x4[1] < refDepthTmp[3][x+offset[3]] ) 2166 { 2167 repDepth8x4[1] = refDepthTmp[3][x+offset[3]]; 2168 } 2169 2170 depthTmp = &depth[x]; 2171 for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY ) 2172 { 2173 for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX ) 2174 { 2175 depthTmp[sX] = repDepth8x4[0]; 2176 } 2177 depthTmp += depStrideTmp; 2178 } 2179 for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY ) 2180 { 2181 for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX ) 2182 { 2183 depthTmp[sX] = repDepth8x4[1]; 2184 } 2185 depthTmp += depStrideTmp; 2186 } 2187 } 2188 refDepthTmp[0] += refDepStrideBlock; 2189 refDepthTmp[1] += refDepStrideBlock; 2190 refDepthTmp[2] += refDepStrideBlock; 2191 refDepthTmp[3] += refDepStrideBlock; 2192 depth += depStrideBlock; 2193 } 2194 } 2195 #endif 2196 #endif 2197 #if !SHARP_VSP_BLOCK_IN_AMP_F0102 2198 } 2199 #endif 2200 2201 2202 } 2203 #if MTK_F0109_LG_F0120_VSP_BLOCK 1814 } 1815 } 1816 2204 1817 Void TComPrediction::xPredInterLumaBlkFromDM( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi, Int vspSize) 2205 #else2206 Void TComPrediction::xPredInterLumaBlkFromDM( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi )2207 #endif2208 1818 { 2209 1819 Int nTxtPerDepthX = H_3D_VSP_BLOCKSIZE; 2210 1820 Int nTxtPerDepthY = H_3D_VSP_BLOCKSIZE; 2211 1821 2212 #if MTK_F0109_LG_F0120_VSP_BLOCK2213 1822 nTxtPerDepthX = nTxtPerDepthX << vspSize; 2214 1823 nTxtPerDepthY = nTxtPerDepthY << (1-vspSize); 2215 #endif 1824 2216 1825 Int refStride = picRef->getStride(); 2217 1826 Int dstStride = yuvDst->getStride(); … … 2319 1928 } 2320 1929 2321 #if MTK_F0109_LG_F0120_VSP_BLOCK2322 1930 Void TComPrediction::xPredInterChromaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi, Int vspSize) 2323 #else2324 Void TComPrediction::xPredInterChromaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi )2325 #endif2326 1931 { 2327 1932 #if (H_3D_VSP_BLOCKSIZE==1) … … 2333 1938 #endif 2334 1939 2335 #if MTK_F0109_LG_F0120_VSP_BLOCK2336 1940 nTxtPerDepthX = nTxtPerDepthX << vspSize; 2337 1941 nTxtPerDepthY = nTxtPerDepthY << (1-vspSize); 2338 #endif 1942 2339 1943 Int refStride = picRef->getCStride(); 2340 1944 Int dstStride = yuvDst->getCStride(); -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComPrediction.h
r764 r765 93 93 #if H_3D_ARP 94 94 Void xPredInterUniARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL ); 95 #if QC_MTK_INTERVIEW_ARP_F0123_F010896 95 Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL ); 97 #endif98 96 #endif 99 97 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false ); … … 123 121 124 122 #if H_3D_VSP 125 #if MTK_F0109_LG_F0120_VSP_BLOCK126 123 Void xGetVirtualDepth ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int &vspSize, Int txtPerDepthX=1, Int txtPerDepthY=1 ); 127 124 Void xPredInterLumaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi, Int vspSize); 128 125 Void xPredInterChromaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi, Int vspSize); 129 #else130 Void xGetVirtualDepth ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int txtPerDepthX=1, Int txtPerDepthY=1 );131 Void xPredInterLumaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi );132 Void xPredInterChromaBlkFromDM ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi );133 #endif134 126 #endif 135 127 … … 142 134 Void xDCPredFiltering( Int* pSrc, Int iSrcStride, Pel*& rpDst, Int iDstStride, Int iWidth, Int iHeight ); 143 135 Bool xCheckIdenticalMotion ( TComDataCU* pcCU, UInt PartAddr); 144 #if MTK_SPIVMP_F0110136 #if H_3D_SPIVMP 145 137 Bool xCheckTwoSPMotion ( TComDataCU* pcCU, UInt PartAddr0, UInt PartAddr1 ); 146 138 Void xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr ); -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.cpp
r758 r765 753 753 { 754 754 if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0) 755 { 755 756 continue; 756 #if !SHARP_ARP_REF_CHECK_F0105 757 // move the following to setARPStepNum() to define ARP related thing in ARP function. 758 #if QC_MTK_INTERVIEW_ARP_F0123_F0108 759 for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) 760 { 761 if ( this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != getPOC() ) 762 { 763 this->setFirstTRefIdx (RefPicList(uiRefListIdx), i); 764 break; 765 } 766 } 767 #endif 768 #endif 757 } 769 758 Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm(); 770 759 for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) … … 1872 1861 #if H_3D_IV_MERGE 1873 1862 m_ivMvPredFlag [ i ] = false; 1874 #if MTK_SPIVMP_F01101863 #if H_3D_SPIVMP 1875 1864 m_iSubPULog2Size [ i ] = 0; 1876 1865 #endif … … 1885 1874 m_bInterSDCFlag [ i ] = false; 1886 1875 #endif 1887 #if SEC_MPI_ENABLING_MERGE_F01501876 #if H_3D_IV_MERGE 1888 1877 m_bMPIFlag [ i ] = false; 1889 1878 #endif … … 3324 3313 3325 3314 #if H_3D_ARP 3326 #if SHARP_ARP_REF_CHECK_F01053327 3315 Void TComSlice::setARPStepNum( TComPicLists*ivPicLists ) 3328 #else 3329 Void TComSlice::setARPStepNum() 3330 #endif 3331 { 3332 #if SHARP_ARP_REF_CHECK_F0105 3316 { 3333 3317 Bool tempRefPicInListsFlag = false; 3334 #else3335 Bool bAllIvRef = true;3336 #endif3337 #if QC_MTK_INTERVIEW_ARP_F0123_F01083338 3318 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) 3339 #else3340 if(!getVPS()->getUseAdvRP(getLayerId()))3341 #endif3342 3319 { 3343 3320 m_nARPStepNum = 0; … … 3345 3322 else 3346 3323 { 3347 #if SHARP_ARP_REF_CHECK_F01053348 3324 setFirstTRefIdx (REF_PIC_LIST_0, -1); 3349 3325 setFirstTRefIdx (REF_PIC_LIST_1, -1); … … 3361 3337 tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0; 3362 3338 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 3363 #else 3364 for( Int iRefListId = 0; iRefListId < 2; iRefListId++ ) 3365 { 3366 RefPicList eRefPicList = RefPicList( iRefListId ); 3367 Int iNumRefIdx = getNumRefIdx(eRefPicList); 3368 3369 if( iNumRefIdx <= 0 ) 3370 { 3371 continue; 3372 } 3373 3374 for ( Int i = 0; i < iNumRefIdx; i++ ) 3375 { 3376 if( getRefPic( eRefPicList, i)->getPOC() != getPOC() ) 3377 { 3378 bAllIvRef = false; 3379 break; 3380 } 3381 } 3382 3383 if( bAllIvRef == false ) { break; } 3384 } 3385 m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0; 3386 #endif 3387 } 3388 #if SHARP_ARP_REF_CHECK_F0105 3339 } 3340 3389 3341 if (tempRefPicInListsFlag) 3390 3342 { … … 3407 3359 } 3408 3360 } 3409 } 3410 } 3411 #endif 3361 } 3362 } 3412 3363 } 3413 3364 #endif … … 3514 3465 #endif 3515 3466 3516 #if QC_DEPTH_IV_MRG_F01253467 #if H_3D_IV_MERGE 3517 3468 setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() ); 3518 3469 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.h
r758 r765 838 838 #if H_3D_IV_MERGE 839 839 Bool m_ivMvPredFlag [ MAX_NUM_LAYERS ]; 840 #if MTK_SPIVMP_F0110840 #if H_3D_SPIVMP 841 841 Int m_iSubPULog2Size [MAX_NUM_LAYERS ]; 842 842 #endif … … 874 874 Bool m_bInterSDCFlag[MAX_NUM_LAYERS ]; 875 875 #endif 876 #if SEC_MPI_ENABLING_MERGE_F0150876 #if H_3D_IV_MERGE 877 877 Bool m_bMPIFlag[MAX_NUM_LAYERS ]; 878 878 #endif … … 1167 1167 Void setIvMvPredFlag ( Int layerIdInVps, Bool val ) { m_ivMvPredFlag[ layerIdInVps ] = val; } 1168 1168 Bool getIvMvPredFlag ( Int layerIdInVps ) { return m_ivMvPredFlag[ layerIdInVps ]; }; 1169 #if MTK_SPIVMP_F01101169 #if H_3D_SPIVMP 1170 1170 Int getSubPULog2Size(Int layerIdInVps) { return m_iSubPULog2Size[layerIdInVps]; } 1171 1171 Void setSubPULog2Size(Int layerIdInVps, Int u) { m_iSubPULog2Size[layerIdInVps] = u;} … … 1202 1202 Void setInterSDCFlag ( Int layerIdInVps, Bool bval ){ m_bInterSDCFlag[layerIdInVps] = bval; } 1203 1203 #endif 1204 #if SEC_MPI_ENABLING_MERGE_F01501204 #if H_3D_IV_MERGE 1205 1205 Bool getMPIFlag ( Int layerIdInVps ) { return m_bMPIFlag[layerIdInVps]; } 1206 1206 Void setMPIFlag ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; } … … 1805 1805 UInt getCamParPrecision () { return m_uiCamParPrecision; } 1806 1806 Bool hasCamParInSliceHeader() { return m_bCamParInSliceHeader; } 1807 #if QC_DEPTH_IV_MRG_F01251808 1807 Void setHasCamParInSliceHeader( Bool b ) { m_bCamParInSliceHeader = b; } 1809 #endif1810 1808 Int* getCodedScale () { return m_aaiCodedScale [0]; } 1811 1809 Int* getCodedOffset () { return m_aaiCodedOffset[0]; } … … 2214 2212 #endif 2215 2213 #if H_3D_ARP 2216 #if SHARP_ARP_REF_CHECK_F01052217 2214 Bool m_arpRefPicAvailable[2][MAX_NUM_LAYERS]; 2218 #endif2219 2215 TComList<TComPic*> * m_pBaseViewRefPicList[MAX_NUM_LAYERS]; 2220 2216 UInt m_nARPStepNum; 2221 #if QC_MTK_INTERVIEW_ARP_F0123_F01082222 2217 Int m_aiFirstTRefIdx [2]; 2223 #endif2224 2218 #endif 2225 2219 #if H_3D_IC … … 2308 2302 #if H_3D_ARP 2309 2303 Void setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx ) { m_pBaseViewRefPicList[iViewIdx] = pListPic; } 2310 #if SHARP_ARP_REF_CHECK_F01052311 2304 Void setARPStepNum( TComPicLists*ivPicLists ); 2312 #else2313 Void setARPStepNum();2314 #endif2315 2305 TComPic* getBaseViewRefPic ( UInt uiPOC , Int iViewIdx ) { return xGetRefPic( *m_pBaseViewRefPicList[iViewIdx], uiPOC ); } 2316 2306 UInt getARPStepNum( ) { return m_nARPStepNum; } … … 2513 2503 Int getAlterRefIdx ( RefPicList e ) { return m_aiAlterRefIdx[e]; } 2514 2504 #endif 2515 #if QC_MTK_INTERVIEW_ARP_F0123_F01082505 #if H_3D_ARP 2516 2506 Int getFirstTRefIdx ( RefPicList e ) { return m_aiFirstTRefIdx[e]; } 2517 2507 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } 2518 #endif2519 #if SHARP_ARP_REF_CHECK_F01052520 2508 Bool getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; } 2521 2509 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibCommon/TypeDef.h
r764 r765 99 99 // MTK_TEXTURE_MRGCAND_BUGFIX_E0182 Bug fix for TEXTURE MERGING CANDIDATE , JCT3V-E0182 100 100 #define H_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177 101 // QC_MTK_INTERVIEW_ARP_F0123_F0108 JCT3V-F0123; JCT3V-F0108 102 // SHARP_ARP_REF_CHECK_F0105 ARP reference picture selection and DPB check 103 // LGE_ARP_CTX_F0161 JCT3V-F0161 101 104 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 102 105 // Unifying rounding offset, for IC part, JCT3V-D0135 … … 114 117 // NBDV_DEFAULT_VIEWIDX_BUGFIX Bug fix for invalid default view index for NBDV 115 118 // NTT_DoNBDV_VECTOR_CLIP_E0141 disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209 116 117 119 #endif 118 120 … … 127 129 // NTT_VSP_DC_BUGFIX_E0208 bugfix for sub-PU based DC in VSP, JCT3V-E0208 128 130 // NTT_VSP_COMMON_E0207_E0208 common part of JCT3V-E0207 and JCT3V-E0208 131 // MTK_F0109_LG_F0120_VSP_BLOCK MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 132 // SHARP_VSP_BLOCK_IN_AMP_F0102 VSP partitioning for AMP 133 // MTK_VSP_SIMPLIFICATION_F0111 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss 134 // LGE_SHARP_VSP_INHERIT_F0104 135 129 136 #define H_3D_IV_MERGE 1 // Inter-view motion merge candidate 130 137 // HHI_INTER_VIEW_MOTION_PRED … … 136 143 // TEXTURE MERGING CANDIDATE , JCT3V-C0137 137 144 // QC_INRIA_MTK_MRG_E0126 138 // ETRIKHU_MERGE_REUSE_F0093 145 // ETRIKHU_MERGE_REUSE_F0093 QC_DEPTH_IV_MRG_F0125, JCT3V-F0125: Depth oriented Inter-view MV candidate 146 // EC_MPI_ENABLING_MERGE_F0150, MPI flag in VPS and enabling in Merge mode 147 148 139 149 140 150 … … 170 180 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding 171 181 // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding 182 #define H_3D_SPIVMP 1 // H_3D_SPIVMP // JCT3V-F0110: Sub-PU level inter-view motion prediction 172 183 #define H_3D_FCO 0 // Flexible coding order for 3D 184 173 185 174 186 … … 211 223 #endif 212 224 213 //// ****** neighbouring block-based disparity vector*********225 //// ****** NEIGHBOURING BLOCK-BASED DISPARITY VECTOR ********* 214 226 #if H_3D_NBDV 215 227 #define DVFROM_LEFT 0 … … 266 278 #endif 267 279 268 ///////////////////////////////////////////////////////////////////////////////////////// 269 /////////////////////////////////// HTM-9.2 Integrations ////////////////////////////// 270 ///////////////////////////////////////////////////////////////////////////////////////// 271 272 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!! 273 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!! 274 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!! 275 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!! 276 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!! 280 #if H_3D 281 #define PPS_FIX_DEPTH 1 282 #endif 283 284 285 ///////////////////////////////////////////////////////////////////////////////////////// 286 /////////////////////////////////// HTM-10.0 Integrations ////////////////////////////// 287 ///////////////////////////////////////////////////////////////////////////////////////// 288 289 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 290 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 291 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 292 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 293 // !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!! 277 294 278 295 ///////////////////////////////////////////////////////////////////////////////////////// … … 316 333 #define H_MV_6_PS_O0109_23 1 // (PS/O0109/profile_ref_minus1 constraint) #23 Modify the semantics of profile_ref_minus1[ i ] to replace shall be less than i?with shall be less than or equal to i? from discussion of JCTVC-O0109 317 334 #define H_MV_6_PS_O0109_24 1 // (PS/O0109/vps_vui_present_flag move) #24 Move the vps_vui_present_flag to precede vps_vui_offset, and make vps_vui_offset conditional on that flag, from JCTVC-O0109 318 /////////////////////////////////////////////////////////////////////////////////////////319 /////////////////////////////////// HTM-9.0 Integrations //////////////////////////////320 /////////////////////////////////////////////////////////////////////////////////////////321 322 #if H_3D323 #define PPS_FIX_DEPTH 1324 325 #define FIX_MISSING_MACRO_R690 1 // Missing macro in integration to revision 690326 #define SEC_MPI_ENABLING_MERGE_F0150 1 // MPI flag in VPS and enabling in Merge mode327 328 #if H_3D_ARP329 #define QC_MTK_INTERVIEW_ARP_F0123_F0108 1 //JCT3V-F0123; JCT3V-F0108330 #define SHARP_ARP_REF_CHECK_F0105 1 // ARP reference picture selection and DPB check331 #define LGE_ARP_CTX_F0161 1 //JCT3V-F0161332 #endif333 334 #if H_3D_IV_MERGE335 #define QC_DEPTH_IV_MRG_F0125 1 // JCT3V-F0125: Depth oriented Inter-view MV candidate336 #define MTK_SPIVMP_F0110 1 // JCT3V-F0110: Sub-PU level inter-view motion prediction337 #define MTK_F0110_FIX 1 // Disable Sub-PU IVMP in Depth, fix some delete problems338 #define BUGFIX_F0093 1 // bug fix for F0093 for depth IvMC pruning339 #define BUGFIX_2_F0093 1 // bug fix for VSP inheritance340 #endif341 342 #if H_3D_VSP343 #define MTK_F0109_LG_F0120_VSP_BLOCK 1 // MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120344 #define SHARP_VSP_BLOCK_IN_AMP_F0102 1 // VSP partitioning for AMP345 #define MTK_VSP_SIMPLIFICATION_F0111 1 // 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss346 #define LGE_SHARP_VSP_INHERIT_F0104 1347 #endif348 #endif349 335 350 336 -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r764 r765 1859 1859 pcVPS->setARPStepNum( i, 1 ); 1860 1860 #endif 1861 #if MTK_SPIVMP_F01101861 #if H_3D_SPIVMP 1862 1862 pcVPS->setSubPULog2Size(i, 0); 1863 1863 #endif … … 1868 1868 #if H_3D_IV_MERGE 1869 1869 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1870 #if MTK_SPIVMP_F01101870 #if H_3D_SPIVMP 1871 1871 READ_UVLC (uiCode, "log2_sub_PU_size_minus2"); pcVPS->setSubPULog2Size(i, uiCode+2); 1872 1872 #endif … … 1885 1885 else 1886 1886 { 1887 #if QC_DEPTH_IV_MRG_F0125 &&H_3D_IV_MERGE1887 #if H_3D_IV_MERGE 1888 1888 if(i!=1) 1889 1889 { … … 1891 1891 } 1892 1892 #endif 1893 #if MTK_SPIVMP_F01101893 #if H_3D_SPIVMP 1894 1894 if (i!=1) 1895 1895 { … … 1897 1897 } 1898 1898 #endif 1899 #if SEC_MPI_ENABLING_MERGE_F01501899 #if H_3D_IV_MERGE 1900 1900 READ_FLAG( uiCode, "mpi_flag[i]" ); pcVPS->setMPIFlag( i, uiCode == 1 ? true : false ); 1901 1901 #endif … … 2568 2568 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 2569 2569 #if H_3D_IV_MERGE 2570 #if SEC_MPI_ENABLING_MERGE_F01502571 2570 if(rpcSlice->getIsDepth()) 2572 2571 { … … 2580 2579 rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 2581 2580 } 2582 #else 2583 Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ; 2584 rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 2585 #endif 2581 2586 2582 #else 2587 2583 rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode); -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r764 r765 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 … … 401 401 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 402 402 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 403 #if MTK_SPIVMP_F0110403 #if H_3D_SPIVMP 404 404 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 405 405 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); … … 412 412 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 413 413 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 414 #if MTK_SPIVMP_F0110414 #if H_3D_SPIVMP 415 415 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 416 416 #endif … … 462 462 } 463 463 } 464 #if MTK_SPIVMP_F0110464 #if H_3D_SPIVMP 465 465 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 466 466 if (bSPIVMPFlag[uiMergeIndex]) … … 482 482 } 483 483 } 484 #if MTK_F0110_FIX485 484 delete[] pcMvFieldSP; 486 485 delete[] puhInterDirSP; 487 #else488 delete pcMvFieldSP;489 delete puhInterDirSP;490 #endif491 486 #endif 492 487 493 488 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 494 #if QC_DEPTH_IV_MRG_F0125489 #if H_3D_IV_MERGE 495 490 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 496 491 #endif … … 508 503 { 509 504 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 510 #if QC_DEPTH_IV_MRG_F0125505 #if H_3D_IV_MERGE 511 506 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 512 507 #endif … … 528 523 setdQPFlag( bCodeDQP ); 529 524 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 530 #if QC_DEPTH_IV_MRG_F0125525 #if H_3D_IV_MERGE 531 526 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 532 527 #endif … … 546 541 { 547 542 TComPic* pcPic = pcCU->getPic(); 548 #if ! QC_DEPTH_IV_MRG_F0125543 #if !H_3D_IV_MERGE 549 544 Bool bBoundary = false; 550 545 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ]; -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r764 r765 209 209 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 210 210 #endif 211 #if MTK_SPIVMP_F0110211 #if H_3D_SPIVMP 212 212 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 213 213 TComMvField* pcMvFieldSP; … … 256 256 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 257 257 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 258 #if MTK_SPIVMP_F0110258 #if H_3D_SPIVMP 259 259 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 260 260 #endif … … 262 262 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 263 263 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 264 #if MTK_SPIVMP_F0110264 #if H_3D_SPIVMP 265 265 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 266 266 #endif … … 293 293 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 294 294 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 295 #if MTK_SPIVMP_F0110295 #if H_3D_SPIVMP 296 296 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 297 297 #endif … … 299 299 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 300 300 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 301 #if MTK_SPIVMP_F0110301 #if H_3D_SPIVMP 302 302 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 303 303 #endif … … 331 331 } 332 332 } 333 #if MTK_SPIVMP_F0110333 #if H_3D_SPIVMP 334 334 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 335 335 if (bSPIVMPFlag[uiMergeIndex] != 0) … … 385 385 } 386 386 } 387 #if MTK_SPIVMP_F0110 388 #if MTK_F0110_FIX 387 #if H_3D_SPIVMP 389 388 delete[] pcMvFieldSP; 390 389 delete[] puhInterDirSP; 391 #else392 delete pcMvFieldSP;393 delete puhInterDirSP;394 #endif395 390 #endif 396 391 return; -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r758 r765 302 302 } 303 303 304 #if QC_DEPTH_IV_MRG_F0125304 #if H_3D_IV_MERGE 305 305 Void 306 306 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) … … 1007 1007 pcSlice->setRefPicList ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true ); 1008 1008 #if H_3D_ARP 1009 #if SHARP_ARP_REF_CHECK_F01051010 1009 pcSlice->setARPStepNum(m_ivPicLists); 1011 #else1012 pcSlice->setARPStepNum();1013 #endif1014 1010 if( pcSlice->getARPStepNum() > 1 ) 1015 1011 { … … 1113 1109 } 1114 1110 1115 #if QC_DEPTH_IV_MRG_F01251111 #if H_3D_IV_MERGE 1116 1112 if( pcSlice->getIsDepth() && m_pcCamParsCollector ) 1117 1113 { … … 1127 1123 m_pcCamParsCollector->setSlice( pcSlice ); 1128 1124 } 1129 #if QC_DEPTH_IV_MRG_F01251125 #if H_3D_IV_MERGE 1130 1126 if( pcSlice->getIsDepth() ) 1131 1127 { -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.h
r738 r765 78 78 Int**** getBaseViewShiftLUTI() { return m_aiBaseViewShiftLUT; } 79 79 80 #if QC_DEPTH_IV_MRG_F012580 #if H_3D_IV_MERGE 81 81 Void copyCamParamForSlice( TComSlice* pcSlice ); 82 82 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r764 r765 1646 1646 #if H_3D_IV_MERGE 1647 1647 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1648 #if MTK_SPIVMP_F01101648 #if H_3D_SPIVMP 1649 1649 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]"); 1650 1650 #endif … … 1662 1662 else 1663 1663 { 1664 #if QC_DEPTH_IV_MRG_F01251665 1664 if(i!=1) 1666 1665 { 1667 1666 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1668 1667 } 1669 #endif 1670 #if MTK_SPIVMP_F0110 1668 #if H_3D_SPIVMP 1671 1669 if (i!=1) 1672 1670 { … … 1674 1672 } 1675 1673 #endif 1676 #if SEC_MPI_ENABLING_MERGE_F01501674 #if H_3D_IV_MERGE 1677 1675 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" ); 1678 1676 #endif … … 2142 2140 { 2143 2141 #if H_3D_IV_MERGE 2144 #if SEC_MPI_ENABLING_MERGE_F01502145 2142 if(pcSlice->getIsDepth()) 2146 2143 { … … 2154 2151 WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 2155 2152 } 2156 #else2157 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;2158 WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");2159 #endif2160 2153 #else 2161 2154 WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); … … 2197 2190 } 2198 2191 #if CAM_HLS_F0044 2199 #if QC_DEPTH_IV_MRG_F01252200 2192 #if CAM_HLS_F0136_F0045_F0082 2201 2193 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() ) 2202 2194 #else 2203 2195 if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() ) 2204 #endif2205 #else2206 if( pcSlice->getSPS()->hasCamParInSliceHeader() )2207 2196 #endif 2208 2197 { … … 2227 2216 #else 2228 2217 WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!! 2229 #if QC_DEPTH_IV_MRG_F01252230 2218 #if CAM_HLS_F0136_F0045_F0082 2231 2219 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() ) 2232 2220 #else 2233 2221 if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() ) 2234 #endif2235 #else2236 if( pcSlice->getSPS()->hasCamParInSliceHeader() )2237 2222 #endif 2238 2223 { -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
r764 r765 408 408 UInt m_uiARPStepNum; 409 409 #endif 410 #if MTK_SPIVMP_F0110410 #if H_3D_SPIVMP 411 411 Int m_iSubPULog2Size; 412 412 #endif … … 423 423 Bool m_useDLT; 424 424 #endif 425 #if SEC_MPI_ENABLING_MERGE_F0150425 #if H_3D_IV_MERGE 426 426 Bool m_useMPI; 427 427 #endif … … 511 511 Void setARPStepNum ( UInt u ) { m_uiARPStepNum = u; } 512 512 #endif 513 #if MTK_SPIVMP_F0110513 #if H_3D_SPIVMP 514 514 Int getSubPULog2Size () { return m_iSubPULog2Size;} 515 515 Void setSubPULog2Size (Int u) { m_iSubPULog2Size = u; } … … 1011 1011 Bool getUsePC () { return m_bUsePC; } 1012 1012 #endif 1013 #if SEC_MPI_ENABLING_MERGE_F01501013 #if H_3D_IV_MERGE 1014 1014 Void setUseMPI ( Bool b ) { m_useMPI = b; } 1015 1015 Bool getUseMPI () { return m_useMPI; } -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r764 r765 567 567 PartSize ePartTemp = rpcTempCU->getPartitionSize(0); 568 568 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 569 #if QC_DEPTH_IV_MRG_F0125569 #if H_3D_IV_MERGE 570 570 if (rpcTempCU->getSlice()->getIsDepth() ) 571 571 { … … 582 582 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo); 583 583 584 #if QC_DEPTH_IV_MRG_F0125584 #if H_3D_IV_MERGE 585 585 } 586 586 #endif … … 1839 1839 for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- ) 1840 1840 { 1841 #if FIX_MISSING_MACRO_R6901842 1841 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1843 #else1844 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) );1845 #endif1846 1842 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1847 1843 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); … … 1855 1851 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1856 1852 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 1857 #if MTK_SPIVMP_F01101853 #if H_3D_SPIVMP 1858 1854 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 1859 1855 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); … … 1867 1863 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1868 1864 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo 1869 #if MTK_SPIVMP_F01101865 #if H_3D_SPIVMP 1870 1866 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 1871 1867 #endif … … 1910 1906 rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth ); 1911 1907 #endif 1912 #if MTK_SPIVMP_F01101908 #if H_3D_SPIVMP 1913 1909 rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth); 1914 1910 if (bSPIVMPFlag[uiMergeCand]) … … 1936 1932 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1937 1933 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1938 #if MTK_SPIVMP_F01101934 #if H_3D_SPIVMP 1939 1935 } 1940 1936 #endif … … 2057 2053 } 2058 2054 } 2059 #if MTK_SPIVMP_F0110 2060 #if MTK_F0110_FIX 2055 #if H_3D_SPIVMP 2061 2056 delete[] pcMvFieldSP; 2062 2057 delete[] puhInterDirSP; 2063 #else2064 delete pcMvFieldSP;2065 delete puhInterDirSP;2066 #endif2067 2058 #endif 2068 2059 #if H_3D_ARP … … 2134 2125 2135 2126 m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] ); 2136 2137 #if !QC_MTK_INTERVIEW_ARP_F0123_F01082138 if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N)2139 {2140 Bool bSignalflag[2] = { true, true };2141 for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )2142 {2143 RefPicList eRefList = uiRefListIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;2144 Int iRefIdx = rpcTempCU->getCUMvField(eRefList)->getRefIdx(0);2145 if( iRefIdx < 0 || rpcTempCU->getSlice()->getPOC() == rpcTempCU->getSlice()->getRefPOC(eRefList, iRefIdx) )2146 {2147 bSignalflag[uiRefListIdx] = false;2148 }2149 }2150 if( !bSignalflag[0] && !bSignalflag[1] )2151 {2152 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );2153 }2154 }2155 #endif2156 2127 } 2157 2128 else … … 2173 2144 { 2174 2145 m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth ); 2175 2176 #if !QC_MTK_INTERVIEW_ARP_F0123_F01082177 Bool bSignalflag[2] = { true, true };2178 for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )2179 {2180 RefPicList eRefList = uiRefListIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;2181 Int iRefIdx = rpcTempCU->getCUMvField(eRefList)->getRefIdx(0);2182 if( iRefIdx < 0 || rpcTempCU->getSlice()->getPOC() == rpcTempCU->getSlice()->getRefPOC(eRefList, iRefIdx) )2183 {2184 bSignalflag[uiRefListIdx] = false;2185 }2186 }2187 if( !bSignalflag[0] && !bSignalflag[1])2188 {2189 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );2190 }2191 #endif2192 2146 } 2193 2147 } -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r762 r765 745 745 #if H_3D_ARP 746 746 //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh 747 #if SHARP_ARP_REF_CHECK_F0105748 747 pcSlice->setARPStepNum(m_ivPicLists); 749 #else750 pcSlice->setARPStepNum();751 #endif752 748 if(pcSlice->getARPStepNum() > 1) 753 749 { -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r764 r765 3581 3581 , InheritedVSPDisInfo* inheritedVSPDisInfo 3582 3582 #endif 3583 #if MTK_SPIVMP_F01103583 #if H_3D_SPIVMP 3584 3584 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3585 3585 #endif … … 3607 3607 , inheritedVSPDisInfo 3608 3608 #endif 3609 #if MTK_SPIVMP_F01103609 #if H_3D_SPIVMP 3610 3610 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3611 3611 #endif … … 3628 3628 , inheritedVSPDisInfo 3629 3629 #endif 3630 #if MTK_SPIVMP_F01103630 #if H_3D_SPIVMP 3631 3631 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3632 3632 #endif … … 3654 3654 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 3655 3655 3656 #if MTK_SPIVMP_F01103656 #if H_3D_SPIVMP 3657 3657 pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx )); 3658 3658 if (pbSPIVMPFlag[uiMergeCand]) … … 3676 3676 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3677 3677 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3678 #if MTK_SPIVMP_F01103678 #if H_3D_SPIVMP 3679 3679 } 3680 3680 #endif … … 4355 4355 DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx); 4356 4356 #endif 4357 #if MTK_SPIVMP_F01104357 #if H_3D_SPIVMP 4358 4358 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 4359 4359 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); … … 4368 4368 , inheritedVSPDisInfo 4369 4369 #endif 4370 #if MTK_SPIVMP_F01104370 #if H_3D_SPIVMP 4371 4371 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 4372 4372 #endif … … 4382 4382 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4383 4383 #endif 4384 #if MTK_SPIVMP_F01104384 #if H_3D_SPIVMP 4385 4385 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4386 4386 if (bSPIVMPFlag[uiMRGIndex]!=0) … … 4416 4416 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4417 4417 } 4418 #if MTK_SPIVMP_F01104418 #if H_3D_SPIVMP 4419 4419 } 4420 4420 #endif … … 4430 4430 else 4431 4431 { 4432 #if MTK_SPIVMP_F01104432 #if H_3D_SPIVMP 4433 4433 pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4434 4434 #endif … … 4445 4445 } 4446 4446 } 4447 #if MTK_SPIVMP_F0110 4448 #if MTK_F0110_FIX 4447 #if H_3D_SPIVMP 4449 4448 delete[] pcMvFieldSP; 4450 4449 delete[] puhInterDirSP; 4451 #else4452 delete pcMvFieldSP;4453 delete puhInterDirSP;4454 #endif4455 4450 #endif 4456 4451 } … … 5366 5361 dZeroCost = dCost + 1; 5367 5362 } 5368 #if MTK_SPIVMP_F01105363 #if H_3D_SPIVMP 5369 5364 if ( dZeroCost < dCost || pcCU->getQtRootCbf(0)==0) 5370 5365 #else -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSearch.h
r764 r765 417 417 , InheritedVSPDisInfo* inheritedVSPDisInfo 418 418 #endif 419 #if MTK_SPIVMP_F0110419 #if H_3D_SPIVMP 420 420 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 421 421 #endif -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
r724 r765 556 556 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 557 557 #if H_3D_IV_MERGE 558 #if SEC_MPI_ENABLING_MERGE_F0150559 558 if(rpcSlice->getIsDepth()) 560 559 { … … 565 564 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) ); 566 565 } 567 #else568 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );569 #endif570 566 #else 571 567 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); -
branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r758 r765 855 855 #if H_3D 856 856 #if !CAM_HLS_F0136_F0045_F0082 857 #if !QC_DEPTH_IV_MRG_F0125858 if ( !m_isDepth )859 #endif860 857 { 861 858 m_cSPS.initCamParaSPS ( m_viewIndex, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset );
Note: See TracChangeset for help on using the changeset viewer.