Ignore:
Timestamp:
13 Jul 2015, 15:22:02 (9 years ago)
Author:
tech
Message:

Merged 14.1-update-dev4-Qualcomm@1266

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev3/source/Lib/TLibDecoder/TDecCu.cpp

    r1259 r1270  
    5252  m_ppcYuvReco = NULL;
    5353  m_ppcCU      = NULL;
    54 #if H_3D_DBBP
     54#if NH_3D_DBBP
    5555  m_ppcYuvRecoDBBP = NULL;
    5656#endif
     
    8181  m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1];
    8282  m_ppcCU      = new TComDataCU*[m_uiMaxDepth-1];
    83 #if H_3D_DBBP
     83#if NH_3D_DBBP
    8484  m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1];
    8585#endif
     
    9595    m_ppcYuvReco[ui] = new TComYuv;    m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    9696    m_ppcCU     [ui] = new TComDataCU; m_ppcCU     [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) );
    97 #if H_3D_DBBP
    98     m_ppcYuvRecoDBBP[ui] = new TComYuv;    m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight );
     97#if NH_3D_DBBP
     98    m_ppcYuvRecoDBBP[ui] = new TComYuv;    m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    9999#endif
    100100}
     
    119119    m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL;
    120120    m_ppcCU     [ui]->destroy(); delete m_ppcCU     [ui]; m_ppcCU     [ui] = NULL;
    121 #if H_3D_DBBP
     121#if NH_3D_DBBP
    122122    m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL;
    123123#endif
     
    127127  delete [] m_ppcYuvReco; m_ppcYuvReco = NULL;
    128128  delete [] m_ppcCU     ; m_ppcCU      = NULL;
    129 #if H_3D_DBBP
     129#if NH_3D_DBBP
    130130  delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL;
    131131#endif
     
    163163Void TDecCu::decompressCtu( TComDataCU* pCtu )
    164164{
    165 #if !NH_3D_IV_MERGE
     165#if !H_3D_IV_MERGE
    166166  xDecompressCU( pCtu, 0,  0 );
    167167#endif
     
    306306#else
    307307#if H_3D_ARP
    308     if( pcCU->getSlice()->getVPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) )
     308    if( pcCU->getSlice()->getIvResPredFlag( ) )
    309309#else
    310310#if H_3D_IV_MERGE
    311311    if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) )
    312312#else
     313#if NH_3D_DBBP
     314    if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )
     315#else
    313316    if (0)
     317#endif
    314318#endif
    315319#endif
     
    412416    m_pcEntropyDecoder->decodeMergeIndex( pcCU, 0, uiAbsPartIdx, uiDepth );
    413417    UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx);
    414 #if H_3D_ARP
     418#if NH_3D_ARP
    415419    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
    416420#endif
     
    637641  {
    638642    case MODE_INTER:
    639 #if H_3D_DBBP
     643#if NH_3D_DBBP
    640644    if( m_ppcCU[uiDepth]->getDBBPFlag(0) )
    641645    {
     
    657661      }
    658662#endif
    659 #if H_3D_DBBP
     663#if NH_3D_DBBP
    660664    }
    661665#endif
     
    865869#endif
    866870
    867 #if H_3D_DBBP
     871#if NH_3D_DBBP
    868872Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    869873{
     
    871875  AOF(!pcCU->getSlice()->isIntra());
    872876  PartSize ePartSize = pcCU->getPartitionSize( 0 );
     877 
     878  Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA);
    873879 
    874880  // get collocated depth block
     
    891897 
    892898  // first, extract the two sets of motion parameters
    893   UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
     899  UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4;
    894900  for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ )
    895901  {
     
    897903   
    898904    pDBBPTmpData->auhInterDir[uiSegment] = pcCU->getInterDir(uiPartAddr);
     905    assert( pDBBPTmpData->auhInterDir[uiSegment] == 1 || pDBBPTmpData->auhInterDir[uiSegment] == 2  );  // only uni-prediction allowed
    899906   
    900907    for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
     
    904911    }
    905912   
     913#if H_3D
    906914    AOF( pcCU->getARPW(uiPartAddr) == 0 );
    907915    AOF( pcCU->getICFlag(uiPartAddr) == false );
    908916    AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false );
    909917    AOF( pcCU->getVSPFlag(uiPartAddr) == 0 );
     918#endif
    910919  }
    911920 
     
    947956 
    948957  // reconstruct final prediction signal by combining both segments
    949   m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize);
     958  m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize, bitDepthY);
    950959
    951960  // inter recon
    952   xDecodeInterTexture( pcCU, 0, uiDepth );
     961  xDecodeInterTexture( pcCU, uiDepth );
    953962 
    954963  // clip for only non-zero cbp case
    955   if  ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V ) ) )
    956   {
    957     m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );
     964  if  ( ( pcCU->getCbf( 0, COMPONENT_Y ) ) || ( pcCU->getCbf( 0, COMPONENT_Cb ) ) || ( pcCU->getCbf(0, COMPONENT_Cr ) ) )
     965  {
     966    m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() );
    958967  }
    959968  else
Note: See TracChangeset for help on using the changeset viewer.