Changeset 295 in 3DVCSoftware for branches/HTM-5.1-dev0/source/Lib/TLibCommon
- Timestamp:
- 19 Feb 2013, 21:39:51 (12 years ago)
- Location:
- branches/HTM-5.1-dev0/source/Lib/TLibCommon
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.1-dev0/source/Lib/TLibCommon/CommonDef.h
r294 r295 128 128 #define MAX_VIEW_NUM 10 129 129 130 #if ( H3D_IVMP || H HI_INTER_VIEW_RESIDUAL_PRED)130 #if ( H3D_IVMP || H3D_IVRP ) 131 131 #define DEPTH_MAP_GENERATION 1 132 132 #define PDM_REMOVE_DEPENDENCE 1 //bug-fix for DMDV JCT2-A0095 -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/ContextTables.h
r294 r295 59 59 #define NUM_MERGE_IDX_EXT_CTX 1 ///< number of context models for merge index of merge extended 60 60 61 #if H HI_INTER_VIEW_RESIDUAL_PRED61 #if H3D_IVRP 62 62 #define NUM_RES_PRED_FLAG_CTX 4 ///< number of context for residual prediction flag 63 63 #endif … … 191 191 }; 192 192 193 #if H HI_INTER_VIEW_RESIDUAL_PRED193 #if H3D_IVRP 194 194 static const UChar 195 195 INIT_RES_PRED_FLAG[3][NUM_RES_PRED_FLAG_CTX] = -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r294 r295 214 214 m_piContourPredTexDeltaDC2 = NULL; 215 215 #endif 216 #if H HI_INTER_VIEW_RESIDUAL_PRED216 #if H3D_IVRP 217 217 m_pbResPredAvailable = NULL; 218 218 m_pbResPredFlag = NULL; … … 285 285 m_piVSPIndex = (Char* )xMalloc(Char, uiNumPartition); 286 286 #endif 287 #if H HI_INTER_VIEW_RESIDUAL_PRED287 #if H3D_IVRP 288 288 m_pbResPredAvailable = (Bool* )xMalloc(Bool, uiNumPartition); 289 289 m_pbResPredFlag = (Bool* )xMalloc(Bool, uiNumPartition); … … 443 443 #endif 444 444 if ( m_puhMergeIndex ) { xFree(m_puhMergeIndex); m_puhMergeIndex = NULL; } 445 #if H HI_INTER_VIEW_RESIDUAL_PRED445 #if H3D_IVRP 446 446 if ( m_pbResPredAvailable ) { xFree(m_pbResPredAvailable); m_pbResPredAvailable= NULL; } 447 447 if ( m_pbResPredFlag ) { xFree(m_pbResPredFlag); m_pbResPredFlag = NULL; } … … 713 713 memset (m_pbRenderable + firstElement, false, sizeof( Bool ) * numElements) ; 714 714 #endif 715 #if H HI_INTER_VIEW_RESIDUAL_PRED715 #if H3D_IVRP 716 716 memset( m_pbResPredAvailable + firstElement, 0 , sizeof( Bool ) * numElements ); 717 717 memset( m_pbResPredFlag + firstElement, 0 , sizeof( Bool ) * numElements ); … … 855 855 m_piVSPIndex[ui] = 0; 856 856 #endif 857 #if H HI_INTER_VIEW_RESIDUAL_PRED857 #if H3D_IVRP 858 858 m_pbResPredAvailable[ui] = 0; 859 859 m_pbResPredFlag[ui] = 0; … … 966 966 memset( m_piVSPIndex, 0, iSizeInChar ); 967 967 #endif 968 #if H HI_INTER_VIEW_RESIDUAL_PRED968 #if H3D_IVRP 969 969 memset( m_pbResPredAvailable, 0, iSizeInBool ); 970 970 memset( m_pbResPredFlag, 0, iSizeInBool ); … … 1080 1080 m_piContourPredTexDeltaDC2[ui]=pcCU->getContourPredTexDeltaDC2(uiPartOffset+ui); 1081 1081 #endif 1082 #if H HI_INTER_VIEW_RESIDUAL_PRED1082 #if H3D_IVRP 1083 1083 m_pbResPredAvailable[ui] = pcCU->m_pbResPredAvailable[ uiPartOffset + ui ]; 1084 1084 m_pbResPredFlag [ui] = pcCU->m_pbResPredFlag [ uiPartOffset + ui ]; … … 1202 1202 m_piVSPIndex = pcCU->getVSPIndex() + uiPart; 1203 1203 #endif 1204 #if H HI_INTER_VIEW_RESIDUAL_PRED1204 #if H3D_IVRP 1205 1205 m_pbResPredAvailable = pcCU->getResPredAvail() + uiPart; 1206 1206 m_pbResPredFlag = pcCU->getResPredFlag () + uiPart; … … 1348 1348 m_piVSPIndex = pcCU->getVSPIndex() + uiAbsPartIdx; 1349 1349 #endif 1350 #if H HI_INTER_VIEW_RESIDUAL_PRED1350 #if H3D_IVRP 1351 1351 m_pbResPredAvailable = pcCU->getResPredAvail() + uiAbsPartIdx; 1352 1352 m_pbResPredFlag = pcCU->getResPredFlag () + uiAbsPartIdx; … … 1399 1399 memcpy( m_piVSPIndex + uiOffset, pcCU->getVSPIndex(), iSizeInChar ); 1400 1400 #endif 1401 #if H HI_INTER_VIEW_RESIDUAL_PRED1401 #if H3D_IVRP 1402 1402 memcpy( m_pbResPredAvailable + uiOffset, pcCU->getResPredAvail(), iSizeInBool ); 1403 1403 memcpy( m_pbResPredFlag + uiOffset, pcCU->getResPredFlag(), iSizeInBool ); … … 1538 1538 memcpy( rpcCU->getVSPIndex() + m_uiAbsIdxInLCU, m_piVSPIndex, iSizeInChar ); 1539 1539 #endif 1540 #if H HI_INTER_VIEW_RESIDUAL_PRED1540 #if H3D_IVRP 1541 1541 memcpy( rpcCU->getResPredAvail() + m_uiAbsIdxInLCU, m_pbResPredAvailable, iSizeInBool ); 1542 1542 memcpy( rpcCU->getResPredFlag() + m_uiAbsIdxInLCU, m_pbResPredFlag, iSizeInBool ); … … 1669 1669 memcpy( rpcCU->getVSPIndex() + uiPartOffset, m_piVSPIndex, iSizeInChar ); 1670 1670 #endif 1671 #if H HI_INTER_VIEW_RESIDUAL_PRED1671 #if H3D_IVRP 1672 1672 memcpy( rpcCU->getResPredAvail() + uiPartOffset, m_pbResPredAvailable, iSizeInBool ); 1673 1673 memcpy( rpcCU->getResPredFlag() + uiPartOffset, m_pbResPredFlag, iSizeInBool ); … … 2623 2623 2624 2624 2625 #if H HI_INTER_VIEW_RESIDUAL_PRED2625 #if H3D_IVRP 2626 2626 UInt 2627 2627 TComDataCU::getCtxResPredFlag( UInt uiAbsPartIdx ) … … 2949 2949 #endif 2950 2950 2951 #if H HI_INTER_VIEW_RESIDUAL_PRED2951 #if H3D_IVRP 2952 2952 Void TComDataCU::setResPredAvailSubParts( Bool bResPredAvailable, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2953 2953 { … … 3628 3628 deriveLeftRightTopIdxGeneral( cCurPS, uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT ); 3629 3629 deriveLeftBottomIdxGeneral( cCurPS, uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3630 #if !FIX_TEXTURE_MERGING_CANDIDATE_VSP_C0137_C0152 3630 3631 #if H3D_IVMP 3632 Bool bNoPdmMerge = ( m_pcSlice->getSPS()->getViewId() == 0 || ( m_pcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) != PDM_USE_FOR_MERGE ); 3633 3634 //===== add merge with predicted depth maps ===== 3635 TComMv acPdmMv [4]; 3636 Int aiPdmRefIdx [4] = {-1, -1, -1, -1}; 3637 Bool bLeftAvai = false; 3638 Int iPosLeftAbove[2] = {-1, -1}; 3639 3640 #if H3D_NBDV 3641 acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = acPdmMv[2].m_bDvMcp = acPdmMv[3].m_bDvMcp = false; 3642 #endif //H3D_NBDV 3643 3644 #if MTK_MDIVRP_C0138 3645 Bool bDVAvail = true; 3646 #endif 3647 3648 #if H3D_NBDV 3649 DisInfo cDisInfo; 3650 cDisInfo.iN = 0; 3651 if(!bNoPdmMerge) 3652 { 3653 getDisMvpCandNBDV(uiPUIdx, uiAbsPartIdx, &cDisInfo , true 3654 #if MERL_VSP_C0152 3655 , true 3656 #endif 3657 ); 3658 } 3659 if(cDisInfo.iN==0) 3660 { 3661 cDisInfo.iN = 1; 3662 cDisInfo.m_acMvCand[0].setHor(0); 3663 cDisInfo.m_acMvCand[0].setVer(0); 3664 cDisInfo.m_aVIdxCan[0] = 0; 3665 #if MTK_MDIVRP_C0138 3666 bDVAvail = false; 3667 #endif 3668 } 3669 3631 3670 #if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137 3632 3671 if( m_pcSlice->getIsDepth()) … … 3662 3701 } 3663 3702 } 3664 #if FIX_TEXTURE_MERGING_CANDIDATE_VSP_C0137_C01523703 #if MERL_VSP_C0152 3665 3704 xInheritVspMode( pcTextureCU, uiPartIdxCenter, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3666 3705 #endif … … 3673 3712 } 3674 3713 #endif 3675 #endif 3676 3677 #if H3D_IVMP 3678 Bool bNoPdmMerge = ( m_pcSlice->getSPS()->getViewId() == 0 || ( m_pcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) != PDM_USE_FOR_MERGE ); 3679 3680 //===== add merge with predicted depth maps ===== 3681 TComMv acPdmMv [4]; 3682 Int aiPdmRefIdx [4] = {-1, -1, -1, -1}; 3683 Bool bLeftAvai = false; 3684 Int iPosLeftAbove[2] = {-1, -1}; 3685 3686 #if H3D_NBDV 3687 acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = acPdmMv[2].m_bDvMcp = acPdmMv[3].m_bDvMcp = false; 3688 #endif //H3D_NBDV 3689 3690 #if MTK_MDIVRP_C0138 3691 Bool bDVAvail = true; 3692 #endif 3693 3694 #if H3D_NBDV 3695 DisInfo cDisInfo; 3696 cDisInfo.iN = 0; 3697 if(!bNoPdmMerge) 3698 { 3699 getDisMvpCandNBDV(uiPUIdx, uiAbsPartIdx, &cDisInfo , true 3700 #if MERL_VSP_C0152 3701 , true 3702 #endif 3703 ); 3704 } 3705 if(cDisInfo.iN==0) 3706 { 3707 cDisInfo.iN = 1; 3708 cDisInfo.m_acMvCand[0].setHor(0); 3709 cDisInfo.m_acMvCand[0].setVer(0); 3710 cDisInfo.m_aVIdxCan[0] = 0; 3711 #if MTK_MDIVRP_C0138 3712 bDVAvail = false; 3713 #endif 3714 } 3715 #if FIX_TEXTURE_MERGING_CANDIDATE_VSP_C0137_C0152 3716 #if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137 3717 if( m_pcSlice->getIsDepth()) 3718 { 3719 UInt uiPartIdxCenter; 3720 xDeriveCenterIdx( cCurPS, uiPUIdx, uiPartIdxCenter ); 3721 TComDataCU *pcTextureCU = m_pcSlice->getTexturePic()->getCU( getAddr() ); 3722 if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdxCenter ) ) 3723 { 3724 abCandIsInter[iCount] = true; 3725 puhInterDirNeighbours[iCount] = pcTextureCU->getInterDir( uiPartIdxCenter ); 3726 if( ( puhInterDirNeighbours[iCount] & 1 ) == 1 ) 3727 { 3728 pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3729 TComMv cMvPred = pcMvFieldNeighbours[iCount<<1].getMv(); 3730 const TComMv cAdd( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) ); 3731 cMvPred+=cAdd; 3732 cMvPred>>=2; 3733 clipMv(cMvPred); 3734 pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx()); 3735 } 3736 if ( getSlice()->isInterB() ) 3737 { 3738 if( ( puhInterDirNeighbours[iCount] & 2 ) == 2 ) 3739 { 3740 pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3741 TComMv cMvPred = pcMvFieldNeighbours[(iCount<<1)+1].getMv(); 3742 const TComMv cAdd( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) ); 3743 cMvPred+=cAdd; 3744 cMvPred>>=2; 3745 clipMv(cMvPred); 3746 pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()); 3747 } 3748 } 3749 #if FIX_TEXTURE_MERGING_CANDIDATE_VSP_C0137_C0152 3750 xInheritVspMode( pcTextureCU, uiPartIdxCenter, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3751 #endif 3752 if ( mrgCandIdx == iCount ) 3753 { 3754 return; 3755 } 3756 iCount ++; 3757 } 3758 } 3759 #endif 3760 #endif 3714 3761 3715 Int iPdmDir[2] = {0, 0}; 3762 3716 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 … … 3996 3950 #endif 3997 3951 #if H3D_IVMP 3998 Bool bRemoveSpa = false; //pruni gnto inter-view candidates3952 Bool bRemoveSpa = false; //pruning to inter-view candidates 3999 3953 Int iCnloop = bLeftAvai? (iCount-2): (iCount-1); 4000 3954 for(; iCnloop >= 0; iCnloop --) … … 7956 7910 #endif 7957 7911 7958 #if H HI_INTER_VIEW_RESIDUAL_PRED7912 #if H3D_IVRP 7959 7913 Bool 7960 7914 TComDataCU::getResidualSamples( UInt uiPartIdx, Bool bRecon, TComYuv* pcYuv ) -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDataCU.h
r294 r295 49 49 #include "TComPattern.h" 50 50 51 #if H HI_INTER_VIEW_RESIDUAL_PRED51 #if H3D_IVRP 52 52 #include "TComYuv.h" 53 53 #endif … … 210 210 Int m_numSucIPCM; ///< the number of succesive IPCM blocks associated with the current log2CUSize 211 211 Bool m_lastCUSucIPCMFlag; ///< True indicates that the last CU is IPCM and shares the same root as the current CU. 212 #if H HI_INTER_VIEW_RESIDUAL_PRED212 #if H3D_IVRP 213 213 Bool* m_pbResPredAvailable; ///< array of residual prediction available flags 214 214 Bool* m_pbResPredFlag; ///< array of residual prediction flags … … 560 560 Bool getIViewOrgDepthMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv ); 561 561 #endif // H3D_IVMP 562 #if H HI_INTER_VIEW_RESIDUAL_PRED562 #if H3D_IVRP 563 563 Bool* getResPredAvail () { return m_pbResPredAvailable; } 564 564 Bool getResPredAvail ( UInt uiIdx ) { return m_pbResPredAvailable[uiIdx]; } … … 573 573 Void setResPredIndicator ( Bool bAv, Bool bRP ) { m_pbResPredAvailable[0] = bAv; m_pbResPredFlag[0] = bRP; } 574 574 #endif 575 #if H HI_INTER_VIEW_RESIDUAL_PRED575 #if H3D_IVRP 576 576 Bool getResidualSamples( UInt uiPartIdx, Bool bRecon, TComYuv* pcYuv = 0 ); 577 577 #endif … … 699 699 UInt getCtxInterDir ( UInt uiAbsPartIdx ); 700 700 701 #if H HI_INTER_VIEW_RESIDUAL_PRED701 #if H3D_IVRP 702 702 UInt getCtxResPredFlag ( UInt uiAbsPartIdx ); 703 703 #endif -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDepthMapGenerator.h
r292 r295 80 80 81 81 UInt getPdm () { if( m_aacActiveSPS[0][1] ) { return m_aacActiveSPS[0][1]->getPredDepthMapGeneration(); } return 0; } 82 #if H HI_INTER_VIEW_RESIDUAL_PRED82 #if H3D_IVRP 83 83 UInt getResPrd () { if( m_aacActiveSPS[0][1] ) { return m_aacActiveSPS[0][1]->getMultiviewResPredMode (); } return 0; } 84 84 #endif -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComPic.cpp
r294 r295 62 62 m_pcOrgDepthMap = NULL; 63 63 #endif 64 #if H HI_INTER_VIEW_RESIDUAL_PRED64 #if H3D_IVRP 65 65 m_pcResidual = NULL; 66 66 #endif … … 165 165 } 166 166 #endif 167 #if H HI_INTER_VIEW_RESIDUAL_PRED167 #if H3D_IVRP 168 168 if( m_pcResidual ) 169 169 { … … 222 222 #endif 223 223 224 #if H HI_INTER_VIEW_RESIDUAL_PRED224 #if H3D_IVRP 225 225 Void 226 226 TComPic::addResidualBuffer() … … 272 272 #endif 273 273 274 #if H HI_INTER_VIEW_RESIDUAL_PRED274 #if H3D_IVRP 275 275 Void 276 276 TComPic::removeResidualBuffer() -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComPic.h
r293 r295 86 86 #endif 87 87 #endif 88 #if H HI_INTER_VIEW_RESIDUAL_PRED88 #if H3D_IVRP 89 89 TComPicYuv* m_pcResidual; // residual buffer (coded or inter-view predicted residual) 90 90 #endif … … 173 173 #endif 174 174 175 #if H HI_INTER_VIEW_RESIDUAL_PRED175 #if H3D_IVRP 176 176 TComPicYuv* getResidual() { return m_pcResidual; } 177 177 #endif … … 253 253 Void addOrgDepthMapBuffer (); 254 254 #endif 255 #if H HI_INTER_VIEW_RESIDUAL_PRED255 #if H3D_IVRP 256 256 Void addResidualBuffer (); 257 257 #endif … … 262 262 Void removeOrgDepthMapBuffer (); 263 263 #endif 264 #if H HI_INTER_VIEW_RESIDUAL_PRED264 #if H3D_IVRP 265 265 Void removeResidualBuffer (); 266 266 #endif -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r294 r295 2860 2860 ruiIntraTabIdx = 0; 2861 2861 #endif 2862 #if HHIQC_DMMFASTSEARCH_B00392863 2862 TComPic* pcPicTex = pcCU->getSlice()->getTexturePic(); 2864 2863 TComDataCU* pcColTexCU = pcPicTex->getCU(pcCU->getAddr()); … … 2949 2948 #endif 2950 2949 } 2951 #else2952 for( UInt uiIdx = 0; uiIdx < pacWedgeList->size(); uiIdx++ )2953 {2954 calcWedgeDCs ( &(pacWedgeList->at(uiIdx)), piRefBlkY, uiWidth, iDC1, iDC2 );2955 assignWedgeDCs2Pred( &(pacWedgeList->at(uiIdx)), piPred, uiPredStride, iDC1, iDC2 );2956 2957 UInt uiActDist = cWedgeDist.getDistPart( piPred, uiPredStride, piRefBlkY, uiWidth, uiWidth, uiHeight, WedgeDist_SAD );2958 2959 if( uiActDist < uiBestDist || uiBestDist == MAX_UINT )2960 {2961 uiBestDist = uiActDist;2962 uiBestTabIdx = uiIdx;2963 }2964 }2965 #endif2966 2950 2967 2951 cPredYuv.destroy(); … … 3067 3051 delete pcContourWedge; 3068 3052 } 3069 #endif 3053 #endif // HHI_DMM_PRED_TEX 3070 3054 3071 3055 #if HHI_DMM_WEDGE_INTRA -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComResidualGenerator.cpp
r294 r295 44 44 45 45 46 #if H HI_INTER_VIEW_RESIDUAL_PRED46 #if H3D_IVRP 47 47 48 48 … … 743 743 744 744 745 #endif // H HI_INTER_VIEW_RESIDUAL_PRED746 745 #endif // H3D_IVRP 746 -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComResidualGenerator.h
r290 r295 50 50 51 51 52 #if H HI_INTER_VIEW_RESIDUAL_PRED52 #if H3D_IVRP 53 53 54 54 class TComResidualGenerator … … 121 121 #endif // __TCOM_RESIDUAL_GENERATOR__ 122 122 123 #endif // H HI_INTER_VIEW_RESIDUAL_PRED123 #endif // H3D_IVRP 124 124 125 125 -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComRom.cpp
r294 r295 174 174 g_aacWedgeRefLists.clear(); 175 175 } 176 #if HHIQC_DMMFASTSEARCH_B0039 176 177 177 if ( !g_aacWedgeNodeLists.empty() ) 178 178 { … … 183 183 g_aacWedgeNodeLists.clear(); 184 184 } 185 #endif 185 186 186 #endif 187 187 } … … 859 859 std::vector< std::vector<TComWedgeRef> > g_aacWedgeRefLists; 860 860 861 #if HHIQC_DMMFASTSEARCH_B0039862 861 std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 863 862 std::vector< std::vector< TComWedgeNode> > g_aacWedgeNodeLists; 864 #endif865 863 866 864 Void initWedgeLists() … … 875 873 g_aacWedgeRefLists.push_back( acWedgeRefList ); 876 874 877 #if HHIQC_DMMFASTSEARCH_B0039878 875 // create WedgeNodeList 879 876 std::vector<TComWedgeNode> acWedgeNodeList; … … 936 933 } 937 934 g_aacWedgeNodeLists.push_back( acWedgeNodeList ); 938 #endif 935 939 936 } 940 937 return; … … 974 971 for( Int iL = 0; iL < uiBlockSize; iL++ ) 975 972 { 976 #if HHIQC_DMMFASTSEARCH_B0039977 973 cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) ); 978 #else979 cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes );980 #endif981 974 addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList ); 982 975 } 983 976 } 984 977 } 985 #if HHIQC_DMMFASTSEARCH_B0039986 978 UInt uiThrSz = DMM3_SIMPLIFY_TR; 987 979 … … 1001 993 } 1002 994 g_aauiWdgLstM3.push_back(auiWdgListSz); 1003 #endif1004 995 } 1005 996 … … 1037 1028 if( bValid ) 1038 1029 { 1039 #if HHIQC_DMMFASTSEARCH_B0039 1040 cWedgelet.findClosetAngle(); 1041 #endif 1030 cWedgelet.findClosetAngle(); 1042 1031 racWedgeList.push_back( cWedgelet ); 1043 1032 TComWedgeRef cWedgeRef; … … 1046 1035 } 1047 1036 } 1048 #endif 1037 #endif //HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 1049 1038 1050 1039 //! \} -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComRom.h
r294 r295 188 188 extern std::vector< std::vector<TComWedgeRef> > g_aacWedgeRefLists; 189 189 190 #if HHI QC_DMMFASTSEARCH_B0039190 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 191 191 extern std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 192 192 extern std::vector< std::vector<TComWedgeNode> > g_aacWedgeNodeLists; -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComSlice.h
r294 r295 54 54 class TComDepthMapGenerator; 55 55 #endif 56 #if H HI_INTER_VIEW_RESIDUAL_PRED56 #if H3D_IVRP 57 57 class TComResidualGenerator; 58 58 #endif … … 389 389 UInt m_uiMultiviewMvPredMode; 390 390 #endif 391 #if H HI_INTER_VIEW_RESIDUAL_PRED391 #if H3D_IVRP 392 392 UInt m_uiMultiviewResPredMode; 393 393 #endif … … 396 396 TComDepthMapGenerator* m_pcDepthMapGenerator; 397 397 #endif 398 #if H HI_INTER_VIEW_RESIDUAL_PRED398 #if H3D_IVRP 399 399 TComResidualGenerator* m_pcResidualGenerator; 400 400 #endif … … 639 639 Void setPredDepthMapGeneration( UInt uiViewId, Bool bIsDepth, UInt uiPdmGenMode = 0, UInt uiPdmMvPredMode = 0, UInt uiPdmPrec = 0, Int** aaiPdmScaleNomDelta = 0, Int** aaiPdmOffset = 0 ); 640 640 #endif 641 #if H HI_INTER_VIEW_RESIDUAL_PRED641 #if H3D_IVRP 642 642 Void setMultiviewResPredMode ( UInt uiResPrdMode ) { m_uiMultiviewResPredMode = uiResPrdMode; } 643 643 #endif … … 653 653 UInt getMultiviewMvPredMode () { return m_uiMultiviewMvPredMode; } 654 654 #endif 655 #if H HI_INTER_VIEW_RESIDUAL_PRED655 #if H3D_IVRP 656 656 UInt getMultiviewResPredMode () { return m_uiMultiviewResPredMode; } 657 657 #endif … … 661 661 TComDepthMapGenerator* getDepthMapGenerator() { return m_pcDepthMapGenerator; } 662 662 #endif 663 #if H HI_INTER_VIEW_RESIDUAL_PRED663 #if H3D_IVRP 664 664 Void setResidualGenerator( TComResidualGenerator* pcResidualGenerator ) { m_pcResidualGenerator = pcResidualGenerator; } 665 665 TComResidualGenerator* getResidualGenerator() { return m_pcResidualGenerator; } -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComWedgelet.cpp
r189 r295 52 52 m_uhOri ( 0 ), 53 53 m_eWedgeRes( FULL_PEL ) 54 #if HHI QC_DMMFASTSEARCH_B003954 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 55 55 , m_bIsCoarse( false ) 56 56 #endif … … 65 65 m_uhOri ( rcWedge.m_uhOri ), 66 66 m_eWedgeRes( rcWedge.m_eWedgeRes ), 67 #if HHI QC_DMMFASTSEARCH_B003967 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 68 68 m_bIsCoarse( rcWedge.m_bIsCoarse ), 69 69 m_uiAng ( rcWedge.m_uiAng ), … … 101 101 } 102 102 103 #if HHI QC_DMMFASTSEARCH_B0039103 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 104 104 Void TComWedgelet::findClosetAngle() 105 105 { … … 142 142 m_uhOri = uhOri; 143 143 m_eWedgeRes = eWedgeRes; 144 #if HHI QC_DMMFASTSEARCH_B0039144 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 145 145 m_bIsCoarse = bIsCoarse; 146 146 #endif … … 687 687 case( 2 ): { for( UInt iX = uiTempBlockSize-1; iX > uhXs; iX-- ) { UInt iY = uiTempBlockSize-1; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iY--; } } } break; 688 688 case( 3 ): { for( UInt iY = uiTempBlockSize-1; iY > uhYs; iY-- ) { UInt iX = 0; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iX++; } } } break; 689 #if HHI QC_DMMFASTSEARCH_B0039689 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 690 690 case( 4 ): 691 691 { … … 721 721 case( 2 ): { uiOffX = 1; uiOffY = 1; } break; 722 722 case( 3 ): { uiOffX = 0; uiOffY = 1; } break; 723 #if HHI QC_DMMFASTSEARCH_B0039723 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 724 724 case( 4 ): 725 725 { … … 805 805 } 806 806 807 #if HHI QC_DMMFASTSEARCH_B0039807 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 808 808 TComWedgeNode::TComWedgeNode() 809 809 { -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComWedgelet.h
r189 r295 50 50 }; 51 51 52 #if HHI QC_DMMFASTSEARCH_B003952 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 53 53 #define NUM_WEDGE_REFINES 8 54 54 #define NO_IDX MAX_UINT … … 67 67 UChar m_uhOri; // orientation index 68 68 WedgeResolution m_eWedgeRes; // start/end pos resolution 69 #if HHI QC_DMMFASTSEARCH_B003969 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 70 70 Bool m_bIsCoarse; 71 71 UInt m_uiAng; … … 99 99 UChar getEndY () { return m_uhYe; } 100 100 UChar getOri () { return m_uhOri; } 101 #if HHI QC_DMMFASTSEARCH_B0039101 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 102 102 Bool getIsCoarse() { return m_bIsCoarse; } 103 103 UInt getAng () { return m_uiAng; } … … 153 153 typedef std::vector<TComWedgeRef> WedgeRefList; 154 154 155 #if HHI QC_DMMFASTSEARCH_B0039155 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 156 156 // ==================================================================================================================== 157 157 // Class definition TComWedgeNode -
branches/HTM-5.1-dev0/source/Lib/TLibCommon/TypeDef.h
r294 r295 56 56 #define HHI_DMM_WEDGE_INTRA 1 // depth model modes independent on texture (explicit and intra-predicted Wedgelet prediction) 57 57 #define HHI_DMM_PRED_TEX 1 // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction ) 58 // HHIQC_DMMFASTSEARCH_B0039, fast Wedgelet search for DMM modes 1 and 3 59 58 60 #define LGE_EDGE_INTRA_A0070 1 // JCT3V-A0070 59 61 60 #define HHIQC_DMMFASTSEARCH_B0039 1 // JCT3V-B0039: fast Wedgelet search for DMM modes 1 and 3 // --> weg61 62 62 #define HHI_DMM_DELTADC_Q1_C0034 1 // JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values 63 #if HHIQC_DMMFASTSEARCH_B0039&& HHI_DMM_PRED_TEX63 #if ( HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA ) && HHI_DMM_PRED_TEX 64 64 #define LGE_DMM3_SIMP_C0044 1 65 65 #endif … … 86 86 // QC_MRG_CANS_B0048 , JCT3V-B0048, B0086, B0069 87 87 // OL_DISMV_POS_B0069 , different pos for disparity MV candidate, B0069 88 // MTK_INTERVIEW_MERGE_A0049 , // JCT3V-A0049second part88 // MTK_INTERVIEW_MERGE_A0049 , second part 89 89 #define QC_AMVP_MRG_UNIFY_IVCAN_C0051 1 90 #define QC_C0051_FIXED_BY_MTK 1 // bug fix for C0051 implementation90 #define QC_C0051_FIXED_BY_MTK 1 // Bug fix for C0051 implementation 91 91 92 92 93 93 ///// ***** INTERVIEW RESIDUAL PREDICTION ********* 94 #define HHI_INTER_VIEW_RESIDUAL_PRED 1 // inter-view residual prediction 94 #define H3D_IVRP 1 // Inter-view residual prediction 95 // HHI_INTER_VIEW_RESIDUAL_PRED 95 96 // QC_SIMPLIFIEDIVRP_M24938 96 #if H HI_INTER_VIEW_RESIDUAL_PRED97 #define LG_RESTRICTEDRESPRED_M24766 1 // restricted inter-view residual prediction97 #if H3D_IVRP 98 #define LG_RESTRICTEDRESPRED_M24766 1 // Restricted inter-view residual prediction 98 99 #define FIX_LG_RESTRICTEDRESPRED_M24766 1 99 100 #else … … 101 102 #endif 102 103 103 #define MTK_MDIVRP_C0138 1 // mode-dependent inter-view residual prediction104 #define MTK_C0138_FIXED 1 // fix for IBP coding structure in view direction (not CTC)104 #define MTK_MDIVRP_C0138 1 // Mode-dependent inter-view residual prediction 105 #define MTK_C0138_FIXED 1 // Fix for IBP coding structure in view direction (not CTC) 105 106 106 107 … … 174 175 ///// ***** VSP ********* 175 176 #define MERL_VSP_C0152 1 // JCT3V-C0152: 1: enable VSP-related tools; 0: disable VSP-related tools 176 #define FIX_TEXTURE_MERGING_CANDIDATE_VSP_C0137_C0152 1177 177 #if MERL_VSP_C0152 178 178 … … 241 241 242 242 243 #if HHI QC_DMMFASTSEARCH_B0039243 #if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA 244 244 #define DMM3_SIMPLIFY_TR 1 245 245 #endif … … 257 257 ///// ***** HM 6.1 ********* 258 258 259 //// REMOVED HM 6.1 Guard macros 259 //// REMOVED HM 6.1 Guard macros (corresponding to macros removed in HM 6.3.1) 260 260 /* 261 261 #define SKIPFRAME_BUGFIX 1 ///< bug fix to enable skipFrame at decoder
Note: See TracChangeset for help on using the changeset viewer.