FFmpeg
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_DATA_H
22 #define AVCODEC_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_LUMA_FILTER_TYPE_AFFINE 4
47 
48 #define VVC_INTER_LUMA_FILTER_TYPES 7
49 #define VVC_INTER_CHROMA_FILTER_TYPES 3
50 
51 #define VVC_INTER_LUMA_FACTS 16
52 #define VVC_INTER_LUMA_TAPS 8
53 #define VVC_INTER_CHROMA_FACTS 32
54 #define VVC_INTER_CHROMA_TAPS 4
55 #define VVC_INTER_LUMA_DMVR_FACTS 16
56 #define VVC_INTER_LUMA_DMVR_TAPS 2
60 
61 #define VVC_INTRA_LUMA_TYPES 2
62 #define VVC_INTRA_LUMA_FACTS 32
63 #define VVC_INTRA_LUMA_TAPS 4
65 
66 #define VVC_GPM_NUM_PARTITION 64
67 #define VVC_GPM_NUM_ANGLES 32
68 #define VVC_GPM_WEIGHT_SIZE 112
69 extern const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION];
71 extern const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES];
74 extern const uint8_t ff_vvc_gpm_weights_offset_x[VVC_GPM_NUM_PARTITION][4][4];
75 extern const uint8_t ff_vvc_gpm_weights_offset_y[VVC_GPM_NUM_PARTITION][4][4];
77 
78 extern const int16_t ff_vvc_alf_fix_filt_coeff[64][12];
79 extern const uint8_t ff_vvc_alf_class_to_filt_map[16][25];
80 extern const uint8_t ff_vvc_alf_aps_class_to_filt_map[25];
81 
82 const uint8_t* ff_vvc_get_mip_matrix(const int size_id, const int mode_idx);
83 
84 #endif /* AVCODEC_VVC_DATA_H */
ff_vvc_gpm_distance_idx
const uint8_t ff_vvc_gpm_distance_idx[VVC_GPM_NUM_PARTITION]
Definition: data.c:2084
VVC_INTRA_LUMA_FACTS
#define VVC_INTRA_LUMA_FACTS
Definition: data.h:62
ff_vvc_default_scale_m
uint8_t ff_vvc_default_scale_m[64 *64]
Definition: data.c:1641
ff_vvc_gpm_weights_offset_y
const uint8_t ff_vvc_gpm_weights_offset_y[VVC_GPM_NUM_PARTITION][4][4]
Definition: data.c:2493
ff_vvc_dct8_16x16
const int8_t ff_vvc_dct8_16x16[16][16]
Definition: data.c:1236
ff_vvc_lfnst_tr_set_index
const uint8_t ff_vvc_lfnst_tr_set_index[95]
Definition: data.c:1631
ff_vvc_dst7_8x8
const int8_t ff_vvc_dst7_8x8[8][8]
Definition: data.c:1317
ff_vvc_dst7_16x16
const int8_t ff_vvc_dst7_16x16[16][16]
Definition: data.c:1318
ff_vvc_dct8_8x8
const int8_t ff_vvc_dct8_8x8[8][8]
Definition: data.c:1235
VVC_GPM_WEIGHT_SIZE
#define VVC_GPM_WEIGHT_SIZE
Definition: data.h:68
ff_vvc_scaling_pred_8
const uint8_t ff_vvc_scaling_pred_8[8 *8]
Definition: 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: data.c:1147
ff_vvc_dst7_4x4
const int8_t ff_vvc_dst7_4x4[4][4]
Definition: data.c:1316
VVC_INTER_CHROMA_TAPS
#define VVC_INTER_CHROMA_TAPS
Definition: data.h:54
ff_vvc_dct8_32x32
const int8_t ff_vvc_dct8_32x32[32][32]
Definition: data.c:1237
ff_vvc_gpm_weights
const uint8_t ff_vvc_gpm_weights[6][VVC_GPM_WEIGHT_SIZE *VVC_GPM_WEIGHT_SIZE]
Definition: data.c:2880
ff_vvc_dst7_32x32
const int8_t ff_vvc_dst7_32x32[32][32]
Definition: data.c:1319
ff_vvc_gpm_weights_offset_x
const uint8_t ff_vvc_gpm_weights_offset_x[VVC_GPM_NUM_PARTITION][4][4]
Definition: data.c:2106
VVC_GPM_NUM_ANGLES
#define VVC_GPM_NUM_ANGLES
Definition: data.h:67
ff_vvc_lfnst_4x4
const int8_t ff_vvc_lfnst_4x4[4][2][16][16]
Definition: data.c:1476
ff_vvc_inter_luma_filters
const int8_t ff_vvc_inter_luma_filters[VVC_INTER_LUMA_FILTER_TYPES][VVC_INTER_LUMA_FACTS][VVC_INTER_LUMA_TAPS]
Definition: data.c:1735
ff_vvc_alf_aps_class_to_filt_map
const uint8_t ff_vvc_alf_aps_class_to_filt_map[25]
Definition: data.c:1731
VVC_INTRA_LUMA_TAPS
#define VVC_INTRA_LUMA_TAPS
Definition: data.h:63
ff_vvc_gpm_angle_to_mirror
const uint8_t ff_vvc_gpm_angle_to_mirror[VVC_GPM_NUM_ANGLES]
Definition: data.c:2095
VVC_INTRA_LUMA_TYPES
#define VVC_INTRA_LUMA_TYPES
Definition: data.h:61
ff_vvc_scaling_list0
const int ff_vvc_scaling_list0[8 *8]
Definition: data.c:299
ff_vvc_diag_scan_x
const uint8_t ff_vvc_diag_scan_x[5][5][16 *16]
Definition: data.c:27
VVC_INTER_CHROMA_FACTS
#define VVC_INTER_CHROMA_FACTS
Definition: data.h:53
VVC_INTER_LUMA_FILTER_TYPES
#define VVC_INTER_LUMA_FILTER_TYPES
Definition: data.h:48
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: data.c:2006
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: data.c:1985
ff_vvc_dct8_4x4
const int8_t ff_vvc_dct8_4x4[4][4]
Definition: data.c:1234
ff_vvc_alf_fix_filt_coeff
const int16_t ff_vvc_alf_fix_filt_coeff[64][12]
Definition: data.c:1644
ff_vvc_gpm_distance_lut
const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES]
Definition: data.c:2091
VVC_INTER_CHROMA_FILTER_TYPES
#define VVC_INTER_CHROMA_FILTER_TYPES
Definition: data.h:49
VVC_INTER_LUMA_DMVR_FACTS
#define VVC_INTER_LUMA_DMVR_FACTS
Definition: data.h:55
ff_vvc_inter_chroma_filters
const int8_t ff_vvc_inter_chroma_filters[VVC_INTER_CHROMA_FILTER_TYPES][VVC_INTER_CHROMA_FACTS][VVC_INTER_CHROMA_TAPS]
Definition: data.c:1877
VVC_INTER_LUMA_FACTS
#define VVC_INTER_LUMA_FACTS
Definition: data.h:51
ff_vvc_gpm_angle_to_weights_idx
const uint8_t ff_vvc_gpm_angle_to_weights_idx[VVC_GPM_NUM_ANGLES]
Definition: data.c:2100
ff_vvc_gpm_angle_idx
const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION]
Definition: data.c:2077
VVC_GPM_NUM_PARTITION
#define VVC_GPM_NUM_PARTITION
Definition: data.h:66
ff_vvc_alf_class_to_filt_map
const uint8_t ff_vvc_alf_class_to_filt_map[16][25]
Definition: data.c:1712
VVC_INTER_LUMA_TAPS
#define VVC_INTER_LUMA_TAPS
Definition: data.h:52
ff_vvc_scaling_pred_16
const uint8_t ff_vvc_scaling_pred_16[8 *8]
Definition: data.c:288
ff_vvc_lfnst_8x8
const int8_t ff_vvc_lfnst_8x8[4][2][16][48]
Definition: data.c:1321
ff_vvc_diag_scan_y
const uint8_t ff_vvc_diag_scan_y[5][5][16 *16]
Definition: data.c:152
VVC_INTER_LUMA_DMVR_TAPS
#define VVC_INTER_LUMA_DMVR_TAPS
Definition: data.h:56