Ignore:
Timestamp:
18 Jun 2013, 05:16:27 (11 years ago)
Author:
mediatek-htm
Message:

Integration of 3D-HEVC merge related coding tools:
Inter-view motion merge candidate
HHI_INTER_VIEW_MOTION_PRED
SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction
QC_MRG_CANS_B0048 , JCT3V-B0048, B0086, B0069
OL_DISMV_POS_B0069 , different pos for disparity MV candidate, B0069
MTK_INTERVIEW_MERGE_A0049 , second part
QC_AMVP_MRG_UNIFY_IVCAN_C0051
TEXTURE MERGING CANDIDATE , JCT3V-C0137

Notes: Two configurations are added:
PredDepthMapGen : 1
MultiviewMvPred : 7

From: yiwen.chen@… (MediaTek)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp

    r446 r476  
    3737
    3838#include "NALread.h"
     39#if H_3D_IV_MERGE
     40#include "../../App/TAppDecoder/TAppDecTop.h"
     41#endif
    3942#include "TDecTop.h"
    4043
     
    389392}
    390393
     394#if H_3D_IV_MERGE
     395Void TDecTop::init(TAppDecTop* pcTAppDecTop)
     396#else
    391397Void TDecTop::init()
     398#endif
    392399{
    393400  // initialize ROM
     
    395402  initROM();
    396403#endif
    397   m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO);
     404  m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO
     405#if H_3D_IV_MERGE
     406    , &m_cDepthMapGenerator
     407#endif
     408    );
    398409  m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder );
    399410  m_cEntropyDecoder.init(&m_cPrediction);
     411
     412#if H_3D_IV_MERGE
     413  m_tAppDecTop = pcTAppDecTop;
     414  m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() );
     415#endif
    400416}
    401417
     
    754770
    755771    m_cSliceDecoder.create();
     772#if H_3D_IV_MERGE
     773    UInt uiPdm = ( m_apcSlicePilot->getSPS()->getViewIndex() ? m_apcSlicePilot->getSPS()->getPredDepthMapGeneration() : m_tAppDecTop->getSPSAccess()->getPdm() );
     774    m_cDepthMapGenerator.create( true, m_apcSlicePilot->getSPS()->getPicWidthInLumaSamples(), m_apcSlicePilot->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_bitDepthY, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
     775    TComDepthMapGenerator* pcDMG0 = m_tAppDecTop->getDecTop0()->getDepthMapGenerator();
     776    if( m_apcSlicePilot->getSPS()->getViewIndex() == 1 && ( pcDMG0->getSubSampExpX() != PDM_SUB_SAMP_EXP_X(uiPdm) || pcDMG0->getSubSampExpY() != PDM_SUB_SAMP_EXP_Y(uiPdm) ) )
     777    {
     778      pcDMG0->create( true, m_apcSlicePilot->getSPS()->getPicWidthInLumaSamples(), m_apcSlicePilot->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_bitDepthY, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
     779    }
     780#endif
    756781  }
    757782  else
     
    893918#endif
    894919
     920#endif
     921
     922#if H_3D_IV_MERGE
     923    TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView(  m_viewIndex, pcSlice->getPOC(), false ) : NULL;
     924    assert( !m_isDepth || pcTexturePic != NULL );
     925    pcSlice->setTexturePic( pcTexturePic );
    895926#endif
    896927    // For generalized B
Note: See TracChangeset for help on using the changeset viewer.