Changeset 1225 in 3DVCSoftware


Ignore:
Timestamp:
22 May 2015, 05:38:04 (9 years ago)
Author:
sharpjp-htm
Message:

Migration of illumination compensation(NH_3D_IC) and small fix(H_MV_ENC_DEC_TRAC_FIX)

Location:
branches/HTM-14.1-update-dev2-Sharp
Files:
2 added
35 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev2-Sharp/source/App/TAppEncoder/TAppEncTop.cpp

    r1200 r1225  
    291291    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    292292#endif // H_3D_VSO
    293 #if H_3D_IC
     293#if NH_3D_IC
    294294    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC );
    295295    m_cTEncTop.setUseICLowLatencyEnc           ( m_bUseLowLatencyICEnc );
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/ContextTables.h

    r1200 r1225  
    166166#endif
    167167
    168 #if H_3D_IC
     168#if NH_3D_IC
    169169#define NUM_IC_FLAG_CTX               1       ///< number of context models for illumination compensation flag
    170170#endif
     
    552552
    553553#endif
    554 #if H_3D_IC
     554#if NH_3D_IC
    555555static const UChar
    556556INIT_IC_FLAG[3][NUM_IC_FLAG_CTX] = 
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComCodingStatistics.h

    r1200 r1225  
    9292  STATS__CABAC_BITS__ALIGNED_SIGN_BIT,
    9393  STATS__CABAC_BITS__ALIGNED_ESCAPE_BITS,
     94#if NH_3D_IC
     95  STATS__CABAC_BITS__3D_IC,
     96#endif
    9497  STATS__NUM_STATS
    9598};
     
    142145    "CABAC_BITS__ALIGNED_SIGN_BIT",
    143146    "CABAC_BITS__ALIGNED_ESCAPE_BITS"
     147#if NH_3D_IC
     148    "CABAC_BITS__3D_IC"
     149#endif
    144150  };
    145151  assert(STATS__NUM_STATS == sizeof(statNames)/sizeof(Char *) && name < STATS__NUM_STATS);
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComDataCU.cpp

    r1213 r1225  
    137137  m_puhARPW              = NULL;
    138138#endif
    139 #if H_3D_IC
     139#if NH_3D_IC
    140140  m_pbICFlag             = NULL;
    141141#endif
     
    252252    m_puhARPW            = new UChar[ uiNumPartition];
    253253#endif
    254 #if H_3D_IC
     254#if NH_3D_IC
    255255    m_pbICFlag           = (Bool* )xMalloc(Bool,   uiNumPartition);
    256256#endif
     
    471471    if ( m_puhARPW            ) { delete[] m_puhARPW;           m_puhARPW           = NULL; }
    472472#endif
    473 #if H_3D_IC
     473#if NH_3D_IC
    474474    if ( m_pbICFlag           ) { xFree(m_pbICFlag);            m_pbICFlag          = NULL; }
    475475#endif
     
    601601    m_puhARPW   [ui] = pcFrom->getARPW( ui );
    602602#endif
    603 #if H_3D_IC
    604     m_pbICFlag[ui]   =  pcFrom->m_pbICFlag[ui];
     603#if NH_3D_IC
     604  memset( m_pbICFlag          , false,                      m_uiNumPartition * sizeof( *m_pbICFlag ) );
    605605#endif
    606606
     
    654654    memset( m_puhARPW           + firstElement, 0,                        numElements * sizeof( UChar )         );
    655655#endif
    656 #if H_3D_IC
    657     memset( m_pbICFlag          + firstElement, false,                    numElements * sizeof( *m_pbICFlag )   );
    658 #endif
    659 
    660656
    661657#if H_3D_DIM
     
    815811      m_puhARPW[ui] = 0;
    816812#endif
    817 #if H_3D_IC
     813#if NH_3D_IC
    818814      m_pbICFlag[ui]  = false;
    819815#endif
     
    926922  memset( m_puhHeight,         uhHeight, iSizeInUchar );
    927923  memset( m_pbIPCMFlag,        0, iSizeInBool  );
    928 #if H_3D_IC
     924#if NH_3D_IC
    929925  memset( m_pbICFlag,          0, iSizeInBool  );
    930926#endif
     
    986982      m_puhARPW           [ui] = pcCU->getARPW( uiPartOffset+ui );
    987983#endif
    988 #if H_3D_IC
     984#if NH_3D_IC
    989985      m_pbICFlag          [ui] = pcCU->m_pbICFlag[uiPartOffset+ui];
    990986#endif
     
    10931089  m_puhARPW             = pcCU->getARPW()             + uiPart;
    10941090#endif
    1095 #if H_3D_IC
     1091#if NH_3D_IC
    10961092  m_pbICFlag            = pcCU->getICFlag()           + uiPart;
    10971093#endif
     
    12591255  }
    12601256#endif
    1261 #if H_3D_IC
     1257#if NH_3D_IC
    12621258  m_pbICFlag           = pcCU->getICFlag()                + uiAbsPartIdx;
    12631259#endif
     
    13831379  memcpy( m_puhARPW             + uiOffset, pcCU->getARPW(),              iSizeInUchar );
    13841380#endif
    1385 #if H_3D_IC
     1381#if NH_3D_IC
    13861382  memcpy( m_pbICFlag            + uiOffset, pcCU->getICFlag(),            iSizeInBool );
    13871383#endif
     
    15041500  memcpy( rpcCU->getARPW()             + m_uiAbsIdxInLCU, m_puhARPW,             iSizeInUchar );
    15051501#endif
    1506 #if H_3D_IC
    1507   memcpy( rpcCU->getICFlag()           + m_uiAbsIdxInLCU, m_pbICFlag,            iSizeInBool );
     1502#if NH_3D_IC
     1503  memcpy( pCtu->getICFlag() + m_absZIdxInCtu, m_pbICFlag, sizeof( *m_pbICFlag ) * m_uiNumPartition );
    15081504#endif
    15091505
     
    15451541#if H_3D_ARP
    15461542  memcpy( rpcCU->getARPW()             + uiPartOffset, m_puhARPW,             iSizeInUchar );
    1547 #endif
    1548 #if H_3D_IC
    1549   memcpy( rpcCU->getICFlag()           + uiPartOffset, m_pbICFlag,            iSizeInBool );
    15501543#endif
    15511544
     
    27312724
    27322725// This is for use by a leaf/sub CU object only, with no additional AbsPartIdx
    2733 #if H_3D_IC
     2726#if NH_3D_IC
    27342727Void TComDataCU::getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx, Bool bLCU)
    27352728{
     
    36993692#endif
    37003693
    3701 #if H_3D_IC
     3694#if NH_3D_IC
    37023695  Bool bICFlag = getICFlag(uiAbsPartIdx);
    37033696#endif
     
    37373730#if H_3D_VSP
    37383731    , (pcCULeft->getVSPFlag(uiLeftPartIdx) != 0
    3739 #if H_3D_IC
     3732#if NH_3D_IC
    37403733      && !bICFlag
    37413734#endif
     
    41854178    if (
    41864179      (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) &&
    4187 #if H_3D_IC
     4180#if NH_3D_IC
    41884181      !bICFlag &&
    41894182#endif
     
    52225215  return ( getSkipFlag( uiPartIdx ) );
    52235216}
    5224 
    5225 #if H_3D_IC
    5226 Bool TComDataCU::isIC( UInt uiPartIdx )
    5227 {
    5228     if ( m_pcSlice->isIntra () )
    5229     {
    5230         return false;
    5231     }
    5232     return ( ( getSkipFlag(uiPartIdx) || getPredictionMode(uiPartIdx) == MODE_INTER) && getICFlag( uiPartIdx ) && isICFlagRequired( uiPartIdx ) );
    5233 }
    5234 #endif
    52355217
    52365218// ====================================================================================================================
     
    66816663#endif
    66826664
    6683 #if H_3D_IC
     6665#if NH_3D_IC
    66846666Void TComDataCU::setICFlagSubParts( Bool bICFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
    66856667{
    6686   memset( m_pbICFlag + uiAbsPartIdx, bICFlag, (m_pcPic->getNumPartInCU() >> ( 2 * uiDepth ))*sizeof(Bool) );
     6668  memset( m_pbICFlag + uiAbsPartIdx, bICFlag, (m_pcPic->getNumPartitionsInCtu() >> ( 2 * uiDepth ))*sizeof(Bool) );
    66876669}
    66886670
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComDataCU.h

    r1213 r1225  
    179179  UChar*        m_puhARPW;
    180180#endif
    181 #if H_3D_IC
     181#if NH_3D_IC
    182182  Bool*         m_pbICFlag;           ///< array of IC flags
    183183#endif
     
    536536  Double        getARPWFactor      ( UInt uiIdx );
    537537#endif
    538 #if H_3D_IC
     538#if NH_3D_IC
    539539  Bool*         getICFlag          ()                        { return m_pbICFlag;               }
    540540  Bool          getICFlag          ( UInt uiIdx )            { return m_pbICFlag[uiIdx];        }
     
    705705  Bool          isBipredRestriction( UInt puIdx );
    706706
    707 #if H_3D_IC
    708   Bool          isIC      ( UInt uiPartIdx );
    709 #endif
    710 
    711707  // -------------------------------------------------------------------------------------------------------------------
    712708  // member functions for symbol prediction (most probable / mode conversion)
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComPattern.h

    r1200 r1225  
    8181//  TComPatternParam  m_cPatternCb;
    8282  //TComPatternParam  m_cPatternCr;
    83 #if H_3D_IC
     83#if NH_3D_IC
    8484  Bool              m_bICFlag;
    8585#endif
     
    9898  Int   getBitDepthY()            { return m_cPatternY.m_bitDepth; }
    9999
    100 #if H_3D_IC
     100#if NH_3D_IC
    101101  Bool  getICFlag()               { return m_bICFlag; }
    102102  Void  setICFlag( Bool bICFlag ) { m_bICFlag = bICFlag; }
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComPrediction.cpp

    r1200 r1225  
    201201    }
    202202  }
    203 #if H_3D_IC
     203#if NH_3D_IC
    204204  m_uiaShift[0] = 0;
    205205  for( Int i = 1; i < 64; i++ )
     
    13981398    {
    13991399#endif
    1400 #if H_3D_IC
    1401       Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() );
    1402       xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
     1400  for (UInt comp=COMPONENT_Y; comp<pcYuvPred->getNumberValidComponents(); comp++)
     1401  {
     1402    const ComponentID compID=ComponentID(comp);
     1403#if NH_3D_IC
     1404    Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() ) && ( isLuma(compID) || (iWidth > 8) );
     1405      xPredInterBlk(compID,  pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, pcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID))
    14031406#if H_3D_ARP
    14041407        , false
    14051408#endif
    14061409        , bICFlag );
    1407       bICFlag = bICFlag && (iWidth > 8);
    1408       xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
    1409 #if H_3D_ARP
    1410         , false
    1411 #endif
    1412         , bICFlag );
    14131410#else
    1414 
    1415   for (UInt comp=COMPONENT_Y; comp<pcYuvPred->getNumberValidComponents(); comp++)
    1416   {
    1417     const ComponentID compID=ComponentID(comp);
    14181411    xPredInterBlk  (compID,  pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, pcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)) );
    1419   }
    1420 #endif
     1412#endif
     1413  }
    14211414#if H_3D_ARP
    14221415    }
     
    19021895    , Bool filterType
    19031896#endif
    1904 #if H_3D_IC
     1897#if NH_3D_IC
    19051898    , Bool bICFlag
    19061899#endif
     
    19251918  {
    19261919    refOffset = mv->getHor() + mv->getVer() * refStride;
    1927     ref       = refPic->getLumaAddr( cu->getAddr(), cu->getZorderIdxInCU() + partAddr ) + refOffset;
     1920    ref       = refPic->getAddr(compID, cu->getCtuRsAddr(), cu->getZorderIdxInCtu() + partAddr ) + refOffset;
     1921
    19281922    xFrac     = 0;
    19291923    yFrac     = 0;
     
    19381932  if ( yFrac == 0 )
    19391933  {
    1940 #if H_3D_IC
    1941     m_if.filterHorLuma( ref, refStride, dst, dstStride, width, height, xFrac,       !bi || bICFlag
     1934#if NH_3D_IC
     1935    m_if.filterHor(compID, ref, refStride, dst,  dstStride, cxWidth, cxHeight, xFrac, !bi || bICFlag, chFmt, bitDepth
    19421936#else
    19431937    m_if.filterHor(compID, ref, refStride, dst,  dstStride, cxWidth, cxHeight, xFrac, !bi, chFmt, bitDepth
     
    19501944  else if ( xFrac == 0 )
    19511945  {
    1952 #if H_3D_IC
    1953     m_if.filterVerLuma( ref, refStride, dst, dstStride, width, height, yFrac, true, !bi || bICFlag
     1946#if NH_3D_IC
     1947    m_if.filterVer(compID, ref, refStride, dst, dstStride, cxWidth, cxHeight, yFrac, true, !bi || bICFlag, chFmt, bitDepth
    19541948#else
    19551949    m_if.filterVer(compID, ref, refStride, dst, dstStride, cxWidth, cxHeight, yFrac, true, !bi, chFmt, bitDepth
     
    19721966#endif
    19731967);
    1974 #if H_3D_IC
    1975     m_if.filterVerLuma(tmp + (halfFilterSize-1)*tmpStride, tmpStride, dst, dstStride, width, height,              yFrac, false, !bi || bICFlag
     1968#if NH_3D_IC
     1969    m_if.filterVer(compID, tmp + ((vFilterSize>>1) -1)*tmpStride, tmpStride, dst, dstStride, cxWidth, cxHeight,               yFrac, false, !bi || bICFlag, chFmt, bitDepth
    19761970#else
    19771971    m_if.filterVer(compID, tmp + ((vFilterSize>>1) -1)*tmpStride, tmpStride, dst, dstStride, cxWidth, cxHeight,               yFrac, false, !bi, chFmt, bitDepth
     
    19831977  }
    19841978
    1985 #if H_3D_IC
     1979#if NH_3D_IC
    19861980  if( bICFlag )
    19871981  {
    19881982    Int a, b, i, j;
    19891983    const Int iShift = IC_CONST_SHIFT;
    1990 
    1991     xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_LUMA );
    1992 
    1993 
    1994     for ( i = 0; i < height; i++ )
    1995     {
    1996       for ( j = 0; j < width; j++ )
    1997       {
    1998           dst[j] = Clip3( 0, ( 1 << g_bitDepthY ) - 1, ( ( a*dst[j] ) >> iShift ) + b );
     1984    Pel *dst2 = dst;
     1985
     1986    xGetLLSICPrediction( compID, cu, mv, refPic, a, b, bitDepth );
     1987
     1988    for ( i = 0; i < cxHeight; i++ )
     1989    {
     1990      for ( j = 0; j < cxWidth; j++ )
     1991      {
     1992        dst[j] = Clip3( 0, ( 1 << bitDepth ) - 1, ( ( a*dst[j] ) >> iShift ) + b );
    19991993      }
    20001994      dst += dstStride;
     
    20031997    if(bi)
    20041998    {
    2005       Pel *dst2      = dstPic->getLumaAddr( partAddr );
    2006       Int shift = IF_INTERNAL_PREC - g_bitDepthY;
    2007       for (i = 0; i < height; i++)
    2008       {
    2009         for (j = 0; j < width; j++)
     1999      Int shift = IF_INTERNAL_PREC - bitDepth;
     2000      for (i = 0; i < cxHeight; i++)
     2001      {
     2002        for (j = 0; j < cxWidth; j++)
    20102003        {
    2011           Short val = dst2[j] << shift;
    2012           dst2[j] = val - (Short)IF_INTERNAL_OFFS;
     2004          Pel val = dst2[j] << shift;
     2005          dst2[j] = val - (Pel)IF_INTERNAL_OFFS;
    20132006        }
    20142007        dst2 += dstStride;
     
    20202013}
    20212014
    2022 
    2023 #if H_3D_ARP
    2024     , Bool filterType
    2025 #endif
    2026 #if H_3D_IC
    2027     , Bool bICFlag
    2028 #endif
    2029 #if H_3D_IC
    2030     m_if.filterHorChroma(refCb, refStride, dstCb,  dstStride, cxWidth, cxHeight, xFrac, !bi || bICFlag
    2031 #else
    2032 #endif
    2033 #if H_3D_ARP
    2034     , filterType
    2035 #endif
    2036 #if H_3D_IC
    2037     m_if.filterHorChroma(refCr, refStride, dstCr,  dstStride, cxWidth, cxHeight, xFrac, !bi || bICFlag
    2038 #else
    2039 #endif
    2040 #if H_3D_ARP
    2041     , filterType
    2042 #endif
    2043 #if H_3D_IC
    2044     m_if.filterVerChroma(refCb, refStride, dstCb, dstStride, cxWidth, cxHeight, yFrac, true, !bi || bICFlag
    2045 #else
    2046 #endif
    2047 #if H_3D_ARP
    2048     , filterType
    2049 #endif
    2050 #if H_3D_IC
    2051     m_if.filterVerChroma(refCr, refStride, dstCr, dstStride, cxWidth, cxHeight, yFrac, true, !bi || bICFlag
    2052 #else
    2053 #endif
    2054 #if H_3D_ARP
    2055     , filterType
    2056 #endif
    2057 #if H_3D_ARP
    2058     , filterType
    2059 #endif 
    2060 #if H_3D_IC
    2061     m_if.filterVerChroma(extY  + (halfFilterSize-1)*extStride, extStride, dstCb, dstStride, cxWidth, cxHeight  , yFrac, false, !bi || bICFlag
    2062 #else
    2063 #endif
    2064 #if H_3D_ARP
    2065     , filterType
    2066 #endif
    2067 #if H_3D_ARP
    2068     , filterType
    2069 #endif
    2070 #if H_3D_IC
    2071     m_if.filterVerChroma(extY  + (halfFilterSize-1)*extStride, extStride, dstCr, dstStride, cxWidth, cxHeight  , yFrac, false, !bi || bICFlag
    2072 #else
    2073 #endif
    2074 #if H_3D_ARP
    2075     , filterType
    2076 #endif
    2077 #if H_3D_IC
    2078   if( bICFlag )
    2079   {
    2080     Int a, b, i, j;
    2081     const Int iShift = IC_CONST_SHIFT;
    2082 
    2083     xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb
    2084     for ( i = 0; i < cxHeight; i++ )
    2085     {
    2086       for ( j = 0; j < cxWidth; j++ )
    2087       {
    2088           dstCb[j] = Clip3(  0, ( 1 << g_bitDepthC ) - 1, ( ( a*dstCb[j] ) >> iShift ) + b );
    2089       }
    2090       dstCb += dstStride;
    2091     }
    2092     xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_V ); // Cr
    2093     for ( i = 0; i < cxHeight; i++ )
    2094     {
    2095       for ( j = 0; j < cxWidth; j++ )
    2096       {
    2097           dstCr[j] = Clip3( 0, ( 1 << g_bitDepthC ) - 1, ( ( a*dstCr[j] ) >> iShift ) + b );
    2098       }
    2099       dstCr += dstStride;
    2100     }
    2101 
    2102     if(bi)
    2103     {
    2104       Pel* dstCb2 = dstPic->getCbAddr( partAddr );
    2105       Pel* dstCr2 = dstPic->getCrAddr( partAddr );
    2106       Int shift = IF_INTERNAL_PREC - g_bitDepthC;
    2107       for (i = 0; i < cxHeight; i++)
    2108       {
    2109         for (j = 0; j < cxWidth; j++)
    2110         {
    2111           Short val = dstCb2[j] << shift;
    2112           dstCb2[j] = val - (Short)IF_INTERNAL_OFFS;
    2113 
    2114           val = dstCr2[j] << shift;
    2115           dstCr2[j] = val - (Short)IF_INTERNAL_OFFS;
    2116         }
    2117         dstCb2 += dstStride;
    2118         dstCr2 += dstStride;
    2119       }
    2120     }
    2121   }
    2122 #endif
    21232015Void TComPrediction::xWeightedAverage( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, Int iRefIdx0, Int iRefIdx1, UInt uiPartIdx, Int iWidth, Int iHeight, TComYuv* pcYuvDst, const BitDepths &clipBitDepths
    21242016 )
     
    22652157          (uiDirMode==HOR_IDX || uiDirMode==VER_IDX);
    22662158}
    2267 #if H_3D_IC
     2159#if NH_3D_IC
    22682160/** Function for deriving the position of first non-zero binary bit of a value
    22692161 * \param x input value
     
    22952187/** Function for deriving LM illumination compensation.
    22962188 */
    2297 Void TComPrediction::xGetLLSICPrediction( TComDataCU* pcCU, TComMv *pMv, TComPicYuv *pRefPic, Int &a, Int &b, TextType eType )
     2189Void TComPrediction::xGetLLSICPrediction( const ComponentID compID, TComDataCU* pcCU, TComMv *pMv, TComPicYuv *pRefPic, Int &a, Int &b, const Int bitDepth )
    22982190{
    22992191  TComPicYuv *pRecPic = pcCU->getPic()->getPicYuvRec();
    23002192  Pel *pRec = NULL, *pRef = NULL;
    23012193  UInt uiWidth, uiHeight, uiTmpPartIdx;
    2302   Int iRecStride = ( eType == TEXT_LUMA ) ? pRecPic->getStride() : pRecPic->getCStride();
    2303   Int iRefStride = ( eType == TEXT_LUMA ) ? pRefPic->getStride() : pRefPic->getCStride();
     2194  Int iRecStride = pRecPic->getStride(compID);
     2195  Int iRefStride = pRefPic->getStride(compID);
    23042196  Int iRefOffset, iHor, iVer;
    23052197  iHor = pcCU->getSlice()->getIsDepth() ? pMv->getHor() : ( ( pMv->getHor() + 2 ) >> 2 );
    23062198  iVer = pcCU->getSlice()->getIsDepth() ? pMv->getVer() : ( ( pMv->getVer() + 2 ) >> 2 );
    2307   if( eType != TEXT_LUMA )
     2199  if( !isLuma(compID) )
    23082200  {
    23092201    iHor = pcCU->getSlice()->getIsDepth() ? ( ( pMv->getHor() + 1 ) >> 1 ) : ( ( pMv->getHor() + 4 ) >> 3 );
    23102202    iVer = pcCU->getSlice()->getIsDepth() ? ( ( pMv->getVer() + 1 ) >> 1 ) : ( ( pMv->getVer() + 4 ) >> 3 );
    23112203  }
    2312   uiWidth  = ( eType == TEXT_LUMA ) ? pcCU->getWidth( 0 )  : ( pcCU->getWidth( 0 )  >> 1 );
    2313   uiHeight = ( eType == TEXT_LUMA ) ? pcCU->getHeight( 0 ) : ( pcCU->getHeight( 0 ) >> 1 );
     2204  uiWidth  = pcCU->getWidth( 0 ) >> pRefPic->getComponentScaleX(compID);
     2205  uiHeight = pcCU->getHeight( 0 ) >> pRefPic->getComponentScaleY(compID);
    23142206
    23152207  Int i, j, iCountShift = 0;
    23162208
    2317   // LLS parameters estimation -->
    2318 
     2209  // LLS parameters estimation
    23192210  Int x = 0, y = 0, xx = 0, xy = 0;
    2320   Int precShift = std::max(0, (( eType == TEXT_LUMA ) ? g_bitDepthY : g_bitDepthC) - 12);
    2321 
    2322   if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
     2211  Int precShift = std::max(0, bitDepth - 12);
     2212
     2213  UInt partAddr = 0;
     2214  if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCtu() ) )
    23232215  {
    23242216    iRefOffset = iHor + iVer * iRefStride - iRefStride;
    2325     if( eType == TEXT_LUMA )
    2326     {
    2327       pRef = pRefPic->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2328       pRec = pRecPic->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - iRecStride;
    2329     }
    2330     else if( eType == TEXT_CHROMA_U )
    2331     {
    2332       pRef = pRefPic->getCbAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2333       pRec = pRecPic->getCbAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - iRecStride;
    2334     }
    2335     else
    2336     {
    2337       assert( eType == TEXT_CHROMA_V );
    2338       pRef = pRefPic->getCrAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2339       pRec = pRecPic->getCrAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - iRecStride;
    2340     }
    2341 
     2217    pRef = pRefPic->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + partAddr ) + iRefOffset;
     2218    pRec = pRecPic->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + partAddr ) - iRecStride;
    23422219    for( j = 0; j < uiWidth; j+=2 )
    23432220    {
    23442221      x += pRef[j];
    23452222      y += pRec[j];
    2346       if ( eType == TEXT_LUMA )
     2223      if( isLuma(compID) )
    23472224      {
    23482225        xx += (pRef[j] * pRef[j])>>precShift;
     
    23532230  }
    23542231
    2355   if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
     2232  if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCtu() ) )
    23562233  {
    23572234    iRefOffset = iHor + iVer * iRefStride - 1;
    2358     if( eType == TEXT_LUMA )
    2359     {
    2360       pRef = pRefPic->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2361       pRec = pRecPic->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - 1;
    2362     }
    2363     else if( eType == TEXT_CHROMA_U )
    2364     {
    2365       pRef = pRefPic->getCbAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2366       pRec = pRecPic->getCbAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - 1;
    2367     }
    2368     else
    2369     {
    2370       assert( eType == TEXT_CHROMA_V );
    2371       pRef = pRefPic->getCrAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) + iRefOffset;
    2372       pRec = pRecPic->getCrAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() ) - 1;
    2373     }
    2374 
     2235    pRef = pRefPic->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + partAddr ) + iRefOffset;
     2236    pRec = pRecPic->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + partAddr ) - 1;
    23752237    for( i = 0; i < uiHeight; i+=2 )
    23762238    {
    23772239      x += pRef[0];
    23782240      y += pRec[0];
    2379       if ( eType == TEXT_LUMA )
     2241      if( isLuma(compID) )
    23802242      {
    23812243        xx += (pRef[0] * pRef[0])>>precShift;
     
    23952257  }
    23962258
    2397   if (  eType != TEXT_LUMA )
    2398   {
    2399     a = 32;
     2259  if( !isLuma(compID) )
     2260  {
     2261    a = ( 1 << IC_CONST_SHIFT );
    24002262    b = (  y - x + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
    24012263  }
    24022264  else
    24032265  {
    2404   xy += xx >> IC_REG_COST_SHIFT;
    2405   xx += xx >> IC_REG_COST_SHIFT;
    2406   Int a1 = ( xy << iCountShift ) - ((y * x) >> precShift);
    2407   Int a2 = ( xx << iCountShift ) - ((x * x) >> precShift);
    2408   const Int iShift = IC_CONST_SHIFT;
    2409   {
    2410     {
    2411       const Int iShiftA2 = 6;
    2412       const Int iAccuracyShift = 15;
    2413 
    2414       Int iScaleShiftA2 = 0;
    2415       Int iScaleShiftA1 = 0;
    2416       Int a1s = a1;
    2417       Int a2s = a2;
    2418 
    2419       a1 = Clip3(0, 2*a2, a1);
    2420       iScaleShiftA2 = GetMSB( abs( a2 ) ) - iShiftA2;
    2421       iScaleShiftA1 = iScaleShiftA2 - IC_SHIFT_DIFF;
    2422 
    2423       if( iScaleShiftA1 < 0 )
    2424       {
    2425         iScaleShiftA1 = 0;
    2426       }
    2427 
    2428       if( iScaleShiftA2 < 0 )
    2429       {
    2430         iScaleShiftA2 = 0;
    2431       }
    2432 
    2433       Int iScaleShiftA = iScaleShiftA2 + iAccuracyShift - iShift - iScaleShiftA1;
    2434 
    2435 
    2436       a2s = a2 >> iScaleShiftA2;
    2437 
    2438       a1s = a1 >> iScaleShiftA1;
    2439 
    2440       a = a1s * m_uiaShift[ a2s ];
    2441       a = a >> iScaleShiftA;
    2442       b = (  y - ( ( a * x ) >> iShift ) + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
    2443     }
    2444   }   
     2266    xy += xx >> IC_REG_COST_SHIFT;
     2267    xx += xx >> IC_REG_COST_SHIFT;
     2268    Int a1 = ( xy << iCountShift ) - ((y * x) >> precShift);
     2269    Int a2 = ( xx << iCountShift ) - ((x * x) >> precShift);
     2270    const Int iShift = IC_CONST_SHIFT;
     2271    const Int iShiftA2 = 6;
     2272    const Int iAccuracyShift = 15;
     2273    Int iScaleShiftA2 = 0;
     2274    Int iScaleShiftA1 = 0;
     2275    Int a1s;
     2276    Int a2s;
     2277   
     2278    a1 = Clip3(0, 2*a2, a1);
     2279    iScaleShiftA2 = GetMSB( abs( a2 ) ) - iShiftA2;
     2280    iScaleShiftA1 = iScaleShiftA2 - IC_SHIFT_DIFF;
     2281   
     2282    if( iScaleShiftA1 < 0 )
     2283    {
     2284      iScaleShiftA1 = 0;
     2285    }
     2286    if( iScaleShiftA2 < 0 )
     2287    {
     2288      iScaleShiftA2 = 0;
     2289    }
     2290   
     2291    Int iScaleShiftA = iScaleShiftA2 + iAccuracyShift - iShift - iScaleShiftA1;
     2292
     2293    a2s = a2 >> iScaleShiftA2;
     2294    a1s = a1 >> iScaleShiftA1;
     2295   
     2296    a = a1s * m_uiaShift[ a2s ];
     2297    a = a >> iScaleShiftA;
     2298    b = (  y - ( ( a * x ) >> iShift ) + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
    24452299  }
    24462300}
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComPrediction.h

    r1200 r1225  
    8787  Pel*   m_pLumaRecBuffer;       ///< array for downsampled reconstructed luma sample
    8888  Int    m_iLumaRecStride;       ///< stride of #m_pLumaRecBuffer array
    89 #if H_3D_IC
     89#if NH_3D_IC
    9090  UInt   m_uiaShift[ 64 ];       // Table for multiplication to substitue of division operation
    9191#endif
     
    117117    , Bool filterType = false
    118118#endif
    119 #if H_3D_IC
     119#if NH_3D_IC
    120120    , Bool bICFlag    = false
    121121#endif
     
    124124#if H_3D_ARP
    125125    , Bool filterType = false
    126 #endif
    127 #if H_3D_IC
    128     , Bool bICFlag    = false
    129126#endif
    130127#if H_3D_VSP
     
    135132
    136133  Void xGetLLSPrediction ( const Pel* pSrc0, Int iSrcStride, Pel* pDst0, Int iDstStride, UInt uiWidth, UInt uiHeight, UInt uiExt0, const ChromaFormat chFmt  DEBUG_STRING_FN_DECLARE(sDebug) );
    137 #if H_3D_IC
    138   Void xGetLLSICPrediction( TComDataCU* pcCU, TComMv *pMv, TComPicYuv *pRefPic, Int &a, Int &b, TextType eType );
     134#if NH_3D_IC
     135  Void xGetLLSICPrediction( const ComponentID compID, TComDataCU* pcCU, TComMv *pMv, TComPicYuv *pRefPic, Int &a, Int &b, const Int bitDepth);
    139136#endif
    140137  Void xDCPredFiltering( const Pel* pSrc, Int iSrcStride, Pel* pDst, Int iDstStride, Int iWidth, Int iHeight, ChannelType channelType );
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComRdCost.cpp

    r1200 r1225  
    562562  cDtParam.bitDepth     = bitDepth;
    563563
    564 #if H_3D_IC
     564#if NH_3D_IC
    565565  cDtParam.bUseIC       = false;
    566566#endif
     
    690690 
    691691  AOF(!pcDtParam->bApplyWeight);
    692 #if H_3D_IC
     692#if NH_3D_IC
    693693  AOF(!pcDtParam->bUseIC);
    694694#endif
     
    764764    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    765765  }
    766 #if H_3D_IC
     766#if NH_3D_IC
    767767  if( pcDtParam->bUseIC )
    768768  {
     
    806806  }
    807807
    808 #if H_3D_IC
     808#if NH_3D_IC
    809809  if( pcDtParam->bUseIC )
    810810  {
     
    851851  }
    852852
    853 #if H_3D_IC
     853#if NH_3D_IC
    854854  if( pcDtParam->bUseIC )
    855855  {
     
    900900  }
    901901
    902 #if H_3D_IC
     902#if NH_3D_IC
    903903  if( pcDtParam->bUseIC )
    904904  {
     
    956956    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    957957  }
    958 #if H_3D_IC
     958#if NH_3D_IC
    959959  if( pcDtParam->bUseIC )
    960960  {
     
    10041004Distortion TComRdCost::xGetSAD16N( DistParam* pcDtParam )
    10051005{
    1006 #if H_3D_IC
     1006#if NH_3D_IC
    10071007  if( pcDtParam->bUseIC )
    10081008  {
     
    10641064  }
    10651065
    1066 #if H_3D_IC
     1066#if NH_3D_IC
    10671067  if( pcDtParam->bUseIC )
    10681068  {
     
    11371137  }
    11381138
    1139 #if H_3D_IC
     1139#if NH_3D_IC
    11401140  if( pcDtParam->bUseIC )
    11411141  {
     
    12021202  }
    12031203
    1204 #if H_3D_IC
     1204#if NH_3D_IC
    12051205  if( pcDtParam->bUseIC )
    12061206  {
     
    13061306    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    13071307  }
    1308 #if H_3D_IC
     1308#if NH_3D_IC
    13091309  if( pcDtParam->bUseIC )
    13101310  {
     
    13891389
    13901390
    1391 #if H_3D_IC || H_3D_INTER_SDC
     1391#if NH_3D_IC || H_3D_INTER_SDC
    13921392UInt TComRdCost::xGetSADic( DistParam* pcDtParam )
    13931393{
    13941394  if ( pcDtParam->bApplyWeight )
    13951395  {
    1396     return xGetSADw( pcDtParam );
     1396    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    13971397  }
    13981398  Pel* piOrg   = pcDtParam->pOrg;
     
    14421442  if ( pcDtParam->bApplyWeight )
    14431443  {
    1444     return xGetSADw( pcDtParam );
     1444    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    14451445  }
    14461446  Pel* piOrg   = pcDtParam->pOrg;
     
    14991499  if ( pcDtParam->bApplyWeight )
    15001500  {
    1501     return xGetSADw( pcDtParam );
     1501    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    15021502  }
    15031503  Pel* piOrg      = pcDtParam->pOrg;
     
    15681568  if ( pcDtParam->bApplyWeight )
    15691569  {
    1570     return xGetSADw( pcDtParam );
     1570    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    15711571  }
    15721572  Pel* piOrg   = pcDtParam->pOrg;
     
    16611661  if ( pcDtParam->bApplyWeight )
    16621662  {
    1663     return xGetSADw( pcDtParam );
     1663    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    16641664  }
    16651665  Pel* piOrg   = pcDtParam->pOrg;
     
    18361836  if ( pcDtParam->bApplyWeight )
    18371837  {
    1838     return xGetSADw( pcDtParam );
     1838    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    18391839  }
    18401840  Pel* piOrg   = pcDtParam->pOrg;
     
    19781978  if ( pcDtParam->bApplyWeight )
    19791979  {
    1980     return xGetSADw( pcDtParam );
     1980    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    19811981  }
    19821982  Pel* piOrg   = pcDtParam->pOrg;
     
    20952095  if ( pcDtParam->bApplyWeight )
    20962096  {
    2097     return xGetSADw( pcDtParam );
     2097    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    20982098  }
    20992099  Pel* piOrg   = pcDtParam->pOrg;
     
    23332333  if ( pcDtParam->bApplyWeight )
    23342334  {
    2335     return xGetSADw( pcDtParam );
     2335    return TComRdCostWeightPrediction::xGetSADw( pcDtParam );
    23362336  }
    23372337
     
    33283328    return TComRdCostWeightPrediction::xGetHADsw( pcDtParam );
    33293329  }
    3330 #if H_3D_IC
     3330#if NH_3D_IC
    33313331  if( pcDtParam->bUseIC )
    33323332  {
     
    34043404}
    34053405
    3406 #if H_3D_IC || H_3D_INTER_SDC
     3406#if NH_3D_IC || H_3D_INTER_SDC
    34073407UInt TComRdCost::xGetHADsic( DistParam* pcDtParam )
    34083408{
    34093409  if ( pcDtParam->bApplyWeight )
    34103410  {
    3411     return xGetHADsw( pcDtParam );
     3411    return TComRdCostWeightPrediction::xGetHADsw( pcDtParam );
    34123412  }
    34133413  Pel* piOrg   = pcDtParam->pOrg;
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComRdCost.h

    r1200 r1225  
    9191  Int   iStrideVir;
    9292#endif
    93 #if H_3D_IC
     93#if NH_3D_IC
    9494  Bool  bUseIC;
    9595#endif
     
    256256  static Distortion xGetSSE64         ( DistParam* pcDtParam );
    257257  static Distortion xGetSSE16N        ( DistParam* pcDtParam );
    258 #if H_3D_IC || H_3D_INTER_SDC
     258#if NH_3D_IC || H_3D_INTER_SDC
    259259  static UInt xGetSADic         ( DistParam* pcDtParam );
    260260  static UInt xGetSAD4ic        ( DistParam* pcDtParam );
     
    283283#endif
    284284
    285 #if H_3D_IC || H_3D_INTER_SDC
     285#if NH_3D_IC || H_3D_INTER_SDC
    286286  static UInt xGetSAD12ic       ( DistParam* pcDtParam );
    287287  static UInt xGetSAD24ic       ( DistParam* pcDtParam );
     
    294294
    295295
    296 #if H_3D_IC || H_3D_INTER_SDC
     296#if NH_3D_IC || H_3D_INTER_SDC
    297297  static UInt xGetHADsic          ( DistParam* pcDtParam );
    298298#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComSlice.cpp

    r1214 r1225  
    140140, m_pocMsbValRequiredFlag         (false)
    141141#endif
    142 #if H_3D_IC
     142#if NH_3D_IC
    143143, m_bApplyIC                      (false)
    144144, m_icSkipParseFlag               (false)
     
    11701170  m_bApplyDIS = pSrc->m_bApplyDIS;
    11711171#endif
    1172 #if H_3D_IC
     1172#if NH_3D_IC
    11731173  m_bApplyIC = pSrc->m_bApplyIC;
    11741174  m_icSkipParseFlag = pSrc->m_icSkipParseFlag;
     
    36903690#endif
    36913691
    3692 #if H_3D_IC
     3692#if NH_3D_IC
    36933693// This is an encoder only function and should be moved to TEncSlice or TEncSearch!!
    36943694Void TComSlice::xSetApplyIC(Bool bUseLowLatencyICEnc)
     
    37793779    {
    37803780      // Histogram building - luminance
    3781       Int iMaxPelValue = ( 1 << g_bitDepthY );
     3781      Int iMaxPelValue = ( 1 << getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) );
    37823782      Int *aiRefOrgHist = (Int *) xMalloc( Int,iMaxPelValue );
    37833783      Int *aiCurrHist   = (Int *) xMalloc( Int,iMaxPelValue );
     
    37853785      memset( aiCurrHist, 0, iMaxPelValue*sizeof(Int) );
    37863786
    3787       Int iWidth   = pcCurrPicYuv->getWidth();
    3788       Int iHeight  = pcCurrPicYuv->getHeight();
    3789 
    3790       Pel* pCurrY   = pcCurrPicYuv ->getLumaAddr();
    3791       Pel* pRefOrgY = pcRefPicYuvOrg  ->getLumaAddr();
    3792       Int iCurrStride = pcCurrPicYuv->getStride();
    3793       Int iRefStride = pcRefPicYuvOrg->getStride();
    3794 
     3787      Int iWidth   = pcCurrPicYuv->getWidth(COMPONENT_Y);
     3788      Int iHeight  = pcCurrPicYuv->getHeight(COMPONENT_Y);
     3789      Pel* pCurrY   = pcCurrPicYuv->getAddr(COMPONENT_Y);
     3790      Pel* pRefOrgY = pcRefPicYuvOrg->getAddr(COMPONENT_Y);
     3791      Int iCurrStride = pcCurrPicYuv->getStride(COMPONENT_Y);
     3792      Int iRefStride = pcRefPicYuvOrg->getStride(COMPONENT_Y);
    37953793      for ( Int y = 0; y < iHeight; y++ )
    37963794      {
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TComSlice.h

    r1213 r1225  
    26032603  std::vector<Int> m_pocsInCurrRPSs;
    26042604#endif
    2605 #if H_3D_IC
     2605#if NH_3D_IC
    26062606  Bool       m_bApplyIC;
    26072607  Bool       m_icSkipParseFlag;
     
    26192619#endif
    26202620#endif
    2621 #if H_3D_IC
     2621#if NH_3D_IC
    26222622  Int*       m_aICEnableCandidate;
    26232623  Int*       m_aICEnableNum;
     
    27062706  Int                         getNumCurCmpLIds( )                      const         { return (Int) m_inCmpRefViewIdcs.size();                       }
    27072707  TComPic*                    getIvPic( Bool depthFlag, Int viewIndex) const         { return  m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ];    }
    2708 #endif                                                                                                                                               
     2708#endif                                                                                                                                         
    27092709#if H_3D                                                                                                                                             
    27102710  TComPic*                    getTexturePic       ()                                 { return  m_ivPicsCurrPoc[0][ m_viewIndex ];                    }
    27112711#endif                                                                                                                                               
    2712 #if H_3D_IC                                                                                                                                         
     2712#if NH_3D_IC
    27132713  Void                        setApplyIC( Bool b )                                   { m_bApplyIC = b;                                               }
    27142714  Bool                        getApplyIC()                                           { return m_bApplyIC;                                            }
    2715   Void                        xSetApplyIC();                                                                                                         
    2716   Void                        xSetApplyIC(Bool bUseLowLatencyICEnc);                                                                                 
     2715  Void                        xSetApplyIC();
     2716  Void                        xSetApplyIC(Bool bUseLowLatencyICEnc);
     2717
    27172718  Void                        setIcSkipParseFlag( Bool b )                           { m_icSkipParseFlag = b;                                        }
    27182719  Bool                        getIcSkipParseFlag()                                   { return m_icSkipParseFlag;                                     }
     
    29572958  Int*                        getDepthToDisparityB( Int refViewIdx )                 { return m_depthToDisparityB[ getVPS()->getVoiInVps( refViewIdx) ];}
    29582959  Int*                        getDepthToDisparityF( Int refViewIdx )                 { return m_depthToDisparityF[ getVPS()->getVoiInVps( refViewIdx) ];}
    2959 #if H_3D_IC                                                                                                                                             
     2960#if NH_3D_IC                                                                                                                                             
    29602961  Void                        setICEnableCandidate( Int* icEnableCandidate)          { m_aICEnableCandidate = icEnableCandidate;                     }
    29612962  Void                        setICEnableNum( Int* icEnableNum)                      { m_aICEnableNum = icEnableNum;                                 }
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibCommon/TypeDef.h

    r1213 r1225  
    6666#if NH_MV
    6767#define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
     68#define H_MV_ENC_DEC_TRAC_FIX             1  // by SHARP
    6869
    6970#if NH_3D
     
    7273                                              // Sony_M23639
    7374                                              // H_3D_TMVP_SCALING_FIX_K0053       1   // QC/CY for K0053
     75#define NH_3D_IC                          1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     76                                              // Unifying rounding offset, for IC part, JCT3V-D0135
     77                                              // SHARP_ILLUCOMP_REFINE_E0046
     78                                              // MTK_CLIPPING_ALIGN_IC_E0168       // To support simplify bi-prediction PU with identical motion checking, JCT3V-E0168
     79                                              // LGE_IC_CTX_F0160 //JCT3V-F0160
     80                                              // SEC_ONLY_TEXTURE_IC_F0151
     81                                              // MTK_IC_FLAG_CABAC_SIMP_G0061
     82                                              // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121
     83                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086  Low-latency IC encoding in JCT3V-H0086
     84                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX  1  // Remove the global variables used in JCT3V-H0086
     85                                              // SEC_IC_NEIGHBOR_CLIP_I0080    // Clipping of neighboring sample position, JCT3V-I0080
     86                                              // LGE_CHROMA_IC_J0050_J0034
     87
     88
    7489#endif
    7590
     
    322337#endif
    323338///// ***** ILLUMATION COMPENSATION *********
    324 #if H_3D_IC
     339#if NH_3D_IC
    325340#define IC_REG_COST_SHIFT                 7
    326341#define IC_CONST_SHIFT                    5
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1200 r1225  
    27832783    }
    27842784
    2785 #if H_3D_IC
     2785#if NH_3D_IC
    27862786    else if(    pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE )
    27872787             && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0
     
    27962796      if ( uiCodeTmp )
    27972797      {
    2798         READ_FLAG ( uiCodeTmp, "ic_skip_mergeidx0" );
     2798        READ_FLAG ( uiCodeTmp, "slice_ic_disabled_merge_zero_idx_flag" );
    27992799        pcSlice->setIcSkipParseFlag( uiCodeTmp );
    28002800      }
     
    33823382}
    33833383#endif
    3384 #if H_3D_IC
     3384#if NH_3D_IC
    33853385Void TDecCavlc::parseICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    33863386{
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.h

    r1200 r1225  
    120120  Void parseARPW            ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    121121#endif
    122 #if H_3D_IC
     122#if NH_3D_IC
    123123  Void  parseICFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    124124#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCu.cpp

    r1200 r1225  
    399399    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
    400400#endif
    401 #if H_3D_IC
     401#if NH_3D_IC
    402402    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    403403#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1200 r1225  
    124124#endif
    125125
    126 #if H_3D_IC
     126#if NH_3D_IC
    127127Void TDecEntropy::decodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    128128{
    129129  pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth );
    130130
     131#if H_3D_ARP
    131132  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
     133#else
     134  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     135#endif
    132136  {
    133137    return;
     
    475479        std::cout << " merge index: " << (UInt)pcCU->getMergeIndex(uiSubPartIdx) << std::endl;
    476480      }
     481#endif
     482#if NH_3D_IC
     483      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    477484#endif
    478485
     
    531538        }
    532539      }
     540#if NH_3D_IC
     541      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     542#endif
    533543    }
    534544
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.h

    r1200 r1225  
    8888  virtual Void parseARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    8989#endif
    90 #if H_3D_IC
     90#if NH_3D_IC
    9191  virtual Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9292#endif
     
    177177  Void decodeARPW              ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    178178#endif
    179 #if H_3D_IC
     179#if NH_3D_IC
    180180  Void decodeICFlag            ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    181181#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.cpp

    r1200 r1225  
    7676, m_cCUPUARPWSCModel          ( 1,             1,               NUM_ARPW_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
    7777#endif
    78 #if H_3D_IC
     78#if NH_3D_IC
    7979, m_cCUICFlagSCModel          ( 1,             1,               NUM_IC_FLAG_CTX               , m_contextModels + m_numContextModels, m_numContextModels)
    8080#endif
     
    167167  m_cCUPUARPWSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_ARPW );
    168168#endif
    169 #if H_3D_IC
     169#if NH_3D_IC
    170170  m_cCUICFlagSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_IC_FLAG );
    171171#endif
     
    243243#if H_3D_ARP
    244244  m_cCUPUARPWSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_ARPW );
    245 #endif
    246 #if H_3D_IC
    247   m_cCUICFlagSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_IC_FLAG );
    248245#endif
    249246#if H_3D_DIM
     
    24452442#endif
    24462443
    2447 #if H_3D_IC
     2444#if NH_3D_IC
    24482445/** parse illumination compensation flag
    24492446 * \param pcCU
     
    24552452{
    24562453  UInt uiSymbol = 0;
    2457   m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) );
     2454  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__3D_IC) );
     2455
    24582456#if !H_MV_ENC_DEC_TRAC
    24592457  DTRACE_CABAC_VL( g_nSymbolCounter++ );
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.h

    r1200 r1225  
    142142  Void parseARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    143143#endif
    144 #if H_3D_IC
     144#if NH_3D_IC
    145145  Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    146146#endif
     
    193193  ContextModel3DBuffer m_cCUPUARPWSCModel;
    194194#endif
    195 #if H_3D_IC
     195#if NH_3D_IC
    196196  ContextModel3DBuffer m_cCUICFlagSCModel;
    197197#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecTop.cpp

    r1213 r1225  
    423423{
    424424#if ENC_DEC_TRACE
     425#if H_MV_ENC_DEC_TRAC_FIX
     426  if (g_hTrace != stdout && g_hTrace != NULL)
     427#else
    425428  if (g_hTrace != stdout)
     429#endif
    426430  {
    427431    fclose( g_hTrace );
     432#if H_MV_ENC_DEC_TRAC_FIX
     433    g_hTrace = NULL;
     434#endif
    428435  }
    429436#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1200 r1225  
    21822182      xCodePredWeightTable( pcSlice );
    21832183    }
    2184 #if H_3D_IC
     2184#if NH_3D_IC
    21852185    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE )
    21862186      && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0
     
    21912191      if( pcSlice->getApplyIC() )
    21922192      {
    2193         WRITE_FLAG( pcSlice->getIcSkipParseFlag() ? 1 : 0, "ic_skip_mergeidx0" );
     2193        WRITE_FLAG( pcSlice->getIcSkipParseFlag() ? 1 : 0, "slice_ic_disabled_merge_zero_idx_flag" );
    21942194      }
    21952195    }
     
    25852585#endif
    25862586
    2587 #if H_3D_IC
     2587#if NH_3D_IC
    25882588Void TEncCavlc::codeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    25892589{
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.h

    r1200 r1225  
    129129  Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    130130#endif
    131 #if H_3D_IC
     131#if NH_3D_IC
    132132  Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    133133#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCfg.h

    r1200 r1225  
    572572  Void      setMaxTotalCUDepth              ( UInt  u )      { m_maxTotalCUDepth = u; }
    573573  Void      setLog2DiffMaxMinCodingBlockSize( UInt  u )      { m_log2DiffMaxMinCodingBlockSize = u; }
    574 #if H_3D_IC
     574#if NH_3D_IC
    575575  Void       setUseIC                       ( Bool bVal )    { m_bUseIC = bVal; }
    576576  Bool       getUseIC                       ()               { return m_bUseIC; }
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCu.cpp

    r1200 r1225  
    505505  }
    506506
    507 #if H_3D_IC
     507#if NH_3D_IC
    508508  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth();
    509509  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
     
    642642      if( rpcBestCU->getSlice()->getSliceType() != I_SLICE )
    643643      {
    644 #if H_3D_IC
     644#if NH_3D_IC
    645645        for( UInt uiICId = 0; uiICId < ( bICEnabled ? 2 : 1 ); uiICId++ )
    646646        {
     
    650650        if(m_pcEncCfg->getUseEarlySkipDetection())
    651651        {
    652 #if H_3D_IC
     652#if NH_3D_IC
    653653            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    654654#endif
     
    664664        }
    665665        // SKIP
    666 #if H_3D_IC
     666#if NH_3D_IC
    667667          rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    668668#endif
     
    680680        {
    681681          // 2Nx2N, NxN
    682 #if H_3D_IC
     682#if NH_3D_IC
    683683            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    684684#endif
     
    709709          }
    710710        }
    711 #if H_3D_IC
     711#if NH_3D_IC
    712712        }
    713713#endif
     
    15771577    m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
    15781578#endif
    1579 #if H_3D_IC
     1579#if NH_3D_IC
    15801580    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    15811581#endif
     
    16201620  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
    16211621#endif
    1622 #if H_3D_IC
     1622#if NH_3D_IC
    16231623  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    16241624#endif
     
    17771777  }
    17781778  UChar uhDepth = rpcTempCU->getDepth( 0 );
    1779 #if H_3D_IC
     1779#if NH_3D_IC
    17801780  Bool bICFlag = rpcTempCU->getICFlag( 0 );
    17811781#endif
     
    18621862    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    18631863    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
    1864 #if H_3D_IC
     1864#if NH_3D_IC
    18651865    rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
    18661866#endif
     
    19051905    for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand )
    19061906    {
    1907 #if H_3D_IC
     1907#if NH_3D_IC
    19081908      if( rpcTempCU->getSlice()->getApplyIC() && rpcTempCU->getSlice()->getIcSkipParseFlag() )
    19091909      {
     
    19221922          // set MC parameters
    19231923          rpcTempCU->setPredModeSubParts( MODE_INTER, 0, uhDepth ); // interprets depth relative to CTU level
    1924 #if H_3D_IC
     1924#if NH_3D_IC
    19251925          rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
    19261926#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1200 r1225  
    148148}
    149149
    150 #if H_3D_IC
     150#if NH_3D_IC
    151151Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    152152{
     153#if H_3D_ARP
    153154  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
     155#else
     156  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     157#endif
    154158  {
    155159    return;
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.h

    r1200 r1225  
    8787  virtual Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8888#endif
    89 #if H_3D_IC
     89#if NH_3D_IC
    9090  virtual Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9191#endif
     
    176176  Void encodeARPW         ( TComDataCU* pcCU, UInt uiAbspartIdx );
    177177#endif
    178 #if H_3D_IC
     178#if NH_3D_IC
    179179  Void encodeICFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    180180#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.cpp

    r1213 r1225  
    155155#endif
    156156#endif
    157 #if H_3D_IC
     157#if NH_3D_IC
    158158  m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate();
    159159  m_aICEnableNum         = pcTEncTop->getICEnableNum();
     
    14901490    }
    14911491#endif
    1492 #if H_3D_IC
     1492#if NH_3D_IC
    14931493    pcSlice->setICEnableCandidate( m_aICEnableCandidate );         
    14941494    pcSlice->setICEnableNum( m_aICEnableNum );         
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.h

    r1200 r1225  
    132132#endif
    133133#endif
    134 #if H_3D_IC
     134#if NH_3D_IC
    135135  Int*                    m_aICEnableCandidate;
    136136  Int*                    m_aICEnableNum;
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.cpp

    r1200 r1225  
    7171, m_cCUPUARPWSCModel                   ( 1,             1,                      NUM_ARPW_CTX                         , m_contextModels + m_numContextModels, m_numContextModels)
    7272#endif                                                                                                               
    73 #if H_3D_IC                                                                                                         
     73#if NH_3D_IC                                                                                                         
    7474, m_cCUICFlagSCModel                   ( 1,             1,                      NUM_IC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    7575#endif
     
    151151  m_cCUPUARPWSCModel.initBuffer                   ( eSliceType, iQp, (UChar*)INIT_ARPW );
    152152#endif
    153 #if H_3D_IC
     153#if NH_3D_IC
    154154  m_cCUICFlagSCModel.initBuffer                   ( eSliceType, iQp, (UChar*)INIT_IC_FLAG );
    155155#endif
     
    238238      curCost += m_cCUPUARPWSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_ARPW );
    239239#endif                                                     
    240 #if H_3D_IC                                               
     240#if NH_3D_IC                                               
    241241      curCost += m_cCUICFlagSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_IC_FLAG );
    242242#endif                                                     
     
    305305  m_cCUPUARPWSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_ARPW );
    306306#endif
    307 #if H_3D_IC
    308   m_cCUICFlagSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_IC_FLAG );
    309 #endif
    310307#if H_3D_DIM
    311308  m_cDepthIntraModeSCModel.initBuffer    ( eSliceType, iQp, (UChar*)INIT_DEPTH_INTRA_MODE );
     
    994991#endif
    995992
    996 #if H_3D_IC
     993#if NH_3D_IC
    997994/** code Illumination Compensation flag
    998995 * \param pcCU
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.h

    r1200 r1225  
    143143  Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    144144#endif
    145 #if H_3D_IC
     145#if NH_3D_IC
    146146  Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    147147#endif
     
    215215  ContextModel3DBuffer m_cCUPUARPWSCModel;
    216216#endif
    217 #if H_3D_IC
     217#if NH_3D_IC
    218218  ContextModel3DBuffer m_cCUICFlagSCModel;
    219219#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSearch.cpp

    r1200 r1225  
    340340
    341341  piRefSrch = rcStruct.piRefY + iSearchY * rcStruct.iYStride + iSearchX;
    342 #if H_3D_IC
     342#if NH_3D_IC
    343343  m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    344344#endif
     
    851851
    852852    setDistParamComp(COMPONENT_Y);
    853 #if H_3D_IC
     853#if NH_3D_IC
    854854    m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    855855#endif
     
    38573857                            iWidth, iHeight, m_pcEncCfg->getUseHADME() && (pcCU->getCUTransquantBypass(iPartIdx) == 0) );
    38583858
    3859 #if H_3D_IC
     3859#if NH_3D_IC
    38603860  cDistParam.bUseIC = false;
    38613861#endif
     
    50005000  pcCU->clipMv( cMvCand );
    50015001
    5002 #if H_3D_IC
     5002#if NH_3D_IC
    50035003  Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() );
    50045004#endif
     
    50155015      , false
    50165016#endif
    5017 #if H_3D_IC
     5017#if NH_3D_IC
    50185018    , bICFlag
    50195019#endif
     
    50605060  pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight );
    50615061
    5062 #if H_3D_IC
     5062#if NH_3D_IC
    50635063  Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdxPred )->getViewIndex() );
    50645064  pcPatternKey->setICFlag( bICFlag );
     
    52505250      m_cDistParam.bitDepth = pcPatternKey->getBitDepthY();
    52515251
    5252 #if H_3D_IC
     5252#if NH_3D_IC
    52535253      m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    52545254#endif
     
    57845784    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
    57855785#endif
    5786 #if H_3D_IC
     5786#if NH_3D_IC
    57875787    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    57885788#endif
     
    71007100    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
    71017101#endif
    7102 #if H_3D_IC
     7102#if NH_3D_IC
    71037103    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    71047104#endif
     
    71277127    m_pcEntropyCoder->encodeARPW( pcCU , 0  );
    71287128#endif
    7129 #if H_3D_IC
     7129#if NH_3D_IC
    71307130    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    71317131#endif
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSlice.cpp

    r1200 r1225  
    226226  rpcSlice->setPicOutputFlag( true );
    227227  rpcSlice->setPOC( pocCurr );
    228 #if H_3D_IC
     228#if NH_3D_IC
    229229  rpcSlice->setApplyIC( false );
    230230#endif
     
    823823#endif
    824824
    825 #if H_3D_IC
    826   if ( pcEncTop->getViewIndex() && pcEncTop->getUseIC() &&
     825#if NH_3D_IC
     826  if ( m_pcCfg->getViewIndex() && m_pcCfg->getUseIC() &&
    827827       !( ( pcSlice->getSliceType() == P_SLICE && pcSlice->getPPS()->getUseWP() ) || ( pcSlice->getSliceType() == B_SLICE && pcSlice->getPPS()->getWPBiPred() ) )
    828828     )
    829829  {
    830     pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc());
     830    pcSlice ->xSetApplyIC(m_pcCfg->getUseICLowLatencyEnc());
    831831    if ( pcSlice->getApplyIC() )
    832832    {
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.cpp

    r1200 r1225  
    7979  m_ivPicLists = NULL;
    8080#endif
    81 #if H_3D_IC
     81#if NH_3D_IC
    8282  m_aICEnableCandidate = NULL;
    8383  m_aICEnableNum = NULL;
     
    227227
    228228  xInitPPSforTiles();
    229 #if H_3D_IC
     229#if NH_3D_IC
    230230  m_aICEnableCandidate = new Int[ 10 ];
    231231  m_aICEnableNum = new Int[ 10 ];
  • branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.h

    r1200 r1225  
    8181  TComPicLists*           m_ivPicLists;                   ///< access to picture lists of other layers
    8282#endif
    83 #if H_3D_IC
     83#if NH_3D_IC
    8484  Int *m_aICEnableCandidate;
    8585  Int *m_aICEnableNum;
     
    158158  TComPicLists* getIvPicLists() { return m_ivPicLists; }
    159159#endif
    160 #if H_3D_IC
     160#if NH_3D_IC
    161161  Int*      getICEnableCandidate() { return m_aICEnableCandidate; }
    162162  Int*      getICEnableNum() { return m_aICEnableNum; }
     
    208208  Void                    setSps3dExtension     ( TComSps3dExtension sps3dExtension ) { m_cSPS.setSps3dExtension( sps3dExtension );  };
    209209#endif
    210 #if H_3D_IC
     210#if NH_3D_IC
    211211  Void                    setICEnableCandidate         ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }
    212212  Void                    setICEnableNum         ( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }
Note: See TracChangeset for help on using the changeset viewer.