FFmpeg
vvc_data.h
Go to the documentation of this file.
1 /*
2  * VVC shared tables
3  *
4  * This file is part of FFmpeg.
5  *
6  * FFmpeg is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * FFmpeg is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with FFmpeg; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #ifndef AVCODEC_VVC_VVC_DATA_H
22 #define AVCODEC_VVC_VVC_DATA_H
23 
24 #include <stdint.h>
25 
26 extern const uint8_t ff_vvc_diag_scan_x[5][5][16 * 16];
27 extern const uint8_t ff_vvc_diag_scan_y[5][5][16 * 16];
28 
29 extern const uint8_t ff_vvc_scaling_pred_8[8 * 8];
30 extern const uint8_t ff_vvc_scaling_pred_16[8 * 8];
31 extern const int ff_vvc_scaling_list0[8 * 8];
32 
33 extern const int8_t ff_vvc_dct8_4x4[4][4];
34 extern const int8_t ff_vvc_dct8_8x8[8][8];
35 extern const int8_t ff_vvc_dct8_16x16[16][16];
36 extern const int8_t ff_vvc_dct8_32x32[32][32];
37 extern const int8_t ff_vvc_dst7_4x4[4][4];
38 extern const int8_t ff_vvc_dst7_8x8[8][8];
39 extern const int8_t ff_vvc_dst7_16x16[16][16];
40 extern const int8_t ff_vvc_dst7_32x32[32][32];
41 extern const int8_t ff_vvc_lfnst_4x4[4][2][16][16];
42 extern const int8_t ff_vvc_lfnst_8x8[4][2][16][48];
43 extern const uint8_t ff_vvc_lfnst_tr_set_index[95];
44 extern uint8_t ff_vvc_default_scale_m[64 * 64];
45 
46 #define VVC_INTER_FILTER_TYPES 3
47 #define VVC_INTER_LUMA_FACTS 16
48 #define VVC_INTER_LUMA_TAPS 8
49 #define VVC_INTER_CHROMA_FACTS 32
50 #define VVC_INTER_CHROMA_TAPS 4
51 #define VVC_INTER_LUMA_DMVR_FACTS 16
52 #define VVC_INTER_LUMA_DMVR_TAPS 2
56 
57 #define VVC_INTRA_LUMA_TYPES 2
58 #define VVC_INTRA_LUMA_FACTS 32
59 #define VVC_INTRA_LUMA_TAPS 4
61 
62 #define VVC_GPM_NUM_PARTITION 64
63 #define VVC_GPM_NUM_ANGLES 32
64 #define VVC_GPM_WEIGHT_SIZE 112
65 extern const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION];
67 extern const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES];
70 extern const uint8_t ff_vvc_gpm_weights_offset_x[VVC_GPM_NUM_PARTITION][4][4];
71 extern const uint8_t ff_vvc_gpm_weights_offset_y[VVC_GPM_NUM_PARTITION][4][4];
73 
74 extern const int16_t ff_vvc_alf_fix_filt_coeff[64][12];
75 extern const uint8_t ff_vvc_alf_class_to_filt_map[16][25];
76 extern const uint8_t ff_vvc_alf_aps_class_to_filt_map[25];
77 
78 const uint8_t* ff_vvc_get_mip_matrix(const int size_id, const int mode_idx);
79 
80 #endif /* AVCODEC_VVC_VVC_DATA_H */
VVC_GPM_NUM_ANGLES
#define VVC_GPM_NUM_ANGLES
Definition: vvc_data.h:63
ff_vvc_lfnst_4x4
const int8_t ff_vvc_lfnst_4x4[4][2][16][16]
Definition: vvc_data.c:1476
ff_vvc_dct8_32x32
const int8_t ff_vvc_dct8_32x32[32][32]
Definition: vvc_data.c:1237
VVC_INTER_LUMA_TAPS
#define VVC_INTER_LUMA_TAPS
Definition: vvc_data.h:48
ff_vvc_dct8_16x16
const int8_t ff_vvc_dct8_16x16[16][16]
Definition: vvc_data.c:1236
ff_vvc_dst7_16x16
const int8_t ff_vvc_dst7_16x16[16][16]
Definition: vvc_data.c:1318
ff_vvc_gpm_angle_idx
const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION]
Definition: vvc_data.c:1998
ff_vvc_inter_luma_dmvr_filters
const int8_t ff_vvc_inter_luma_dmvr_filters[VVC_INTER_LUMA_DMVR_FACTS][VVC_INTER_LUMA_DMVR_TAPS]
Definition: vvc_data.c:1906
ff_vvc_diag_scan_y
const uint8_t ff_vvc_diag_scan_y[5][5][16 *16]
Definition: vvc_data.c:152
ff_vvc_scaling_pred_16
const uint8_t ff_vvc_scaling_pred_16[8 *8]
Definition: vvc_data.c:288
ff_vvc_dct8_8x8
const int8_t ff_vvc_dct8_8x8[8][8]
Definition: vvc_data.c:1235
ff_vvc_lfnst_tr_set_index
const uint8_t ff_vvc_lfnst_tr_set_index[95]
Definition: vvc_data.c:1631
ff_vvc_gpm_distance_idx
const uint8_t ff_vvc_gpm_distance_idx[VVC_GPM_NUM_PARTITION]
Definition: vvc_data.c:2005
VVC_INTER_CHROMA_TAPS
#define VVC_INTER_CHROMA_TAPS
Definition: vvc_data.h:50
VVC_INTER_FILTER_TYPES
#define VVC_INTER_FILTER_TYPES
Definition: vvc_data.h:46
ff_vvc_gpm_weights
const uint8_t ff_vvc_gpm_weights[6][VVC_GPM_WEIGHT_SIZE *VVC_GPM_WEIGHT_SIZE]
Definition: vvc_data.c:2801
VVC_INTRA_LUMA_TYPES
#define VVC_INTRA_LUMA_TYPES
Definition: vvc_data.h:57
ff_vvc_scaling_pred_8
const uint8_t ff_vvc_scaling_pred_8[8 *8]
Definition: vvc_data.c:277
ff_vvc_get_mip_matrix
const uint8_t * ff_vvc_get_mip_matrix(const int size_id, const int mode_idx)
Definition: vvc_data.c:1147
VVC_INTER_CHROMA_FACTS
#define VVC_INTER_CHROMA_FACTS
Definition: vvc_data.h:49
VVC_INTER_LUMA_DMVR_FACTS
#define VVC_INTER_LUMA_DMVR_FACTS
Definition: vvc_data.h:51
ff_vvc_gpm_weights_offset_y
const uint8_t ff_vvc_gpm_weights_offset_y[VVC_GPM_NUM_PARTITION][4][4]
Definition: vvc_data.c:2414
ff_vvc_gpm_weights_offset_x
const uint8_t ff_vvc_gpm_weights_offset_x[VVC_GPM_NUM_PARTITION][4][4]
Definition: vvc_data.c:2027
ff_vvc_dst7_32x32
const int8_t ff_vvc_dst7_32x32[32][32]
Definition: vvc_data.c:1319
ff_vvc_alf_fix_filt_coeff
const int16_t ff_vvc_alf_fix_filt_coeff[64][12]
Definition: vvc_data.c:1644
VVC_INTRA_LUMA_FACTS
#define VVC_INTRA_LUMA_FACTS
Definition: vvc_data.h:58
ff_vvc_alf_aps_class_to_filt_map
const uint8_t ff_vvc_alf_aps_class_to_filt_map[25]
Definition: vvc_data.c:1731
VVC_INTER_LUMA_FACTS
#define VVC_INTER_LUMA_FACTS
Definition: vvc_data.h:47
VVC_GPM_WEIGHT_SIZE
#define VVC_GPM_WEIGHT_SIZE
Definition: vvc_data.h:64
ff_vvc_gpm_distance_lut
const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES]
Definition: vvc_data.c:2012
ff_vvc_inter_luma_filters
const int8_t ff_vvc_inter_luma_filters[VVC_INTER_FILTER_TYPES][VVC_INTER_LUMA_FACTS][VVC_INTER_LUMA_TAPS]
Definition: vvc_data.c:1735
ff_vvc_gpm_angle_to_weights_idx
const uint8_t ff_vvc_gpm_angle_to_weights_idx[VVC_GPM_NUM_ANGLES]
Definition: vvc_data.c:2021
ff_vvc_dst7_8x8
const int8_t ff_vvc_dst7_8x8[8][8]
Definition: vvc_data.c:1317
VVC_INTRA_LUMA_TAPS
#define VVC_INTRA_LUMA_TAPS
Definition: vvc_data.h:59
ff_vvc_scaling_list0
const int ff_vvc_scaling_list0[8 *8]
Definition: vvc_data.c:299
VVC_INTER_LUMA_DMVR_TAPS
#define VVC_INTER_LUMA_DMVR_TAPS
Definition: vvc_data.h:52
ff_vvc_gpm_angle_to_mirror
const uint8_t ff_vvc_gpm_angle_to_mirror[VVC_GPM_NUM_ANGLES]
Definition: vvc_data.c:2016
ff_vvc_default_scale_m
uint8_t ff_vvc_default_scale_m[64 *64]
Definition: vvc_data.c:1641
ff_vvc_lfnst_8x8
const int8_t ff_vvc_lfnst_8x8[4][2][16][48]
Definition: vvc_data.c:1321
ff_vvc_diag_scan_x
const uint8_t ff_vvc_diag_scan_x[5][5][16 *16]
Definition: vvc_data.c:27
ff_vvc_inter_chroma_filters
const int8_t ff_vvc_inter_chroma_filters[VVC_INTER_FILTER_TYPES][VVC_INTER_CHROMA_FACTS][VVC_INTER_CHROMA_TAPS]
Definition: vvc_data.c:1798
ff_vvc_intra_luma_filter
const int8_t ff_vvc_intra_luma_filter[VVC_INTRA_LUMA_TYPES][VVC_INTRA_LUMA_FACTS][VVC_INTRA_LUMA_TAPS]
Definition: vvc_data.c:1927
ff_vvc_dst7_4x4
const int8_t ff_vvc_dst7_4x4[4][4]
Definition: vvc_data.c:1316
ff_vvc_alf_class_to_filt_map
const uint8_t ff_vvc_alf_class_to_filt_map[16][25]
Definition: vvc_data.c:1712
ff_vvc_dct8_4x4
const int8_t ff_vvc_dct8_4x4[4][4]
Definition: vvc_data.c:1234
VVC_GPM_NUM_PARTITION
#define VVC_GPM_NUM_PARTITION
Definition: vvc_data.h:62