Changeset 410 in SHVCSoftware for branches/SHM-3.1-dev/source/Lib


Ignore:
Timestamp:
8 Oct 2013, 02:34:31 (11 years ago)
Author:
qualcomm
Message:

Integration of N0147 and removal of IDR_ALIGNMENT (as per N0373)

Location:
branches/SHM-3.1-dev/source/Lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.1-dev/source/Lib/TLibCommon/TypeDef.h

    r409 r410  
    108108#define ILP_RAP                          1      ///< JCTVC-M0208 proposal 3
    109109
    110 #define IDR_ALIGNMENT                    1      ///< align IDR picures across layers
     110#define IDR_ALIGNMENT                    0      ///< align IDR picures across layers : As per JCTVC-N0373, IDR are not required to be aligned.
    111111
    112112#define AVC_BASE                         1      ///< YUV BL reading for AVC base SVC
  • branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r409 r410  
    11101110    if(  m_layerId > 0 && pcSlice->getVPS()->getCrossLayerIrapAlignFlag())
    11111111    {
    1112       if(pcSlice->isIRAP())
    1113       {
    1114         for(Int depedentLayerId = 0; depedentLayerId < pcSlice->getVPS()->getNumDirectRefLayers(m_layerId); depedentLayerId++)
    1115           assert(pcSlice->getNalUnitType() == pcSlice->getBaseColPic(depedentLayerId)->getSlice(0)->getNalUnitType());
    1116       }
     1112      for( Int i = 0; i < pcPic->getSlice(0)->getActiveNumILRRefIdx(); i++ )
     1113      {
     1114        Int refLayerIdc = pcPic->getSlice(0)->getInterLayerPredLayerIdc(i);
     1115
     1116        if(m_cIlpPic[refLayerIdc] && m_cIlpPic[refLayerIdc]->getSlice(0)->isIRAP())
     1117        {                 
     1118          assert(pcSlice->getNalUnitType() == m_cIlpPic[refLayerIdc]->getSlice(0)->getNalUnitType());
     1119      }
     1120    }
    11171121    }
    11181122#endif
     1123   
    11191124    // For generalized B
    11201125    // note: maybe not existed case (always L0 is copied to L1 if L1 is empty)
  • branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r408 r410  
    662662      if( pocCurr % m_pcCfg->getIntraPeriod() == 0 )
    663663      {
    664 #if IDR_ALIGNMENT
     664#if N0147_IRAP_ALIGN_FLAG
     665       if( m_layerId > 0 && pcSlice->getVPS()->getCrossLayerIrapAlignFlag())
     666       {
    665667        TComList<TComPic*> *cListPic = m_ppcTEncTop[m_layerId]->getRefLayerEnc(0)->getListPic();
    666668        TComPic* picLayer0 = pcSlice->getRefPic(*cListPic, pcSlice->getPOC() );
     669         if( picLayer0->getSlice(0)->isIRAP())
     670        {
     671          pcSlice->setNalUnitType(picLayer0->getSlice(0)->getNalUnitType());
     672        }
     673        else
     674         {
     675           pcSlice->setNalUnitType(NAL_UNIT_CODED_SLICE_CRA);
     676         }
     677       }
     678#else
     679          pcSlice->setNalUnitType(NAL_UNIT_CODED_SLICE_CRA);
     680#endif
     681
     682#if IDR_ALIGNMENT
     683         TComList<TComPic*> *cListPic = m_ppcTEncTop[m_layerId]->getRefLayerEnc(0)->getListPic();
     684         TComPic* picLayer0 = pcSlice->getRefPic(*cListPic, pcSlice->getPOC() );
    667685        if( picLayer0->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || picLayer0->getSlice(0)->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP )
    668         {
    669           pcSlice->setNalUnitType(picLayer0->getSlice(0)->getNalUnitType());
    670         }
    671         else
    672 #endif
     686         {
     687           pcSlice->setNalUnitType(picLayer0->getSlice(0)->getNalUnitType());
     688         }
     689         else
     690         {
    673691          pcSlice->setNalUnitType(NAL_UNIT_CODED_SLICE_CRA);
     692         }
     693#endif
    674694      }
    675695     
Note: See TracChangeset for help on using the changeset viewer.