Commit 9d3f3afa authored by Karsten Suehring's avatar Karsten Suehring
Browse files

Merge branch 'eeehey/VVCSoftware_VTM-R0264-IRAP-CONSTRAINT'

JVET-R0264: IRAP constraint
parents 8bf80e55 be3c20c1
......@@ -70,6 +70,7 @@
#define JVET_S0175_ASPECT6 1 // The general_nal_hrd_params_present_flag and general_vcl_hrd_params_present_flag are allowed to both be equal to 0
#define JVET_R0046_IRAP_ASPECT2 1 // Add a constraint on an ILRP being either an IRAP picture or having TemporalId less than or equal to Max (0, vps_max_tid_il_ref_pics_plus1[ refPicVpsLayerId ] - 1 )
#define JVET_T0064 1 // JVET-T0064: control of filter strength for ALF
#define JVET_R0264_IRAP_CONSTRAINT 1 // when max_tid_il_ref_pic_plus1[i][j] is equal to 0, it would be prohibited to have mixtures of IRAP and non-IRAP NAL units in the picture
//########### place macros to be be kept below this line ###############
#define JVET_S0257_DUMP_360SEI_MESSAGE 1 // Software support of 360 SEI messages
......
......@@ -1808,6 +1808,16 @@ void DecLib::xCheckParameterSetConstraints(const int layerId)
CHECK(curLayerChromaFormat != refLayerChromaFormat, "The chroma formats of the current layer and the reference layer are different");
int refLayerBitDepth = m_layerBitDepth[i];
CHECK(curLayerBitDepth != refLayerBitDepth, "The bit-depth of the current layer and the reference layer are different");
#if JVET_R0264_IRAP_CONSTRAINT
if (vps->getMaxTidIlRefPicsPlus1(curLayerIdx, i) == 0 && pps->getMixedNaluTypesInPicFlag() == 1)
{
for (int j = 0; j < m_uiSliceSegmentIdx; j++)
{
Slice* preSlice = m_pcPic->slices[j];
CHECK( (preSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || preSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || preSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA), "mixed IRAP and non-IRAP NAL units in the picture when sps_video_parameter_set_id is greater than 0 and vps_max_tid_il_ref_pics_plus1[i][j] is equal to 0");
}
}
#endif
}
}
}
......@@ -3054,7 +3064,6 @@ void DecLib::checkNalUnitConstraints( uint32_t naluType )
const ConstraintInfo *cInfo = m_parameterSetManager.getActiveSPS()->getProfileTierLevel()->getConstraintInfo();
xCheckNalUnitConstraintFlags( cInfo, naluType );
}
}
void DecLib::xCheckNalUnitConstraintFlags( const ConstraintInfo *cInfo, uint32_t naluType )
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment