Changeset 313 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComPrediction.cpp


Ignore:
Timestamp:
20 Mar 2013, 21:35:14 (11 years ago)
Author:
tech
Message:

Reintegrated branch 6.0-dev0 rev. 312.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r296 r313  
    10661066    else
    10671067    {
     1068#if FIX_LGE_WP_FOR_3D_C0223
     1069      if ( ( pcCU->getSlice()->getPPS()->getUseWP()      && pcCU->getSlice()->getSliceType() == P_SLICE ) ||
     1070         ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE ) )
     1071#else
    10681072      if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
     1073#endif
    10691074      {
    10701075#if DEPTH_MAP_GENERATION
     
    11001105    }
    11011106  }
    1102 
     1107#if FIX_LGE_WP_FOR_3D_C0223
     1108  if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE  )
     1109#else
    11031110  if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
     1111#endif
    11041112  {
    11051113#if MERL_VSP_C0152
     
    11101118    xWeightedPredictionBi( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    11111119  }
     1120#if FIX_LGE_WP_FOR_3D_C0223
     1121  else if ( pcCU->getSlice()->getPPS()->getUseWP() && pcCU->getSlice()->getSliceType() == P_SLICE )
     1122
     1123  {
     1124#if MERL_VSP_C0152
     1125    if(pcCU->getVSPIndex(uiPartAddr))
     1126      m_acYuvPred[0].copyPartToPartYuv( rpcYuvPred, uiPartAddr, iWidth, iHeight );
     1127    else
     1128#endif
     1129      xWeightedPredictionUni( pcCU, &m_acYuvPred[0], uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, rpcYuvPred, iPartIdx );
     1130  }
     1131#endif
    11121132  else
    11131133  {
     
    14341454  Int dstStride = dstPic->getStride();
    14351455  Int depStride =  pPicBaseDepth->getStride();
    1436 
     1456#if MTK_DVPREFINE_BVSP_BUG_FIX
     1457  Int depthPosX = Clip3(0,   widthLuma - size_x,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
     1458  Int depthPosY = Clip3(0,   heightLuma- size_y,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
     1459#else
    14371460  Int depthPosX = Clip3(0,   widthLuma - size_x - 1,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
    14381461  Int depthPosY = Clip3(0,   heightLuma- size_y - 1,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
    1439 
     1462#endif
    14401463  Pel *ref    = refPic->getLumaAddr() + posX + posY * refStride;
    14411464  Pel *dst    = dstPic->getLumaAddr(partAddr);
     
    15951618    depthPosX = posX * nDepthPerTxtX + (mv->getHor()>>2);        //mv denotes the disparity for VSP
    15961619  }
     1620#if MTK_DVPREFINE_BVSP_BUG_FIX
     1621  depthPosX = Clip3(0, widthDepth - (size_x<<1), depthPosX);
     1622#else
    15971623  depthPosX = Clip3(0, widthDepth - (size_x<<1) - 1, depthPosX);
    1598  
     1624#endif
    15991625  if ( heightChroma > heightDepth )
    16001626  {
     
    16091635    depthPosY = posY * nDepthPerTxtY + (mv->getVer()>>2);     //mv denotes the disparity for VSP
    16101636  }
     1637#if MTK_DVPREFINE_BVSP_BUG_FIX
     1638  depthPosY = Clip3(0, heightDepth - (size_y<<1), depthPosY);
     1639#else
    16111640  depthPosY = Clip3(0, heightDepth - (size_y<<1) - 1, depthPosY);
     1641#endif
    16121642
    16131643  Pel *refCb  = refPic->getCbAddr() + posX + posY * refStride;
Note: See TracChangeset for help on using the changeset viewer.