Ignore:
Timestamp:
18 Jun 2013, 23:24:53 (12 years ago)
Author:
tech
Message:
  • changed IV-MERGE HLS to match Test Model 4 spec
  • incorporated iv-refpic list to TComSlice
  • removed TComDepthMapGenerator
Location:
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
Files:
5 edited

Legend:

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

    r478 r479  
    759759    }
    760760#endif // !H_MV
    761 #if H_3D_IV_MERGE
    762     READ_FLAG( uiCode, "base_view_flag" );
    763     if( uiCode )
    764     { // baseview SPS -> set standard values
    765       pcSPS->initCamParaSPS         ( 0 );
    766       pcSPS->setPredDepthMapGeneration( 0, false );
    767     }
    768     else
    769     {
    770       READ_FLAG( uiCode, "depth_flag" );
    771       if( uiCode )
    772       {
    773         READ_UVLC( uiCode, "view_idx" );
    774         pcSPS->initCamParaSPSDepth    ( uiCode );
    775         pcSPS->setPredDepthMapGeneration( uiCode, true );
    776       }
    777       else
    778       {
    779         UInt  uiViewIndex;
    780         READ_UVLC( uiViewIndex, "view_idx" );  uiViewIndex++;
    781         UInt uiPredDepthMapGeneration = 0;
    782         UInt uiMultiviewMvPredMode = 0;
    783 
    784         READ_UVLC( uiPredDepthMapGeneration, "Pdm_generation" );
    785         if( uiPredDepthMapGeneration )
    786         {
    787           READ_UVLC( uiMultiviewMvPredMode, "multi_view_mv_pred_mode" );
    788         }
    789 
    790         pcSPS->setPredDepthMapGeneration( uiViewIndex, false, uiPredDepthMapGeneration, uiMultiviewMvPredMode);
    791 
    792       }
    793     }
    794 #endif
    795761  }
    796762}
     
    987953    if (uiCode)
    988954    {
     955#if H_3D
     956#if H_3D_IV_MERGE
     957      for( Int layer = 0; layer <= pcVPS->getMaxLayers() - 1; layer++ )
     958      {
     959        if (layer != 0)
     960        {
     961          if ( !( pcVPS->getDepthId( layer ) == 1 ) )
     962          {
     963            READ_FLAG( uiCode, "ivMvPredFlag[i]"); pcVPS->setIvMvPredFlag( layer, uiCode == 1 ? true : false );
     964          }         
     965        }       
     966      }
     967#endif
     968#else
    989969      while ( xMoreRbspData() )
    990970      {
    991971        READ_FLAG( uiCode, "vps_extension2_data_flag");
    992972      }
     973#endif
    993974    }
    994975
     
    14491430      READ_UVLC( uiCode, "five_minus_max_num_merge_cand");
    14501431#if H_3D_IV_MERGE
    1451       rpcSlice->setMaxNumMergeCand(((rpcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE) == PDM_USE_FOR_MERGE ? MRG_MAX_NUM_CANDS_MEM: MRG_MAX_NUM_CANDS) - uiCode);
     1432      Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
     1433      rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
    14521434#else
    14531435      rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode);
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecGop.cpp

    r478 r479  
    8484                   TComLoopFilter*         pcLoopFilter,
    8585                   TComSampleAdaptiveOffset* pcSAO
    86 #if H_3D_IV_MERGE
    87                     ,TComDepthMapGenerator*  pcDepthMapGenerator
    88 #endif
    8986                   )
    9087{
     
    9693  m_pcLoopFilter          = pcLoopFilter;
    9794  m_pcSAO  = pcSAO;
    98 #if H_3D_IV_MERGE
    99   m_pcDepthMapGenerator   = pcDepthMapGenerator;
    100 #endif
    10195}
    10296
     
    158152    m_LFCrossSliceBoundaryFlag.push_back( pcSlice->getLFCrossSliceBoundaryFlag());
    159153  }
    160 #if H_3D_IV_MERGE
    161   if( uiStartCUAddr == 0 )
    162   {
    163     m_pcDepthMapGenerator->initViewComponent( rpcPic );
    164   }
    165 #endif
    166154#if H_3D_NBDV
    167155  if(pcSlice->getViewIndex() && !pcSlice->getIsDepth()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done.
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecGop.h

    r478 r479  
    5151#include "TLibCommon/TComSampleAdaptiveOffset.h"
    5252
    53 #if H_3D_IV_MERGE
    54 #include "TLibCommon/TComDepthMapGenerator.h"
    55 #endif
    5653#include "TDecEntropy.h"
    5754#include "TDecSlice.h"
     
    8279  TComLoopFilter*       m_pcLoopFilter;
    8380 
    84 #if H_3D_IV_MERGE
    85   TComDepthMapGenerator*  m_pcDepthMapGenerator;
    86 #endif
    8781  TComSampleAdaptiveOffset*     m_pcSAO;
    8882  Double                m_dDecTime;
     
    10498                 TComLoopFilter*         pcLoopFilter,
    10599                 TComSampleAdaptiveOffset* pcSAO
    106 #if H_3D_IV_MERGE
    107                  ,TComDepthMapGenerator* pcDepthMapGenerator
    108 #endif
    109100                 );
    110101  Void  create  ();
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp

    r478 r479  
    3737
    3838#include "NALread.h"
    39 #if H_3D_IV_MERGE
    40 #include "../../App/TAppDecoder/TAppDecTop.h"
    41 #endif
    4239#include "TDecTop.h"
    4340
     
    392389}
    393390
    394 #if H_3D_IV_MERGE
    395 Void TDecTop::init(TAppDecTop* pcTAppDecTop)
    396 #else
    397391Void TDecTop::init()
    398 #endif
    399392{
    400393  // initialize ROM
     
    402395  initROM();
    403396#endif
    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     );
     397  m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO );
    409398  m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder );
    410399  m_cEntropyDecoder.init(&m_cPrediction);
    411 #if H_3D_IV_MERGE
    412   m_tAppDecTop = pcTAppDecTop;
    413   m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() );
    414 #endif
    415400}
    416401
     
    769754
    770755    m_cSliceDecoder.create();
    771 #if H_3D_IV_MERGE
    772     UInt uiPdm = ( m_apcSlicePilot->getSPS()->getViewIndex() ? m_apcSlicePilot->getSPS()->getPredDepthMapGeneration() : m_tAppDecTop->getSPSAccess()->getPdm() );
    773     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) );
    774     TComDepthMapGenerator* pcDMG0 = m_tAppDecTop->getDecTop0()->getDepthMapGenerator();
    775     if( m_apcSlicePilot->getSPS()->getViewIndex() == 1 && ( pcDMG0->getSubSampExpX() != PDM_SUB_SAMP_EXP_X(uiPdm) || pcDMG0->getSubSampExpY() != PDM_SUB_SAMP_EXP_Y(uiPdm) ) )
    776     {
    777       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) );
    778     }
    779 #endif
    780756  }
    781757  else
     
    918894
    919895#endif
    920 #if H_3D_IV_MERGE
    921     TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView(  m_viewIndex, pcSlice->getPOC(), false ) : NULL;
    922     assert( !m_isDepth || pcTexturePic != NULL );
    923     pcSlice->setTexturePic( pcTexturePic );
     896#if H_3D_GEN
     897    pcSlice->setIvPicLists( m_ivPicLists );         
     898#if H_3D_IV_MERGE   
     899    assert( !getIsDepth() || ( pcSlice->getTexturePic() != 0 ) );
     900#endif   
    924901#endif
    925902    // For generalized B
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.h

    r476 r479  
    4545#include "TLibCommon/TComTrQuant.h"
    4646#include "TLibCommon/SEI.h"
    47 #if H_3D_IV_MERGE
    48 #include "TLibCommon/TComDepthMapGenerator.h"
    49 #endif
    5047
    5148#include "TDecGop.h"
     
    225222  Bool                    m_isDepth;
    226223  CamParsCollector*       m_pcCamParsCollector;
    227 #if H_3D_IV_MERGE
    228   TComDepthMapGenerator   m_cDepthMapGenerator;
    229   TAppDecTop*             m_tAppDecTop;
    230 #endif
    231224#endif
    232225#endif
     
    241234  void setDecodedPictureHashSEIEnabled(Int enabled) { m_cGopDecoder.setDecodedPictureHashSEIEnabled(enabled); }
    242235
    243 #if H_3D_IV_MERGE
    244   Void  init(TAppDecTop* pcTAppDecTop);
    245 #else
    246236  Void  init();
    247 #endif
    248237#if H_MV 
    249238  Bool  decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay, Bool newLayer );
     
    276265  Bool                    getIsDepth            ()               { return m_isDepth;    }
    277266  Void                    setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; }
    278 #if H_3D_IV_MERGE
    279   TComDepthMapGenerator*  getDepthMapGenerator  () { return &m_cDepthMapGenerator; }
    280 #endif
    281267#endif
    282268#endif
Note: See TracChangeset for help on using the changeset viewer.