Changeset 479 in SHVCSoftware


Ignore:
Timestamp:
15 Nov 2013, 22:47:32 (11 years ago)
Author:
seregin
Message:

signal poc_lsb_not_present_flag for each layer in VPS extension (JCTVC-O0062) with macro O0062_POC_LSB_NOT_PRESENT_FLAG, patch was provided by Takeshi Tsukuba <tsukuba.takeshi@…>

Location:
branches/SHM-4.0-dev/source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.0-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r475 r479  
    12011201    vps->setMaxOneActiveRefLayerFlag(maxDirectRefLayers > 1 ? false : true);
    12021202#endif
     1203#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1204    for(i = 1; i< vps->getMaxLayers(); i++)
     1205    {
     1206      if( vps->getNumDirectRefLayers( vps->getLayerIdInNuh(i) ) == 0  )
     1207      {
     1208        vps->setPocLsbNotPresentFlag(i, false);
     1209      }
     1210    }
     1211#endif
    12031212#if N0147_IRAP_ALIGN_FLAG
    12041213    vps->setCrossLayerIrapAlignFlag(true);
  • branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.cpp

    r475 r479  
    20002000#if JCTVC_M0458_INTERLAYER_RPS_SIG
    20012001  m_maxOneActiveRefLayerFlag = true;
     2002#endif
     2003#if O0062_POC_LSB_NOT_PRESENT_FLAG
     2004  ::memset(m_pocLsbNotPresentFlag, 0, sizeof(m_pocLsbNotPresentFlag));
    20022005#endif
    20032006#if N0147_IRAP_ALIGN_FLAG
  • branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.h

    r475 r479  
    566566  Bool       m_maxOneActiveRefLayerFlag;
    567567#endif
     568#if O0062_POC_LSB_NOT_PRESENT_FLAG
     569  Bool       m_pocLsbNotPresentFlag[MAX_VPS_LAYER_ID_PLUS1];
     570#endif
    568571#if N0147_IRAP_ALIGN_FLAG
    569572  Bool       m_crossLayerIrapAlignFlag;
     
    779782  Bool   getMaxOneActiveRefLayerFlag()                                          { return m_maxOneActiveRefLayerFlag;                      }
    780783  Void   setMaxOneActiveRefLayerFlag(Bool x)                                    { m_maxOneActiveRefLayerFlag = x;                         }
    781 #endif
     784#endif
     785#if O0062_POC_LSB_NOT_PRESENT_FLAG
     786  UInt   getPocLsbNotPresentFlag(Int i)                                         { return m_pocLsbNotPresentFlag[i]; }
     787  Void   setPocLsbNotPresentFlag(Int i, Bool x)                                 { m_pocLsbNotPresentFlag[i] = x;    }
     788#endif
    782789#if N0147_IRAP_ALIGN_FLAG
    783790  Bool   getCrossLayerIrapAlignFlag()                                           { return m_crossLayerIrapAlignFlag;                      }
  • branches/SHM-4.0-dev/source/Lib/TLibCommon/TypeDef.h

    r477 r479  
    155155#define AUXILIARY_PICTURES               1      ///< JCTVC-O0041: auxiliary picture layers
    156156
     157#define O0062_POC_LSB_NOT_PRESENT_FLAG   1      ///< JCTVC-O0062: signal poc_lsb_not_present_flag for each layer in VPS extension
    157158#define SHM_FIX7                         1      ///< fix for SHVC WD ticket #7
    158159
  • branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r478 r479  
    12571257  vps->setMaxOneActiveRefLayerFlag(uiCode);
    12581258#endif
     1259#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1260  for(i = 1; i< vps->getMaxLayers(); i++)
     1261  {
     1262    if( vps->getNumDirectRefLayers( vps->getLayerIdInNuh(i) ) == 0  )
     1263    {
     1264      READ_FLAG(uiCode, "poc_lsb_not_present_flag[i]");
     1265      vps->setPocLsbNotPresentFlag(i, uiCode);
     1266    }
     1267  }
     1268#endif
    12591269#if O0215_PHASE_ALIGNMENT
    1260   READ_FLAG( uiCode, "phase_align_flag"); vps->setPhaseAlignFlag( uiCode == 1 ? true : false );
     1270  READ_FLAG( uiCode, "cross_layer_phase_alignment_flag"); vps->setPhaseAlignFlag( uiCode == 1 ? true : false );
    12611271#endif
    12621272
     
    15541564    Int iPOClsb = 0;
    15551565#endif
     1566#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1567    if( ( rpcSlice->getLayerId() > 0 && !rpcSlice->getVPS()->getPocLsbNotPresentFlag( rpcSlice->getVPS()->getLayerIdInVps(rpcSlice->getLayerId())) ) || !rpcSlice->getIdrPicFlag())
     1568#else
    15561569    if( rpcSlice->getLayerId() > 0 || !rpcSlice->getIdrPicFlag() )
     1570#endif
    15571571#else
    15581572    else
  • branches/SHM-4.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r477 r479  
    989989#if JCTVC_M0458_INTERLAYER_RPS_SIG
    990990      WRITE_FLAG(vps->getMaxOneActiveRefLayerFlag(), "max_one_active_ref_layer_flag");
    991 #endif
     991#endif
     992#if O0062_POC_LSB_NOT_PRESENT_FLAG
     993  for(i = 1; i< vps->getMaxLayers(); i++)
     994  {
     995    if( vps->getNumDirectRefLayers( vps->getLayerIdInNuh(i) ) == 0  )
     996    {
     997      WRITE_FLAG(vps->getPocLsbNotPresentFlag(i), "poc_lsb_not_present_flag[i]");
     998    }
     999  }
     1000#endif
    9921001#if O0215_PHASE_ALIGNMENT
    993   WRITE_FLAG(vps->getPhaseAlignFlag(), "phase_align_flag" );
     1002  WRITE_FLAG(vps->getPhaseAlignFlag(), "cross_layer_phase_alignment_flag" );
    9941003#endif
    9951004#if N0147_IRAP_ALIGN_FLAG
    996       WRITE_FLAG(vps->getCrossLayerIrapAlignFlag(), "cross_layer_irap_aligned_flag");
     1005  WRITE_FLAG(vps->getCrossLayerIrapAlignFlag(), "cross_layer_irap_aligned_flag");
    9971006#endif
    9981007#if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS
     
    12341243
    12351244#if N0065_LAYER_POC_ALIGNMENT
     1245#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1246    if( (pcSlice->getLayerId() > 0 && !pcSlice->getVPS()->getPocLsbNotPresentFlag( pcSlice->getVPS()->getLayerIdInVps(pcSlice->getLayerId())) ) || !pcSlice->getIdrPicFlag())
     1247#else
    12361248    if( pcSlice->getLayerId() > 0 || !pcSlice->getIdrPicFlag() )
     1249#endif
    12371250#else
    12381251    if( !pcSlice->getIdrPicFlag() )
Note: See TracChangeset for help on using the changeset viewer.