Changeset 231 in 3DVCSoftware for branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder
- Timestamp:
- 26 Jan 2013, 19:36:53 (12 years ago)
- Location:
- branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncCu.cpp
r189 r231 1890 1890 1891 1891 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1892 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1893 1892 #if MERL_VSP_C0152 1893 Int iVSPIndexTrue[3] = {-1, -1, -1}; 1894 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue ); 1895 #else 1896 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1897 #endif 1894 1898 #if FAST_DECISION_FOR_MRG_RD_COST 1895 1899 Bool bestIsSkip = false; … … 1933 1937 rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to LCU level 1934 1938 rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to LCU level 1939 #if MERL_VSP_C0152 1940 { 1941 Int iVSPIdx = 0; 1942 Int numVSPIdx; 1943 numVSPIdx = 3; 1944 for (Int i = 0; i < numVSPIdx; i++) 1945 { 1946 if (iVSPIndexTrue[i] == uiMergeCand) 1947 { 1948 iVSPIdx = i+1; 1949 break; 1950 } 1951 } 1952 rpcTempCU->setVSPIndexSubParts( iVSPIdx, 0, 0, uhDepth ); 1953 } 1954 #endif 1935 1955 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level 1936 1956 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level … … 1952 1972 #endif 1953 1973 { 1974 #if MERL_VSP_C0152 1975 m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() ); 1976 #else 1954 1977 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 1978 #endif 1955 1979 // save pred adress 1956 1980 pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth]; … … 1962 1986 if( bestIsSkip) 1963 1987 { 1988 #if MERL_VSP_C0152 1989 m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() ); 1990 #else 1964 1991 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 1992 #endif 1965 1993 // save pred adress 1966 1994 pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth]; … … 2065 2093 2066 2094 rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth ); 2095 2067 2096 #if HHI_INTER_VIEW_RESIDUAL_PRED 2068 2097 rpcTempCU->setResPredAvailSubParts( bResPrdAvail, 0, 0, uhDepth ); … … 2084 2113 #if HHI_INTERVIEW_SKIP 2085 2114 #if LG_RESTRICTEDRESPRED_M24766 2086 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG 2115 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG); 2087 2116 #else 2088 2117 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG ); … … 2787 2816 assert( rpcTempCU->getInterDir( ui ) != 0 ); 2788 2817 assert( rpcTempCU->getPredictionMode( ui ) != MODE_NONE ); 2789 } 2818 #if MERL_VSP_C0152 2819 Int vspIdx = pcTextureCU->getVSPIndex( rpcTempCU->getZorderIdxInCU() + ui); 2820 rpcTempCU->setVSPIndex( ui , vspIdx); 2821 #endif 2822 } 2823 2790 2824 rpcTempCU->setPredModeSubParts( bSkipResidual ? MODE_SKIP : MODE_INTER, 0, uhDepth ); 2825 #if MERL_VSP_C0152 2826 m_pcPredSearch->motionCompensationBWVSP( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() ); 2827 #else 2791 2828 m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 2792 2829 #endif 2793 2830 // get Original YUV data from picture 2794 2831 m_ppcOrigYuv[uhDepth]->copyFromPicYuv( rpcBestCU->getPic()->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() ); -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncCu.h
r56 r231 81 81 TComYuv** m_ppcResPredTmp; ///< Temporary residual prediction for each depth 82 82 #endif 83 83 84 84 // Data : encoder control 85 85 Bool m_bEncodeDQP; … … 121 121 /// destroy internal buffers 122 122 Void destroy (); 123 123 124 124 /// CU analysis function 125 125 Void compressCU ( TComDataCU*& rpcCU ); -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncEntropy.cpp
r210 r231 1347 1347 uiAbsPartIdx = 0; 1348 1348 } 1349 1349 1350 1350 #if RWTH_SDC_DLT_B0036 1351 1351 if( pcCU->getSDCFlag(uiAbsPartIdx) ) … … 1355 1355 } 1356 1356 #endif 1357 1357 1358 1358 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 1359 1359 -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncGOP.cpp
r210 r231 254 254 pcSlice->setSliceIdx(0); 255 255 pcSlice->setViewId( m_pcEncTop->getViewId() ); 256 pcSlice->setIsDepth( m_pcEncTop->getIsDepth() ); 256 pcSlice->setIsDepth( m_pcEncTop->getIsDepth() ); 257 257 258 258 m_pcEncTop->getSPS()->setDisInter4x4(m_pcEncTop->getDisInter4x4()); … … 340 340 pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDV) ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) ); 341 341 #else 342 343 Bool bNalRAP = ((getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_CRA) || (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDR)) && (pcSlice->getSPS()->getViewId()) ? 1: 0;344 pcSlice->setNumRefIdx( REF_PIC_LIST_0, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );345 pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) ); 346 #endif 347 TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification();348 refPicListModification->setRefPicListModificationFlagL0( false );342 Bool bNalRAP = ((getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_CRA) || (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDR)) && (pcSlice->getSPS()->getViewId()) ? 1: 0; 343 pcSlice->setNumRefIdx( REF_PIC_LIST_0, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) ); 344 pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) ); 345 #endif 346 347 TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification(); 348 refPicListModification->setRefPicListModificationFlagL0( false ); 349 349 #if !H0137_0138_LIST_MODIFICATION 350 350 refPicListModification->setNumberOfRefPicListModificationsL0(0); -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSbac.cpp
r210 r231 1277 1277 xWriteUnaryMaxSymbol( iRefFrame - 1, pCtx + 1, 1, pcCU->getSlice()->getNumRefIdx( REF_PIC_LIST_C )-2 ); 1278 1278 } 1279 #if MERL_VSP_C0152 1280 else if (iRefFrame < 0) // NOT_VALID 1281 { 1282 assert(0); 1283 } 1284 #endif 1279 1285 } 1280 1286 else … … 1288 1294 xWriteUnaryMaxSymbol( iRefFrame - 1, pCtx + 1, 1, pcCU->getSlice()->getNumRefIdx( eRefList )-2 ); 1289 1295 } 1296 #if MERL_VSP_C0152 1297 else if (iRefFrame < 0) // NOT_VALID 1298 { 1299 assert(0); 1300 } 1301 #endif 1290 1302 } 1291 1303 return; -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSearch.cpp
r210 r231 696 696 UInt TEncSearch::xPatternRefinement( TComPattern* pcPatternKey, 697 697 TComMv baseRefMv, 698 Int iFrac, TComMv& rcMvFrac ) 698 Int iFrac, TComMv& rcMvFrac 699 ) 699 700 { 700 701 UInt uiDist; … … 1688 1689 // reconstruct residual based on mask + DC residuals 1689 1690 Pel apDCResiValues[2]; 1690 Pel apDCRecoValues[2];1691 //Pel apDCRecoValues[2]; 1691 1692 for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ ) 1692 1693 { … … 1695 1696 Pel pRecoValue = GetIdx2DepthValue( pPredIdx + pResiIdx ); 1696 1697 1697 apDCRecoValues[uiSegment] = pRecoValue;1698 //apDCRecoValues[uiSegment] = pRecoValue; 1698 1699 apDCResiValues[uiSegment] = pRecoValue - apDCPredValues[uiSegment]; 1699 1700 } … … 2897 2898 Void TEncSearch::xGetInterPredictionError( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPartIdx, UInt& ruiErr, Bool bHadamard ) 2898 2899 { 2900 #if !MERL_VSP_C0152 2899 2901 motionCompensation( pcCU, &m_tmpYuvPred, REF_PIC_LIST_X, iPartIdx ); 2900 2902 #endif 2901 2903 UInt uiAbsPartIdx = 0; 2902 2904 Int iWidth = 0; 2903 2905 Int iHeight = 0; 2904 2906 pcCU->getPartIndexAndSize( iPartIdx, uiAbsPartIdx, iWidth, iHeight ); 2905 2907 #if MERL_VSP_C0152 2908 motionCompensationBWVSP( pcCU, &m_tmpYuvPred, pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx ); 2909 #endif 2906 2910 DistParam cDistParam; 2907 2911 … … 2943 2947 #else 2944 2948 #if LG_RESTRICTEDRESPRED_M24766 2949 #if MERL_VSP_C0152 2950 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, Int* iVSPIndexTrue ) 2951 #else 2945 2952 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) 2953 #endif 2946 2954 #else 2947 2955 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) … … 2988 2996 } 2989 2997 #else 2998 #if MERL_VSP_C0152 2999 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue ); 3000 #else 2990 3001 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 2991 3002 #endif 3003 #endif 3004 2992 3005 2993 3006 #if HHI_INTER_VIEW_MOTION_PRED … … 3009 3022 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3010 3023 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3024 #if MERL_VSP_C0152 3025 { 3026 Int iVSPIdx = 0; 3027 Int numVSPIdx; 3028 numVSPIdx = 3; 3029 for (Int i = 0; i < numVSPIdx; i++) 3030 { 3031 if (iVSPIndexTrue[i] == uiMergeCand) 3032 { 3033 iVSPIdx = i+1; 3034 break; 3035 } 3036 } 3037 pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3038 } 3039 #endif 3011 3040 #if LG_RESTRICTEDRESPRED_M24766 3012 3041 Int iAddResiShift; … … 3081 3110 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* rpcResiPredYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG ) 3082 3111 #else 3083 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG 3112 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG) 3084 3113 #endif 3085 3114 #else … … 3185 3214 for (Int iNumRef=0; iNumRef < MAX_NUM_REF; iNumRef++) uiCostTempL0[iNumRef] = MAX_UINT; 3186 3215 UInt uiBitsTempL0[MAX_NUM_REF]; 3216 3187 3217 #if LG_RESTRICTEDRESPRED_M24766 3188 3218 Int iPUResiPredShift[4] = {0, 0, 0, 0}; … … 3191 3221 3192 3222 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight ); 3193 3223 #if MERL_VSP_C0152 3224 //reset the VSP flag to be 0 3225 pcCU->setVSPIndexSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 3226 #endif 3194 3227 #if AMP_MRG 3195 3228 Bool bTestNormalMC = true; … … 3206 3239 Bool bLastResiFlag = false; 3207 3240 #endif 3241 3208 3242 // Uni-directional prediction 3209 3243 for ( Int iRefList = 0; iRefList < iNumPredDir; iRefList++ ) … … 3545 3579 xCheckBestMVP(pcCU, eRefPicList, cMvTemp[iRefList][iRefIdxTemp], cMvPredBi[iRefList][iRefIdxTemp], aaiMvpIdxBi[iRefList][iRefIdxTemp], uiBitsTemp, uiCostTemp); 3546 3580 } 3547 3581 3548 3582 if ( uiCostTemp < uiCostBi ) 3549 3583 { … … 3793 3827 TComMvField cMRGMvField[2]; 3794 3828 UInt uiMRGIndex = 0; 3795 3829 #if MERL_VSP_C0152 3830 Int iVSPIndexTrue[3] = {-1, -1, -1}; 3831 #endif 3796 3832 UInt uiMEInterDir = 0; 3797 3833 TComMvField cMEMvField[2]; … … 3844 3880 #else 3845 3881 #if LG_RESTRICTEDRESPRED_M24766 3882 #if MERL_VSP_C0152 3883 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, iVSPIndexTrue ); 3884 #else 3846 3885 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); 3886 #endif 3847 3887 #else 3848 3888 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); … … 3854 3894 pcCU->setMergeFlagSubParts ( true, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3855 3895 pcCU->setMergeIndexSubParts( uiMRGIndex, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3896 #if MERL_VSP_C0152 3897 { 3898 Int iVSPIdx = 0; 3899 Int numVSPIdx; 3900 numVSPIdx = 3; 3901 for (Int i = 0; i < numVSPIdx; i++) 3902 { 3903 if (iVSPIndexTrue[i] == uiMRGIndex) 3904 { 3905 iVSPIdx = i+1; 3906 break; 3907 } 3908 } 3909 pcCU->setVSPIndexSubParts( iVSPIdx, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3910 } 3911 #endif 3856 3912 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3857 3913 { … … 3873 3929 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3874 3930 pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3931 #if MERL_VSP_C0152 3932 pcCU->setVSPIndexSubParts ( 0 , uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3933 #endif 3875 3934 { 3876 3935 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMEMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); … … 3881 3940 3882 3941 // MC 3942 #if MERL_VSP_C0152 3943 motionCompensationBWVSP ( pcCU, rpcPredYuv, pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx); 3944 #else 3883 3945 motionCompensation ( pcCU, rpcPredYuv, REF_PIC_LIST_X, iPartIdx ); 3884 3946 #endif 3885 3947 } // end of for ( Int iPartIdx = 0; iPartIdx < iNumPart; iPartIdx++ ) 3886 3948 … … 4338 4400 m_pcRdCost->setMultiviewReg( 0 ); 4339 4401 #endif 4402 4340 4403 setWpScalingDistParam( pcCU, iRefIdxPred, eRefPicList ); 4341 4404 // Do integer search … … 4351 4414 4352 4415 m_pcRdCost->getMotionCost( 1, 0 ); 4416 4353 4417 #if HHI_FULL_PEL_DEPTH_MAP_MV_ACC 4354 4418 if( ! pcCU->getSlice()->getIsDepth() ) … … 4378 4442 ruiCost += m_pcRdCost->getCost( uiMvBits ); 4379 4443 #endif 4380 4444 4381 4445 ruiBits += uiMvBits; 4382 4446 ruiCost = (UInt)( floor( fWeight * ( (Double)ruiCost - (Double)m_pcRdCost->getCost( uiMvBits ) ) ) + (Double)m_pcRdCost->getCost( ruiBits ) ); … … 4723 4787 rcMvQter = *pcMvInt; rcMvQter <<= 1; // for mv-cost 4724 4788 rcMvQter += rcMvHalf; rcMvQter <<= 1; 4725 ruiCost = xPatternRefinement( pcPatternKey, baseRefMv, 1, rcMvQter 4789 ruiCost = xPatternRefinement( pcPatternKey, baseRefMv, 1, rcMvQter); 4726 4790 } 4727 4791 … … 4758 4822 #endif 4759 4823 // No residual coding : SKIP mode 4760 if ( ePredMode == MODE_SKIP && bSkipRes)4824 if ( (ePredMode == MODE_SKIP && bSkipRes) ) 4761 4825 { 4762 4826 rpcYuvResi->clear(); -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSearch.h
r210 r231 152 152 UInt xPatternRefinement( TComPattern* pcPatternKey, 153 153 TComMv baseRefMv, 154 Int iFrac, TComMv& rcMvFrac 154 Int iFrac, TComMv& rcMvFrac); 155 155 156 156 typedef struct … … 513 513 Int& numValidMergeCand 514 514 #endif 515 #if MERL_VSP_C0152 516 , Int* iVSPIndexTrue 517 #endif 515 518 ); 516 519 // ------------------------------------------------------------------------------------------------------------------- … … 579 582 TComMv& rcMvQter, 580 583 UInt& ruiCost 581 ,Bool biPred 582 ); 584 ,Bool biPred); 583 585 584 586 Void xExtDIFUpSamplingH( TComPattern* pcPattern, Bool biPred ); -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSlice.cpp
r210 r231 811 811 m_pcBufferLowLatSbacCoders[ui].load(m_pppcRDSbacCoder[0][CI_CURR_BEST]); //init. state 812 812 } 813 814 #if MERL_VSP_C0152 815 // Send Depth/Texture pointers to slice level 816 pcSlice->setBWVSPLUTParam(m_aiShiftLUT, m_iShiftPrec); 817 pcSlice->setRefPicBaseTxt(m_pPicBaseTxt); 818 pcSlice->setRefPicBaseDepth(m_pPicBaseDepth); 819 #endif 820 813 821 UInt uiWidthInLCUs = rpcPic->getPicSym()->getFrameWidthInCU(); 814 822 //UInt uiHeightInLCUs = rpcPic->getPicSym()->getFrameHeightInCU(); … … 1138 1146 1139 1147 UInt uiEncCUOrder; 1148 1140 1149 uiCUAddr = rpcPic->getPicSym()->getCUOrderMap( uiStartCUAddr /rpcPic->getNumPartInCU()); /*for tiles, uiStartCUAddr is NOT the real raster scan address, it is actually 1141 1150 an encoding order index, so we need to convert the index (uiStartCUAddr) -
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSlice.h
r210 r231 101 101 102 102 UInt m_uiSliceIdx; 103 104 #if MERL_VSP_C0152 105 // Data temporarily stored, will be sent to TComSlice level where the data will be actually used 106 TComPic* m_pPicBaseTxt; 107 TComPic* m_pPicBaseDepth; 108 Int* m_aiShiftLUT; 109 Int m_iShiftPrec; 110 #endif 111 103 112 public: 104 113 TEncSlice(); … … 128 137 UInt getSliceIdx() { return m_uiSliceIdx; } 129 138 Void setSliceIdx(UInt i) { m_uiSliceIdx = i; } 139 140 #if MERL_VSP_C0152 141 Void setBWVSPLUTParam ( Int *pShiftLUT, Int iLoG2LUTPrec ) { m_aiShiftLUT = pShiftLUT; m_iShiftPrec = 2-iLoG2LUTPrec; } 142 Void setRefPicBaseTxt ( TComPic*pPicTxt ) { m_pPicBaseTxt = pPicTxt; } 143 Void setRefPicBaseDepth ( TComPic*pPicDepth ) { m_pPicBaseDepth = pPicDepth;} 144 Void getBWVSPLUTParam ( Int*& pShiftLUT, Int& iShiftPrec ) { pShiftLUT = m_aiShiftLUT; iShiftPrec = m_iShiftPrec; } 145 TComPic* getRefPicBaseTxt () { return m_pPicBaseTxt; } 146 TComPic* getRefPicBaseDepth () { return m_pPicBaseDepth; } 147 #endif 130 148 }; 131 149
Note: See TracChangeset for help on using the changeset viewer.