Changeset 21 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecTop.cpp


Ignore:
Timestamp:
15 Feb 2012, 19:05:04 (12 years ago)
Author:
hschwarz
Message:

updated with HHI branch (0.2-HHI)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r5 r21  
    250250  m_bIsDepth = false ;
    251251  m_iViewIdx = 0 ;
     252#if SONY_COLPIC_AVAILABILITY
     253  m_iViewOrderIdx = 0;
     254#endif
    252255#if ENC_DEC_TRACE
    253256  g_hTrace = fopen( "TraceDec.txt", "wb" );
     
    382385
    383386#if DEPTH_MAP_GENERATION
    384   Bool bNeedPrdDepthMapBuffer = ( !pcSlice->getSPS()->isDepth() && ( pcSlice->getSPS()->getViewId() == 0 || pcSlice->getSPS()->getPredDepthMapGeneration() > 0 ) );
     387  UInt uiPdm                  = ( pcSlice->getSPS()->getViewId() ? pcSlice->getSPS()->getPredDepthMapGeneration() : m_pcTAppDecTop->getSPSAccess()->getPdm() );
     388  Bool bNeedPrdDepthMapBuffer = ( !pcSlice->getSPS()->isDepth() && uiPdm > 0 );
    385389#endif
    386390
     
    392396    if( bNeedPrdDepthMapBuffer )
    393397    {
    394       rpcPic->addPrdDepthMapBuffer();
     398      rpcPic->addPrdDepthMapBuffer( PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
    395399    }
    396400#endif
     
    426430  if( bNeedPrdDepthMapBuffer && !rpcPic->getPredDepthMap() )
    427431  {
    428     rpcPic->addPrdDepthMapBuffer();
     432    rpcPic->addPrdDepthMapBuffer( PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
    429433  }
    430434#endif
     
    593597      m_apcSlicePilot->setSliceIdx(m_uiSliceIdx);
    594598      m_apcSlicePilot->setViewIdx( m_cSPS.getViewId() );
     599#if SONY_COLPIC_AVAILABILITY
     600      m_apcSlicePilot->setViewOrderIdx( m_cSPS.getViewOrderIdx());
     601#endif
    595602      if (!m_bFirstSliceInPicture)
    596603      {
     
    633640        pcPic->setViewIdx( m_cSPS.getViewId() );
    634641
     642#if SONY_COLPIC_AVAILABILITY
     643        pcPic->setViewOrderIdx( m_cSPS.getViewOrderIdx() );
     644#endif
     645
    635646        /* transfer any SEI messages that have been received to the picture */
    636647        pcPic->setSEIs(m_SEIs);
     
    645656
    646657#if DEPTH_MAP_GENERATION
    647         m_cDepthMapGenerator.create( true, m_apcSlicePilot->getSPS()->getWidth(), m_apcSlicePilot->getSPS()->getHeight(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiBitDepth + g_uiBitIncrement );
     658        UInt uiPdm = ( m_cSPS.getViewId() ? m_cSPS.getPredDepthMapGeneration() : getDecTop()->getSPSAccess()->getPdm() );
     659        m_cDepthMapGenerator.create( true, m_apcSlicePilot->getSPS()->getWidth(), m_apcSlicePilot->getSPS()->getHeight(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiBitDepth + g_uiBitIncrement, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
     660        TComDepthMapGenerator* pcDMG0 = getDecTop()->getDecTop0()->getDepthMapGenerator();
     661        if( m_cSPS.getViewId() == 1 && ( pcDMG0->getSubSampExpX() != PDM_SUB_SAMP_EXP_X(uiPdm) || pcDMG0->getSubSampExpY() != PDM_SUB_SAMP_EXP_Y(uiPdm) ) )
     662        {
     663          pcDMG0->create( true, m_apcSlicePilot->getSPS()->getWidth(), m_apcSlicePilot->getSPS()->getHeight(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiBitDepth + g_uiBitIncrement, PDM_SUB_SAMP_EXP_X(uiPdm), PDM_SUB_SAMP_EXP_Y(uiPdm) );
     664        }
    648665#endif
    649666#if HHI_INTER_VIEW_RESIDUAL_PRED
     
    683700        pcSlice->setTexturePic( pcTexturePic );
    684701        pcSlice->setViewIdx( pcPic->getViewIdx() );
     702#if SONY_COLPIC_AVAILABILITY
     703        pcSlice->setViewOrderIdx( pcPic->getViewOrderIdx() );
     704#endif
    685705        pcSlice->setRefPicListExplicitlyDecoderSided(m_cListPic, apcSpatRefPics) ;// temporary solution
    686706
Note: See TracChangeset for help on using the changeset viewer.