Changeset 1303 in 3DVCSoftware for branches/HTM-14.1-update-dev1-LG


Ignore:
Timestamp:
28 Jul 2015, 03:59:07 (9 years ago)
Author:
lg
Message:

Integration of inter SDC

Location:
branches/HTM-14.1-update-dev1-LG
Files:
1 added
23 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp

    r1287 r1303  
    20882088  // check validity of input parameters
    20892089  xCheckParameter();
    2090  
    2091   // FJ: this should be removed as soon as Inter-SDC is fully implemented
    2092 #if NH_3D && !NH_3D_SDC_INTER
    2093   m_interSdcFlag = false;
    2094 #endif
    20952090
    20962091  // compute actual CU depth with respect to config depth and max transform size
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibCommon/TComDataCU.cpp

    r1285 r1303  
    134134#if NH_3D_IC
    135135  m_pbICFlag             = NULL;
    136 #endif
    137 #if H_3D_INTER_SDC
    138136#endif
    139137#if NH_3D_DBBP
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibCommon/TComPattern.h

    r1279 r1303  
    8484  Bool              m_bICFlag;
    8585#endif
    86 #if H_3D_INTER_SDC
     86#if NH_3D_SDC_INTER
    8787  Bool              m_bSDCMRSADFlag;
    8888#endif
     
    102102  Void  setICFlag( Bool bICFlag ) { m_bICFlag = bICFlag; }
    103103#endif
    104 #if H_3D_INTER_SDC
     104#if NH_3D_SDC_INTER
    105105  Bool  getSDCMRSADFlag()         { return m_bSDCMRSADFlag; }
    106106  Void  setSDCMRSADFlag( Bool bSDCMRSADFlag )    { m_bSDCMRSADFlag = bSDCMRSADFlag; }
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibCommon/TComRdCost.cpp

    r1279 r1303  
    564564  cDtParam.bUseIC       = false;
    565565#endif
    566 #if H_3D_INTER_SDC
     566#if NH_3D_SDC_INTER
    567567  cDtParam.bUseSDCMRSAD = false;
    568568#endif
     
    605605  cDtParam.bUseIC       = false;
    606606#endif
    607 #if H_3D_INTER_SDC_FIX
     607#if NH_3D_SDC_INTER
    608608  cDtParam.bUseSDCMRSAD = false;
    609609#endif
     
    776776  }
    777777#endif
    778 #if H_3D_INTER_SDC
     778#if NH_3D_SDC_INTER
    779779  if( pcDtParam->bUseSDCMRSAD )
    780780  {
     
    818818  }
    819819#endif
    820 #if H_3D_INTER_SDC
     820#if NH_3D_SDC_INTER
    821821  if( pcDtParam->bUseSDCMRSAD )
    822822  {
     
    863863  }
    864864#endif
    865 #if H_3D_INTER_SDC
     865#if NH_3D_SDC_INTER
    866866  if( pcDtParam->bUseSDCMRSAD )
    867867  {
     
    912912  }
    913913#endif
    914 #if H_3D_INTER_SDC
     914#if NH_3D_SDC_INTER
    915915  if( pcDtParam->bUseSDCMRSAD )
    916916  {
     
    968968  }
    969969#endif
    970 #if H_3D_INTER_SDC
     970#if NH_3D_SDC_INTER
    971971  if( pcDtParam->bUseSDCMRSAD )
    972972  {
     
    10161016  }
    10171017#endif
    1018 #if H_3D_INTER_SDC
     1018#if NH_3D_SDC_INTER
    10191019  if( pcDtParam->bUseSDCMRSAD )
    10201020  {
     
    10761076  }
    10771077#endif
    1078 #if H_3D_INTER_SDC
     1078#if NH_3D_SDC_INTER
    10791079  if( pcDtParam->bUseSDCMRSAD )
    10801080  {
     
    11491149  }
    11501150#endif
    1151 #if H_3D_INTER_SDC
     1151#if NH_3D_SDC_INTER
    11521152  if( pcDtParam->bUseSDCMRSAD )
    11531153  {
     
    12141214  }
    12151215#endif
    1216 #if H_3D_INTER_SDC
     1216#if NH_3D_SDC_INTER
    12171217  if( pcDtParam->bUseSDCMRSAD )
    12181218  {
     
    13181318  }
    13191319#endif
    1320 #if H_3D_INTER_SDC
     1320#if NH_3D_SDC_INTER
    13211321  if( pcDtParam->bUseSDCMRSAD )
    13221322  {
     
    13951395
    13961396
    1397 #if NH_3D_IC || H_3D_INTER_SDC
     1397#if NH_3D_IC || NH_3D_SDC_INTER
    13981398UInt TComRdCost::xGetSADic( DistParam* pcDtParam )
    13991399{
     
    33403340  }
    33413341#endif
    3342 #if H_3D_INTER_SDC
     3342#if NH_3D_SDC_INTER
    33433343  if( pcDtParam->bUseSDCMRSAD )
    33443344  {
     
    34103410}
    34113411
    3412 #if NH_3D_IC || H_3D_INTER_SDC
     3412#if NH_3D_IC || NH_3D_SDC_INTER
    34133413UInt TComRdCost::xGetHADsic( DistParam* pcDtParam )
    34143414{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibCommon/TComRdCost.h

    r1279 r1303  
    9494  Bool  bUseIC;
    9595#endif
    96 #if H_3D_INTER_SDC
     96#if NH_3D_SDC_INTER
    9797  Bool  bUseSDCMRSAD;
    9898#endif
     
    129129    iStrideVir = 0;
    130130#endif
    131 #if H_3D_INTER_SDC
     131#if NH_3D_SDC_INTER
    132132    bUseSDCMRSAD = false;
    133133#endif
     
    256256  static Distortion xGetSSE64         ( DistParam* pcDtParam );
    257257  static Distortion xGetSSE16N        ( DistParam* pcDtParam );
    258 #if NH_3D_IC || H_3D_INTER_SDC
     258#if NH_3D_IC || NH_3D_SDC_INTER
    259259  static UInt xGetSADic         ( DistParam* pcDtParam );
    260260  static UInt xGetSAD4ic        ( DistParam* pcDtParam );
     
    283283#endif
    284284
    285 #if NH_3D_IC || H_3D_INTER_SDC
     285#if NH_3D_IC || NH_3D_SDC_INTER
    286286  static UInt xGetSAD12ic       ( DistParam* pcDtParam );
    287287  static UInt xGetSAD24ic       ( DistParam* pcDtParam );
     
    294294
    295295
    296 #if NH_3D_IC || H_3D_INTER_SDC
     296#if NH_3D_IC || NH_3D_SDC_INTER
    297297  static UInt xGetHADsic          ( DistParam* pcDtParam );
    298298#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibCommon/TypeDef.h

    r1282 r1303  
    121121#define NH_3D_DLT                         1   // Depth Lookup Table
    122122#define NH_3D_SDC_INTRA                   1   // Segment-wise DC Coding method for INTRA
    123 #define NH_3D_SDC_INTER                   0   // Segment-wise DC Coding method for INTER 
     123#define NH_3D_SDC_INTER                   1   // Segment-wise DC Coding method for INTER 
    124124#define NH_3D_ENC_DEPTH                   1   // Encoder optimizations for depth, incl.
    125125                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1287 r1303  
    33743374}
    33753375#endif
    3376 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     3376#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    33773377Void TDecCavlc::parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    33783378{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecCAVLC.h

    r1279 r1303  
    123123  Void  parseICFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    124124#endif
    125 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     125#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    126126  Void  parseDeltaDC        ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/, UInt /*depth*/ ) { assert(0); };
    127127#endif
    128 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     128#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    129129  Void  parseSDCFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    130130#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecCu.cpp

    r1288 r1303  
    656656    {
    657657#endif
    658 #if H_3D_INTER_SDC
     658#if NH_3D_SDC_INTER
    659659      if( m_ppcCU[uiDepth]->getSDCFlag( 0 ) )
    660660      {
     
    665665#endif
    666666      xReconInter( m_ppcCU[uiDepth], uiDepth );
    667 #if H_3D_INTER_SDC
     667#if NH_3D_SDC_INTER
    668668      }
    669669#endif
     
    836836}
    837837#endif
    838 #if H_3D_INTER_SDC
     838#if NH_3D_SDC_INTER
    839839Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    840840{
     
    847847  Pel  *pResi;
    848848  UInt uiPelX, uiPelY;
    849   UInt uiResiStride = m_ppcYuvResi[uiDepth]->getStride();
    850 
    851   pResi = m_ppcYuvResi[uiDepth]->getLumaAddr( 0 );
     849  UInt uiResiStride = m_ppcYuvResi[uiDepth]->getStride( COMPONENT_Y );
     850  Int  bitDepthC = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA);
     851
     852  pResi = m_ppcYuvResi[uiDepth]->getAddr( COMPONENT_Y );
    852853  for( uiPelY = 0; uiPelY < uiHeight; uiPelY++ )
    853854  {
     
    859860  }
    860861
    861   m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );
     862  m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() );
    862863
    863864  // clear UV
    864   UInt  uiStrideC     = m_ppcYuvReco[uiDepth]->getCStride();
    865   Pel   *pRecCb       = m_ppcYuvReco[uiDepth]->getCbAddr();
    866   Pel   *pRecCr       = m_ppcYuvReco[uiDepth]->getCrAddr();
     865  UInt  uiStrideC     = m_ppcYuvReco[uiDepth]->getStride( COMPONENT_Cb );
     866  Pel   *pRecCb       = m_ppcYuvReco[uiDepth]->getAddr( COMPONENT_Cb );
     867  Pel   *pRecCr       = m_ppcYuvReco[uiDepth]->getAddr( COMPONENT_Cr );
    867868
    868869  for (Int y = 0; y < uiHeight/2; y++)
     
    870871    for (Int x = 0; x < uiWidth/2; x++)
    871872    {
    872       pRecCb[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );
    873       pRecCr[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );
     873      pRecCb[x] = (Pel)( 1 << ( bitDepthC - 1 ) );
     874      pRecCr[x] = (Pel)( 1 << ( bitDepthC - 1 ) );
    874875    }
    875876
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecCu.h

    r1279 r1303  
    130130  Void xReconIntraSDC           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    131131#endif
    132 #if H_3D_INTER_SDC
     132#if NH_3D_SDC_INTER
    133133  Void xReconInterSDC           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    134134#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1279 r1303  
    298298  decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );
    299299#endif
    300   //decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth );
    301 
     300#if NH_3D_SDC_INTER
     301  decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth );
     302#endif
    302303#if NH_3D_ARP
    303304  decodeARPW  ( pcCU, uiAbsPartIdx, uiDepth );
     
    10921093}
    10931094#endif
    1094 #if H_3D_INTER_SDC
     1095#if NH_3D_SDC_INTER
    10951096  if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx) )
    10961097  {
     
    11031104  if( pcCU->getSlice()->getIsDepth() )
    11041105  {
    1105 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     1106#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    11061107    if( pcCU->getSDCFlag( uiAbsPartIdx ) )
    11071108    {
     
    11611162}
    11621163
    1163 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     1164#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    11641165Void TDecEntropy::decodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    11651166{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecEntropy.h

    r1279 r1303  
    8989  virtual Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9090#endif
    91 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     91#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    9292  virtual Void  parseDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) = 0;
    9393#endif
    94 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     94#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    9595  virtual Void parseSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9696#endif
     
    181181#endif
    182182
    183 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     183#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    184184  Void decodeSDCFlag           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    185185#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecSbac.cpp

    r1279 r1303  
    111111, m_cDmmModeSCModel                          ( 1,             1,                      NUM_DMM_MODE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    112112#endif
    113 #if NH_3D_DMM || NH_3D_SDC_INTRA
     113#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    114114, m_cDdcDataSCModel                          ( 1,             1,                      NUM_DDC_DATA_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
     115, m_cSDCFlagSCModel                          ( 1,             1,                     NUM_SDC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    115116#endif
    116117#if NH_3D_SDC_INTRA
    117118, m_cSDCResidualFlagSCModel                  ( 1,             1,                     SDC_NUM_RESIDUAL_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    118119, m_cSDCResidualSCModel                      ( 1,             1,                     SDC_NUM_RESIDUAL_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
    119 , m_cSDCFlagSCModel                          ( 1,             1,                     NUM_SDC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    120120, m_cDdcFlagSCModel                          ( 1,             1,                     NUM_DDC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    121121#endif
     
    202202  m_cDmmModeSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DMM_MODE );
    203203#endif
    204 #if NH_3D_DMM || NH_3D_SDC_INTRA
     204#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    205205  m_cDdcDataSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DDC_DATA );
     206  m_cSDCFlagSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_SDC_FLAG );
    206207#endif
    207208#if NH_3D_SDC_INTRA
    208209  m_cSDCResidualFlagSCModel.initBuffer            ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
    209210  m_cSDCResidualSCModel.initBuffer                ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL );
    210   m_cSDCFlagSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_SDC_FLAG );
    211211  m_cDdcFlagSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DDC_FLAG );
    212212#endif
     
    23192319#endif
    23202320
    2321 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2321#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    23222322Void TDecSbac::parseDeltaDC( TComDataCU* pcCU, UInt absPartIdx, UInt depth )
    23232323{
    2324 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2324#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    23252325  if( !(pcCU->getSDCFlag( absPartIdx )) )
    23262326#endif
     
    23702370#endif
    23712371    }
    2372 #if H_3D_INTER_SDC
     2372#if NH_3D_SDC_INTER
    23732373    else
    23742374    {
     
    24892489}
    24902490#endif
    2491 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2491#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    24922492Void TDecSbac::parseSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    24932493{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibDecoder/TDecSbac.h

    r1279 r1303  
    107107  Void  xReadCoefRemainExGolomb ( UInt &rSymbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange );
    108108#endif
    109 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     109#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    110110  Void  xReadExGolombLevelDdc( UInt& ruiSymbol );
    111111  Void  xParseDeltaDC        ( Pel& rValDeltaDC, UInt uiNumSeg );
     
    119119  Void  xParseSDCResidualData     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );
    120120#endif
    121 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     121#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    122122  Void  parseSDCFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    123123#endif
     
    136136  Void parseDIS          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    137137#endif
    138 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     138#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    139139  Void  parseDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx, UInt depth );
    140140#endif
     
    229229  ContextModel3DBuffer m_cDmmModeSCModel;
    230230#endif
    231 #if NH_3D_DMM || NH_3D_SDC_INTRA
     231#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    232232  ContextModel3DBuffer m_cDdcDataSCModel;
     233  ContextModel3DBuffer m_cSDCFlagSCModel;
    233234#endif
    234235#if NH_3D_SDC_INTRA 
    235236  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
    236237  ContextModel3DBuffer m_cSDCResidualSCModel;
    237   ContextModel3DBuffer m_cSDCFlagSCModel;
    238238  ContextModel3DBuffer m_cDdcFlagSCModel;
    239239#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1279 r1303  
    28312831   assert(0);
    28322832 }
    2833 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2833#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    28342834Void TEncCavlc::codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx )
    28352835{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncCavlc.h

    r1279 r1303  
    126126  Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    127127  Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    128 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     128#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    129129  Void  codeDeltaDC      ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/ ) { assert(0); };
    130130#endif
     
    136136#endif
    137137
    138 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     138#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    139139  Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    140140#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncCu.cpp

    r1289 r1303  
    20942094          }
    20952095#endif
    2096 #if H_3D_INTER_SDC
     2096#if NH_3D_SDC_INTER
    20972097          TComDataCU *rpcTempCUPre = rpcTempCU;
    20982098#endif
     
    21002100          xCheckDQP( rpcTempCU );
    21012101          xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(bestStr) DEBUG_STRING_PASS_INTO(tmpStr));
    2102 #if H_3D_INTER_SDC
     2102#if NH_3D_SDC_INTER
    21032103          if( rpcTempCU->getSlice()->getInterSdcFlag() && !uiNoResidual )
    21042104          {
     
    21312131#endif
    21322132              rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth );
    2133               rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );
     2133              rpcTempCU->setCbfSubParts( 1, COMPONENT_Y, 0, uhDepth );
    21342134#if NH_3D_VSO //M2
    21352135              if( m_pcRdCost->getUseRenModel() )
     
    21732173          if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip )
    21742174          {
    2175 #if H_3D_INTER_SDC
     2175#if NH_3D_SDC_INTER
    21762176            if( rpcTempCU->getSlice()->getInterSdcFlag() )
    21772177            {
     
    21822182#endif
    21832183            bestIsSkip = rpcBestCU->getQtRootCbf(0) == 0;
    2184 #if H_3D_INTER_SDC
     2184#if NH_3D_SDC_INTER
    21852185            }
    21862186#endif
     
    23772377  DebugInterPredResiReco(sTest, *(m_ppcPredYuvTemp[uhDepth]), *(m_ppcResiYuvBest[uhDepth]), *(m_ppcRecoYuvTemp[uhDepth]), DebugStringGetPredModeMask(rpcTempCU->getPredictionMode(0)));
    23782378#endif
    2379 #if H_3D_INTER_SDC
     2379#if NH_3D_SDC_INTER
    23802380      TComDataCU *rpcTempCUPre = rpcTempCU;
    23812381#endif
     
    23832383  xCheckDQP( rpcTempCU );
    23842384  xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest));
    2385 #if H_3D_INTER_SDC
     2385#if NH_3D_SDC_INTER
    23862386      if( rpcTempCU->getSlice()->getInterSdcFlag() && ePartSize == SIZE_2Nx2N)
    23872387      {
     
    24162416#endif
    24172417          rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth );
    2418           rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );
     2418          rpcTempCU->setCbfSubParts( 1, COMPONENT_Y, 0, uhDepth );
    24192419#if NH_3D_VSO // M3
    24202420          if( m_pcRdCost->getUseRenModel() )
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1279 r1303  
    723723  }
    724724#endif
    725 #if H_3D_INTER_SDC
     725#if NH_3D_SDC_INTER
    726726  if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx ) )
    727727  {
     
    734734  if( pcCU->getSlice()->getIsDepth() )
    735735  {
    736 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     736#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    737737    if( pcCU->getSDCFlag( uiAbsPartIdx ) )
    738738    {
     
    843843}
    844844
    845 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     845#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    846846Void TEncEntropy::encodeDeltaDC  ( TComDataCU* pcCU, UInt absPartIdx )
    847847{
     
    849849}
    850850#endif
    851 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     851#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    852852Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    853853{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.h

    r1279 r1303  
    8484  virtual Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8585  virtual Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    86 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     86#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    8787  virtual Void codeDeltaDC       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8888#endif
     
    9393  virtual Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9494#endif
    95 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     95#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    9696  virtual Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9797#endif
     
    181181  Void encodeICFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    182182#endif
    183 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     183#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    184184  Void encodeDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx );
    185185#endif
    186 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     186#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    187187  Void encodeSDCFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    188188#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncSbac.cpp

    r1279 r1303  
    106106, m_cDmmModeSCModel                    ( 1,             1,                      NUM_DMM_MODE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    107107#endif
    108 #if NH_3D_DMM || NH_3D_SDC_INTRA
     108#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    109109, m_cDdcDataSCModel                    ( 1,             1,                      NUM_DDC_DATA_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
     110, m_cSDCFlagSCModel                    ( 1,             1,                       NUM_SDC_FLAG_CTX                    , m_contextModels + m_numContextModels, m_numContextModels)
    110111#endif
    111112#if NH_3D_SDC_INTRA
    112113, m_cSDCResidualFlagSCModel            ( 1,             1,                      SDC_NUM_RESIDUAL_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
    113114, m_cSDCResidualSCModel                ( 1,             1,                      SDC_NUM_RESIDUAL_CTX                 , m_contextModels + m_numContextModels, m_numContextModels)
    114 , m_cSDCFlagSCModel                    ( 1,             1,                       NUM_SDC_FLAG_CTX                    , m_contextModels + m_numContextModels, m_numContextModels)
    115115, m_cDdcFlagSCModel                    ( 1,             1,                      NUM_DDC_FLAG_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    116116#endif                                                                                                         
     
    187187  m_cDmmModeSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_DMM_MODE );
    188188#endif
    189 #if NH_3D_DMM || NH_3D_SDC_INTRA
     189#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    190190  m_cDdcDataSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
     191  m_cSDCFlagSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
    191192#endif
    192193#if NH_3D_SDC_INTRA
    193194  m_cSDCResidualFlagSCModel.initBuffer            ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
    194195  m_cSDCResidualSCModel.initBuffer                ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
    195   m_cSDCFlagSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
    196196  m_cDdcFlagSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_DDC_FLAG );
    197197#endif                                           
     
    243243      curCost += m_cCUICFlagSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_IC_FLAG );
    244244#endif                                                     
    245 #if NH_3D_SDC_INTRA
     245#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    246246      curCost += m_cSDCFlagSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_SDC_FLAG );
    247247#endif                                                     
     
    280280      curCost += m_cDmmModeSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_DMM_MODE );
    281281#endif
    282 #if NH_3D_DMM || NH_3D_SDC_INTRA
     282#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    283283      curCost += m_cDdcDataSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_DDC_DATA );
    284284#endif
     
    24592459}
    24602460
    2461 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2461#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    24622462Void TEncSbac::codeDeltaDC( TComDataCU* pcCU, UInt absPartIdx )
    24632463{
    2464 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2464#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    24652465  if( !(pcCU->getSDCFlag( absPartIdx )) )
    24662466#endif
     
    25132513#endif
    25142514      }
    2515 #if H_3D_INTER_SDC
     2515#if NH_3D_SDC_INTER
    25162516      else
    25172517      {
     
    26142614#endif
    26152615
    2616 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     2616#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    26172617Void TEncSbac::codeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    26182618{
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncSbac.h

    r1279 r1303  
    115115  Void  xWriteEpExGolomb     ( UInt uiSymbol, UInt uiCount );
    116116  Void  xWriteCoefRemainExGolomb ( UInt symbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange );
    117 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     117#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    118118  Void  xWriteExGolombLevelDdc( UInt uiSymbol );
    119119  Void  xCodeDeltaDC         ( Pel valDeltaDC, UInt uiNumSeg );
     
    149149  Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    150150#endif
    151 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
     151#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    152152  Void  codeDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx );
    153153#endif
    154 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     154#if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    155155  Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    156156#endif
     
    252252  ContextModel3DBuffer m_cDmmModeSCModel;
    253253#endif
    254 #if NH_3D_DMM || NH_3D_SDC_INTRA
     254#if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    255255  ContextModel3DBuffer m_cDdcDataSCModel;
     256  ContextModel3DBuffer m_cSDCFlagSCModel;
    256257#endif
    257258#if NH_3D_SDC_INTRA 
    258259  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
    259260  ContextModel3DBuffer m_cSDCResidualSCModel;
    260   ContextModel3DBuffer m_cSDCFlagSCModel;
    261261  ContextModel3DBuffer m_cDdcFlagSCModel;
    262262#endif
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncSearch.cpp

    r1287 r1303  
    4444#include <math.h>
    4545#include <limits>
    46 #if H_3D_INTER_SDC
    47 #include <memory.h>
    48 #endif
    49 
    5046
    5147//! \ingroup TLibEncoder
     
    372368  m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    373369#endif
    374 #if H_3D_INTER_SDC
     370#if NH_3D_SDC_INTER
    375371  m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag();
    376372#endif
     
    883879    m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    884880#endif
    885 #if H_3D_INTER_SDC
     881#if NH_3D_SDC_INTER
    886882    m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag();
    887883#endif
     
    29072903      distParam.bUseIC = false;
    29082904#endif
    2909 #if H_3D_INTER_SDC_FIX
     2905#if NH_3D_SDC_INTER
    29102906      distParam.bUseSDCMRSAD = false;
    29112907#endif
     
    38473843  cDistParam.bUseIC = false;
    38483844#endif
    3849 #if H_3D_INTER_SDC
     3845#if NH_3D_SDC_INTER
    38503846  cDistParam.bUseSDCMRSAD = false;
    38513847#endif
     
    50575053  pcPatternKey->setICFlag( bICFlag );
    50585054#endif
    5059 #if H_3D_INTER_SDC
     5055#if NH_3D_SDC_INTER
    50605056   pcPatternKey->setSDCMRSADFlag( pcCU->getSlice()->getInterSdcFlag() );
    50615057#endif
     
    52465242      m_cDistParam.bUseIC = pcPatternKey->getICFlag();
    52475243#endif
    5248 #if H_3D_INTER_SDC
     5244#if NH_3D_SDC_INTER
    52495245      m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag();
    52505246#endif
     
    59645960}
    59655961
    5966 #if H_3D_INTER_SDC
     5962#if NH_3D_SDC_INTER
    59675963Void TEncSearch::encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcRec, Int uiOffest, const UInt uiDepth )
    59685964{
     
    59785974
    59795975  Pel *pPred, *pOrg;
    5980   UInt uiPredStride = pcPred->getStride();
    5981   UInt uiOrgStride  = pcOrg->getStride();
     5976  UInt uiPredStride = pcPred->getStride( COMPONENT_Y );
     5977  UInt uiOrgStride  = pcOrg->getStride( COMPONENT_Y );
    59825978  UInt uiPelX, uiPelY;
    59835979
    5984   pPred = pcPred->getLumaAddr( 0 );
    5985   pOrg  = pcOrg->getLumaAddr( 0 );
     5980  pPred = pcPred->getAddr( COMPONENT_Y );
     5981  pOrg  = pcOrg->getAddr( COMPONENT_Y );
    59865982  Int pResDC = 0;
     5983  Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA);
     5984  Int bitDepthC = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA);
    59875985
    59885986  //calculate dc value for prediction and original signal, and calculate residual and reconstruction
     
    60056003
    60066004  Pel *pRec;
    6007   UInt uiRecStride  = pcRec->getStride();
    6008   pPred = pcPred->getLumaAddr( 0 );
    6009   pRec  = pcRec->getLumaAddr( 0 );
     6005  UInt uiRecStride  = pcRec->getStride( COMPONENT_Y );
     6006  pPred = pcPred->getAddr( COMPONENT_Y );
     6007  pRec  = pcRec->getAddr( COMPONENT_Y );
    60106008
    60116009  for( uiPelY = 0; uiPelY < uiHeight; uiPelY++ )
     
    60136011    for( uiPelX = 0; uiPelX < uiWidth; uiPelX++ )
    60146012    {
    6015       pRec[ uiPelX ] = Clip3( 0, ( 1 << g_bitDepthY ) - 1, pPred[uiPelX] + pcCU->getSDCSegmentDCOffset(0, 0) );
     6013      pRec[ uiPelX ] = Clip3( 0, (1 << bitDepthY) - 1, pPred[uiPelX] + pcCU->getSDCSegmentDCOffset(0, 0) );
    60166014    }
    60176015    pPred     += uiPredStride;
     
    60206018
    60216019  // clear UV
    6022   UInt  uiStrideC     = pcRec->getCStride();
    6023   Pel   *pRecCb       = pcRec->getCbAddr();
    6024   Pel   *pRecCr       = pcRec->getCrAddr();
     6020  UInt  uiStrideC     = pcRec->getStride( COMPONENT_Cb );
     6021  Pel   *pRecCb       = pcRec->getAddr( COMPONENT_Cb );
     6022  Pel   *pRecCr       = pcRec->getAddr( COMPONENT_Cr );
    60256023
    60266024  for (Int y=0; y < uiHeight/2; y++)
     
    60286026    for (Int x=0; x < uiWidth/2; x++)
    60296027    {
    6030       pRecCb[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );
    6031       pRecCr[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );
     6028      pRecCb[x] = (Pel)( 1 << ( bitDepthC - 1 ) );
     6029      pRecCr[x] = (Pel)( 1 << ( bitDepthC - 1 ) );
    60326030    }
    60336031
     
    60386036  Dist ruiDist;
    60396037  Double rdCost;
    6040 #if H_3D_VSO // M13
     6038#if NH_3D_VSO // M13
    60416039  if ( m_pcRdCost->getUseVSO() )
    60426040  {
    6043     ruiDist = m_pcRdCost->getDistPartVSO( pcCU, 0, pcRec->getLumaAddr(), pcRec->getStride(),  pcOrg->getLumaAddr(), pcOrg->getStride(),  uiWidth,      uiHeight     , false );
     6041    ruiDist = m_pcRdCost->getDistPartVSO( pcCU, 0, bitDepthY, pcRec->getAddr( COMPONENT_Y ), pcRec->getStride( COMPONENT_Y ),  pcOrg->getAddr( COMPONENT_Y ), pcOrg->getStride( COMPONENT_Y ),  uiWidth,      uiHeight     , false );
    60446042  }
    60456043  else   
     
    60476045#endif
    60486046    {
    6049       ruiDist = m_pcRdCost->getDistPart( g_bitDepthY, pcRec->getLumaAddr( 0 ), uiRecStride, pcOrg->getLumaAddr( 0 ), uiOrgStride, uiWidth, uiHeight );
    6050     }
    6051 #if H_3D_VSO
    6052   }
    6053 #endif
    6054 
    6055 #if NH_3D_SDC_INTRA
     6047      ruiDist = m_pcRdCost->getDistPart( bitDepthY, pcRec->getAddr( COMPONENT_Y ), uiRecStride, pcOrg->getAddr( COMPONENT_Y ), uiOrgStride, uiWidth, uiHeight, COMPONENT_Y );
     6048    }
     6049#if NH_3D_VSO
     6050  }
     6051#endif
     6052
    60566053  Bool bNonSkip = false;
    6057 #else
    6058   Bool bNonSkip = true;
    6059 #endif
    60606054  bNonSkip |= ( pcCU->getSDCSegmentDCOffset( 0, 0 ) != 0 ) ? 1 : 0;
    60616055  if( !bNonSkip )
     
    60696063    //----- determine rate and r-d cost -----
    60706064    UInt uiBits = 0;
    6071     TComYuv *pDummy = NULL;
    60726065    m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] );
    60736066
    6074     xAddSymbolBitsInter( pcCU, 0, 0, uiBits, pDummy, NULL, pDummy );
    6075 
    6076 #if H_3D_VSO //M 14
     6067    xAddSymbolBitsInter( pcCU, uiBits );
     6068
     6069#if NH_3D_VSO //M 14
    60776070    if ( m_pcRdCost->getUseLambdaScaleVSO() )   
    60786071    {
     
    60926085  }
    60936086
    6094 #if H_3D_VSO // necessary? // M15
     6087#if NH_3D_VSO // necessary? // M15
    60956088  // set Model
    60966089  if( !m_pcRdCost->getUseEstimatedVSD() && m_pcRdCost->getUseRenModel() )
    60976090  {
    6098     Pel*  piSrc       = pcRec->getLumaAddr();
    6099     UInt  uiSrcStride = pcRec->getStride();
     6091    Pel*  piSrc       = pcRec->getAddr( COMPONENT_Y );
     6092    UInt  uiSrcStride = pcRec->getStride( COMPONENT_Y );
    61006093    m_pcRdCost->setRenModelData( pcCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
    61016094  }
  • branches/HTM-14.1-update-dev1-LG/source/Lib/TLibEncoder/TEncSearch.h

    r1287 r1303  
    230230                                  Bool        bSkipResidual
    231231                                  DEBUG_STRING_FN_DECLARE(sDebug) );
    232 #if H_3D_INTER_SDC
     232#if NH_3D_SDC_INTER
    233233  Void encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU,
    234     TComYuv* pcOrg,
    235     TComYuv* pcPred,
    236     TComYuv* pcResi,
    237     TComYuv* pcRec,
    238     Int      uiOffset,
    239     const UInt uiDepth );
     234                                     TComYuv* pcOrg,
     235                                     TComYuv* pcPred,
     236                                     TComYuv* pcResi,
     237                                     TComYuv* pcRec,
     238                                     Int      uiOffset,
     239                                     const UInt uiDepth );
    240240#endif
    241241
Note: See TracChangeset for help on using the changeset viewer.