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/TDecCu.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 *
     
    5252  m_ppcYuvReco = NULL;
    5353  m_ppcCU      = NULL;
    54 #if NH_3D_DBBP
     54#if NH_3D
    5555  m_ppcYuvRecoDBBP = NULL;
    5656#endif
     
    6161}
    6262
     63#if MCTS_ENC_CHECK
     64Void TDecCu::init( TDecEntropy* pcEntropyDecoder, TComTrQuant* pcTrQuant, TComPrediction* pcPrediction, TDecConformanceCheck* pConformanceCheck)
     65#else
    6366Void TDecCu::init( TDecEntropy* pcEntropyDecoder, TComTrQuant* pcTrQuant, TComPrediction* pcPrediction)
     67#endif
    6468{
    6569  m_pcEntropyDecoder  = pcEntropyDecoder;
    6670  m_pcTrQuant         = pcTrQuant;
    6771  m_pcPrediction      = pcPrediction;
     72#if MCTS_ENC_CHECK
     73  m_pConformanceCheck = pConformanceCheck;
     74#endif
    6875}
    6976
     
    8188  m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1];
    8289  m_ppcCU      = new TComDataCU*[m_uiMaxDepth-1];
    83 #if NH_3D_DBBP
     90#if NH_3D
    8491  m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1];
    8592#endif
     
    102109    m_ppcYuvReco[ui] = new TComYuv;    m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    103110    m_ppcCU     [ui] = new TComDataCU; m_ppcCU     [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) );
    104 #if NH_3D_DBBP
     111#if NH_3D
    105112    m_ppcYuvRecoDBBP[ui] = new TComYuv;    m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    106113#endif
     
    126133    m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL;
    127134    m_ppcCU     [ui]->destroy(); delete m_ppcCU     [ui]; m_ppcCU     [ui] = NULL;
    128 #if NH_3D_DBBP
     135#if NH_3D
    129136    m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL;
    130137#endif
     
    134141  delete [] m_ppcYuvReco; m_ppcYuvReco = NULL;
    135142  delete [] m_ppcCU     ; m_ppcCU      = NULL;
    136 #if NH_3D_DBBP
     143#if NH_3D
    137144  delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL;
    138145#endif
     
    170177Void TDecCu::decompressCtu( TComDataCU* pCtu )
    171178{
    172 #if !NH_3D_IV_MERGE
     179#if !NH_3D
    173180  xDecompressCU( pCtu, 0,  0 );
    174181#endif
     
    290297    pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
    291298  }
    292 #if NH_3D_NBDV
     299#if NH_3D
    293300  DisInfo DvInfo;
    294301  DvInfo.m_acNBDV.setZero();
    295302  DvInfo.m_aVIdxCan = 0;
    296 #if NH_3D_NBDV_REF 
    297303  DvInfo.m_acDoNBDV.setZero();
    298 #endif
    299  
    300 if(!pcCU->getSlice()->isIntra())
    301   {
    302 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP
     304
     305  if(!pcCU->getSlice()->isIntra())
     306  {
    303307    if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
    304 #else
    305 #if NH_3D_IV_MERGE && NH_3D_VSP
    306     if( pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
    307 #else
    308 #if NH_3D_ARP && NH_3D_VSP
    309     if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
    310 #else
    311 #if NH_3D_VSP
    312     if( pcCU->getSlice()->getViewSynthesisPredFlag() )
    313 #else
    314 #if H_3D_ARP
    315     if( pcCU->getSlice()->getIvResPredFlag( ) )
    316 #else
    317 #if H_3D_IV_MERGE
    318     if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) )
    319 #else
    320 #if NH_3D_DBBP
    321     if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )
    322 #else
    323     if (0)
    324 #endif
    325 #endif
    326 #endif
    327 #endif
    328 #endif
    329 #endif
    330 #endif
    331308    {
    332309      m_ppcCU[uiDepth]->copyInterPredInfoFrom(pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true);
     
    338315      m_ppcCU[uiDepth]->setHeight(0, pcCU->getSlice()->getSPS()->getMaxCUHeight() / (1 << uiDepth));
    339316      m_ppcCU[uiDepth]->setPartSizeSubParts(SIZE_2Nx2N, 0, uiDepth);     
    340 #if NH_3D_IV_MERGE
    341317      if( pcCU->getSlice()->getIsDepth())
    342318      {
     
    345321      else
    346322      {
    347 #endif
    348 #if NH_3D_NBDV_REF
    349       if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
    350       {
    351         m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
    352       }
    353       else
    354 #endif
    355       {
    356         m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
    357       }
    358 #if NH_3D_IV_MERGE
    359       }
    360 #endif
     323        if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
     324        {
     325          m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     326        }
     327        else
     328        {
     329          m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
     330        }
     331      }
    361332#if ENC_DEC_TRACE && NH_MV_ENC_DEC_TRAC   
    362333      if ( g_decTraceDispDer )
     
    373344      m_ppcCU[uiDepth]->setWidth(0, cWidTemp);
    374345      m_ppcCU[uiDepth]->setHeight(0, cHeightTemp);
    375      }
     346    }
    376347  }
    377348#endif
     
    382353  }
    383354
    384   if (pps.getTransquantBypassEnableFlag())
     355  if (pps.getTransquantBypassEnabledFlag())
    385356  {
    386357    m_pcEntropyDecoder->decodeCUTransquantBypassFlag( pcCU, uiAbsPartIdx, uiDepth );
     
    403374    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 );
    404375    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 );
    405 #if NH_3D_IV_MERGE
     376#if NH_3D
    406377    m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx);
    407     TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    408     UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
    409 #else
    410 #if NH_3D_MLC
    411378    TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    412379    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    415382    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS];
    416383#endif
    417 #endif
    418384    Int numValidMergeCand = 0;
    419385    for( UInt ui = 0; ui < m_ppcCU[uiDepth]->getSlice()->getMaxNumMergeCand(); ++ui )
     
    423389    m_pcEntropyDecoder->decodeMergeIndex( pcCU, 0, uiAbsPartIdx, uiDepth );
    424390    UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx);
    425 #if NH_3D_ARP
     391#if NH_3D
    426392    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
    427 #endif
    428 #if NH_3D_IC
    429393    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    430 #endif
    431 
    432 
    433 #if NH_3D_VSP
     394
    434395    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    435396    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    436 #endif
    437 #if NH_3D_SPIVMP
     397
    438398    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
    439399    memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    442402    pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2];
    443403    puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()];
    444 #endif
    445 
    446 #if NH_3D_MLC
    447404    m_ppcCU[uiDepth]->initAvailableFlags();
    448405#endif
     406#if MCTS_ENC_CHECK
     407    UInt numSpatialMergeCandidates = 0;
     408    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, numSpatialMergeCandidates, uiMergeIndex );
     409#if MCTS_ENC_CHECK
     410    if ( m_pConformanceCheck->getTMctsCheck() && m_ppcCU[uiDepth]->isLastColumnCTUInTile() && (uiMergeIndex >= numSpatialMergeCandidates) )
     411    {
     412      m_pConformanceCheck->flagTMctsError("Merge Index using non-spatial merge candidate (Skip)");
     413    }
     414#endif
     415#else
    449416    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    450 #if NH_3D_MLC
    451     m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    452 #if NH_3D_SPIVMP
    453       , pcMvFieldSP, puhInterDirSP
    454 #endif
    455       , numValidMergeCand, uiMergeIndex );
    456 
    457     m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
    458 #if NH_3D_VSP
    459       , vspFlag
    460 #endif
    461 #if NH_3D_SPIVMP
    462       , bSPIVMPFlag
    463 #endif
    464       , numValidMergeCand );
    465 #endif
    466 #if NH_3D_VSP
     417#endif
     418#if NH_3D
     419    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, pcMvFieldSP, puhInterDirSP, numValidMergeCand, uiMergeIndex );
     420    m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, bSPIVMPFlag, numValidMergeCand );
    467421    pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    468422#endif
     
    479433        pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, SIZE_2Nx2N, uiAbsPartIdx, uiDepth );
    480434        pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], SIZE_2Nx2N, uiAbsPartIdx, uiDepth );
    481 #if NH_3D_VSP
     435#if NH_3D
    482436        if( pcCU->getVSPFlag( uiAbsPartIdx ) != 0 )
    483437        {
     
    512466      }
    513467    }
    514 #if NH_3D_SPIVMP
     468#if NH_3D
    515469    pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    516470    if (bSPIVMPFlag[uiMergeIndex])
     
    570524
    571525    xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment );
    572 #if NH_3D_IV_MERGE
     526#if NH_3D
    573527    xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    574528#endif
     
    576530    return;
    577531  }
    578 #if NH_3D_DIS
     532#if NH_3D
    579533  m_pcEntropyDecoder->decodeDIS( pcCU, uiAbsPartIdx, uiDepth );
    580534  if(!pcCU->getDISFlag(uiAbsPartIdx))
     
    582536#endif
    583537
    584   m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth );
    585   m_pcEntropyDecoder->decodePartSize( pcCU, uiAbsPartIdx, uiDepth );
    586 
    587   if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N )
    588   {
    589     m_pcEntropyDecoder->decodeIPCMInfo( pcCU, uiAbsPartIdx, uiDepth );
    590 
    591     if(pcCU->getIPCMFlag(uiAbsPartIdx))
    592     {
    593 #if NH_3D_SDC_INTRA
    594       m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth );
    595 #endif
    596       xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment );
    597 #if NH_3D_IV_MERGE
    598       xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    599 #endif
    600       return;
    601     }
    602   }
    603 
    604   // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )
    605   m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);
    606 
    607   // Coefficient decoding
    608   Bool bCodeDQP = getdQPFlag();
    609   Bool isChromaQpAdjCoded = getIsChromaQpAdjCoded();
    610   m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, bCodeDQP, isChromaQpAdjCoded );
    611   setIsChromaQpAdjCoded( isChromaQpAdjCoded );
    612   setdQPFlag( bCodeDQP );
    613 #if NH_3D_DIS
     538    m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth );
     539    m_pcEntropyDecoder->decodePartSize( pcCU, uiAbsPartIdx, uiDepth );
     540
     541    if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N )
     542    {
     543      m_pcEntropyDecoder->decodeIPCMInfo( pcCU, uiAbsPartIdx, uiDepth );
     544
     545      if(pcCU->getIPCMFlag(uiAbsPartIdx))
     546      {
     547#if NH_3D
     548        m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth );
     549#endif
     550        xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment );
     551#if NH_3D
     552        xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
     553#endif
     554        return;
     555      }
     556    }
     557
     558    // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )
     559    m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);
     560
     561    // Coefficient decoding
     562    Bool bCodeDQP = getdQPFlag();
     563    Bool isChromaQpAdjCoded = getIsChromaQpAdjCoded();
     564    m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, bCodeDQP, isChromaQpAdjCoded );
     565    setIsChromaQpAdjCoded( isChromaQpAdjCoded );
     566    setdQPFlag( bCodeDQP );
     567#if NH_3D
    614568  }
    615569#endif
    616570  xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment );
    617 #if NH_3D_IV_MERGE
     571#if NH_3D
    618572  xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    619573#endif
     
    638592{
    639593  TComPic* pcPic = pCtu->getPic();
    640 #if !NH_3D_IV_MERGE
     594#if !NH_3D
    641595  TComSlice * pcSlice = pCtu->getSlice();
    642596  const TComSPS &sps=*(pcSlice->getSPS());
     
    681635  {
    682636    case MODE_INTER:
    683 #if NH_3D_DBBP
     637#if NH_3D
    684638    if( m_ppcCU[uiDepth]->getDBBPFlag(0) )
    685639    {
     
    688642    else
    689643    {
    690 #endif
    691 #if NH_3D_SDC_INTER
    692644      if( m_ppcCU[uiDepth]->getSDCFlag( 0 ) )
    693645      {
     
    698650#endif
    699651      xReconInter( m_ppcCU[uiDepth], uiDepth );
    700 #if NH_3D_SDC_INTER
    701       }
    702 #endif
    703 #if NH_3D_DBBP
     652#if NH_3D
     653      }
    704654    }
    705655#endif
     
    707657    case MODE_INTRA:
    708658#if NH_3D
    709 #if NH_3D_DIS
    710659    if( m_ppcCU[uiDepth]->getDISFlag(0) )
    711660    {
    712661      xReconDIS( m_ppcCU[uiDepth], 0, uiDepth );
    713662    }
    714 #else
    715     if(false )
    716     {
    717      // xReconDIS( m_ppcCU[uiDepth], 0, uiDepth );
    718     }
    719 #endif
    720 #if NH_3D_SDC_INTRA
    721663    else if( m_ppcCU[uiDepth]->getSDCFlag(0) )
    722664    {
    723665      xReconIntraSDC( m_ppcCU[uiDepth], 0, uiDepth );
    724666    }
    725 #endif
    726667    else
    727668#endif
     
    756697
    757698  // inter prediction
     699#if MCTS_ENC_CHECK
     700  if (m_pConformanceCheck->getTMctsCheck()  && !m_pcPrediction->checkTMctsMvp(pcCU))
     701  {
     702    m_pConformanceCheck->flagTMctsError("motion vector across tile boundaries");
     703  }
     704#endif
    758705  m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] );
    759706
     
    794741}
    795742
    796 #if NH_3D_DIS
     743#if NH_3D
    797744Void TDecCu::xReconDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    798745{
     
    869816  }
    870817}
    871 #endif
    872 #if NH_3D_SDC_INTER
     818
    873819Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    874820{
     
    913859  }
    914860}
    915 #endif
    916 
    917 #if NH_3D_DBBP
     861
    918862Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    919863{
     
    926870  // get collocated depth block
    927871  UInt uiDepthStride = 0;
    928 #if H_3D_FCO
    929   Pel* pDepthPels = pcCU->getVirtualDepthBlock(pcCU->getZorderIdxInCU(), pcCU->getWidth(0), pcCU->getHeight(0), uiDepthStride);
    930 #else
    931872  Pel* pDepthPels = pcCU->getVirtualDepthBlock(0, pcCU->getWidth(0), pcCU->getHeight(0), uiDepthStride);
    932 #endif
    933873  AOF( pDepthPels != NULL );
    934874  AOF( uiDepthStride != 0 );
     
    956896      pcCU->getMvField(pcCU, uiPartAddr, eRefList, pDBBPTmpData->acMvField[uiSegment][eRefList]);
    957897    }
    958    
    959 #if NH_3D
     898
    960899    AOF( pcCU->getARPW(uiPartAddr) == 0 );
    961900    AOF( pcCU->getICFlag(uiPartAddr) == false );
    962901    AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false );
    963902    AOF( pcCU->getVSPFlag(uiPartAddr) == 0 );
    964 #endif
    965903  }
    966904 
     
    10811019
    10821020  //===== get prediction signal =====
    1083 #if NH_3D_DMM
     1021#if NH_3D
    10841022  if( bIsLuma && isDmmMode( uiChFinalMode ) )
    10851023  {
     
    10901028#endif
    10911029  m_pcPrediction->predIntraAng( compID,   uiChFinalMode, 0 /* Decoder does not have an original image */, 0, piPred, uiStride, rTu, bUseFilteredPredictions );
    1092 #if NH_3D_DMM
     1030#if NH_3D
    10931031  }
    10941032#endif
     
    12551193}
    12561194
    1257 #if NH_3D_SDC_INTRA
     1195#if NH_3D
    12581196Void TDecCu::xReconIntraSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    12591197{
     
    12841222  UInt uiMaskStride = 0;
    12851223
    1286 #if NH_3D_DMM
    12871224  if( isDmmMode( uiLumaPredMode ) )
    12881225  {
     
    13301267  else // regular HEVC intra modes
    13311268  {
    1332 #endif
     1269
    13331270    uiNumSegments = 1;
    13341271
     
    13891326
    13901327    m_pcPrediction->predConstantSDC( piPred, uiStride, uiWidth, apDCPredValues[0] ); apDCPredValues[1] = 0;
    1391 #if NH_3D_DMM
    1392   }
    1393 #endif
    1394  
     1328  }
     1329
    13951330  // reconstruct residual based on mask + DC residuals
    13961331  Pel apDCResiValues[2];
    13971332  for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ )
    13981333  {
    1399 #if NH_3D_DLT
    14001334    Pel   pPredIdx    = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
    14011335    Pel   pResiIdx    = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
     
    14031337
    14041338    apDCResiValues[uiSegment]  = pRecoValue - apDCPredValues[uiSegment];
    1405 #else
    1406     apDCResiValues[uiSegment]  = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
    1407 #endif
    14081339  }
    14091340 
     
    14501381    pRecCr += uiStrideC;
    14511382  }
    1452 #if NH_3D_DMM
    14531383  if( pbMask ) { delete[] pbMask; }
    1454 #endif
    14551384}
    14561385#endif
Note: See TracChangeset for help on using the changeset viewer.