Changeset 959 in 3DVCSoftware


Ignore:
Timestamp:
8 May 2014, 23:38:21 (10 years ago)
Author:
qualcomm
Message:

Implementation of adoption JCT3V_H0056 related to EOS

MACRO: H0056_EOS_CHECKS
Checks include:

  • LayerId of EOS NALU should be 0, gives warning if not and ignore the NAL.
  • An EOS NALU shall be the last NALU except an EOB NALU
  • After EOS, the next AU must be IRAP AU

Submitted by Hendry (fhendry@…)

Location:
branches/HTM-11.0-dev0-Qualcomm/source/Lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.0-dev0-Qualcomm/source/Lib/TLibCommon/TypeDef.h

    r958 r959  
    361361
    362362#define H0044_POC_LSB_NOT_PRESENT        1      ///< JCT3V-H0044: Add constraint checking on the value of poc_reset_idc and poc_lsb_val
     363#define H0056_EOS_CHECKS                 1      ///< JCT3V-H0056: Put checks on handling EOS
    363364
    364365/////////////////////////////////////////////////////////////////////////////////////////
  • branches/HTM-11.0-dev0-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp

    r884 r959  
    365365  m_prevSliceSkipped = false;
    366366  m_skippedPOC = 0;
     367#if H0056_EOS_CHECKS
     368  m_isLastNALWasEos = false;
     369#endif
    367370#if H_MV
    368371  m_layerId = 0;
     
    12091212    case NAL_UNIT_VPS:
    12101213      xDecodeVPS();
     1214#if H0056_EOS_CHECKS
     1215      m_isLastNALWasEos = false;
     1216#endif
    12111217      return false;
    12121218     
     
    12211227    case NAL_UNIT_PREFIX_SEI:
    12221228    case NAL_UNIT_SUFFIX_SEI:
     1229#if H0056_EOS_CHECKS
     1230      if ( nalu.m_nalUnitType == NAL_UNIT_SUFFIX_SEI )
     1231      {
     1232        assert( m_isLastNALWasEos == false );
     1233      }
     1234#endif
    12231235      xDecodeSEI( nalu.m_Bitstream, nalu.m_nalUnitType );
    12241236      return false;
     
    12401252    case NAL_UNIT_CODED_SLICE_RASL_N:
    12411253    case NAL_UNIT_CODED_SLICE_RASL_R:
     1254#if H0056_EOS_CHECKS
     1255      if (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_N ||
     1256          nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_N ||
     1257          nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_STSA_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_STSA_N ||
     1258          nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_RADL_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N ||
     1259          nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N )
     1260      {
     1261        assert( m_isLastNALWasEos == false );
     1262      }
     1263      else
     1264      {
     1265        m_isLastNALWasEos = false;
     1266      }
     1267#endif
    12421268#if H_MV
    12431269      return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay, newLayerFlag, sliceSkippedFlag );
     
    12471273      break;
    12481274    case NAL_UNIT_EOS:
     1275#if H0056_EOS_CHECKS
     1276      assert( m_isLastNALWasEos == false );
     1277      //Check layer id of the nalu. if it is not 0, give a warning message and just return without doing anything.
     1278      if (nalu.m_layerId > 0)
     1279      {
     1280        printf( "\nThis bitstream has EOS with non-zero layer id.\n" );
     1281        return false;
     1282      }
     1283      m_isLastNALWasEos = true;
     1284#endif
    12491285      m_associatedIRAPType = NAL_UNIT_INVALID;
    12501286      m_pocCRA = 0;
     
    12641300      return false;
    12651301     
     1302#if H0056_EOS_CHECKS
     1303    case NAL_UNIT_FILLER_DATA:
     1304      assert( m_isLastNALWasEos == false );
     1305      return false;
     1306#endif
    12661307     
    12671308    case NAL_UNIT_RESERVED_VCL_N10:
     
    12841325    case NAL_UNIT_RESERVED_VCL31:
    12851326     
     1327#if !H0056_EOS_CHECKS
    12861328    case NAL_UNIT_FILLER_DATA:
     1329#endif
    12871330    case NAL_UNIT_RESERVED_NVCL41:
    12881331    case NAL_UNIT_RESERVED_NVCL42:
  • branches/HTM-11.0-dev0-Qualcomm/source/Lib/TLibDecoder/TDecTop.h

    r884 r959  
    226226  Int                     m_skippedPOC;
    227227
     228#if H0056_EOS_CHECKS
     229  Bool                    m_isLastNALWasEos;
     230#endif
     231
    228232#if H_MV
    229233  // For H_MV m_bFirstSliceInSequence indicates first slice in sequence of the particular layer 
Note: See TracChangeset for help on using the changeset viewer.