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


Ignore:
Timestamp:
14 Jun 2012, 16:38:29 (13 years ago)
Author:
tech
Message:

Merged with branch/HTM-3.0Samsung REV74 including:

  • restricted residual prediction m24766
  • Inter-view residual prediction m24938
  • VPS concept m24714,m24878, m24945,m24896, m2491
  • reference list modification, restriction on IDR m24876, m24874
  • depth based motion parameter prediction m24829

Fixed bugs:

  • interview prediction
  • VSO

Added:

  • xcode project
File:
1 edited

Legend:

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

    r57 r77  
    319319  m_tAppDecTop = pcTAppDecTop;
    320320#if DEPTH_MAP_GENERATION
     321#if VIDYO_VPS_INTEGRATION
     322  m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() );
     323#else
    321324  m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() );
     325#endif
    322326#endif
    323327#if HHI_INTER_VIEW_RESIDUAL_PRED
     
    571575  TComSPS *sps = m_parameterSetManagerDecoder.getSPS(pps->getSPSId());
    572576  assert (sps != 0);
    573 
     577#if VIDYO_VPS_INTEGRATION
     578  TComVPS *vps = m_parameterSetManagerDecoder.getVPS(sps->getVPSId());
     579  assert (vps != 0);
     580  if( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA )
     581    // VPS can only be activated on IDR or CRA...
     582    getTAppDecTop()->getVPSAccess()->setActiveVPSId( sps->getVPSId() );
     583#endif
    574584  m_apcSlicePilot->setPPS(pps);
    575585  m_apcSlicePilot->setSPS(sps);
     586#if VIDYO_VPS_INTEGRATION
     587  m_apcSlicePilot->setVPS(vps);
     588#endif
    576589  pps->setSPS(sps);
    577590
     
    613626  m_apcSlicePilot->setPPS(m_parameterSetManagerDecoder.getPrefetchedPPS(0));
    614627  m_apcSlicePilot->setSPS(m_parameterSetManagerDecoder.getPrefetchedSPS(0));
     628#if VIDYO_VPS_INTEGRATION
     629  m_apcSlicePilot->setVPS(m_parameterSetManagerDecoder.getPrefetchedVPS(0));
     630#endif
    615631  m_apcSlicePilot->initTiles();
    616632
     
    629645  if( m_bFirstSliceInPicture )
    630646  {
     647#if VIDYO_VPS_INTEGRATION
     648    if( m_apcSlicePilot->getVPS()->getViewId(nalu.m_layerId) == 0 ) { m_nalUnitTypeBaseView = nalu.m_nalUnitType; }
     649    else { m_nalUnitTypeBaseView = m_tAppDecTop->getTDecTop( 0, m_apcSlicePilot->getVPS()->getDepthFlag(nalu.m_layerId) )->getNalUnitTypeBaseView(); }
     650#else
    631651    if( nalu.m_viewId == 0 ) { m_nalUnitTypeBaseView = nalu.m_nalUnitType; }
    632652    else                     { m_nalUnitTypeBaseView = m_tAppDecTop->getTDecTop( 0, nalu.m_isDepth )->getNalUnitTypeBaseView(); }
     653#endif
     654   
    633655    m_apcSlicePilot->setNalUnitTypeBaseViewMvc( m_nalUnitTypeBaseView );
    634656  }
     
    929951
    930952    // Set reference list
     953#if VIDYO_VPS_INTEGRATION
     954    pcSlice->setViewId( pcSlice->getVPS()->getViewId(nalu.m_layerId) );
     955    pcSlice->setIsDepth( pcSlice->getVPS()->getDepthFlag(nalu.m_layerId) );
     956#else
    931957    pcSlice->setViewId(m_viewId);
    932958    pcSlice->setIsDepth(m_isDepth);
     959#endif
    933960
    934961#if SONY_COLPIC_AVAILABILITY
     962#if VIDYO_VPS_INTEGRATION
     963    pcSlice->setViewOrderIdx( pcSlice->getVPS()->getViewOrderIdx(nalu.m_layerId) );
     964#else
    935965    pcSlice->setViewOrderIdx( pcPic->getViewOrderIdx() );
     966#endif
    936967#endif
    937968
     
    10511082}
    10521083
     1084#if VIDYO_VPS_INTEGRATION
     1085Void TDecTop::xDecodeVPS()
     1086{
     1087  TComVPS* vps = new TComVPS();
     1088 
     1089  m_cEntropyDecoder.decodeVPS( vps );
     1090  m_parameterSetManagerDecoder.storePrefetchedVPS(vps); 
     1091  getTAppDecTop()->getVPSAccess()->addVPS( vps );
     1092}
     1093#endif
    10531094
    10541095Void TDecTop::xDecodeSPS()
     
    11141155  switch (nalu.m_nalUnitType)
    11151156  {
     1157#if VIDYO_VPS_INTEGRATION
     1158    case NAL_UNIT_VPS:
     1159      xDecodeVPS();
     1160      return false;
     1161#endif
    11161162    case NAL_UNIT_SPS:
    11171163      xDecodeSPS();
Note: See TracChangeset for help on using the changeset viewer.