1// Copyright 2020-2024 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4// Common H.265 Parameter Set descriptions 5// "operationType" attribute specifies whether this is included in the encode or decode section 6 7[[{operationType}-h265-vps]] 8 9H.265 Video Parameter Sets (VPS):: 10 11Represented by code:StdVideoH265VideoParameterSet structures and interpreted 12as follows: 13 14 * code:reserved1, code:reserved2, and code:reserved3 are used only for 15 padding purposes and are otherwise ignored; 16 * code:vps_video_parameter_set_id is used as the key of the VPS entry; 17 * the code:max_latency_increase_plus1, code:max_dec_pic_buffering_minus1, 18 and code:max_num_reorder_pics members of the 19 code:StdVideoH265DecPicBufMgr structure pointed to by code:pDecPicBufMgr 20 correspond to `vps_max_latency_increase_plus1`, 21 `vps_max_dec_pic_buffering_minus1`, and `vps_max_num_reorder_pics`, 22 respectively, as defined in section 7.4.3.1 of the <<itu-t-h265,ITU-T 23 H.265 Specification>>; 24 * the code:StdVideoH265HrdParameters structure pointed to by 25 code:pHrdParameters is interpreted as follows: 26 ** code:reserved is used only for padding purposes and is otherwise 27 ignored; 28 ** code:flags.fixed_pic_rate_general_flag is a bitmask where bit index 29 [eq]#i# corresponds to `fixed_pic_rate_general_flag[i]` as defined in 30 section E.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 31 ** code:flags.fixed_pic_rate_within_cvs_flag is a bitmask where bit index 32 [eq]#i# corresponds to `fixed_pic_rate_within_cvs_flag[i]` as defined 33 in section E.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 34 ** code:flags.low_delay_hrd_flag is a bitmask where bit index [eq]#i# 35 corresponds to `low_delay_hrd_flag[i]` as defined in section E.3.2 of 36 the <<itu-t-h265,ITU-T H.265 Specification>>; 37 ** if code:flags.nal_hrd_parameters_present_flag is set, then 38 code:pSubLayerHrdParametersNal is a pointer to an array of 39 [eq]#code:vps_max_sub_layers_minus1 + 1# number of 40 code:StdVideoH265SubLayerHrdParameters structures where 41 code:vps_max_sub_layers_minus1 is the corresponding member of the 42 encompassing code:StdVideoH265VideoParameterSet structure and each 43 element is interpreted as follows: 44 *** code:cbr_flag is a bitmask where bit index [eq]#i# corresponds to 45 `cbr_flag[i]` as defined in section E.3.3 of the <<itu-t-h265,ITU-T 46 H.265 Specification>>; 47 *** all other members of the code:StdVideoH265SubLayerHrdParameters 48 structure are interpreted as defined in section E.3.3 of the 49 <<itu-t-h265,ITU-T H.265 Specification>>; 50 ** if code:flags.vcl_hrd_parameters_present_flag is set, then 51 code:pSubLayerHrdParametersVcl is a pointer to an array of 52 [eq]#code:vps_max_sub_layers_minus1 + 1# number of 53 code:StdVideoH265SubLayerHrdParameters structures where 54 code:vps_max_sub_layers_minus1 is the corresponding member of the 55 encompassing code:StdVideoH265VideoParameterSet structure and each 56 element is interpreted as follows: 57 *** code:cbr_flag is a bitmask where bit index [eq]#i# corresponds to 58 `cbr_flag[i]` as defined in section E.3.3 of the <<itu-t-h265,ITU-T 59 H.265 Specification>>; 60 *** all other members of the code:StdVideoH265SubLayerHrdParameters 61 structure are interpreted as defined in section E.3.3 of the 62 <<itu-t-h265,ITU-T H.265 Specification>>; 63 ** all other members of code:StdVideoH265HrdParameters are interpreted as 64 defined in section E.3.2 of the <<itu-t-h265,ITU-T H.265 65 Specification>>; 66 * the code:StdVideoH265ProfileTierLevel structure pointed to by 67 code:pProfileTierLevel are interpreted as follows: 68 ** code:general_level_idc is one of the enum constants 69 `STD_VIDEO_H265_LEVEL_IDC_<major>_<minor>` identifying the H.265 level 70 `<major>.<minor>` as defined in section A.4 of the <<itu-t-h265,ITU-T 71 H.265 Specification>>; 72 ** all other members of code:StdVideoH265ProfileTierLevel are interpreted 73 as defined in section 7.4.4 of the <<itu-t-h265,ITU-T H.265 74 Specification>>; 75 * all other members of code:StdVideoH265VideoParameterSet are interpreted 76 as defined in section 7.4.3.1 of the <<itu-t-h265,ITU-T H.265 77 Specification>>. 78 79[[{operationType}-h265-sps]] 80 81H.265 Sequence Parameter Sets (SPS):: 82 83Represented by code:StdVideoH265SequenceParameterSet structures and 84interpreted as follows: 85 86 * code:reserved1 and code:reserved2 are used only for padding purposes and 87 are otherwise ignored; 88 * the pair constructed from code:sps_video_parameter_set_id and 89 code:sps_seq_parameter_set_id is used as the key of the SPS entry; 90 * the code:StdVideoH265ProfileTierLevel structure pointed to by 91 code:pProfileTierLevel are interpreted as follows: 92 ** code:general_level_idc is one of the enum constants 93 `STD_VIDEO_H265_LEVEL_IDC_<major>_<minor>` identifying the H.265 level 94 `<major>.<minor>` as defined in section A.4 of the <<itu-t-h265,ITU-T 95 H.265 Specification>>; 96 ** all other members of code:StdVideoH265ProfileTierLevel are interpreted 97 as defined in section 7.4.4 of the <<itu-t-h265,ITU-T H.265 98 Specification>>; 99 * the code:max_latency_increase_plus1, code:max_dec_pic_buffering_minus1, 100 and code:max_num_reorder_pics members of the 101 code:StdVideoH265DecPicBufMgr structure pointed to by code:pDecPicBufMgr 102 correspond to `sps_max_latency_increase_plus1`, 103 `sps_max_dec_pic_buffering_minus1`, and `sps_max_num_reorder_pics`, 104 respectively, as defined in section 7.4.3.2 of the <<itu-t-h265,ITU-T 105 H.265 Specification>>; 106 * if code:flags.sps_scaling_list_data_present_flag is set, then the 107 code:StdVideoH265ScalingLists structure pointed to by code:pScalingLists 108 is interpreted as follows: 109 ** code:ScalingList4x4, code:ScalingList8x8, code:ScalingList16x16, and 110 code:ScalingList32x32 correspond to `ScalingList[0]`, `ScalingList[1]`, 111 `ScalingList[2]`, and `ScalingList[3]`, respectively, as defined in 112 section 7.3.4 of the <<itu-t-h265,ITU-T H.265 Specification>>; 113 ** code:ScalingListDCCoef16x16 and code:ScalingListDCCoef32x32 correspond 114 to `scaling_list_dc_coef_minus8[0]` and 115 `scaling_list_dc_coef_minus8[1]`, respectively, as defined in section 116 7.3.4 of the <<itu-t-h265,ITU-T H.265 Specification>>; 117 * code:pShortTermRefPicSet is a pointer to an array of 118 code:num_short_term_ref_pic_sets number of 119 code:StdVideoH265ShortTermRefPicSet structures where each element is 120 interpreted as follows: 121 ** code:reserved1, code:reserved2, and code:reserved3 are used only for 122 padding purposes and are otherwise ignored; 123 ** code:used_by_curr_pic_flag is a bitmask where bit index [eq]#i# 124 corresponds to `used_by_curr_pic_flag[i]` as defined in section 7.4.8 125 of the <<itu-t-h265,ITU-T H.265 Specification>>; 126 ** code:use_delta_flag is a bitmask where bit index [eq]#i# corresponds to 127 `use_delta_flag[i]` as defined in section 7.4.8 of the <<itu-t-h265, 128 ITU-T H.265 Specification>>; 129 ** code:used_by_curr_pic_s0_flag is a bitmask where bit index [eq]#i# 130 corresponds to `used_by_curr_pic_s0_flag[i]` as defined in section 131 7.4.8 of the <<itu-t-h265,ITU-T H.265 Specification>>; 132 ** code:used_by_curr_pic_s1_flag is a bitmask where bit index [eq]#i# 133 corresponds to `used_by_curr_pic_s1_flag[i]` as defined in section 134 7.4.8 of the <<itu-t-h265,ITU-T H.265 Specification>>; 135 ** all other members of code:StdVideoH265ShortTermRefPicSet are 136 interpreted as defined in section 7.4.8 of the <<itu-t-h265,ITU-T H.265 137 Specification>>; 138 * if code:flags.long_term_ref_pics_present_flag is set then the 139 code:StdVideoH265LongTermRefPicsSps structure pointed to by 140 code:pLongTermRefPicsSps is interpreted as follows: 141 ** code:used_by_curr_pic_lt_sps_flag is a bitmask where bit index [eq]#i# 142 corresponds to `used_by_curr_pic_lt_sps_flag[i]` as defined in section 143 7.4.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 144 ** all other members of code:StdVideoH265LongTermRefPicsSps are 145 interpreted as defined in section 7.4.3.2 of the <<itu-t-h265,ITU-T 146 H.265 Specification>>; 147 * if code:flags.vui_parameters_present_flag is set, then the 148 code:StdVideoH265SequenceParameterSetVui structure pointed to by 149 code:pSequenceParameterSetVui is interpreted as follows: 150 ** code:reserved1, code:reserved2, and code:reserved3 are used only for 151 padding purposes and are otherwise ignored; 152 ** the code:StdVideoH265HrdParameters structure pointed to by 153 code:pHrdParameters is interpreted as follows: 154 *** code:flags.fixed_pic_rate_general_flag is a bitmask where bit index 155 [eq]#i# corresponds to `fixed_pic_rate_general_flag[i]` as defined in 156 section E.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 157 *** code:flags.fixed_pic_rate_within_cvs_flag is a bitmask where bit index 158 [eq]#i# corresponds to `fixed_pic_rate_within_cvs_flag[i]` as defined 159 in section E.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 160 *** code:flags.low_delay_hrd_flag is a bitmask where bit index [eq]#i# 161 corresponds to `low_delay_hrd_flag[i]` as defined in section E.3.2 of 162 the <<itu-t-h265,ITU-T H.265 Specification>>; 163 *** if code:flags.nal_hrd_parameters_present_flag is set, then 164 code:pSubLayerHrdParametersNal is a pointer to an array of 165 [eq]#code:sps_max_sub_layers_minus1 + 1# number of 166 code:StdVideoH265SubLayerHrdParameters structures where 167 code:sps_max_sub_layers_minus1 is the corresponding member of the 168 encompassing code:StdVideoH265SequenceParameterSet structure and each 169 element is interpreted as follows: 170 **** code:cbr_flag is a bitmask where bit index [eq]#i# corresponds to 171 `cbr_flag[i]` as defined in section E.3.3 of the <<itu-t-h265,ITU-T 172 H.265 Specification>>; 173 **** all other members of the code:StdVideoH265SubLayerHrdParameters 174 structure are interpreted as defined in section E.3.3 of the 175 <<itu-t-h265,ITU-T H.265 Specification>>; 176 *** if code:flags.vcl_hrd_parameters_present_flag is set, then 177 code:pSubLayerHrdParametersVcl is a pointer to an array of 178 [eq]#code:sps_max_sub_layers_minus1 + 1# number of 179 code:StdVideoH265SubLayerHrdParameters structures where 180 code:sps_max_sub_layers_minus1 is the corresponding member of the 181 encompassing code:StdVideoH265SequenceParameterSet structure and each 182 element is interpreted as follows: 183 **** code:cbr_flag is a bitmask where bit index [eq]#i# corresponds to 184 `cbr_flag[i]` as defined in section E.3.3 of the <<itu-t-h265,ITU-T 185 H.265 Specification>>; 186 **** all other members of the code:StdVideoH265SubLayerHrdParameters 187 structure are interpreted as defined in section E.3.3 of the 188 <<itu-t-h265,ITU-T H.265 Specification>>; 189 *** all other members of code:StdVideoH265HrdParameters are interpreted as 190 defined in section E.3.2 of the <<itu-t-h265,ITU-T H.265 191 Specification>>; 192 ** all other members of code:pSequenceParameterSetVui are interpreted as 193 defined in section E.3.1 of the <<itu-t-h265,ITU-T H.265 194 Specification>>; 195 * if code:flags.sps_palette_predictor_initializer_present_flag is set, 196 then the code:PredictorPaletteEntries member of the 197 code:StdVideoH265PredictorPaletteEntries structure pointed to by 198 code:pPredictorPaletteEntries is interpreted as defined in section 199 7.4.9.13 of the <<itu-t-h265,ITU-T H.265 Specification>>; 200 * all other members of code:StdVideoH265SequenceParameterSet are 201 interpreted as defined in section 7.4.3.1 of the <<itu-t-h265,ITU-T 202 H.265 Specification>>. 203 204[[{operationType}-h265-pps]] 205 206H.265 Picture Parameter Sets (PPS):: 207 208Represented by code:StdVideoH265PictureParameterSet structures and 209interpreted as follows: 210 211 * code:reserved1, code:reserved2, and code:reserved3 are used only for 212 padding purposes and are otherwise ignored; 213 * the triplet constructed from code:sps_video_parameter_set_id, 214 code:pps_seq_parameter_set_id, and code:pps_pic_parameter_set_id is used 215 as the key of the PPS entry; 216 * if code:flags.pps_scaling_list_data_present_flag is set, then the 217 code:StdVideoH265ScalingLists structure pointed to by code:pScalingLists 218 is interpreted as follows: 219 ** code:ScalingList4x4, code:ScalingList8x8, code:ScalingList16x16, and 220 code:ScalingList32x32 correspond to `ScalingList[0]`, `ScalingList[1]`, 221 `ScalingList[2]`, and `ScalingList[3]`, respectively, as defined in 222 section 7.3.4 of the <<itu-t-h265,ITU-T H.265 Specification>>; 223 ** code:ScalingListDCCoef16x16 and code:ScalingListDCCoef32x32 correspond 224 to `scaling_list_dc_coef_minus8[0]` and 225 `scaling_list_dc_coef_minus8[1]`, respectively, as defined in section 226 7.3.4 of the <<itu-t-h265,ITU-T H.265 Specification>>; 227 * if code:flags.pps_palette_predictor_initializer_present_flag is set, 228 then the code:PredictorPaletteEntries member of the 229 code:StdVideoH265PredictorPaletteEntries structure pointed to by 230 code:pPredictorPaletteEntries is interpreted as defined in section 231 7.4.9.13 of the <<itu-t-h265,ITU-T H.265 Specification>>; 232 * all other members of code:StdVideoH265PictureParameterSet are 233 interpreted as defined in section 7.4.3.3 of the <<itu-t-h265,ITU-T 234 H.265 Specification>>. 235