Ignore:
Timestamp:
12 Apr 2018, 11:12:21 (7 years ago)
Author:
tech
Message:
  • Update HM-16.18
  • Cleanups
  • Encoder Extension

-- Representation formats
-- Parameter set sharing
-- GOP configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-16.2-dev/source/Lib/TLibDecoder/TDecSbac.cpp

    r1405 r1412  
    44 * granted under this license.
    55 *
    6  * Copyright (c) 2010-2016, ITU/ISO/IEC
     6 * Copyright (c) 2010-2017, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    6767, m_cCUSplitFlagSCModel                      ( 1,             1,                      NUM_SPLIT_FLAG_CTX                   , m_contextModels + m_numContextModels, m_numContextModels)
    6868, m_cCUSkipFlagSCModel                       ( 1,             1,                      NUM_SKIP_FLAG_CTX                    , m_contextModels + m_numContextModels, m_numContextModels)
    69 #if NH_3D_DIS
     69#if NH_3D
    7070, m_cCUDISFlagSCModel                        ( 1,             1,                      NUM_DIS_FLAG_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    7171, m_cCUDISTypeSCModel                        ( 1,             1,                      NUM_DIS_TYPE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
     
    7373, m_cCUMergeFlagExtSCModel                   ( 1,             1,                      NUM_MERGE_FLAG_EXT_CTX               , m_contextModels + m_numContextModels, m_numContextModels)
    7474, m_cCUMergeIdxExtSCModel                    ( 1,             1,                      NUM_MERGE_IDX_EXT_CTX                , m_contextModels + m_numContextModels, m_numContextModels)
    75 #if NH_3D_ARP
     75#if NH_3D
    7676, m_cCUPUARPWSCModel          ( 1,             1,               NUM_ARPW_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
    77 #endif
    78 #if NH_3D_IC
    7977, m_cCUICFlagSCModel          ( 1,             1,               NUM_IC_FLAG_CTX               , m_contextModels + m_numContextModels, m_numContextModels)
    8078#endif
     
    107105, m_ChromaQpAdjIdcSCModel                    ( 1,             1,                      NUM_CHROMA_QP_ADJ_IDC_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
    108106
    109 #if NH_3D_DMM
     107#if NH_3D
    110108, m_cNotDmmFlagSCModel                       ( 1,             1,                      NUM_NOTDMM_FLAG_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
    111109, m_cDmmModeSCModel                          ( 1,             1,                      NUM_DMM_MODE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    112 #endif
    113 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    114110, m_cDdcDataSCModel                          ( 1,             1,                      NUM_DDC_DATA_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    115111, m_cSDCFlagSCModel                          ( 1,             1,                     NUM_SDC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    116 #endif
    117 #if NH_3D_SDC_INTRA
    118112, m_cSDCResidualFlagSCModel                  ( 1,             1,                     SDC_NUM_RESIDUAL_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    119113, m_cSDCResidualSCModel                      ( 1,             1,                     SDC_NUM_RESIDUAL_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
    120114, m_cDdcFlagSCModel                          ( 1,             1,                     NUM_DDC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
    121 #endif
    122 #if NH_3D_DBBP
    123115, m_cDBBPFlagSCModel                         ( 1,             1,                     DBBP_NUM_FLAG_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
    124116#endif
     
    159151  m_cCUSplitFlagSCModel.initBuffer                ( sliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    160152  m_cCUSkipFlagSCModel.initBuffer                 ( sliceType, qp, (UChar*)INIT_SKIP_FLAG );
    161 #if NH_3D_DIS
     153#if NH_3D
    162154  m_cCUDISFlagSCModel.initBuffer                  ( sliceType, qp, (UChar*)INIT_DIS_FLAG );
    163155  m_cCUDISTypeSCModel.initBuffer                  ( sliceType, qp, (UChar*)INIT_DIS_TYPE );
     
    165157  m_cCUMergeFlagExtSCModel.initBuffer             ( sliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT );
    166158  m_cCUMergeIdxExtSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_MERGE_IDX_EXT );
    167 #if NH_3D_ARP
     159#if NH_3D
    168160  m_cCUPUARPWSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_ARPW );
    169 #endif
    170 #if NH_3D_IC
    171161  m_cCUICFlagSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_IC_FLAG );
    172162#endif
     
    198188  m_ChromaQpAdjFlagSCModel.initBuffer             ( sliceType, qp, (UChar*)INIT_CHROMA_QP_ADJ_FLAG );
    199189  m_ChromaQpAdjIdcSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_CHROMA_QP_ADJ_IDC );
    200 #if NH_3D_DMM
     190#if NH_3D
    201191  m_cNotDmmFlagSCModel.initBuffer                 ( sliceType, qp, (UChar*)INIT_NOTDMM_FLAG );
    202192  m_cDmmModeSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DMM_MODE );
    203 #endif
    204 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    205193  m_cDdcDataSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DDC_DATA );
    206194  m_cSDCFlagSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_SDC_FLAG );
    207 #endif
    208 #if NH_3D_SDC_INTRA
    209195  m_cSDCResidualFlagSCModel.initBuffer            ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
    210196  m_cSDCResidualSCModel.initBuffer                ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL );
    211197  m_cDdcFlagSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DDC_FLAG );
    212 #endif
    213 #if NH_3D_DBBP
    214198  m_cDBBPFlagSCModel.initBuffer                   ( sliceType, qp, (UChar*)INIT_DBBP_FLAG );
    215199#endif
     
    512496
    513497}
    514 #if NH_3D_DIS
     498#if NH_3D
    515499Void TDecSbac::parseDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    516500{
     
    642626
    643627  UInt uiSymbol;
    644 #if NH_3D_QTLPC
     628#if NH_3D
    645629  Bool bParseSplitFlag    = true;
    646630  Bool    bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag();
     
    651635  Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    652636
    653 #if H_3D_FCO
    654   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    655 #else
    656637  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag)
    657 #endif
    658638  {
    659639    TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr());
     
    672652  DTRACE_CABAC_T( "\tSplitFlag\n" )
    673653#endif
    674 #if NH_3D_QTLPC
     654#if NH_3D
    675655  }
    676656  else
     
    704684  assert ( pcCU->getSlice()->getSPS()->getLog2DiffMaxMinCodingBlockSize() == log2DiffMaxMinCodingBlockSize);
    705685
    706 #if NH_3D_QTLPC
     686#if NH_3D
    707687  Bool bParsePartSize    = true;
    708688
     
    717697  UInt uiTexturePart = uiMode;
    718698
    719 #if H_3D_FCO
    720   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    721 #else
    722699  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag )
    723 #endif
    724700  {
    725701    TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr());
     
    740716  if ( pcCU->isIntra( uiAbsPartIdx ) )
    741717  {
    742 #if NH_3D_QTLPC
     718#if NH_3D
    743719    if(bParsePartSize)
    744720    {
    745721#endif
    746     uiSymbol = 1;
    747     if( uiDepth == log2DiffMaxMinCodingBlockSize )
    748     {
    749       m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 0) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     722      uiSymbol = 1;
     723      if( uiDepth == log2DiffMaxMinCodingBlockSize )
     724      {
     725        m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 0) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    750726#if NH_MV_ENC_DEC_TRAC         
    751727        DTRACE_CU("part_mode", uiSymbol)
    752728#endif       
    753     }
    754     eMode = uiSymbol ? SIZE_2Nx2N : SIZE_NxN;
    755 #if NH_3D_QTLPC
     729      }
     730      eMode = uiSymbol ? SIZE_2Nx2N : SIZE_NxN;
     731#if NH_3D
    756732    }
    757733#endif
     
    771747  else
    772748  {
    773 #if NH_3D_QTLPC
     749#if NH_3D
    774750    if(bParsePartSize)
    775751    {
     
    777753      {
    778754#endif
    779     UInt uiMaxNumBits = 2;
    780 
    781     if( uiDepth == log2DiffMaxMinCodingBlockSize && !( cuWidth == 8 && cuHeight == 8 ) )
    782     {
    783       uiMaxNumBits ++;
    784     }
    785 
    786     for ( UInt ui = 0; ui < uiMaxNumBits; ui++ )
    787     {
    788       m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    789       if ( uiSymbol )
    790       {
    791         break;
    792       }
    793       uiMode++;
    794     }
    795     eMode = (PartSize) uiMode;
    796     if ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize )
    797     {
    798       if (eMode == SIZE_2NxN)
    799       {
    800         m_pcTDecBinIf->decodeBin(uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 3 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype));
    801         if (uiSymbol == 0)
    802         {
    803           m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    804           eMode = (uiSymbol == 0? SIZE_2NxnU : SIZE_2NxnD);
    805         }
    806       }
    807       else if (eMode == SIZE_Nx2N)
    808       {
    809         m_pcTDecBinIf->decodeBin(uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 3 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    810         if (uiSymbol == 0)
    811         {
    812           m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    813           eMode = (uiSymbol == 0? SIZE_nLx2N : SIZE_nRx2N);
    814         }
    815       }
    816     }
    817 #if NH_3D_QTLPC
    818       }
    819       else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD)
    820       {
    821         UInt uiMaxNumBits = 1;
    822         if ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize )
     755        UInt uiMaxNumBits = 2;
     756
     757        if( uiDepth == log2DiffMaxMinCodingBlockSize && !( cuWidth == 8 && cuHeight == 8 ) )
    823758        {
    824759          uiMaxNumBits ++;
    825760        }
     761
    826762        for ( UInt ui = 0; ui < uiMaxNumBits; ui++ )
    827763        {
     
    834770        }
    835771        eMode = (PartSize) uiMode;
     772        if ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize )
     773        {
     774          if (eMode == SIZE_2NxN)
     775          {
     776            m_pcTDecBinIf->decodeBin(uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 3 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype));
     777            if (uiSymbol == 0)
     778            {
     779              m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     780              eMode = (uiSymbol == 0? SIZE_2NxnU : SIZE_2NxnD);
     781            }
     782          }
     783          else if (eMode == SIZE_Nx2N)
     784          {
     785            m_pcTDecBinIf->decodeBin(uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 3 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     786            if (uiSymbol == 0)
     787            {
     788              m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     789              eMode = (uiSymbol == 0? SIZE_nLx2N : SIZE_nRx2N);
     790            }
     791          }
     792        }
     793#if NH_3D
     794      }
     795      else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD)
     796      {
     797        UInt uiMaxNumBits = 1;
     798        if ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize )
     799        {
     800          uiMaxNumBits ++;
     801        }
     802        for ( UInt ui = 0; ui < uiMaxNumBits; ui++ )
     803        {
     804          m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     805          if ( uiSymbol )
     806          {
     807            break;
     808          }
     809          uiMode++;
     810        }
     811        eMode = (PartSize) uiMode;
    836812        if(uiMode && ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiSymbol==1 )
    837813        {
     
    887863      DTRACE_CU("part_mode", eMode )
    888864#endif
    889 #if NH_3D_QTLPC
     865#if NH_3D
    890866    }
    891867#endif
     
    937913  for (j=0;j<partNum;j++)
    938914  {
    939 #if NH_3D_DMM
     915#if NH_3D
    940916    if( pcCU->getSlice()->getIntraSdcWedgeFlag() || pcCU->getSlice()->getIntraContourFlag() )
    941917    {
     
    946922    {
    947923#endif
    948     m_pcTDecBinIf->decodeBin( symbol, m_cCUIntraPredSCModel.get( 0, 0, 0) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    949     mpmPred[j] = symbol;
     924      m_pcTDecBinIf->decodeBin( symbol, m_cCUIntraPredSCModel.get( 0, 0, 0) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     925      mpmPred[j] = symbol;
    950926#if NH_MV_ENC_DEC_TRAC         
    951927      DTRACE_CU("prev_intra_luma_pred_flag", symbol)
    952928#endif
    953 #if NH_3D_DMM
     929#if NH_3D
    954930    }
    955931#endif
     
    957933  for (j=0;j<partNum;j++)
    958934  {
    959 #if NH_3D_DMM
     935#if NH_3D
    960936    if( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx+partOffset*j ) < NUM_INTRA_MODE )
    961937    {
    962938#endif
    963     Int preds[NUM_MOST_PROBABLE_MODES] = {-1, -1, -1};
    964     pcCU->getIntraDirPredictor(absPartIdx+partOffset*j, preds, COMPONENT_Y);
    965     if (mpmPred[j])
    966     {
    967       m_pcTDecBinIf->decodeBinEP( symbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    968       if (symbol)
     939      Int preds[NUM_MOST_PROBABLE_MODES] = {-1, -1, -1};
     940      pcCU->getIntraDirPredictor(absPartIdx+partOffset*j, preds, COMPONENT_Y);
     941      if (mpmPred[j])
    969942      {
    970943        m_pcTDecBinIf->decodeBinEP( symbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    971         symbol++;
    972       }
     944        if (symbol)
     945        {
     946          m_pcTDecBinIf->decodeBinEP( symbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     947          symbol++;
     948        }
    973949#if NH_MV_ENC_DEC_TRAC         
    974950        DTRACE_CU("mpm_idx", symbol)
    975951#endif
    976       intraPredMode = preds[symbol];
    977     }
    978     else
    979     {
    980       m_pcTDecBinIf->decodeBinsEP( symbol, 5 RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
    981       intraPredMode = symbol;
     952          intraPredMode = preds[symbol];
     953      }
     954      else
     955      {
     956        m_pcTDecBinIf->decodeBinsEP( symbol, 5 RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) );
     957        intraPredMode = symbol;
    982958#if NH_MV_ENC_DEC_TRAC         
    983959        DTRACE_CU("rem_intra_luma_pred_mode", symbol)
    984960#endif       
    985961
    986       //postponed sorting of MPMs (only in remaining branch)
    987       if (preds[0] > preds[1])
    988       {
    989         std::swap(preds[0], preds[1]);
    990       }
    991       if (preds[0] > preds[2])
    992       {
    993         std::swap(preds[0], preds[2]);
    994       }
    995       if (preds[1] > preds[2])
    996       {
    997         std::swap(preds[1], preds[2]);
    998       }
    999       for ( UInt i = 0; i < NUM_MOST_PROBABLE_MODES; i++ )
    1000       {
    1001         intraPredMode += ( intraPredMode >= preds[i] );
    1002       }
    1003     }
    1004     pcCU->setIntraDirSubParts(CHANNEL_TYPE_LUMA, (UChar)intraPredMode, absPartIdx+partOffset*j, depth );
    1005 #if NH_3D_DMM
     962          //postponed sorting of MPMs (only in remaining branch)
     963          if (preds[0] > preds[1])
     964          {
     965            std::swap(preds[0], preds[1]);
     966          }
     967          if (preds[0] > preds[2])
     968          {
     969            std::swap(preds[0], preds[2]);
     970          }
     971          if (preds[1] > preds[2])
     972          {
     973            std::swap(preds[1], preds[2]);
     974          }
     975          for ( UInt i = 0; i < NUM_MOST_PROBABLE_MODES; i++ )
     976          {
     977            intraPredMode += ( intraPredMode >= preds[i] );
     978          }
     979      }
     980      pcCU->setIntraDirSubParts(CHANNEL_TYPE_LUMA, (UChar)intraPredMode, absPartIdx+partOffset*j, depth );
     981#if NH_3D
    1006982    }
    1007983#endif
     
    16791655  else
    16801656  {
    1681     beValid = pcCU->getSlice()->getPPS()->getSignHideFlag();
     1657    beValid = pcCU->getSlice()->getPPS()->getSignDataHidingEnabledFlag();
    16821658  }
    16831659
     
    22692245}
    22702246
    2271 #if NH_3D_ARP
     2247#if NH_3D
    22722248Void TDecSbac::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    22732249{
     
    22892265  pcCU->setARPWSubParts( ( UChar )( uiW ) , uiAbsPartIdx, uiDepth ); 
    22902266}
    2291 #endif
    2292 
    2293 #if NH_3D_IC
     2267
    22942268/** parse illumination compensation flag
    22952269 * \param pcCU
     
    23172291  pcCU->setICFlagSubParts( uiSymbol ? true : false , uiAbsPartIdx, 0, uiDepth );
    23182292}
    2319 #endif
    2320 
    2321 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER
     2293
    23222294Void TDecSbac::parseDeltaDC( TComDataCU* pcCU, UInt absPartIdx, UInt depth )
    23232295{
    2324 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
    23252296  if( !(pcCU->getSDCFlag( absPartIdx )) )
    2326 #endif
    2327 #if NH_3D_DMM
    2328   if( !(pcCU->isIntra( absPartIdx ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) )) )
    2329 #endif
    2330     assert( 0 );
     2297    if( !(pcCU->isIntra( absPartIdx ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) )) )
     2298      assert( 0 );
    23312299
    23322300  UInt symbol = 1;
    2333 #if NH_3D_SDC_INTRA
    23342301  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
    23352302  {
     
    23382305    assert( pcCU->getTransformIdx(absPartIdx) == 0 );
    23392306    assert( pcCU->getCbf(absPartIdx, COMPONENT_Y) == 1 );
    2340     }
    2341 #endif
    2342   UInt uiNumSegments = 1;
    2343 #if NH_3D_DMM
    2344   uiNumSegments = isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) ) ? 2 : 1;
    2345 #endif
     2307  }
     2308  UInt uiNumSegments = isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) ) ? 2 : 1;
    23462309
    23472310  for( UInt segment = 0; segment < uiNumSegments; segment++ )
     
    23552318    if( pcCU->isIntra( absPartIdx ) )
    23562319    {
    2357 #if NH_3D_SDC_INTRA
    23582320      if( pcCU->getSDCFlag( absPartIdx ) )
    23592321      {
     
    23622324      else
    23632325      {
    2364 #endif
    2365 #if NH_3D_DMM
    23662326        pcCU->setDmmDeltaDC( getDmmType( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) ), segment, absPartIdx, valDeltaDC );
    2367 #endif
    2368 #if NH_3D_SDC_INTRA
    2369       }
    2370 #endif
    2371     }
    2372 #if NH_3D_SDC_INTER
     2327      }
     2328    }
    23732329    else
    23742330    {
    23752331      pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx );
    23762332    }
    2377 #endif
    23782333  }
    23792334}
     
    24192374  return;
    24202375}
    2421 #endif
    2422 #if NH_3D_DMM
     2376
    24232377Void TDecSbac::xParseIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx, UInt depth )
    24242378{
     
    24882442  ruiTabIdx = uiIdx;
    24892443}
    2490 #endif
    2491 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER
     2444
    24922445Void TDecSbac::parseSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    24932446{
     
    25102463}
    25112464
    2512 #endif
    2513 
    2514 #if NH_3D_DBBP
    25152465Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    25162466{
Note: See TracChangeset for help on using the changeset viewer.