FFmpeg
vvc_ps.h
Go to the documentation of this file.
1 /*
2  * VVC parameter set parser
3  *
4  * Copyright (C) 2023 Nuo Mi
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_VVC_VVC_PS_H
24 #define AVCODEC_VVC_VVC_PS_H
25 
26 #include "libavcodec/cbs_h266.h"
27 #include "libavcodec/vvc.h"
28 
29 #define IS_IDR(s) ((s)->vcl_unit_type == VVC_IDR_W_RADL || (s)->vcl_unit_type == VVC_IDR_N_LP)
30 #define IS_CRA(s) ((s)->vcl_unit_type == VVC_CRA_NUT)
31 #define IS_IRAP(s) (IS_IDR(s) || IS_CRA(s))
32 #define IS_GDR(s) ((s)->vcl_unit_type == VVC_GDR_NUT)
33 #define IS_CVSS(s) (IS_IRAP(s)|| IS_GDR(s))
34 #define IS_CLVSS(s) (IS_CVSS(s) && s->no_output_before_recovery_flag)
35 #define IS_RASL(s) ((s)->vcl_unit_type == VVC_RASL_NUT)
36 #define IS_RADL(s) ((s)->vcl_unit_type == VVC_RADL_NUT)
37 
38 #define IS_I(rsh) ((rsh)->sh_slice_type == VVC_SLICE_TYPE_I)
39 #define IS_P(rsh) ((rsh)->sh_slice_type == VVC_SLICE_TYPE_P)
40 #define IS_B(rsh) ((rsh)->sh_slice_type == VVC_SLICE_TYPE_B)
41 
42 #define INV_POC INT_MIN
43 #define GDR_IS_RECOVERED(s) (s->gdr_recovery_point_poc == INV_POC)
44 #define GDR_SET_RECOVERED(s) (s->gdr_recovery_point_poc = INV_POC)
45 
46 #define LMCS_MAX_BIT_DEPTH 12
47 #define LMCS_MAX_LUT_SIZE (1 << LMCS_MAX_BIT_DEPTH)
48 #define LMCS_MAX_BIN_SIZE 16
49 #define LADF_MAX_INTERVAL 5
50 
51 enum {
56 };
57 
58 typedef struct VVCSPS {
59  const H266RawSPS *r; ///< RefStruct reference
60 
61  //derived values
64  uint32_t max_pic_order_cnt_lsb; ///< MaxPicOrderCntLsb
65 
66  uint8_t pixel_shift;
68 
69  uint8_t bit_depth; ///< BitDepth
70  uint8_t qp_bd_offset; ///< QpBdOffset
71  uint8_t ctb_log2_size_y; ///< CtbLog2SizeY
72  uint8_t ctb_size_y; ///< CtbSizeY
73  uint8_t min_cb_log2_size_y; ///< MinCbLog2SizeY
74  uint8_t min_cb_size_y; ///< MinCbSizeY
75  uint8_t max_tb_size_y; ///< MaxTbSizeY
76  uint8_t max_ts_size; ///< MaxTsSize
77  uint8_t max_num_merge_cand; ///< MaxNumMergeCand
78  uint8_t max_num_ibc_merge_cand; ///< MaxNumIbcMergeCand
79  uint8_t max_num_gpm_merge_cand; ///< MaxNumGpmMergeCand
80  uint8_t num_ladf_intervals; ///< sps_num_ladf_intervals_minus2 + 2;
81  uint32_t ladf_interval_lower_bound[LADF_MAX_INTERVAL]; ///< SpsLadfIntervalLowerBound[]
82  uint8_t log2_parallel_merge_level; ///< sps_log2_parallel_merge_level_minus2 + 2;
83  uint8_t log2_transform_range; ///< Log2TransformRange
84  int8_t chroma_qp_table[3][VVC_MAX_POINTS_IN_QP_TABLE]; ///< ChromaQpTable
85 } VVCSPS;
86 
87 typedef struct DBParams {
90 } DBParams;
91 
92 typedef struct VVCPPS {
93  const H266RawPPS *r; ///< RefStruct reference
94 
95  //derived value;
96  int8_t chroma_qp_offset[3]; ///< pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset_value
97  int8_t chroma_qp_offset_list[6][3]; ///< pps_cb_qp_offset_list, pps_cr_qp_offset_list, pps_joint_cbcr_qp_offset_list
98 
99  uint16_t width;
100  uint16_t height;
101 
104 
105  uint16_t min_cb_width;
106  uint16_t min_cb_height;
107 
108  uint16_t ctb_width;
109  uint16_t ctb_height;
110  uint32_t ctb_count;
111 
112  uint16_t min_pu_width;
113  uint16_t min_pu_height;
114  uint16_t min_tu_width;
115  uint16_t min_tu_height;
116 
117  uint32_t *ctb_addr_in_slice; ///< CtbAddrInCurrSlice for entire picture
118  uint16_t *col_bd;
119  uint16_t *row_bd;
120  uint16_t *ctb_to_col_bd;
121  uint16_t *ctb_to_row_bd;
122 
123  uint16_t width32; ///< width in 32 pixels
124  uint16_t height32; ///< height in 32 pixels
125  uint16_t width64; ///< width in 64 pixels
126  uint16_t height64; ///< height in 64 pixels
127 
128  uint16_t ref_wraparound_offset; ///< PpsRefWraparoundOffset
129 
130 } VVCPPS;
131 
132 #define MAX_WEIGHTS 15
133 typedef struct PredWeightTable {
134  uint8_t log2_denom[2]; ///< luma_log2_weight_denom, ChromaLog2WeightDenom
135 
136  uint8_t nb_weights[2]; ///< num_l0_weights, num_l1_weights
137  uint8_t weight_flag[2][2][MAX_WEIGHTS]; ///< luma_weight_l0_flag, chroma_weight_l0_flag,
138  ///< luma_weight_l1_flag, chroma_weight_l1_flag,
139  int16_t weight[2][VVC_MAX_SAMPLE_ARRAYS][MAX_WEIGHTS]; ///< LumaWeightL0, LumaWeightL1, ChromaWeightL0, ChromaWeightL1
140  int16_t offset[2][VVC_MAX_SAMPLE_ARRAYS][MAX_WEIGHTS]; ///< luma_offset_l0, luma_offset_l1, ChromaOffsetL0, ChromaOffsetL1
142 
143 typedef struct VVCPH {
145  void *rref; ///< RefStruct reference, backing ph above
146 
147  //derived values
148  uint32_t max_num_subblock_merge_cand; ///< MaxNumSubblockMergeCand
149  int32_t poc; ///< PicOrderCntVal
151 } VVCPH;
152 
153 #define ALF_NUM_FILTERS_LUMA 25
154 #define ALF_NUM_FILTERS_CHROMA 8
155 #define ALF_NUM_FILTERS_CC 4
156 
157 #define ALF_NUM_COEFF_LUMA 12
158 #define ALF_NUM_COEFF_CHROMA 6
159 #define ALF_NUM_COEFF_CC 7
160 
161 typedef struct VVCALF {
164 
168 
169  uint8_t num_cc_filters[2]; ///< alf_cc_cb_filters_signalled_minus1 + 1, alf_cc_cr_filters_signalled_minus1 + 1
171 } VVCALF;
172 
173 enum {
180  SL_MAX_ID = 28,
181 };
182 
183 #define SL_MAX_MATRIX_SIZE 8
184 
185 typedef struct VVCScalingList {
187  uint8_t scaling_matrix_dc_rec[SL_MAX_ID - SL_START_16x16]; ///< ScalingMatrixDcRec[refId − 14]
189 
190 typedef struct VVCLMCS {
191  uint8_t min_bin_idx;
192  uint8_t max_bin_idx;
193 
194  union {
196  uint16_t u16[LMCS_MAX_LUT_SIZE]; ///< for high bit-depth
197  } fwd_lut, inv_lut;
198 
199  uint16_t pivot[LMCS_MAX_BIN_SIZE + 1];
201 } VVCLMCS;
202 
203 #define VVC_MAX_ALF_COUNT 8
204 #define VVC_MAX_LMCS_COUNT 4
205 #define VVC_MAX_SL_COUNT 8
206 
207 typedef struct VVCParamSets {
208  const VVCSPS *sps_list[VVC_MAX_SPS_COUNT]; ///< RefStruct reference
209  const VVCPPS *pps_list[VVC_MAX_PPS_COUNT]; ///< RefStruct reference
210  const VVCALF *alf_list[VVC_MAX_ALF_COUNT]; ///< RefStruct reference
211  const H266RawAPS *lmcs_list[VVC_MAX_LMCS_COUNT]; ///< RefStruct reference
212  const VVCScalingList *scaling_list[VVC_MAX_SL_COUNT]; ///< RefStruct reference
213 } VVCParamSets;
214 
215 typedef struct VVCFrameParamSets {
216  const VVCSPS *sps; ///< RefStruct reference
217  const VVCPPS *pps; ///< RefStruct reference
219  const VVCALF *alf_list[VVC_MAX_ALF_COUNT]; ///< RefStruct reference
221  const VVCScalingList *sl; ///< RefStruct reference
223 
224 typedef struct VVCSH {
225  const H266RawSliceHeader *r; ///< RefStruct reference
226 
227  // derived values
228  // ctu address
229  uint32_t num_ctus_in_curr_slice; ///< NumCtusInCurrSlice
230  const uint32_t* ctb_addr_in_curr_slice; ///< CtbAddrInCurrSlice
231 
232  // inter
234  int8_t ref_idx_sym[2]; ///< RefIdxSymL0, RefIdxSymL1
235 
236  // qp_y
237  int8_t slice_qp_y; ///< SliceQpY
238 
239  // deblock_offsets
241 
242  // partition constrains
243  uint8_t min_qt_size[2]; ///< MinQtSizeY, MinQtSizeC
244  uint8_t max_bt_size[2]; ///< MaxBtSizeY, MaxBtSizeC
245  uint8_t max_tt_size[2]; ///< MaxTtSizeY, MaxTtSizeC
246  uint8_t max_mtt_depth[2]; ///< MaxMttDepthY, MaxMttDepthC
247  uint8_t cu_qp_delta_subdiv; ///< CuQpDeltaSubdiv
248  uint8_t cu_chroma_qp_offset_subdiv; ///< CuChromaQpOffsetSubdiv
249 
250  // entries
251  uint32_t entry_point_start_ctu[VVC_MAX_ENTRY_POINTS]; ///< entry point start in ctu_addr
252 } VVCSH;
253 
254 struct VVCContext;
255 
258 int ff_vvc_decode_sh(VVCSH *sh, const VVCFrameParamSets *ps, const CodedBitstreamUnit *unit);
261 
262 #endif /* AVCODEC_VVC_VVC_PS_H */
VVCSPS
Definition: vvc_ps.h:58
VVCPPS::ctb_width
uint16_t ctb_width
Definition: vvc_ps.h:108
PredWeightTable::weight_flag
uint8_t weight_flag[2][2][MAX_WEIGHTS]
luma_weight_l0_flag, chroma_weight_l0_flag, luma_weight_l1_flag, chroma_weight_l1_flag,
Definition: vvc_ps.h:137
DBParams
Definition: hevcdec.h:341
VVCSH::cu_qp_delta_subdiv
uint8_t cu_qp_delta_subdiv
CuQpDeltaSubdiv.
Definition: vvc_ps.h:247
VVCSH::num_ctus_in_curr_slice
uint32_t num_ctus_in_curr_slice
NumCtusInCurrSlice.
Definition: vvc_ps.h:229
AVPixelFormat
AVPixelFormat
Pixel format.
Definition: pixfmt.h:71
VVCPH
Definition: vvc_ps.h:143
VVCSPS::log2_transform_range
uint8_t log2_transform_range
Log2TransformRange.
Definition: vvc_ps.h:83
VVCPPS
Definition: vvc_ps.h:92
VVCLMCS::min_bin_idx
uint8_t min_bin_idx
Definition: vvc_ps.h:191
cbs_h266.h
VVCSH::entry_point_start_ctu
uint32_t entry_point_start_ctu[VVC_MAX_ENTRY_POINTS]
entry point start in ctu_addr
Definition: vvc_ps.h:251
VVCPPS::r
const H266RawPPS * r
RefStruct reference.
Definition: vvc_ps.h:93
VVCSPS::chroma_qp_table
int8_t chroma_qp_table[3][VVC_MAX_POINTS_IN_QP_TABLE]
ChromaQpTable.
Definition: vvc_ps.h:84
CHROMA_FORMAT_MONO
@ CHROMA_FORMAT_MONO
Definition: vvc_ps.h:52
VVC_MAX_SAMPLE_ARRAYS
@ VVC_MAX_SAMPLE_ARRAYS
Definition: vvc.h:77
VVCSH::cu_chroma_qp_offset_subdiv
uint8_t cu_chroma_qp_offset_subdiv
CuChromaQpOffsetSubdiv.
Definition: vvc_ps.h:248
VVCLMCS::max_bin_idx
uint8_t max_bin_idx
Definition: vvc_ps.h:192
SL_START_4x4
@ SL_START_4x4
Definition: vvc_ps.h:175
VVCSH::r
const H266RawSliceHeader * r
RefStruct reference.
Definition: vvc_ps.h:225
LADF_MAX_INTERVAL
#define LADF_MAX_INTERVAL
Definition: vvc_ps.h:49
PredWeightTable::offset
int16_t offset[2][VVC_MAX_SAMPLE_ARRAYS][MAX_WEIGHTS]
luma_offset_l0, luma_offset_l1, ChromaOffsetL0, ChromaOffsetL1
Definition: vvc_ps.h:140
VVCLMCS
Definition: vvc_ps.h:190
VVCSPS::pixel_shift
uint8_t pixel_shift
Definition: vvc_ps.h:66
ff_vvc_decode_frame_ps
int ff_vvc_decode_frame_ps(VVCFrameParamSets *fps, struct VVCContext *s)
Definition: vvc_ps.c:760
VVCALF::num_chroma_filters
uint8_t num_chroma_filters
Definition: vvc_ps.h:165
LMCS_MAX_LUT_SIZE
#define LMCS_MAX_LUT_SIZE
Definition: vvc_ps.h:47
ff_vvc_decode_aps
int ff_vvc_decode_aps(VVCParamSets *ps, const CodedBitstreamUnit *unit)
Definition: vvc_ps.c:975
CodedBitstreamUnit
Coded bitstream unit structure.
Definition: cbs.h:70
VVCSPS::qp_bd_offset
uint8_t qp_bd_offset
QpBdOffset.
Definition: vvc_ps.h:70
VVCLMCS::chroma_scale_coeff
uint16_t chroma_scale_coeff[LMCS_MAX_BIN_SIZE]
Definition: vvc_ps.h:200
VVCPPS::width
uint16_t width
Definition: vvc_ps.h:99
VVC_MAX_SLICES
@ VVC_MAX_SLICES
Definition: vvc.h:144
VVCFrameParamSets::sps
const VVCSPS * sps
RefStruct reference.
Definition: vvc_ps.h:216
VVCFrameParamSets
Definition: vvc_ps.h:215
VVCPPS::num_ctus_in_slice
uint16_t num_ctus_in_slice[VVC_MAX_SLICES]
Definition: vvc_ps.h:103
PredWeightTable::log2_denom
uint8_t log2_denom[2]
luma_log2_weight_denom, ChromaLog2WeightDenom
Definition: vvc_ps.h:134
VVCSH::pwt
PredWeightTable pwt
Definition: vvc_ps.h:233
VVCSPS::hshift
uint8_t hshift[VVC_MAX_SAMPLE_ARRAYS]
Definition: vvc_ps.h:62
H266RawAPS
Definition: cbs_h266.h:598
VVCParamSets::pps_list
const VVCPPS * pps_list[VVC_MAX_PPS_COUNT]
RefStruct reference.
Definition: vvc_ps.h:209
VVCPPS::height
uint16_t height
Definition: vvc_ps.h:100
VVCALF::cc_coeff
int16_t cc_coeff[2][ALF_NUM_FILTERS_CC][ALF_NUM_COEFF_CC]
Definition: vvc_ps.h:170
VVCSPS::max_num_merge_cand
uint8_t max_num_merge_cand
MaxNumMergeCand.
Definition: vvc_ps.h:77
VVCFrameParamSets::sl
const VVCScalingList * sl
RefStruct reference.
Definition: vvc_ps.h:221
VVCALF
Definition: vvc_ps.h:161
VVCALF::chroma_clip_idx
uint8_t chroma_clip_idx[ALF_NUM_FILTERS_CHROMA][ALF_NUM_COEFF_CHROMA]
Definition: vvc_ps.h:167
ALF_NUM_FILTERS_CHROMA
#define ALF_NUM_FILTERS_CHROMA
Definition: vvc_ps.h:154
VVCPPS::min_cb_height
uint16_t min_cb_height
Definition: vvc_ps.h:106
DBParams::beta_offset
int beta_offset
Definition: hevcdec.h:342
DBParams::tc_offset
int tc_offset
Definition: hevcdec.h:343
VVCPPS::width64
uint16_t width64
width in 64 pixels
Definition: vvc_ps.h:125
s
#define s(width, name)
Definition: cbs_vp9.c:198
VVCPPS::ref_wraparound_offset
uint16_t ref_wraparound_offset
PpsRefWraparoundOffset.
Definition: vvc_ps.h:128
PredWeightTable::weight
int16_t weight[2][VVC_MAX_SAMPLE_ARRAYS][MAX_WEIGHTS]
LumaWeightL0, LumaWeightL1, ChromaWeightL0, ChromaWeightL1.
Definition: vvc_ps.h:139
VVCFrameParamSets::lmcs
VVCLMCS lmcs
Definition: vvc_ps.h:220
CHROMA_FORMAT_422
@ CHROMA_FORMAT_422
Definition: vvc_ps.h:54
VVCPPS::ctb_addr_in_slice
uint32_t * ctb_addr_in_slice
CtbAddrInCurrSlice for entire picture.
Definition: vvc_ps.h:117
VVCSH
Definition: vvc_ps.h:224
PredWeightTable
Definition: vvc_ps.h:133
VVCPPS::ctb_to_row_bd
uint16_t * ctb_to_row_bd
Definition: vvc_ps.h:121
VVCFrameParamSets::ph
VVCPH ph
Definition: vvc_ps.h:218
ALF_NUM_COEFF_CHROMA
#define ALF_NUM_COEFF_CHROMA
Definition: vvc_ps.h:158
VVC_MAX_POINTS_IN_QP_TABLE
@ VVC_MAX_POINTS_IN_QP_TABLE
Definition: vvc.h:121
VVCParamSets::sps_list
const VVCSPS * sps_list[VVC_MAX_SPS_COUNT]
RefStruct reference.
Definition: vvc_ps.h:208
ALF_NUM_FILTERS_CC
#define ALF_NUM_FILTERS_CC
Definition: vvc_ps.h:155
H266RawSPS
Definition: cbs_h266.h:308
H266RawPPS
Definition: cbs_h266.h:496
VVCPPS::slice_start_offset
uint16_t slice_start_offset[VVC_MAX_SLICES]
Definition: vvc_ps.h:102
VVCSPS::ctb_log2_size_y
uint8_t ctb_log2_size_y
CtbLog2SizeY.
Definition: vvc_ps.h:71
VVCPH::pwt
PredWeightTable pwt
Definition: vvc_ps.h:150
H266RawPictureHeader
Definition: cbs_h266.h:674
ALF_NUM_COEFF_CC
#define ALF_NUM_COEFF_CC
Definition: vvc_ps.h:159
VVCSH::ref_idx_sym
int8_t ref_idx_sym[2]
RefIdxSymL0, RefIdxSymL1.
Definition: vvc_ps.h:234
VVCFrameParamSets::alf_list
const VVCALF * alf_list[VVC_MAX_ALF_COUNT]
RefStruct reference.
Definition: vvc_ps.h:219
VVCPPS::ctb_height
uint16_t ctb_height
Definition: vvc_ps.h:109
VVC_MAX_ENTRY_POINTS
@ VVC_MAX_ENTRY_POINTS
Definition: vvc.h:153
VVC_MAX_LMCS_COUNT
#define VVC_MAX_LMCS_COUNT
Definition: vvc_ps.h:204
VVCSH::max_tt_size
uint8_t max_tt_size[2]
MaxTtSizeY, MaxTtSizeC.
Definition: vvc_ps.h:245
SL_MAX_MATRIX_SIZE
#define SL_MAX_MATRIX_SIZE
Definition: vvc_ps.h:183
VVCParamSets::scaling_list
const VVCScalingList * scaling_list[VVC_MAX_SL_COUNT]
RefStruct reference.
Definition: vvc_ps.h:212
VVCSPS::bit_depth
uint8_t bit_depth
BitDepth.
Definition: vvc_ps.h:69
VVCPPS::chroma_qp_offset_list
int8_t chroma_qp_offset_list[6][3]
pps_cb_qp_offset_list, pps_cr_qp_offset_list, pps_joint_cbcr_qp_offset_list
Definition: vvc_ps.h:97
VVCPH::r
const H266RawPictureHeader * r
Definition: vvc_ps.h:144
VVC_MAX_SPS_COUNT
@ VVC_MAX_SPS_COUNT
Definition: vvc.h:97
SL_START_8x8
@ SL_START_8x8
Definition: vvc_ps.h:176
VVCALF::luma_coeff
int16_t luma_coeff[ALF_NUM_FILTERS_LUMA][ALF_NUM_COEFF_LUMA]
Definition: vvc_ps.h:162
ff_vvc_decode_sh
int ff_vvc_decode_sh(VVCSH *sh, const VVCFrameParamSets *ps, const CodedBitstreamUnit *unit)
Definition: vvc_ps.c:1164
VVCFrameParamSets::pps
const VVCPPS * pps
RefStruct reference.
Definition: vvc_ps.h:217
VVCSH::max_mtt_depth
uint8_t max_mtt_depth[2]
MaxMttDepthY, MaxMttDepthC.
Definition: vvc_ps.h:246
VVCSPS::max_num_ibc_merge_cand
uint8_t max_num_ibc_merge_cand
MaxNumIbcMergeCand.
Definition: vvc_ps.h:78
VVCScalingList
Definition: vvc_ps.h:185
CHROMA_FORMAT_420
@ CHROMA_FORMAT_420
Definition: vvc_ps.h:53
MAX_WEIGHTS
#define MAX_WEIGHTS
Definition: vvc_ps.h:132
ALF_NUM_COEFF_LUMA
#define ALF_NUM_COEFF_LUMA
Definition: vvc_ps.h:157
PredWeightTable::nb_weights
uint8_t nb_weights[2]
num_l0_weights, num_l1_weights
Definition: vvc_ps.h:136
VVCSPS::ladf_interval_lower_bound
uint32_t ladf_interval_lower_bound[LADF_MAX_INTERVAL]
SpsLadfIntervalLowerBound[].
Definition: vvc_ps.h:81
ff_vvc_frame_ps_free
void ff_vvc_frame_ps_free(VVCFrameParamSets *fps)
Definition: vvc_ps.c:776
VVCPPS::min_tu_width
uint16_t min_tu_width
Definition: vvc_ps.h:114
VVCSH::deblock
DBParams deblock
Definition: vvc_ps.h:240
VVCSH::ctb_addr_in_curr_slice
const uint32_t * ctb_addr_in_curr_slice
CtbAddrInCurrSlice.
Definition: vvc_ps.h:230
VVCScalingList::scaling_matrix_dc_rec
uint8_t scaling_matrix_dc_rec[SL_MAX_ID - SL_START_16x16]
ScalingMatrixDcRec[refId − 14].
Definition: vvc_ps.h:187
VVCSPS::log2_parallel_merge_level
uint8_t log2_parallel_merge_level
sps_log2_parallel_merge_level_minus2 + 2;
Definition: vvc_ps.h:82
VVC_MAX_SL_COUNT
#define VVC_MAX_SL_COUNT
Definition: vvc_ps.h:205
VVC_MAX_ALF_COUNT
#define VVC_MAX_ALF_COUNT
Definition: vvc_ps.h:203
VVCPPS::chroma_qp_offset
int8_t chroma_qp_offset[3]
pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset_value
Definition: vvc_ps.h:96
ALF_NUM_FILTERS_LUMA
#define ALF_NUM_FILTERS_LUMA
Definition: vvc_ps.h:153
VVCSPS::pix_fmt
enum AVPixelFormat pix_fmt
Definition: vvc_ps.h:67
vvc.h
VVCPH::max_num_subblock_merge_cand
uint32_t max_num_subblock_merge_cand
MaxNumSubblockMergeCand.
Definition: vvc_ps.h:148
SL_START_16x16
@ SL_START_16x16
Definition: vvc_ps.h:177
H266RawSliceHeader
Definition: cbs_h266.h:769
VVCLMCS::pivot
uint16_t pivot[LMCS_MAX_BIN_SIZE+1]
Definition: vvc_ps.h:199
VVCSPS::vshift
uint8_t vshift[VVC_MAX_SAMPLE_ARRAYS]
Definition: vvc_ps.h:63
VVCPPS::min_pu_width
uint16_t min_pu_width
Definition: vvc_ps.h:112
VVCPPS::width32
uint16_t width32
width in 32 pixels
Definition: vvc_ps.h:123
VVCPH::rref
void * rref
RefStruct reference, backing ph above.
Definition: vvc_ps.h:145
VVCPH::poc
int32_t poc
PicOrderCntVal.
Definition: vvc_ps.h:149
VVCLMCS::u16
uint16_t u16[LMCS_MAX_LUT_SIZE]
for high bit-depth
Definition: vvc_ps.h:196
VVCPPS::min_tu_height
uint16_t min_tu_height
Definition: vvc_ps.h:115
VVCSPS::num_ladf_intervals
uint8_t num_ladf_intervals
sps_num_ladf_intervals_minus2 + 2;
Definition: vvc_ps.h:80
VVCSPS::max_num_gpm_merge_cand
uint8_t max_num_gpm_merge_cand
MaxNumGpmMergeCand.
Definition: vvc_ps.h:79
SL_START_32x32
@ SL_START_32x32
Definition: vvc_ps.h:178
VVCSPS::min_cb_log2_size_y
uint8_t min_cb_log2_size_y
MinCbLog2SizeY.
Definition: vvc_ps.h:73
ff_vvc_ps_uninit
void ff_vvc_ps_uninit(VVCParamSets *ps)
Definition: vvc_ps.c:786
SL_MAX_ID
@ SL_MAX_ID
Definition: vvc_ps.h:180
LMCS_MAX_BIN_SIZE
#define LMCS_MAX_BIN_SIZE
Definition: vvc_ps.h:48
VVCPPS::ctb_count
uint32_t ctb_count
Definition: vvc_ps.h:110
VVCContext::ps
VVCParamSets ps
Definition: vvcdec.h:201
VVCPPS::height32
uint16_t height32
height in 32 pixels
Definition: vvc_ps.h:124
VVCPPS::row_bd
uint16_t * row_bd
Definition: vvc_ps.h:119
VVC_MAX_PPS_COUNT
@ VVC_MAX_PPS_COUNT
Definition: vvc.h:99
VVCPPS::min_pu_height
uint16_t min_pu_height
Definition: vvc_ps.h:113
VVCParamSets::alf_list
const VVCALF * alf_list[VVC_MAX_ALF_COUNT]
RefStruct reference.
Definition: vvc_ps.h:210
VVCSH::slice_qp_y
int8_t slice_qp_y
SliceQpY.
Definition: vvc_ps.h:237
SL_START_64x64
@ SL_START_64x64
Definition: vvc_ps.h:179
VVCSPS::max_tb_size_y
uint8_t max_tb_size_y
MaxTbSizeY.
Definition: vvc_ps.h:75
VVCSPS::ctb_size_y
uint8_t ctb_size_y
CtbSizeY.
Definition: vvc_ps.h:72
VVCPPS::col_bd
uint16_t * col_bd
Definition: vvc_ps.h:118
VVCLMCS::u8
uint8_t u8[LMCS_MAX_LUT_SIZE]
Definition: vvc_ps.h:195
VVCALF::luma_clip_idx
uint8_t luma_clip_idx[ALF_NUM_FILTERS_LUMA][ALF_NUM_COEFF_LUMA]
Definition: vvc_ps.h:163
VVCLMCS::fwd_lut
union VVCLMCS::@225 fwd_lut
CHROMA_FORMAT_444
@ CHROMA_FORMAT_444
Definition: vvc_ps.h:55
SL_START_2x2
@ SL_START_2x2
Definition: vvc_ps.h:174
VVCParamSets
Definition: vvc_ps.h:207
VVCSH::max_bt_size
uint8_t max_bt_size[2]
MaxBtSizeY, MaxBtSizeC.
Definition: vvc_ps.h:244
VVCPPS::min_cb_width
uint16_t min_cb_width
Definition: vvc_ps.h:105
VVCSPS::r
const H266RawSPS * r
RefStruct reference.
Definition: vvc_ps.h:59
VVCALF::num_cc_filters
uint8_t num_cc_filters[2]
alf_cc_cb_filters_signalled_minus1 + 1, alf_cc_cr_filters_signalled_minus1 + 1
Definition: vvc_ps.h:169
VVCLMCS::inv_lut
union VVCLMCS::@225 inv_lut
int32_t
int32_t
Definition: audioconvert.c:56
VVCPPS::ctb_to_col_bd
uint16_t * ctb_to_col_bd
Definition: vvc_ps.h:120
VVCSH::min_qt_size
uint8_t min_qt_size[2]
MinQtSizeY, MinQtSizeC.
Definition: vvc_ps.h:243
VVCPPS::height64
uint16_t height64
height in 64 pixels
Definition: vvc_ps.h:126
VVCSPS::max_pic_order_cnt_lsb
uint32_t max_pic_order_cnt_lsb
MaxPicOrderCntLsb.
Definition: vvc_ps.h:64
VVCSPS::min_cb_size_y
uint8_t min_cb_size_y
MinCbSizeY.
Definition: vvc_ps.h:74
VVCSPS::max_ts_size
uint8_t max_ts_size
MaxTsSize.
Definition: vvc_ps.h:76
VVCALF::chroma_coeff
int16_t chroma_coeff[ALF_NUM_FILTERS_CHROMA][ALF_NUM_COEFF_CHROMA]
Definition: vvc_ps.h:166
VVCParamSets::lmcs_list
const H266RawAPS * lmcs_list[VVC_MAX_LMCS_COUNT]
RefStruct reference.
Definition: vvc_ps.h:211
VVCContext
Definition: vvcdec.h:195
VVCScalingList::scaling_matrix_rec
uint8_t scaling_matrix_rec[SL_MAX_ID][SL_MAX_MATRIX_SIZE *SL_MAX_MATRIX_SIZE]
ScalingMatrixRec.
Definition: vvc_ps.h:186