Changeset 1368 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
22 Jul 2015, 04:43:32 (10 years ago)
Author:
seregin
Message:

port rev 4486

Location:
branches/SHM-dev/source/Lib/TLibCommon
Files:
3 edited

Legend:

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

    r1335 r1368  
    113113
    114114// TODO: move this function to TComPrediction.cpp.
    115 Void TComPrediction::initIntraPatternChType( TComTU &rTu, Bool& bAbove, Bool& bLeft, const ComponentID compID, const Bool bFilterRefSamples DEBUG_STRING_FN_DECLARE(sDebug))
     115Void TComPrediction::initIntraPatternChType( TComTU &rTu, const ComponentID compID, const Bool bFilterRefSamples DEBUG_STRING_FN_DECLARE(sDebug))
    116116{
    117117  const ChannelType chType    = toChannelType(compID);
     
    156156  iNumIntraNeighbor  += isBelowLeftAvailable ( pcCU, uiPartIdxLT, uiPartIdxLB, (bNeighborFlags + iLeftUnits - 1 - iTUHeightInUnits) );
    157157
    158   bAbove = true;
    159   bLeft  = true;
    160 
    161158  const UInt         uiROIWidth  = uiTuWidth2+1;
    162159  const UInt         uiROIHeight = uiTuHeight2+1;
  • branches/SHM-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r1307 r1368  
    181181// Function for calculating DC value of the reference samples used in Intra prediction
    182182//NOTE: Bit-Limit - 25-bit source
    183 Pel TComPrediction::predIntraGetPredValDC( const Pel* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight, Bool bAbove, Bool bLeft )
     183Pel TComPrediction::predIntraGetPredValDC( const Pel* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight)
    184184{
    185185  assert(iWidth > 0 && iHeight > 0);
     
    187187  Pel pDcVal;
    188188
    189   if (bAbove)
    190   {
    191     for (iInd = 0;iInd < iWidth;iInd++)
    192     {
    193       iSum += pSrc[iInd-iSrcStride];
    194     }
    195   }
    196   if (bLeft)
    197   {
    198     for (iInd = 0;iInd < iHeight;iInd++)
    199     {
    200       iSum += pSrc[iInd*iSrcStride-1];
    201     }
    202   }
    203 
    204   if (bAbove && bLeft)
    205   {
    206     pDcVal = (iSum + iWidth) / (iWidth + iHeight);
    207   }
    208   else if (bAbove)
    209   {
    210     pDcVal = (iSum + iWidth/2) / iWidth;
    211   }
    212   else if (bLeft)
    213   {
    214     pDcVal = (iSum + iHeight/2) / iHeight;
    215   }
    216   else
    217   {
    218     pDcVal = pSrc[-1]; // Default DC value already calculated and placed in the prediction array if no neighbors are available
    219   }
     189  for (iInd = 0;iInd < iWidth;iInd++)
     190  {
     191    iSum += pSrc[iInd-iSrcStride];
     192  }
     193  for (iInd = 0;iInd < iHeight;iInd++)
     194  {
     195    iSum += pSrc[iInd*iSrcStride-1];
     196  }
     197
     198  pDcVal = (iSum + iWidth) / (iWidth + iHeight);
    220199
    221200  return pDcVal;
     
    252231                                          Pel* pTrueDst, Int dstStrideTrue,
    253232                                          UInt uiWidth, UInt uiHeight, ChannelType channelType,
    254                                           UInt dirMode, Bool blkAboveAvailable, Bool blkLeftAvailable
    255                                   , const Bool bEnableEdgeFilters
     233                                          UInt dirMode, const Bool bEnableEdgeFilters
    256234                                  )
    257235{
     
    266244  if (modeDC)
    267245  {
    268     const Pel dcval = predIntraGetPredValDC(pSrc, srcStride, width, height, blkAboveAvailable, blkLeftAvailable);
     246    const Pel dcval = predIntraGetPredValDC(pSrc, srcStride, width, height);
    269247
    270248    for (Int y=height;y>0;y--, pTrueDst+=dstStrideTrue)
     
    297275    Pel  refLeft[2*MAX_CU_SIZE+1];
    298276
    299     // Initialise the Main and Left reference array.
     277    // Initialize the Main and Left reference array.
    300278    if (intraPredAngle < 0)
    301279    {
     
    410388}
    411389
    412 Void TComPrediction::predIntraAng( const ComponentID compID, UInt uiDirMode, Pel* piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, Bool bAbove, Bool bLeft, const Bool bUseFilteredPredSamples, const Bool bUseLosslessDPCM )
     390Void TComPrediction::predIntraAng( const ComponentID compID, UInt uiDirMode, Pel* piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, const Bool bUseFilteredPredSamples, const Bool bUseLosslessDPCM )
    413391{
    414392  const ChannelType    channelType = toChannelType(compID);
     
    488466#endif
    489467#endif
    490       xPredIntraAng( channelsBitDepthForPrediction, ptrSrc+sw+1, sw, pDst, uiStride, iWidth, iHeight, channelType, uiDirMode, bAbove, bLeft, enableEdgeFilters );
    491 
    492       if(( uiDirMode == DC_IDX ) && bAbove && bLeft )
     468      xPredIntraAng( channelsBitDepthForPrediction, ptrSrc+sw+1, sw, pDst, uiStride, iWidth, iHeight, channelType, uiDirMode, enableEdgeFilters );
     469
     470      if( uiDirMode == DC_IDX )
    493471      {
    494472        xDCPredFiltering( ptrSrc+sw+1, sw, pDst, uiStride, iWidth, iHeight, channelType );
  • branches/SHM-dev/source/Lib/TLibCommon/TComPrediction.h

    r1315 r1368  
    8888  Int    m_iLumaRecStride;       ///< stride of #m_pLumaRecBuffer array
    8989
    90   Void xPredIntraAng            ( Int bitDepth, const Pel* pSrc, Int srcStride, Pel* pDst, Int dstStride, UInt width, UInt height, ChannelType channelType, UInt dirMode, Bool blkAboveAvailable, Bool blkLeftAvailable, const Bool bEnableEdgeFilters );
     90  Void xPredIntraAng            ( Int bitDepth, const Pel* pSrc, Int srcStride, Pel* pDst, Int dstStride, UInt width, UInt height, ChannelType channelType, UInt dirMode, const Bool bEnableEdgeFilters );
    9191  Void xPredIntraPlanar         ( const Pel* pSrc, Int srcStride, Pel* rpDst, Int dstStride, UInt width, UInt height );
    9292
     
    122122
    123123  // Angular Intra
    124   Void predIntraAng               ( const ComponentID compID, UInt uiDirMode, Pel *piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, Bool bAbove, Bool bLeft, const Bool bUseFilteredPredSamples, const Bool bUseLosslessDPCM = false );
     124  Void predIntraAng               ( const ComponentID compID, UInt uiDirMode, Pel *piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, const Bool bUseFilteredPredSamples, const Bool bUseLosslessDPCM = false );
    125125
    126   Pel  predIntraGetPredValDC      ( const Pel* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight, Bool bAbove, Bool bLeft );
     126  Pel  predIntraGetPredValDC      ( const Pel* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight);
    127127
    128128  Pel*  getPredictorPtr           ( const ComponentID compID, const Bool bUseFilteredPredictions )
     
    134134  /// set parameters from CU data for accessing intra data
    135135  Void initIntraPatternChType ( TComTU &rTu,
    136                               Bool&       bAbove,
    137                               Bool&       bLeft,
    138136                              const ComponentID compID, const Bool bFilterRefSamples
    139137                              DEBUG_STRING_FN_DECLARE(sDebug)
Note: See TracChangeset for help on using the changeset viewer.