Ignore:
Timestamp:
17 Aug 2013, 01:38:28 (11 years ago)
Author:
hisilicon-htm
Message:

JCT3V-E0242:On DMM simplification
JCT3V-E0283:Fast Intra Prediction Mode Selection for Intra Depth Map Coding

Location:
branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComPrediction.cpp

    r572 r582  
    21402140    iDC += piRefBlkY[k];
    21412141  }
     2142
    21422143#if SCU_HS_DMM4_REMOVE_DIV_E0242
    2143   iDC = iDC >> (6 - pcCU->getDepth(0))*2;
     2144Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2;
     2145iDC = iDC >> (cuMaxLog2Size - pcCU->getDepth(0))*2;
    21442146#else
    21452147  iDC /= (uiWidth*uiHeight);
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.cpp

    r573 r582  
    486486#if SCU_HS_FAST_DEPTH_INTRA_E0238
    487487
    488 UInt TComRdCost::calcVAR (Pel* pi0, Int iStride, Int cuDepth)
    489 {
    490   UInt uiSum = 0;
     488UInt TComRdCost::calcVAR (Pel* pi0, Int uiWidth, Int uiHeight, Int cuDepth)
     489{
    491490  Int x, y;
    492491  Int temp = 0;
    493   if (iStride == 4)
    494       cuDepth = 4;
    495 
    496   for (x = 0; x < iStride; x++)
    497   {
    498       for (y = 0; y < iStride; y++)
     492
     493  for (x = 0; x <  uiHeight; x++)
     494  {
     495     for (y = 0; y < uiWidth; y++)
    499496      {
    500          temp += pi0[x*iStride+y];
     497         temp += pi0[x*uiHeight+y];
    501498      }
    502499  }
    503   temp = temp >> (6-cuDepth)*2;
    504 
    505   for (x = 0; x < iStride; x++)
    506   {
    507       for (y = 0; y < iStride; y++)
     500  Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2;
     501  if (uiWidth == 4)
     502  {
     503     cuDepth = cuMaxLog2Size-2;
     504  }
     505
     506  temp = temp >> (cuMaxLog2Size-cuDepth)*2;
     507
     508  UInt uiSum = 0;
     509    for (x = 0; x <  uiHeight; x++)
     510  {
     511      for (y = 0; y < uiWidth; y++)
    508512      {
    509          uiSum += (pi0[x*iStride+y]-temp)*(pi0[x*iStride+y]-temp);
     513        uiSum += (pi0[x*uiHeight+y]-temp)*(pi0[x*uiHeight+y]-temp);
    510514      }
    511515  }
    512   return (uiSum >> (6-cuDepth)*2);
     516     return (uiSum >> (cuMaxLog2Size-cuDepth)*2);
    513517
    514518}
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.h

    r573 r582  
    229229  UInt    calcHAD(Int bitDepth, Pel* pi0, Int iStride0, Pel* pi1, Int iStride1, Int iWidth, Int iHeight );
    230230#if SCU_HS_FAST_DEPTH_INTRA_E0238
    231   UInt    calcVAR (Pel* pi0, Int iStride, Int cuDepth);
     231  UInt    calcVAR(Pel* pi0, Int uiWidth, Int uiHeight, Int cuDepth);
    232232#endif 
    233233  // for motion cost
Note: See TracChangeset for help on using the changeset viewer.