Ignore:
Timestamp:
29 Jan 2014, 03:07:07 (11 years ago)
Author:
ntt
Message:

Integration of G0148

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev1-NTT/source/Lib/TLibCommon/TComPrediction.cpp

    r795 r809  
    863863Void TComPrediction::xPredInterUniVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi )
    864864{
     865#if NTT_STORE_SPDV_VSP_G0148
     866  Int vspSize = pcCU->getVSPFlag( uiPartAddr ) >> 1;
     867
     868  Int widthSubPU, heightSubPU;
     869  if (vspSize)
     870  {
     871    widthSubPU  = 8;
     872    heightSubPU = 4;
     873  }
     874  else
     875  {
     876    widthSubPU  = 4;
     877    heightSubPU = 8;
     878  }
     879  xPredInterUniSubPU( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi, widthSubPU, heightSubPU );
     880
     881#else // NTT_STORE_SPDV_VSP_G0148
    865882  // Get depth reference
    866883  Int       depthRefViewIdx = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;
     
    914931  xPredInterLumaBlkFromDM   ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize);
    915932  xPredInterChromaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize);
    916 }
     933#endif // NTT_STORE_SPDV_VSP_G0148
     934}
     935
     936#if NTT_STORE_SPDV_VSP_G0148
     937Void TComPrediction::xPredInterUniSubPU( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, Int widthSubPU, Int heightSubPU )
     938{
     939  UInt numPartsInLine       = pcCU->getPic()->getNumPartInWidth();
     940  UInt horiNumPartsInSubPU  = widthSubPU >> 2;
     941  UInt vertNumPartsInSubPU  = (heightSubPU >> 2) * numPartsInLine;
     942
     943  UInt partAddrRasterLine = g_auiZscanToRaster[ uiPartAddr ];
     944
     945  for( Int posY=0; posY<iHeight; posY+=heightSubPU, partAddrRasterLine+=vertNumPartsInSubPU )
     946  {
     947    UInt partAddrRasterSubPU = partAddrRasterLine;
     948    for( Int posX=0; posX<iWidth; posX+=widthSubPU, partAddrRasterSubPU+=horiNumPartsInSubPU )
     949    {
     950      UInt    partAddrSubPU = g_auiRasterToZscan[ partAddrRasterSubPU ];
     951      Int     refIdx        = pcCU->getCUMvField( eRefPicList )->getRefIdx( partAddrSubPU );           assert (refIdx >= 0);
     952      TComMv  cMv           = pcCU->getCUMvField( eRefPicList )->getMv( partAddrSubPU );
     953      pcCU->clipMv(cMv);
     954
     955      xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi );
     956      xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi );
     957
     958    }
     959  }
     960}
     961#endif // NTT_STORE_SPDV_VSP_G0148
     962
    917963#endif
    918964
     
    17691815
    17701816#if H_3D_VSP
     1817#if !(NTT_STORE_SPDV_VSP_G0148)
    17711818// not fully support iRatioTxtPerDepth* != 1
    17721819Void TComPrediction::xGetVirtualDepth( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *mv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int &vspSize, Int ratioTxtPerDepthX, Int ratioTxtPerDepthY )
     
    20812128  }
    20822129}
    2083 
     2130#endif
    20842131
    20852132#if H_3D_VSP_CONSTRAINED
Note: See TracChangeset for help on using the changeset viewer.