Changeset 412 in 3DVCSoftware for branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder
- Timestamp:
- 16 May 2013, 16:05:31 (12 years ago)
- Location:
- branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder/TEncCu.cpp
r399 r412 623 623 rpcTempCU->setPartSizeSubParts( ePartTemp, 0, uiDepth ); 624 624 } 625 625 626 if(DvInfo.bDV==false) 626 627 { … … 1714 1715 UInt uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ]; 1715 1716 UInt uiBPelY = uiTPelY + (g_uiMaxCUHeight>>uiDepth) - 1; 1716 1717 1717 1718 if( getCheckBurstIPCMFlag() ) 1718 1719 { … … 1826 1827 { 1827 1828 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 ); 1829 1828 1830 #if LGE_ILLUCOMP_B0045 1829 1831 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx … … 1844 1846 #endif 1845 1847 m_pcEntropyCoder->encodePredMode( pcCU, uiAbsPartIdx ); 1846 1848 1847 1849 m_pcEntropyCoder->encodePartSize( pcCU, uiAbsPartIdx, uiDepth ); 1848 1850 1849 1851 if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 1850 1852 { … … 1861 1863 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1862 1864 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1865 1863 1866 #if LGE_ILLUCOMP_B0045 1864 1867 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx … … 1934 1937 #if MERL_VSP_C0152 1935 1938 Int iVSPIndexTrue[3] = {-1, -1, -1}; 1939 #if MERL_VSP_NBDV_RefVId_Fix_D0166 1940 Int iVSPDirTrue[3] = {-1, -1, -1}; 1941 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, iVSPDirTrue ); 1942 #else 1936 1943 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue ); 1944 #endif 1937 1945 #else 1938 1946 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); … … 2003 2011 } 2004 2012 rpcTempCU->setVSPIndexSubParts( iVSPIdx, 0, 0, uhDepth ); 2013 #if MERL_VSP_NBDV_RefVId_Fix_D0166 2014 rpcTempCU->setVSPDirSubParts( iVSPDirTrue[iVSPIdx-1], 0, 0, uhDepth ); // interprets depth relative to LCU level 2015 #endif 2005 2016 } 2006 2017 #endif … … 2938 2949 assert( rpcTempCU->getPredictionMode( ui ) != MODE_NONE ); 2939 2950 #if MERL_VSP_C0152 2940 Int vspIdx = pcTextureCU->getVSPIndex( rpcTempCU->getZorderIdxInCU() + ui );2951 Int vspIdx = pcTextureCU->getVSPIndex( rpcTempCU->getZorderIdxInCU() + ui ); 2941 2952 rpcTempCU->setVSPIndex( ui , vspIdx); 2953 #if MERL_VSP_NBDV_RefVId_Fix_D0166 2954 Int vspDir = pcTextureCU->getVSPDir ( rpcTempCU->getZorderIdxInCU() + ui ); 2955 rpcTempCU->setVSPDir( ui, vspDir); 2956 #endif 2942 2957 #endif 2943 2958 } -
branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder/TEncSearch.cpp
r373 r412 2921 2921 , Int* iVSPIndexTrue 2922 2922 #endif 2923 #if MERL_VSP_NBDV_RefVId_Fix_D0166 2924 , Int* iVSPDirTrue 2925 #endif 2923 2926 ) 2924 2927 { … … 2962 2965 } 2963 2966 #else 2967 2964 2968 #if MERL_VSP_C0152 2965 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue ); 2969 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue 2970 #if MERL_VSP_NBDV_RefVId_Fix_D0166 2971 , iVSPDirTrue 2972 #endif 2973 ); 2974 2966 2975 #else 2967 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 2968 #endif 2969 #endif 2970 2976 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand 2977 #if MERL_VSP_NBDV_RefVId_Fix_D0166 2978 , iVSPDirTrue 2979 #endif 2980 ); 2981 #endif 2982 2983 #endif 2971 2984 2972 2985 #if H3D_IVMP … … 2998 3011 } 2999 3012 pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3013 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3014 pcCU->setVSPDirSubParts( iVSPDirTrue[iVSPIdx-1], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3015 #endif 3000 3016 } 3001 3017 #endif … … 3138 3154 //reset the VSP flag to be 0 3139 3155 pcCU->setVSPIndexSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 3156 #endif 3157 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3158 pcCU->setVSPDirSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 3140 3159 #endif 3141 3160 #if AMP_MRG … … 3377 3396 iNumIter = 1; 3378 3397 } 3379 3398 3380 3399 for ( Int iIter = 0; iIter < iNumIter; iIter++ ) 3381 3400 { … … 3658 3677 #if MERL_VSP_C0152 3659 3678 Int iVSPIndexTrue[3] = {-1, -1, -1}; 3679 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3680 Int iVSPDirTrue[3] = {-1, -1, -1}; 3681 #endif 3660 3682 #endif 3661 3683 UInt uiMEInterDir = 0; … … 3688 3710 3689 3711 3690 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost3712 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost 3691 3713 #if CU_BASED_MRG_CAND_LIST 3692 3714 , cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, … … 3694 3716 #if MERL_VSP_C0152 3695 3717 , iVSPIndexTrue 3718 #endif 3719 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3720 , iVSPDirTrue 3696 3721 #endif 3697 3722 ); … … 3716 3741 } 3717 3742 pcCU->setVSPIndexSubParts( iVSPIdx, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3743 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3744 pcCU->setVSPDirSubParts( iVSPDirTrue[iVSPIdx-1], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3745 #endif 3718 3746 } 3719 3747 #endif … … 3738 3766 pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3739 3767 #if MERL_VSP_C0152 3740 pcCU->setVSPIndexSubParts ( 0 , uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3768 pcCU->setVSPIndexSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3769 #endif 3770 #if MERL_VSP_NBDV_RefVId_Fix_D0166 3771 pcCU->setVSPDirSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3741 3772 #endif 3742 3773 { -
branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder/TEncSearch.h
r332 r412 511 511 , Int* iVSPIndexTrue 512 512 #endif 513 #if MERL_VSP_NBDV_RefVId_Fix_D0166 514 , Int* iVSPDirTrue 515 #endif 513 516 ); 514 517 // ------------------------------------------------------------------------------------------------------------------- -
branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder/TEncSlice.cpp
r332 r412 60 60 m_pcBufferLowLatSbacCoders = NULL; 61 61 m_pcBufferLowLatBinCoderCABACs = NULL; 62 #if MERL_VSP_NBDV_RefVId_Fix_D0166 63 for(Int iNumCount = 0; iNumCount < MAX_VIEW_NUM; iNumCount++) 64 m_pcListDepthPic[iNumCount] =NULL; 65 #endif 62 66 #if FCO_DVP_REFINE_C0132_C0170 63 67 m_pPicBaseTxt = NULL; … … 148 152 m_pdRdPicQp = (Double*)xMalloc( Double, m_pcCfg->getDeltaQpRD() * 2 + 1 ); 149 153 m_piRdPicQp = (Int* )xMalloc( Int, m_pcCfg->getDeltaQpRD() * 2 + 1 ); 154 155 #if MERL_VSP_NBDV_RefVId_Fix_D0166 156 for(Int iNumCount = 0; iNumCount < MAX_VIEW_NUM; iNumCount++) 157 m_pcListDepthPic[iNumCount] =NULL; 158 #endif 150 159 } 151 160 … … 819 828 #if MERL_VSP_C0152 820 829 // Send Depth/Texture pointers to slice level 830 #if !MERL_VSP_NBDV_RefVId_Fix_D0166 821 831 pcSlice->setBWVSPLUTParam(m_aiShiftLUT, m_iShiftPrec); 832 #endif 822 833 pcSlice->setRefPicBaseTxt(m_pPicBaseTxt); 823 834 pcSlice->setRefPicBaseDepth(m_pPicBaseDepth); 835 #if MERL_VSP_NBDV_RefVId_Fix_D0166 836 for (Int refviewId=0; refviewId < pcSlice->getViewId(); refviewId++) 837 { 838 assert( m_pcListDepthPic[refviewId] ); 839 pcSlice->setListDepthPic(m_pcListDepthPic[refviewId], refviewId); 840 pcSlice->setBWVSPLUTParam(m_aiShiftLUT[refviewId], m_iShiftPrec, refviewId); 841 } 842 #endif 824 843 #endif 825 844 -
branches/HTM-6.2-dev2-MERL/source/Lib/TLibEncoder/TEncSlice.h
r296 r412 106 106 TComPic* m_pPicBaseTxt; 107 107 TComPic* m_pPicBaseDepth; 108 #if MERL_VSP_NBDV_RefVId_Fix_D0166 109 Int* m_aiShiftLUT[2]; ///< For reference views from LIST0 and LIST1 110 #else 108 111 Int* m_aiShiftLUT; 112 #endif 109 113 Int m_iShiftPrec; 110 114 #endif 111 115 #if MERL_VSP_NBDV_RefVId_Fix_D0166 116 TComList<TComPic*>* m_pcListDepthPic[MAX_VIEW_NUM]; ///< For three views in total, indexed as viewId = 0, 1, 2 117 #endif 112 118 public: 113 119 TEncSlice(); … … 143 149 144 150 #if MERL_VSP_C0152 145 Void setBWVSPLUTParam ( Int *pShiftLUT, Int iLoG2LUTPrec ) { m_aiShiftLUT = pShiftLUT; m_iShiftPrec = 2-iLoG2LUTPrec; } 151 #if MERL_VSP_NBDV_RefVId_Fix_D0166 152 Void setBWVSPLUTParam ( Int *pShiftLUT, Int iLoG2LUTPrec, Int iNeighborViewId ) { m_aiShiftLUT[iNeighborViewId] = pShiftLUT; m_iShiftPrec = 2-iLoG2LUTPrec; } 153 #else 154 Void setBWVSPLUTParam ( Int *pShiftLUT, Int iLoG2LUTPrec ) { m_aiShiftLUT = pShiftLUT; m_iShiftPrec = 2-iLoG2LUTPrec; } 155 #endif 146 156 Void setRefPicBaseTxt ( TComPic*pPicTxt ) { m_pPicBaseTxt = pPicTxt; } 147 157 Void setRefPicBaseDepth ( TComPic*pPicDepth ) { m_pPicBaseDepth = pPicDepth;} 158 #if MERL_VSP_NBDV_RefVId_Fix_D0166 159 Void getBWVSPLUTParam ( Int*& pShiftLUT, Int& iShiftPrec, Int iNeighborViewId ) { pShiftLUT = m_aiShiftLUT[iNeighborViewId]; iShiftPrec = m_iShiftPrec; } 160 #else 148 161 Void getBWVSPLUTParam ( Int*& pShiftLUT, Int& iShiftPrec ) { pShiftLUT = m_aiShiftLUT; iShiftPrec = m_iShiftPrec; } 162 #endif 149 163 TComPic* getRefPicBaseTxt () { return m_pPicBaseTxt; } 150 164 TComPic* getRefPicBaseDepth () { return m_pPicBaseDepth; } 165 #if MERL_VSP_NBDV_RefVId_Fix_D0166 166 Void setListDepthPic ( TComList<TComPic*>* pListDepthPic, Int viewId ) { m_pcListDepthPic[viewId] = pListDepthPic; } 167 TComList<TComPic*>* getListDepthPic(Int viewId) { return m_pcListDepthPic[viewId]; } 168 #endif 151 169 #endif 152 170 };
Note: See TracChangeset for help on using the changeset viewer.