Changeset 390 in 3DVCSoftware
- Timestamp:
- 10 May 2013, 10:17:06 (12 years ago)
- Location:
- branches/HTM-6.2-dev2-Mediatek
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev2-Mediatek/source/App/TAppEncoder/TAppEncCfg.cpp
r373 r390 922 922 #if H3D_IVRP 923 923 #if QC_ARP_D0177 924 xConfirmPara ( m_nUseAdvResPred < 0 || m_nUseAdvResPred > 1 , "0<=ARP<=1" ); 924 #if QC_ARP_WARNING_FIX 925 xConfirmPara ( m_nUseAdvResPred > 1 , "0<=ARP<=1" ); 926 #else 927 xConfirmPara ( m_nUseAdvResPred < 0 || m_nUseAdvResPred > 1 , "0<=ARP<=1" ); 928 #endif 925 929 #else 926 930 xConfirmPara ( m_uiMultiviewResPredMode > 1, "MultiviewResPred must be less than or equal to 1" ); -
branches/HTM-6.2-dev2-Mediatek/source/Lib/TLibCommon/TComDataCU.cpp
r373 r390 69 69 if (vspIdx < 4) 70 70 { 71 #if MTK_VSP_USING_NBDV_D0105 72 pcMvFieldNeighbours[ iCount<<1].setMvField ( pDInfo->m_acMvCandNoRef[0], NOT_VALID ); 73 #else 71 74 pcMvFieldNeighbours[ iCount<<1].setMvField ( pDInfo->m_acMvCand[0], NOT_VALID ); 75 #endif 72 76 if ( pcCURef->getSlice()->isInterB() ) 73 77 { 78 #if MTK_VSP_USING_NBDV_D0105 79 pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField ( pDInfo->m_acMvCandNoRef[0], NOT_VALID ); 80 #else 74 81 pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField ( pDInfo->m_acMvCand[0], NOT_VALID ); 82 #endif 75 83 } 76 84 } … … 81 89 UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDInfo ) 82 90 { 91 #if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 92 if (getSlice()->getSPS()->isDepth()) 93 { 94 return true; 95 } 96 #endif 97 83 98 #if MERL_VSP_C0152_BugFix_ForNoDepthCase 84 99 TComPic* pRefPicBaseDepth = NULL; … … 105 120 if (vspIdx < 4) // spatial 106 121 { 122 #if MTK_VSP_USING_NBDV_D0105 123 pcMvFieldNeighbours[iCount<<1].setMvField(pDInfo->m_acMvCandNoRef[0], NOT_VALID ); 124 #else 107 125 pcMvFieldNeighbours[iCount<<1].setMvField(pDInfo->m_acMvCand[0], NOT_VALID ); 126 #endif 108 127 if ( getSlice()->isInterB() ) 109 128 { 129 #if MTK_VSP_USING_NBDV_D0105 130 pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acMvCandNoRef[0], NOT_VALID ); 131 #else 110 132 pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acMvCand[0], NOT_VALID ); 133 #endif 111 134 } 112 135 } … … 3715 3738 cDisInfo.m_acMvCand[0] = getDvInfo(uiAbsPartIdx).m_acMvCand[0]; 3716 3739 cDisInfo.m_aVIdxCan[0] = getDvInfo(uiAbsPartIdx).m_aVIdxCan[0]; 3740 #if MTK_VSP_USING_NBDV_D0105 3741 cDisInfo.m_acMvCandNoRef[0] = getDvInfo(uiAbsPartIdx).m_acMvCandNoRef[0]; 3742 #endif 3717 3743 } 3718 3744 #else … … 3780 3806 clipMv(cMvPred); 3781 3807 pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx()); 3808 #if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 3809 if (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0) 3810 { 3811 assert(pcTextureCU->getVSPIndex(uiPartIdxCenter)!=0); 3812 for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_0); i++) 3813 { 3814 if (getSlice()->getRefPOC(REF_PIC_LIST_0, i) == getSlice()->getPOC()) 3815 { 3816 pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,i); 3817 break; 3818 } 3819 } 3820 } 3821 #endif 3782 3822 } 3783 3823 if ( getSlice()->isInterB() ) … … 3792 3832 clipMv(cMvPred); 3793 3833 pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()); 3834 #if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 3835 if (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0) 3836 { 3837 assert(pcTextureCU->getVSPIndex(uiPartIdxCenter)!=0); 3838 for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_1); i++) 3839 { 3840 if (getSlice()->getRefPOC(REF_PIC_LIST_1, i) == getSlice()->getPOC()) 3841 { 3842 pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,i); 3843 break; 3844 } 3845 } 3846 } 3847 #endif 3794 3848 } 3795 3849 } 3796 3850 #if MERL_VSP_C0152 3851 #if !MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 3797 3852 xInheritVspMode( pcTextureCU, uiPartIdxCenter, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ; 3798 3853 #endif 3799 if ( mrgCandIdx == iCount ) 3800 { 3801 return; 3802 } 3803 iCount ++; 3854 #endif 3855 #if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 3856 if (!((pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && !getSlice()->isInterB()) 3857 || (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0 && getSlice()->isInterB()))) 3858 { 3859 #endif 3860 if ( mrgCandIdx == iCount ) 3861 { 3862 return; 3863 } 3864 iCount ++; 3865 #if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 3866 } 3867 else 3868 { 3869 assert(0); 3870 } 3871 #endif 3804 3872 } 3805 3873 } … … 5043 5111 Int depthEndPosX = Clip3(0, iPictureWidth - 1, iBlkX + iBlkWidth - 1 + (mv->getHor()>>2)); 5044 5112 Int depthEndPosY = Clip3(0, iPictureHeight - 1, iBlkY + iBlkHeight - 1 + (mv->getVer()>>2)); 5113 #if !MTK_DEPTH_TO_DISP_D0138 5045 5114 Int iCenterX = (depthStartPosX + depthEndPosX) >> 1; 5046 5115 Int iCenterY = (depthStartPosY + depthEndPosY) >> 1; 5116 #endif 5047 5117 5048 5118 Pel *depthTL = pcBaseViewDepthPicYuv->getLumaAddr(); … … 5052 5122 aiDepth[2] = depthTL[ (depthStartPosY) * depStride + depthEndPosX ]; // Right Top 5053 5123 aiDepth[3] = depthTL[ (depthEndPosY) * depStride + depthEndPosX ]; // Right Bottom 5124 #if MTK_DEPTH_TO_DISP_D0138 5125 for (Int i = 0; i < 4; i++) 5126 #else 5054 5127 aiDepth[4] = depthTL[ (iCenterY) * depStride + iCenterX ]; // Center 5055 5128 for (Int i = 0; i < 5; i++) 5129 #endif 5056 5130 { 5057 5131 if (maxDepthVal < aiDepth[i]) -
branches/HTM-6.2-dev2-Mediatek/source/Lib/TLibCommon/TComPrediction.cpp
r373 r390 1563 1563 #endif 1564 1564 Int maxV = 0; 1565 #if MTK_DEPTH_TO_DISP_D0138 1566 for (Int blockj = 0; blockj < MERL_VSP_BLOCKSIZE_C0152; blockj+=(MERL_VSP_BLOCKSIZE_C0152-1)) 1567 #else 1565 1568 for (Int blockj = 0; blockj < MERL_VSP_BLOCKSIZE_C0152; blockj++) 1569 #endif 1566 1570 { 1567 1571 Int iX = 0; 1572 #if MTK_DEPTH_TO_DISP_D0138 1573 for (Int blocki = 0; blocki < MERL_VSP_BLOCKSIZE_C0152; blocki+=(MERL_VSP_BLOCKSIZE_C0152-1)) 1574 #else 1568 1575 for (Int blocki = 0; blocki < MERL_VSP_BLOCKSIZE_C0152; blocki++) 1576 #endif 1569 1577 { 1570 1578 if (maxV < depthTmp[iX]) -
branches/HTM-6.2-dev2-Mediatek/source/Lib/TLibCommon/TypeDef.h
r373 r390 95 95 // FIX_LG_RESTRICTEDRESPRED_M24766 1 96 96 97 #define QC_ARP_D0177 1 ////< advanced residual prediction97 #define QC_ARP_D0177 1 ////< advanced residual prediction 98 98 #if QC_ARP_D0177 99 #define QC_ARP_WFNR 3 99 #define QC_ARP_WFNR 3 100 #define QC_ARP_WARNING_FIX 1 // Fix warning message for ARP 100 101 #endif 101 102 ///// ***** DISPARITY VECTOR DERIVATION ********* … … 205 206 #define VSP_MERGE_POS 5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5. 206 207 //MTK_DVPREFINE_BVSP_BUG_FIX 1 208 #define MTK_DEPTH_TO_DISP_D0138 0 // JCT3V-D0138: Use max among four corners for DoNBDV and BVSP 207 209 208 210 #else // !MERL_VSP_C0152 … … 211 213 #endif 212 214 215 #define MTK_LGE_VSP_DEPTH_OFF_D0105_D0139 0 // JCT3V-D0105/JCT3V-D0139: disable VSP for depth map 216 #define MTK_VSP_USING_NBDV_D0105 0 // JCT3V-D0105: use NBDV instead of DoNBDV for BVSP 213 217 214 218 ///// ***** DERIVED PARAMETERS ********* -
branches/HTM-6.2-dev2-Mediatek/source/Lib/TLibDecoder/TDecSbac.cpp
r373 r390 2248 2248 { 2249 2249 UInt nMaxW = pcCU->getSlice()->getARPStepNum() - 1; 2250 #if !QC_ARP_WARNING_FIX 2250 2251 assert (nMaxW >= 0); 2252 #endif 2251 2253 UInt nW = 0; 2252 2254 if( nMaxW > 0 ) 2253 2255 { 2254 2256 UInt nOffset = pcCU->getCTXARPWFlag(uiAbsPartIdx); 2257 #if !QC_ARP_WARNING_FIX 2255 2258 assert( 0 <= nOffset && nOffset <= 2 ); 2259 #endif 2256 2260 UInt uiCode = 0; 2257 2261 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPW.get( 0, 0, 0 + nOffset ) );
Note: See TracChangeset for help on using the changeset viewer.