Changeset 529 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source
- Timestamp:
- 8 Jul 2013, 03:55:46 (11 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r528 r529 2189 2189 setSubPart<Char>( iVSPFlag, m_piVSPFlag, uiAbsPartIdx, uiDepth, uiPartIdx ); 2190 2190 } 2191 2192 2191 #endif 2193 2192 -
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComPrediction.cpp
r519 r529 572 572 Void TComPrediction::xPredInterUniVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ) 573 573 { 574 UInt uiAbsPartIdx = pcCU->getZorderIdxInCU(); 575 576 // Step 1: get depth reference 574 // Get depth reference 577 575 Int depthRefViewIdx = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan; 578 576 TComPic* pRefPicBaseDepth = pcCU->getSlice()->getIvPic (true, depthRefViewIdx ); … … 581 579 assert(pcBaseViewDepthPicYuv != NULL); 582 580 583 // Step 2: get texture reference581 // Get texture reference 584 582 Int iRefIdx = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr ); 585 583 assert(iRefIdx >= 0); … … 588 586 assert(pcBaseViewTxtPicYuv != NULL); 589 587 590 // Step 3: initialize the LUT according to the reference viewIdx588 // Initialize LUT according to the reference viewIdx 591 589 Int txtRefViewIdx = pRefPicBaseTxt->getViewIndex(); 592 590 Int* pShiftLUT = pcCU->getSlice()->getDepthToDisparityB( txtRefViewIdx ); 593 591 assert( txtRefViewIdx < pcCU->getSlice()->getViewIndex() ); 594 592 595 // Step 4:Do compensation593 // Do compensation 596 594 TComMv cDv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); // cDv is the disparity vector derived from the neighbors 597 595 pcCU->clipMv(cDv); 596 UInt uiAbsPartIdx = pcCU->getZorderIdxInCU(); 598 597 Int iBlkX = ( pcCU->getAddr() % pRefPicBaseDepth->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartIdx ] ]; 599 598 Int iBlkY = ( pcCU->getAddr() / pRefPicBaseDepth->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ uiAbsPartIdx ] ]; … … 752 751 TComYuv* pcMbYuv; 753 752 Int iRefIdx[2] = {-1, -1}; 753 Bool bi = (pcCU->getCUMvField( REF_PIC_LIST_0 )->getRefIdx( uiPartAddr ) >= 0 && pcCU->getCUMvField( REF_PIC_LIST_1 )->getRefIdx( uiPartAddr ) >= 0); 754 754 755 755 for ( Int iRefList = 0; iRefList < 2; iRefList++ ) … … 760 760 if ( iRefIdx[iRefList] < 0 ) 761 761 continue; 762 763 762 assert( iRefIdx[iRefList] < pcCU->getSlice()->getNumRefIdx(eRefPicList) ); 764 763 765 764 pcMbYuv = &m_acYuvPred[iRefList]; 766 if( pcCU->getCUMvField( REF_PIC_LIST_0 )->getRefIdx( uiPartAddr ) >= 0 && pcCU->getCUMvField( REF_PIC_LIST_1 )->getRefIdx( uiPartAddr ) >= 0 ) 767 xPredInterUniVSP ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, true ); 768 else 769 xPredInterUniVSP ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv ); 765 xPredInterUniVSP ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, bi ); 770 766 } 771 767 … … 1583 1579 assert( ref[refOffset] >= 0 && ref[refOffset]<= 255 ); 1584 1580 m_if.filterHorLuma( &ref[refOffset], refStride, &dst[xTxt], dstStride, nTxtPerDepthX, nTxtPerDepthY, xFrac, !bi ); 1585 1586 1581 } 1587 1582 ref += refStride*nTxtPerDepthY;
Note: See TracChangeset for help on using the changeset viewer.