Changeset 244 in 3DVCSoftware for branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder
- Timestamp:
- 31 Jan 2013, 03:48:51 (12 years ago)
- Location:
- branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder/TEncCu.cpp
r189 r244 636 636 { 637 637 #if HHI_INTER_VIEW_RESIDUAL_PRED 638 #if MTK_MDIVRP_C0138 639 Bool bResPredAvailable = false; 640 UInt uiResPrdId = 0; 641 #else 638 642 // check availability of residual prediction 639 643 Bool bResPredAvailable = false; … … 651 655 652 656 for( UInt uiResPrdId = 0; uiResPrdId < ( bResPredAvailable ? 2 : 1 ); uiResPrdId++ ) 657 #endif 653 658 { 654 659 Bool bResPredFlag = ( uiResPrdId > 0 ); … … 764 769 { 765 770 #if HHI_INTER_VIEW_RESIDUAL_PRED 771 #if MTK_MDIVRP_C0138 772 Bool bResPredAvailable = false; 773 UInt uiResPrdId = 0; 774 #else 766 775 // check availability of residual prediction 767 776 Bool bResPredAvailable = false; … … 779 788 780 789 for( UInt uiResPrdId = 0; uiResPrdId < ( bResPredAvailable ? 2 : 1 ); uiResPrdId++ ) 790 #endif 781 791 { 782 792 Bool bResPredFlag = ( uiResPrdId > 0 ); … … 1789 1799 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1790 1800 #endif 1791 #if HHI_INTER_VIEW_RESIDUAL_PRED 1801 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 1792 1802 m_pcEntropyCoder->encodeResPredFlag( pcCU, uiAbsPartIdx, 0 ); 1793 1803 #endif … … 1820 1830 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1821 1831 #endif 1822 #if HHI_INTER_VIEW_RESIDUAL_PRED 1832 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 1823 1833 if( !pcCU->isIntra( uiAbsPartIdx ) ) 1824 1834 { … … 1860 1870 Int numValidMergeCand = 0; 1861 1871 1862 #if HHI_INTER_VIEW_RESIDUAL_PRED 1872 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 1863 1873 Bool bResPrdAvail = rpcTempCU->getResPredAvail( 0 ); 1864 1874 Bool bResPrdFlag = rpcTempCU->getResPredFlag ( 0 ); … … 1891 1901 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1892 1902 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1903 1904 #if MTK_MDIVRP_C0138 1905 Bool bResPredAvail = rpcTempCU->getResPredAvail(0); 1906 #endif 1893 1907 1894 1908 #if FAST_DECISION_FOR_MRG_RD_COST … … 1938 1952 1939 1953 #if HHI_INTER_VIEW_RESIDUAL_PRED 1954 #if MTK_MDIVRP_C0138 1955 rpcTempCU->setResPredAvailSubParts(bResPredAvail, 0, 0, uhDepth); 1956 #else 1940 1957 rpcTempCU->setResPredAvailSubParts( bResPrdAvail, 0, 0, uhDepth ); 1941 1958 rpcTempCU->setResPredFlagSubParts ( bResPrdFlag, 0, 0, uhDepth ); 1959 #endif 1942 1960 #endif 1943 1961 #if LGE_ILLUCOMP_B0045 … … 1953 1971 { 1954 1972 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 1973 #if MTK_MDIVRP_C0138 1974 if (uiMergeCand == 0 && rpcTempCU->getResPredAvail(0)) 1975 { 1976 m_pcPredSearch->residualPrediction(rpcTempCU, m_ppcPredYuvTemp[uhDepth], m_ppcResPredTmp [uhDepth]); 1977 } 1978 #endif 1955 1979 // save pred adress 1956 1980 pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth]; … … 1963 1987 { 1964 1988 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 1989 #if MTK_MDIVRP_C0138 1990 if (uiMergeCand == 0 && rpcTempCU->getResPredAvail(0)) 1991 { 1992 m_pcPredSearch->residualPrediction(rpcTempCU, m_ppcPredYuvTemp[uhDepth], m_ppcResPredTmp [uhDepth]); 1993 } 1994 #endif 1965 1995 // save pred adress 1966 1996 pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth]; … … 2083 2113 rpcTempCU->setMergeAMP (true); 2084 2114 #if HHI_INTERVIEW_SKIP 2085 #if LG_RESTRICTEDRESPRED_M24766 2115 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 2086 2116 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG ); 2087 2117 #else -
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder/TEncEntropy.cpp
r210 r244 489 489 } 490 490 491 #if HHI_INTER_VIEW_RESIDUAL_PRED 491 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 492 492 Void 493 493 TEncEntropy::encodeResPredFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD ) -
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder/TEncEntropy.h
r210 r244 270 270 Void encodeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx ); 271 271 Void encodeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD = false ); 272 #if HHI_INTER_VIEW_RESIDUAL_PRED 272 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 273 273 Void encodeResPredFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD = false ); 274 274 #endif -
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder/TEncSearch.cpp
r210 r244 2942 2942 #endif 2943 2943 #else 2944 #if LG_RESTRICTEDRESPRED_M24766 2944 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 2945 2945 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) 2946 2946 #else … … 2994 2994 const int maxNumMergeCand = MRG_MAX_NUM_CANDS_SIGNALED + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 ); 2995 2995 #endif 2996 #if LG_RESTRICTEDRESPRED_M24766 2996 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 2997 2997 Int iPUResiPredShift[4]; 2998 2998 Int iLastAddResiShift = -1000; … … 3009 3009 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3010 3010 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3011 #if LG_RESTRICTEDRESPRED_M24766 3011 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3012 3012 Int iAddResiShift; 3013 3013 UInt uiPartAddr; … … 3059 3059 } 3060 3060 } 3061 #if LG_RESTRICTEDRESPRED_M24766 3061 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3062 3062 if( pcCU->getResPredFlag( 0 ) && iLastAddResiShift >= 0) 3063 3063 { … … 3078 3078 */ 3079 3079 #if AMP_MRG 3080 #if LG_RESTRICTEDRESPRED_M24766 3080 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3081 3081 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* rpcResiPredYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG ) 3082 3082 #else … … 3185 3185 for (Int iNumRef=0; iNumRef < MAX_NUM_REF; iNumRef++) uiCostTempL0[iNumRef] = MAX_UINT; 3186 3186 UInt uiBitsTempL0[MAX_NUM_REF]; 3187 #if LG_RESTRICTEDRESPRED_M24766 3187 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3188 3188 Int iPUResiPredShift[4] = {0, 0, 0, 0}; 3189 3189 #endif … … 3203 3203 { 3204 3204 #endif 3205 #if LG_RESTRICTEDRESPRED_M24766 3205 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3206 3206 Bool bLastResiFlag = false; 3207 3207 #endif … … 3213 3213 for ( Int iRefIdxTemp = 0; iRefIdxTemp < pcCU->getSlice()->getNumRefIdx(eRefPicList); iRefIdxTemp++ ) 3214 3214 { 3215 #if LG_RESTRICTEDRESPRED_M24766 3215 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3216 3216 if( pcCU->getResPredFlag( 0 )) 3217 3217 { … … 3393 3393 } 3394 3394 } 3395 #if LG_RESTRICTEDRESPRED_M24766 3395 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3396 3396 if( pcCU->getResPredFlag( 0 ) && bLastResiFlag) 3397 3397 { // subtract residual prediction from original in motion search … … 3402 3402 if ( pcCU->getSlice()->isInterB() ) 3403 3403 { 3404 #if LG_RESTRICTEDRESPRED_M24766 3404 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3405 3405 Int iLastAddResiShift = -1000; 3406 3406 #endif … … 3507 3507 uiBitsTemp += m_auiMVPIdxCost[aaiMvpIdxBi[iRefList][iRefIdxTemp]][AMVP_MAX_NUM_CANDS]; 3508 3508 #endif 3509 #if LG_RESTRICTEDRESPRED_M24766 3509 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3510 3510 Int iAddResiShift = -1, iPredFrom = 0; 3511 3511 Int iBestRefIdx = pcCU->getCUMvField(eRefPicList == REF_PIC_LIST_0 ? REF_PIC_LIST_1 : REF_PIC_LIST_0)->getRefIdx(uiPartAddr); … … 3592 3592 } 3593 3593 } // for loop-iter 3594 #if LG_RESTRICTEDRESPRED_M24766 3594 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3595 3595 if( pcCU->getResPredFlag( 0 ) && iLastAddResiShift >= 0) 3596 3596 { … … 3805 3805 if (bTestNormalMC) 3806 3806 { 3807 #if LG_RESTRICTEDRESPRED_M24766 3807 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3808 3808 Int iAddResiShift = pcCU->getResiPredMode(uiPartAddr); 3809 3809 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = \ … … 3816 3816 xGetInterPredictionError( pcCU, pcOrgYuv, iPartIdx, uiMEError, m_pcEncCfg->getUseHADME() ); 3817 3817 uiMECost = uiMEError + m_pcRdCost->getCost( uiMEBits ); 3818 #if LG_RESTRICTEDRESPRED_M24766 3818 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3819 3819 if(pcCU->getResPredFlag(0) && iAddResiShift >= 0) 3820 3820 { … … 3843 3843 #endif 3844 3844 #else 3845 #if LG_RESTRICTEDRESPRED_M24766 3845 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 3846 3846 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); 3847 3847 #else … … 4754 4754 UInt uiWidth = pcCU->getWidth ( 0 ); 4755 4755 UInt uiHeight = pcCU->getHeight( 0 ); 4756 #if LG_RESTRICTEDRESPRED_M24766 4756 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 4757 4757 Int iPUResiPredShift[4]; 4758 4758 #endif … … 4764 4764 pcYuvPred->copyToPartYuv( rpcYuvRec, 0 ); 4765 4765 4766 #if MTK_MDIVRP_C0138 4767 if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0)) 4768 { 4769 rpcYuvRec->clip( uiWidth, uiHeight ); 4770 } 4771 #else 4766 4772 #if HHI_INTER_VIEW_RESIDUAL_PRED 4767 4773 // add residual prediction … … 4776 4782 rpcYuvRec->clip( uiWidth, uiHeight ); 4777 4783 } 4784 #endif 4778 4785 #endif 4779 4786 … … 4821 4828 m_pcEntropyCoder->encodeICFlag(pcCU, 0, true); 4822 4829 #endif 4823 #if HHI_INTER_VIEW_RESIDUAL_PRED 4830 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 4824 4831 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true ); 4825 4832 #endif … … 4899 4906 else 4900 4907 { 4901 #if LG_RESTRICTEDRESPRED_M24766 4908 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 4902 4909 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = 0; 4903 4910 rpcYuvResi->subtract(iPUResiPredShift, pcCU->getPartitionSize(0), pcYuvOrg, pcYuvPred, 0, uiWidth ); … … 4905 4912 rpcYuvResi->subtract( pcYuvOrg, pcYuvPred, 0, uiWidth ); 4906 4913 #endif 4907 #if HHI_INTER_VIEW_RESIDUAL_PRED 4914 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 4908 4915 // subtract residual prediction 4909 4916 if( pcCU->getResPredFlag( 0 ) ) … … 5127 5134 #endif 5128 5135 } 5129 #if HHI_INTER_VIEW_RESIDUAL_PRED 5136 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 5130 5137 // add residual prediction 5131 5138 if( pcCU->getResPredFlag( 0 ) ) … … 6204 6211 m_pcEntropyCoder->encodeICFlag(pcCU, 0, true); 6205 6212 #endif 6206 #if HHI_INTER_VIEW_RESIDUAL_PRED 6213 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 6207 6214 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true ); 6208 6215 #endif … … 6227 6234 m_pcEntropyCoder->encodeICFlag(pcCU, 0, true); 6228 6235 #endif 6229 #if HHI_INTER_VIEW_RESIDUAL_PRED 6236 #if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138 6230 6237 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true ); 6231 6238 #endif -
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibEncoder/TEncSearch.h
r210 r244 196 196 Void predInterSearch ( TComDataCU* pcCU, 197 197 TComYuv* pcOrgYuv, 198 #if LG_RESTRICTEDRESPRED_M24766 198 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 199 199 TComYuv* rpcResiPredYuv, 200 200 #endif … … 500 500 Void xMergeEstimation ( TComDataCU* pcCU, 501 501 TComYuv* pcYuvOrg, 502 #if LG_RESTRICTEDRESPRED_M24766 502 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 503 503 TComYuv* rpcResiPredYuv, 504 504 #endif
Note: See TracChangeset for help on using the changeset viewer.