Changeset 355 in 3DVCSoftware for branches/HTM-6.2-dev1-Qualcomm/source/Lib
- Timestamp:
- 3 May 2013, 10:34:51 (12 years ago)
- Location:
- branches/HTM-6.2-dev1-Qualcomm/source/Lib
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp
r348 r355 55 55 #define CHECK_ADD_YET(pcCURef,uiIdx,vspIdx) && !( (pcCURef)->getVSPIndex(uiIdx) == vspIdx && bVspMvZeroDone[vspIdx-1] ) 56 56 57 inline Void TComDataCU::xInheritVspMode( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo ) 57 inline Void TComDataCU::xInheritVspMode( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo 58 #if QC_BVSP_CleanUP_D0191 59 , UChar *puhInterDirNeighbours 60 #endif 61 ) 58 62 { 59 63 Int vspIdx = (Int) pcCURef->getVSPIndex(uiIdx); … … 69 73 if (vspIdx < 4) 70 74 { 75 #if QC_BVSP_CleanUP_D0191 76 puhInterDirNeighbours[ iCount] = 1; 77 #endif 71 78 pcMvFieldNeighbours[ iCount<<1].setMvField ( pDInfo->m_acMvCand[0], NOT_VALID ); 72 79 if ( pcCURef->getSlice()->isInterB() ) … … 102 109 (getSlice()->getNumRefIdx(REF_PIC_LIST_0) > 0 ? 1 : 2)); 103 110 puhInterDirNeighbours[iCount] = iInterDir; // The direction information does not matter 111 #if QC_BVSP_CleanUP_D0191 112 puhInterDirNeighbours[iCount] = 1; 113 #endif 104 114 // get Mv using checked disparity vector 105 115 if (vspIdx < 4) // spatial … … 3666 3676 } 3667 3677 } 3668 #if MERL_VSP_C0152 3678 #if MERL_VSP_C0152 && !QC_BVSP_CleanUP_D0191 3669 3679 xInheritVspMode( pcTextureCU, uiPartIdxCenter, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3670 3680 #endif … … 3800 3810 #endif 3801 3811 #if MERL_VSP_C0152 3802 xInheritVspMode( pcCULeft, uiLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3812 xInheritVspMode( pcCULeft, uiLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo 3813 #if QC_BVSP_CleanUP_D0191 3814 ,puhInterDirNeighbours 3815 #endif 3816 ) ; 3803 3817 #endif 3804 3818 if ( mrgCandIdx == iCount ) … … 3873 3887 #endif 3874 3888 #if MERL_VSP_C0152 3875 xInheritVspMode( pcCUAbove, uiAbovePartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3889 xInheritVspMode( pcCUAbove, uiAbovePartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo 3890 #if QC_BVSP_CleanUP_D0191 3891 ,puhInterDirNeighbours 3892 #endif 3893 ) ; 3876 3894 #endif 3877 3895 if ( mrgCandIdx == iCount ) … … 3922 3940 #endif 3923 3941 #if MERL_VSP_C0152 3924 xInheritVspMode( pcCUAboveRight, uiAboveRightPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3942 xInheritVspMode( pcCUAboveRight, uiAboveRightPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo 3943 #if QC_BVSP_CleanUP_D0191 3944 ,puhInterDirNeighbours 3945 #endif 3946 ) ; 3925 3947 #endif 3926 3948 if ( mrgCandIdx == iCount ) … … 4018 4040 #endif 4019 4041 #if MERL_VSP_C0152 4020 xInheritVspMode( pcCULeftBottom, uiLeftBottomPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 4042 xInheritVspMode( pcCULeftBottom, uiLeftBottomPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo 4043 #if QC_BVSP_CleanUP_D0191 4044 ,puhInterDirNeighbours 4045 #endif 4046 ) ; 4021 4047 #endif 4022 4048 if ( mrgCandIdx == iCount ) … … 4073 4099 #endif 4074 4100 #if MERL_VSP_C0152 4075 xInheritVspMode( pcCUAboveLeft, uiAboveLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 4101 xInheritVspMode( pcCUAboveLeft, uiAboveLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo 4102 #if QC_BVSP_CleanUP_D0191 4103 ,puhInterDirNeighbours 4104 #endif 4105 ) ; 4076 4106 #endif 4077 4107 if ( mrgCandIdx == iCount ) … … 4408 4438 { 4409 4439 if( pcCorner && !pcCorner->isIntra( uiCornerPUIdx ) 4410 #if MERL_VSP_C0152 4440 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4411 4441 && !pcCorner->getVSPIndex( uiCornerPUIdx ) 4412 4442 #endif … … 4447 4477 { 4448 4478 if( pcCorner && !pcCorner->isIntra( uiCornerPUIdx ) 4449 #if MERL_VSP_C0152 4479 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4450 4480 && !pcCorner->getVSPIndex( uiCornerPUIdx ) 4451 4481 #endif … … 4593 4623 pcTmpCU = getPULeft(uiIdx, uiPartIdxLB, true, false); 4594 4624 if(pcTmpCU != NULL && !pcTmpCU->isIntra( uiIdx ) ) 4595 #if MERL_VSP_C0152 4625 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4596 4626 if(! pcTmpCU->getVSPIndex(uiIdx)) 4597 4627 #endif … … 4618 4648 4619 4649 if(pcTmpCU != NULL && !pcTmpCU->isIntra( uiIdx )) 4620 #if MERL_VSP_C0152 4650 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4621 4651 if(! pcTmpCU->getVSPIndex(uiIdx)) 4622 4652 #endif … … 4643 4673 pcTmpCU = getPUAboveRight(uiIdx, uiPartIdxRT, true, false, true); 4644 4674 if(pcTmpCU != NULL && !pcTmpCU->isIntra( uiIdx ) ) 4645 #if MERL_VSP_C0152 4675 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4646 4676 if(! pcTmpCU->getVSPIndex(uiIdx)) 4647 4677 #endif … … 4667 4697 pcTmpCU = getPUBelowLeft(uiIdx, uiPartIdxLB, true, false); 4668 4698 if(pcTmpCU != NULL && !pcTmpCU->isIntra( uiIdx )) 4669 #if MERL_VSP_C0152 4699 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4670 4700 if(! pcTmpCU->getVSPIndex(uiIdx)) 4671 4701 #endif … … 4694 4724 assert(uiPartIdxLT == (m_uiAbsIdxInLCU + uiPartAddr)); 4695 4725 if(pcTmpCU != NULL && !pcTmpCU->isIntra( uiIdx )) 4696 #if MERL_VSP_C0152 4726 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 4697 4727 if(! pcTmpCU->getVSPIndex(uiIdx)) 4698 4728 #endif … … 4902 4932 Int iPictureWidth = pcBaseViewDepthPicYuv->getWidth(); 4903 4933 Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight(); 4904 4934 #if !QC_BVSP_CleanUP_D0191 4905 4935 Int depthPosX = Clip3(0, iPictureWidth - iBlkWidth, iBlkX + (mv->getHor()>>2)); 4906 4936 Int depthPosY = Clip3(0, iPictureHeight- iBlkHeight, iBlkY + (mv->getVer()>>2)); 4907 4937 4908 4938 Pel *pDepthPel = pcBaseViewDepthPicYuv->getLumaAddr() + depthPosX + depthPosY * depStride; 4939 #endif 4909 4940 Pel maxDepthVal = 0; 4910 4941 … … 4931 4962 } 4932 4963 } 4964 #if !QC_BVSP_CleanUP_D0191 4933 4965 else 4934 4966 { … … 4943 4975 } 4944 4976 } 4977 #endif 4945 4978 4946 4979 Int iDisp = aiShiftLUT[ maxDepthVal ] << iShiftPrec; … … 5010 5043 } 5011 5044 } 5012 #if MERL_VSP_C0152 5045 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 5013 5046 else if (pcTmpCU->getVSPIndex(uiIdx) != 0) // is VSP 5014 5047 { … … 5708 5741 } 5709 5742 5710 #if MERL_VSP_C0152 5743 #if MERL_VSP_C0152&!QC_BVSP_CleanUP_D0191 5711 5744 if(pcTmpCU != NULL && pcTmpCU->getVSPIndex(uiIdx)) 5712 5745 { … … 5824 5857 } 5825 5858 5826 #if MERL_VSP_C0152 5859 #if MERL_VSP_C0152 &!QC_BVSP_CleanUP_D0191 5827 5860 if(pcTmpCU->getVSPIndex(uiIdx)) 5828 5861 { … … 5987 6020 TComDataCU *pColCU = pColPic->getCU( uiCUAddr ); 5988 6021 iColViewIdx = pColCU->getSlice()->getViewId(); 5989 #if MERL_VSP_C0152 6022 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 5990 6023 if( pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr) < 0) 5991 6024 { -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibCommon/TComDataCU.h
r332 r355 277 277 inline Bool xAddVspMergeCand ( UChar ucVspMergePos, Int vspIdx, Bool* bVspMvZeroDone, UInt uiDepth, Bool* abCandIsInter, Int& iCount, 278 278 UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDisInfo ); 279 inline Void xInheritVspMode ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo ) ; 279 inline Void xInheritVspMode ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo, 280 #if QC_BVSP_CleanUP_D0191 281 UChar *puhInterDirNeighbours 282 #endif 283 ) ; 280 284 #endif 281 285 Void deriveRightBottomIdx ( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxRB ); -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibCommon/TComLoopFilter.cpp
r296 r355 428 428 //-- Set BS for Intra MB : BS = 4 or 3 429 429 if ( pcCUP->isIntra(uiPartP) || pcCUQ->isIntra(uiPartQ) 430 #if MERL_VSP_C0152 430 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 431 431 || pcCUP->getVSPIndex(uiPartP) || pcCUQ->getVSPIndex(uiPartQ) 432 432 #endif … … 438 438 //-- Set BS for not Intra MB : BS = 2 or 1 or 0 439 439 if ( !pcCUP->isIntra(uiPartP) && !pcCUQ->isIntra(uiPartQ) 440 #if MERL_VSP_C0152 440 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 441 441 && !pcCUP->getVSPIndex(uiPartP) && !pcCUQ->getVSPIndex(uiPartQ) 442 442 #endif … … 534 534 } // enf of "if( not Intra )" 535 535 536 #if MERL_VSP_C0152 536 #if MERL_VSP_C0152 & !QC_BVSP_CleanUP_D0191 537 537 if ( pcCUP->getVSPIndex(uiPartP) || pcCUQ->getVSPIndex(uiPartQ)) 538 538 { -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibCommon/TComPrediction.cpp
r332 r355 781 781 if (vspIdx != 0) 782 782 { 783 #if !QC_BVSP_CleanUP_D0191 783 784 if (iRefIdx >= 0) 784 785 { … … 786 787 } 787 788 assert (iRefIdx < 0); // assert (iRefIdx == NOT_VALID); 789 #endif 788 790 } 789 791 else -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibCommon/TypeDef.h
r348 r355 180 180 #if MERL_VSP_C0152 181 181 #define MERL_VSP_C0152_BugFix_ForNoDepthCase 1// MERL bugfix for test condition of no depth 182 #define QC_BVSP_CleanUP_D0191 1 182 183 /* 183 184 * Two macros are used to configure combinations of JCT3V-C0152 and JCT3V-C0131 -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp
r332 r355 386 386 } 387 387 pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, 0, uiDepth ); //Initialize the VSP, may change later in get InterMergeCandidates() 388 #if QC_BVSP_CleanUP_D0191 389 if(iVSPIdx != 0) 390 { 391 Int iIVCIdx = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==pcCU->getSlice()->getPOC() ? 0: pcCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 392 cMvFieldNeighbours[ 2*uiMergeIndex].setRefIdx(iIVCIdx); 393 } 394 #endif 388 395 } 389 396 #else -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibDecoder/TDecEntropy.cpp
r348 r355 330 330 } 331 331 pcCU->setVSPIndexSubParts( iVSPIdx, uiSubPartIdx, uiPartIdx, uiDepth ); //Initialize the VSP, may change later in get InterMergeCandidates() 332 #if QC_BVSP_CleanUP_D0191 333 if(iVSPIdx != 0) 334 { 335 Int iIVCIdx = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==pcCU->getSlice()->getPOC() ? 0: pcCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 336 cMvFieldNeighbours[ 2*uiMergeIndex].setRefIdx(iIVCIdx); 337 } 338 #endif 332 339 } 333 340 -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibEncoder/TEncCu.cpp
r332 r355 1920 1920 } 1921 1921 rpcTempCU->setVSPIndexSubParts( iVSPIdx, 0, 0, uhDepth ); 1922 #if QC_BVSP_CleanUP_D0191 1923 if(iVSPIdx != 0) 1924 { 1925 Int iIVCIdx = rpcTempCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==rpcTempCU->getSlice()->getPOC() ? 0: rpcTempCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 1926 cMvFieldNeighbours[ 2*uiMergeCand].setRefIdx(iIVCIdx); 1927 } 1928 #endif 1922 1929 } 1923 1930 #endif -
branches/HTM-6.2-dev1-Qualcomm/source/Lib/TLibEncoder/TEncSearch.cpp
r348 r355 3002 3002 } 3003 3003 pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3004 #if QC_BVSP_CleanUP_D0191 3005 if(iVSPIdx != 0) 3006 { 3007 Int iIVCIdx = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==pcCU->getSlice()->getPOC() ? 0: pcCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 3008 cMvFieldNeighbours[ 2*uiMergeIndex].setRefIdx(iIVCIdx); 3009 } 3010 #endif 3004 3011 } 3005 3012 #endif … … 3724 3731 } 3725 3732 pcCU->setVSPIndexSubParts( iVSPIdx, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3733 #if QC_BVSP_CleanUP_D0191 3734 if(iVSPIdx != 0) 3735 { 3736 Int iIVCIdx = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==pcCU->getSlice()->getPOC() ? 0: pcCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 3737 cMRGMvField[ 0].setRefIdx(iIVCIdx); 3738 } 3739 #endif 3726 3740 } 3727 3741 #endif
Note: See TracChangeset for help on using the changeset viewer.