Changeset 559 in 3DVCSoftware for branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon
- Timestamp:
- 9 Aug 2013, 07:59:16 (12 years ago)
- Location:
- branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp
r542 r559 5256 5256 } 5257 5257 #endif 5258 #if MTK_FAST_TEXTURE_ENCODING_E0173 5259 Void 5260 TComDataCU::getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD) 5261 { 5262 TComSlice* pcSlice = getSlice (); 5263 Int iViewIndex = pDInfo->m_aVIdxCan; 5264 //--- get base CU/PU and check prediction mode --- 5265 TComPic* pcBasePic = pcSlice->getIvPic( false, iViewIndex ); 5266 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec (); 5267 5268 UInt uiPartAddr; 5269 Int iWidth; 5270 Int iHeight; 5271 getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight ); 5272 5273 Int iCurrPosX, iCurrPosY; 5274 pcBaseRec->getTopLeftSamplePos( getAddr(), getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY ); 5275 5276 iCurrPosX += ( ( iWidth - 1 ) >> 1 ); 5277 iCurrPosY += ( ( iHeight - 1 ) >> 1 ); 5278 5279 Bool depthRefineFlag = false; 5280 #if H_3D_NBDV_REF 5281 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 5282 #endif // H_3D_NBDV_REF 5283 5284 TComMv cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; 5285 5286 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 5287 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + 2 ) >> 2 )); 5288 Int iBaseLPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX - (iWidth >> 1) + ( (cDv.getHor() + 2 ) >> 2 ) ); 5289 Int iBaseLPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + 2 ) >> 2 )); 5290 Int iBaseRPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + (iWidth >> 1) + 1 + ( (cDv.getHor() + 2 ) >> 2 ) ); 5291 Int iBaseRPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + 2 ) >> 2 )); 5292 Int iBaseUPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 5293 Int iBaseUPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY - (iHeight >> 1) + ( (cDv.getVer() + 2 ) >> 2 )); 5294 Int iBaseDPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 5295 Int iBaseDPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + (iHeight >> 1) + 1 + ( (cDv.getVer() + 2 ) >> 2 )); 5296 5297 Int iBaseCUAddr; 5298 Int iBaseAbsPartIdx; 5299 Int iBaseLCUAddr; 5300 Int iBaseLAbsPartIdx; 5301 Int iBaseRCUAddr; 5302 Int iBaseRAbsPartIdx; 5303 Int iBaseUCUAddr; 5304 Int iBaseUAbsPartIdx; 5305 Int iBaseDCUAddr; 5306 Int iBaseDAbsPartIdx; 5307 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 5308 pcBaseRec->getCUAddrAndPartIdx( iBaseLPosX , iBaseLPosY , iBaseLCUAddr, iBaseLAbsPartIdx ); 5309 pcBaseRec->getCUAddrAndPartIdx( iBaseRPosX , iBaseRPosY , iBaseRCUAddr, iBaseRAbsPartIdx ); 5310 pcBaseRec->getCUAddrAndPartIdx( iBaseUPosX , iBaseUPosY , iBaseUCUAddr, iBaseUAbsPartIdx ); 5311 pcBaseRec->getCUAddrAndPartIdx( iBaseDPosX , iBaseDPosY , iBaseDCUAddr, iBaseDAbsPartIdx ); 5312 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 5313 TComDataCU* pcBaseLCU = pcBasePic->getCU( iBaseLCUAddr ); 5314 TComDataCU* pcBaseRCU = pcBasePic->getCU( iBaseRCUAddr ); 5315 TComDataCU* pcBaseUCU = pcBasePic->getCU( iBaseUCUAddr ); 5316 TComDataCU* pcBaseDCU = pcBasePic->getCU( iBaseDCUAddr ); 5317 bIVFMerge = pcBaseLCU->getMergeFlag( iBaseLAbsPartIdx ) && pcBaseCU->getMergeFlag( iBaseAbsPartIdx ) && pcBaseRCU->getMergeFlag( iBaseRAbsPartIdx ) && pcBaseUCU->getMergeFlag( iBaseUAbsPartIdx ) && pcBaseDCU->getMergeFlag( iBaseDAbsPartIdx ); 5318 Int aiDepthL[5]; //depth level 5319 aiDepthL[0] = pcBaseCU->getDepth(iBaseAbsPartIdx); 5320 aiDepthL[1] = pcBaseLCU->getDepth(iBaseLAbsPartIdx); 5321 aiDepthL[2] = pcBaseRCU->getDepth(iBaseRAbsPartIdx); 5322 aiDepthL[3] = pcBaseUCU->getDepth(iBaseUAbsPartIdx); 5323 aiDepthL[4] = pcBaseDCU->getDepth(iBaseDAbsPartIdx); 5324 for (Int i = 0; i < 5; i++) 5325 { 5326 if (iIVFMaxD < aiDepthL[i]) 5327 iIVFMaxD = aiDepthL[i]; 5328 } 5329 } 5330 #endif 5258 5331 #if H_3D_IV_MERGE 5259 5332 Bool -
branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.h
r531 r559 485 485 #endif //H_3D_NBDV_REF 486 486 #endif 487 #if MTK_FAST_TEXTURE_ENCODING_E0173 488 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 489 #endif 487 490 #if H_3D_IV_MERGE 488 491 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc ); -
branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h
r552 r559 97 97 // Full Pel Interpolation for Depth, HHI_FULL_PEL_DEPTH_MAP_MV_ACC 98 98 #define SHARP_ILLUCOMP_REFINE_E0046 1 99 99 #define MTK_FAST_TEXTURE_ENCODING_E0173 1 // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173 100 100 101 101 #if H_3D_NBDV
Note: See TracChangeset for help on using the changeset viewer.