Changeset 1443 in SHVCSoftware


Ignore:
Timestamp:
13 Aug 2015, 19:17:31 (9 years ago)
Author:
seregin
Message:

port rev 4591

Location:
branches/SHM-dev/source/Lib
Files:
2 edited

Legend:

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

    r1343 r1443  
    166166  clearSliceBuffer();
    167167
    168   for (Int i = 0; i < m_numCtusInFrame; i++)
    169   {
    170     m_pictureCtuArray[i]->destroy();
    171     delete m_pictureCtuArray[i];
    172     m_pictureCtuArray[i] = NULL;
    173   }
    174   delete [] m_pictureCtuArray;
    175   m_pictureCtuArray = NULL;
     168  if (m_pictureCtuArray)
     169  {
     170    for (Int i = 0; i < m_numCtusInFrame; i++)
     171    {
     172      if (m_pictureCtuArray[i])
     173      {
     174        m_pictureCtuArray[i]->destroy();
     175        delete m_pictureCtuArray[i];
     176        m_pictureCtuArray[i] = NULL;
     177      }
     178    }
     179    delete [] m_pictureCtuArray;
     180    m_pictureCtuArray = NULL;
     181  }
    176182
    177183  delete [] m_ctuTsToRsAddrMap;
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncPreanalyzer.cpp

    r1259 r1443  
    8787        UInt64 uiSum[4] = {0, 0, 0, 0};
    8888        UInt64 uiSumSq[4] = {0, 0, 0, 0};
    89         UInt uiNumPixInAQPart = 0;
    9089        UInt by = 0;
    9190        for ( ; by < uiCurrAQPartHeight>>1; by++ )
    9291        {
    9392          UInt bx = 0;
    94           for ( ; bx < uiCurrAQPartWidth>>1; bx++, uiNumPixInAQPart++ )
     93          for ( ; bx < uiCurrAQPartWidth>>1; bx++ )
    9594          {
    9695            uiSum  [0] += pBlkY[bx];
    9796            uiSumSq[0] += pBlkY[bx] * pBlkY[bx];
    9897          }
    99           for ( ; bx < uiCurrAQPartWidth; bx++, uiNumPixInAQPart++ )
     98          for ( ; bx < uiCurrAQPartWidth; bx++ )
    10099          {
    101100            uiSum  [1] += pBlkY[bx];
     
    107106        {
    108107          UInt bx = 0;
    109           for ( ; bx < uiCurrAQPartWidth>>1; bx++, uiNumPixInAQPart++ )
     108          for ( ; bx < uiCurrAQPartWidth>>1; bx++ )
    110109          {
    111110            uiSum  [2] += pBlkY[bx];
    112111            uiSumSq[2] += pBlkY[bx] * pBlkY[bx];
    113112          }
    114           for ( ; bx < uiCurrAQPartWidth; bx++, uiNumPixInAQPart++ )
     113          for ( ; bx < uiCurrAQPartWidth; bx++ )
    115114          {
    116115            uiSum  [3] += pBlkY[bx];
     
    120119        }
    121120
     121        assert ((uiCurrAQPartWidth&1)==0);
     122        assert ((uiCurrAQPartHeight&1)==0);
     123        const UInt pixelWidthOfQuadrants  = uiCurrAQPartWidth >>1;
     124        const UInt pixelHeightOfQuadrants = uiCurrAQPartHeight>>1;
     125        const UInt numPixInAQPart         = pixelWidthOfQuadrants * pixelHeightOfQuadrants;
     126
    122127        Double dMinVar = DBL_MAX;
    123         for ( Int i=0; i<4; i++)
     128        if (numPixInAQPart!=0)
    124129        {
    125           const Double dAverage = Double(uiSum[i]) / uiNumPixInAQPart;
    126           const Double dVariance = Double(uiSumSq[i]) / uiNumPixInAQPart - dAverage * dAverage;
    127           dMinVar = min(dMinVar, dVariance);
     130          for ( Int i=0; i<4; i++)
     131          {
     132            const Double dAverage = Double(uiSum[i]) / numPixInAQPart;
     133            const Double dVariance = Double(uiSumSq[i]) / numPixInAQPart - dAverage * dAverage;
     134            dMinVar = min(dMinVar, dVariance);
     135          }
     136        }
     137        else
     138        {
     139          dMinVar = 0.0;
    128140        }
    129141        const Double dActivity = 1.0 + dMinVar;
Note: See TracChangeset for help on using the changeset viewer.