Ignore:
Timestamp:
26 May 2013, 16:22:23 (11 years ago)
Author:
tech
Message:

Added missing parts.

Location:
branches/HTM-DEV-0.2-dev/source/Lib/TLibExtractor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.2-dev/source/Lib/TLibExtractor/TExtrTop.cpp

    r438 r446  
    3737
    3838#include "TExtrTop.h"
    39 
     39#if H_MV
    4040TExtrTop::TExtrTop()
    4141{
     
    5555Bool TExtrTop::extract( InputNALUnit& nalu, std::set<UInt>& rsuiExtractLayerIds )
    5656{
    57 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046
    5857  //extraction now has to be done using layer_id
    59   UInt uiLayerId = nalu.m_layerId;
    60 #else
    61   UInt uiLayerId = xGetLayerId( nalu.m_viewId, nalu.m_isDepth );
    62 #endif
     58  UInt uiLayerId      = nalu.m_layerId;
     59
     60 
    6361  // Initialize entropy decoder
    6462  m_cEntropyDecoder.setEntropyDecoder( &m_cCavlcDecoder );
    6563  m_cEntropyDecoder.setBitstream     ( nalu.m_Bitstream );
    6664 
    67 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046
    6865  if ( nalu.m_nalUnitType == NAL_UNIT_VPS )
    6966  {
    7067    // a hack for now assuming there's only one VPS in the bitstream
    71     m_cEntropyDecoder.decodeVPS( &m_cVPS );
    72      
     68    m_cEntropyDecoder.decodeVPS( &m_cVPS );     
    7369  }
    74 #endif
    7570
    7671  if ( nalu.m_nalUnitType == NAL_UNIT_SPS )
    7772  {
    78      TComSPS cSPS;
    79      TComRPSList cRPS;
    80      cSPS.setRPSList( &cRPS );
    81 #if HHI_MPI || H3D_QTL
    82 #if VIDYO_VPS_INTEGRATION
    83      m_cEntropyDecoder.decodeSPS( &cSPS, m_cVPS.getDepthFlag(uiLayerId) );
     73     TComSPS     cSPS;
     74#if H_3D
     75     Int layerIdInVPS = m_cVPS.getLayerIdInVps( uiLayerId );
     76     m_cEntropyDecoder   .decodeSPS( &cSPS, m_cVPS.getViewIndex( layerIdInVPS ), ( m_cVPS.getDepthId( layerIdInVPS ) == 1 ) );
    8477#else
    85      m_cEntropyDecoder.decodeSPS( &cSPS, nalu.m_isDepth );
     78     m_cEntropyDecoder   .decodeSPS( &cSPS );
    8679#endif
    87 #else
    88      m_cEntropyDecoder.decodeSPS( &cSPS );
    89 #endif
    90 
    91      m_acSPSBuffer.push_back( cSPS );
     80     m_acSPSBuffer       .push_back( cSPS );
    9281  }
    9382
     
    9786
    9887Void TExtrTop::dumpSpsInfo( std::ostream& rcSpsInfoHandle )
    99 {
     88{ 
    10089  rcSpsInfoHandle << "NumSPS = " << m_acSPSBuffer.size() << std::endl;
     90 
     91  std::list<Int>::iterator iterSPSLayerId = m_aiSPSLayerIdBuffer.begin();
    10192
    102   for( std::list<TComSPS>::iterator iterSPS = m_acSPSBuffer.begin(); iterSPS != m_acSPSBuffer.end(); iterSPS++ )
    103   {
    104      rcSpsInfoHandle << std::endl;
    105      rcSpsInfoHandle << "layer_id = "              << xGetLayerId( iterSPS->getViewId(), iterSPS->isDepth() ) << std::endl;
     93  for( std::list<TComSPS>::iterator iterSPS = m_acSPSBuffer.begin(); iterSPS != m_acSPSBuffer.end(); iterSPS++, iterSPSLayerId++ )
     94  {     
     95     rcSpsInfoHandle << "layer_id = "              << *iterSPSLayerId << std::endl;
    10696     rcSpsInfoHandle << "seq_parameter_set_id = "  << iterSPS->getSPSId() << std::endl;
    107      rcSpsInfoHandle << "view_id = "               << iterSPS->getViewId() << std::endl;
    108      rcSpsInfoHandle << "view_order_idx = "        << iterSPS->getViewOrderIdx() << std::endl;
    109      rcSpsInfoHandle << "is_depth = "              << iterSPS->isDepth() << std::endl;
    11097  }
    11198}
     99
     100Void TExtrTop::dumpVpsInfo( std::ostream& rcVpsInfoHandle )
     101{
     102  rcVpsInfoHandle << "MaxLayers = "     << m_cVPS.getMaxLayers()     << std::endl;
     103  rcVpsInfoHandle << "MaxNuhLayerId = " << m_cVPS.getMaxNuhLayerId() << std::endl;
     104 
     105  for ( Int layerIdxInVps = 0; layerIdxInVps < m_cVPS.getMaxLayers(); layerIdxInVps++ )
     106  { 
     107    rcVpsInfoHandle << "LayerIdxInVps =  " << layerIdxInVps                           << std::endl;
     108    rcVpsInfoHandle << "LayerIdInNuh = "   << m_cVPS.getLayerIdInNuh( layerIdxInVps ) << std::endl;
     109    rcVpsInfoHandle << "ViewId = "         << m_cVPS.getViewId      ( layerIdxInVps ) << std::endl;
     110#if H_3D
     111    rcVpsInfoHandle << "DepthFlag = "      << m_cVPS.getViewIndex   ( layerIdxInVps ) << std::endl;     
     112    rcVpsInfoHandle << "DepthFlag = "      << m_cVPS.getDepthId     ( layerIdxInVps ) << std::endl;     
     113#endif
     114  }
     115}
     116#endif
  • branches/HTM-DEV-0.2-dev/source/Lib/TLibExtractor/TExtrTop.h

    r438 r446  
    4646#include <set>
    4747
     48#if H_MV
    4849// ====================================================================================================================
    4950// Class definition
     
    5455{
    5556private:
    56 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046
     57
    5758  TComVPS                 m_cVPS;
    58 #endif
    59    std::list<TComSPS>      m_acSPSBuffer;
     59  std::list<TComSPS>      m_acSPSBuffer;
     60  std::list<Int    >      m_aiSPSLayerIdBuffer;
    6061
    6162  // functional classes
     
    7273  Bool     extract( InputNALUnit& nalu, std::set<UInt>& rsuiExtractLayerIds );
    7374  Void     dumpSpsInfo( std::ostream& rcSpsInfoHandle );
     75  Void     dumpVpsInfo( std::ostream& rcVpsInfoHandle );
    7476 
    7577  TComSPS *getFirstSPS() { return m_acSPSBuffer.empty() ? 0 : &(m_acSPSBuffer.front()); }
    7678
    7779protected:
    78    UInt     xGetLayerId( UInt uiViewId, Bool bIsDepth ) { return ( ( uiViewId << 1 ) + ( bIsDepth ? 1 : 0 ) ); }
     80
    7981};// END CLASS DEFINITION TExtrTop
    8082
    8183
    8284#endif // __TEXTRTOP__
    83 
     85#endif
Note: See TracChangeset for help on using the changeset viewer.