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


Ignore:
Timestamp:
3 Jan 2014, 17:43:40 (10 years ago)
Author:
tech
Message:

Merged HTM-9.1-dev0-MediaTek@757. (3D-HEVC HLS)

File:
1 edited

Legend:

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

    r738 r758  
    228228    m_uiMaxViewIndex                     = std::max( m_uiMaxViewIndex, uiViewIndex );
    229229    m_aiViewId[ uiViewIndex ]            = pcSlice->getViewId();
     230#if CAM_HLS_F0136_F0045_F0082
     231    if( uiViewIndex == 1 )
     232    {
     233      m_uiCamParsCodedPrecision       = pcSlice->getVPS()->getCamParPrecision     ();
     234      m_bCamParsVaryOverTime          = pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex );
     235    }
     236    else if( uiViewIndex > 1 )
     237    {
     238      AOF( m_uiCamParsCodedPrecision == pcSlice->getVPS()->getCamParPrecision     () );
     239      AOF( m_bCamParsVaryOverTime    == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) );
     240    }
     241#else
    230242    if( uiViewIndex == 1 )
    231243    {
     
    238250      AOF( m_bCamParsVaryOverTime    == pcSlice->getSPS()->hasCamParInSliceHeader () );
    239251    }
     252#endif
    240253    for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )
    241254    {
     
    251264      else
    252265      {
     266#if CAM_HLS_F0136_F0045_F0082
     267        m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getVPS()->getCodedScale    (uiViewIndex) [ uiBaseIndex ];
     268        m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getVPS()->getCodedOffset   (uiViewIndex) [ uiBaseIndex ];
     269        m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ];
     270        m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ];
     271#else
    253272        m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getSPS()->getCodedScale    () [ uiBaseIndex ];
    254273        m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getSPS()->getCodedOffset   () [ uiBaseIndex ];
    255274        m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getSPS()->getInvCodedScale () [ uiBaseIndex ];
    256275        m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseIndex ];
     276#endif
    257277        xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );
    258278        xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );
     
    286306CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice )
    287307{
     308#if !CAM_HLS_F0136_F0045_F0082
    288309  UInt uiViewIndex = pcSlice->getViewIndex();
    289310
    290311  pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );
    291 
     312#endif
    292313  if( m_bCamParsVaryOverTime )
    293314  {
     
    11091130  if( pcSlice->getIsDepth() )
    11101131  {
     1132#if !CAM_HLS_F0136_F0045_F0082
    11111133    pcSlice->getSPS()->setHasCamParInSliceHeader( false );
     1134#endif
    11121135  }
    11131136#endif
     
    11511174  pps->setLayerId( getLayerId() );
    11521175#endif
     1176#if DLT_DIFF_CODING_IN_PPS
     1177  // Assuming that all PPS indirectly refer to the same VPS via different SPS
     1178  // There is no parsing dependency in decoding DLT in PPS.
     1179  // The VPS information passed to decodePPS() is used to arrange the decoded DLT tables to their corresponding layers.
     1180  // This is equivalent to the process of
     1181  //   Step 1) decoding DLT tables based on the number of depth layers, and
     1182  //   Step 2) mapping DLT tables to the depth layers
     1183  // as descripted in the 3D-HEVC WD.
     1184  TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 );
     1185  m_cEntropyDecoder.decodePPS( pps, vps );
     1186#else
    11531187  m_cEntropyDecoder.decodePPS( pps );
     1188#endif
    11541189  m_parameterSetManagerDecoder.storePrefetchedPPS( pps );
    11551190}
Note: See TracChangeset for help on using the changeset viewer.