Ignore:
Timestamp:
17 Jul 2015, 05:43:37 (9 years ago)
Author:
seregin
Message:

port rev 4322 (g_bitDepth)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TComWeightPrediction.cpp

    r1262 r1287  
    6767Void TComWeightPrediction::addWeightBi( const TComYuv              *pcYuvSrc0,
    6868                                        const TComYuv              *pcYuvSrc1,
     69                                        const BitDepths            &bitDepths,
    6970                                        const UInt                  iPartUnitIdx,
    7071                                        const UInt                  uiWidth,
     
    7374                                        const WPScalingParam *const wp1,
    7475                                              TComYuv        *const rpcYuvDst,
    75                                         const Bool                  bRoundLuma )
     76                                        const Bool                  bRoundLuma)
    7677{
    7778
     
    9192    const Int  w0          = wp0[compID].w;
    9293    const Int  offset      = wp0[compID].offset;
    93     const Int  clipBD      = g_bitDepth[toChannelType(compID)];
     94    const Int  clipBD      = bitDepths.recon[toChannelType(compID)];
    9495    const Int  shiftNum    = std::max<Int>(2, (IF_INTERNAL_PREC - clipBD));
    9596    const Int  shift       = wp0[compID].shift + shiftNum;
     
    131132//! weighted averaging for uni-pred
    132133Void TComWeightPrediction::addWeightUni( const TComYuv        *const pcYuvSrc0,
     134                                         const BitDepths            &bitDepths,
    133135                                         const UInt                  iPartUnitIdx,
    134136                                         const UInt                  uiWidth,
     
    149151    const Int  w0          = wp0[compID].w;
    150152    const Int  offset      = wp0[compID].offset;
    151     const Int  clipBD      = g_bitDepth[toChannelType(compID)];
     153    const Int  clipBD      = bitDepths.recon[toChannelType(compID)];
    152154    const Int  shiftNum    = std::max<Int>(2, (IF_INTERNAL_PREC - clipBD));
    153155    const Int  shift       = wp0[compID].shift + shiftNum;
     
    230232    for ( Int yuv=0 ; yuv<numValidComponent ; yuv++ )
    231233    {
    232       const Int bitDepth            = g_bitDepth[toChannelType(ComponentID(yuv))];
     234#if SVC_EXTENSION
     235      const Int bitDepth            = pcSlice->getBitDepth(toChannelType(ComponentID(yuv)));
     236#else
     237      const Int bitDepth            = pcSlice->getSPS()->getBitDepth(toChannelType(ComponentID(yuv)));
     238#endif
    233239      const Int offsetScalingFactor = bUseHighPrecisionPredictionWeighting ? 1 : (1 << (bitDepth-8));
    234240
     
    251257    for ( Int yuv=0 ; yuv<numValidComponent ; yuv++ )
    252258    {
    253       const Int bitDepth            = g_bitDepth[toChannelType(ComponentID(yuv))];
     259#if SVC_EXTENSION
     260      const Int bitDepth            = pcSlice->getBitDepth(toChannelType(ComponentID(yuv)));
     261#else
     262      const Int bitDepth            = pcSlice->getSPS()->getBitDepth(toChannelType(ComponentID(yuv)));
     263#endif
    254264      const Int offsetScalingFactor = bUseHighPrecisionPredictionWeighting ? 1 : (1 << (bitDepth-8));
    255265
     
    283293  if( iRefIdx0 >= 0 && iRefIdx1 >= 0 )
    284294  {
    285     addWeightBi(pcYuvSrc0, pcYuvSrc1, uiPartIdx, iWidth, iHeight, pwp0, pwp1, rpcYuvDst );
     295#if SVC_EXTENSION
     296    addWeightBi(pcYuvSrc0, pcYuvSrc1, pcCU->getSlice()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp0, pwp1, rpcYuvDst );
     297#else
     298    addWeightBi(pcYuvSrc0, pcYuvSrc1, pcCU->getSlice()->getSPS()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp0, pwp1, rpcYuvDst );
     299#endif
    286300  }
    287301  else if ( iRefIdx0 >= 0 && iRefIdx1 <  0 )
    288302  {
    289     addWeightUni( pcYuvSrc0, uiPartIdx, iWidth, iHeight, pwp0, rpcYuvDst );
     303#if SVC_EXTENSION
     304    addWeightUni( pcYuvSrc0, pcCU->getSlice()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp0, rpcYuvDst );
     305#else
     306    addWeightUni( pcYuvSrc0, pcCU->getSlice()->getSPS()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp0, rpcYuvDst );
     307#endif
    290308  }
    291309  else if ( iRefIdx0 <  0 && iRefIdx1 >= 0 )
    292310  {
    293     addWeightUni( pcYuvSrc1, uiPartIdx, iWidth, iHeight, pwp1, rpcYuvDst );
     311#if SVC_EXTENSION
     312    addWeightUni( pcYuvSrc1, pcCU->getSlice()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp1, rpcYuvDst );
     313#else
     314    addWeightUni( pcYuvSrc1, pcCU->getSlice()->getSPS()->getBitDepths(), uiPartIdx, iWidth, iHeight, pwp1, rpcYuvDst );
     315#endif
    294316  }
    295317  else
     
    327349    getWpScaling(pcCU, -1, iRefIdx, pwpTmp, pwp);
    328350  }
    329   addWeightUni( pcYuvSrc, uiPartAddr, iWidth, iHeight, pwp, pcYuvPred );
    330 }
     351#if SVC_EXTENSION
     352  addWeightUni( pcYuvSrc, pcCU->getSlice()->getBitDepths(), uiPartAddr, iWidth, iHeight, pwp, pcYuvPred );
     353#else
     354  addWeightUni( pcYuvSrc, pcCU->getSlice()->getSPS()->getBitDepths(), uiPartAddr, iWidth, iHeight, pwp, pcYuvPred );
     355#endif
     356}
Note: See TracChangeset for help on using the changeset viewer.