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 
27 
29 extern const uint8_t ff_vvc_diag_scan_x[5][5][16 * 16];
30 extern const uint8_t ff_vvc_diag_scan_y[5][5][16 * 16];
31 
32 extern const uint8_t ff_vvc_scaling_pred_8[8 * 8];
33 extern const uint8_t ff_vvc_scaling_pred_16[8 * 8];
34 extern const int ff_vvc_scaling_list0[8 * 8];
35 
36 extern const int8_t ff_vvc_dct8_4x4[4][4];
37 extern const int8_t ff_vvc_dct8_8x8[8][8];
38 extern const int8_t ff_vvc_dct8_16x16[16][16];
39 extern const int8_t ff_vvc_dct8_32x32[32][32];
40 extern const int8_t ff_vvc_dst7_4x4[4][4];
41 extern const int8_t ff_vvc_dst7_8x8[8][8];
42 extern const int8_t ff_vvc_dst7_16x16[16][16];
43 extern const int8_t ff_vvc_dst7_32x32[32][32];
44 extern const int8_t ff_vvc_lfnst_4x4[4][2][16][16];
45 extern const int8_t ff_vvc_lfnst_8x8[4][2][16][48];
46 extern const uint8_t ff_vvc_lfnst_tr_set_index[95];
47 extern uint8_t ff_vvc_default_scale_m[64 * 64];
48 
49 #define VVC_INTER_LUMA_FILTER_TYPE_AFFINE 4
50 
51 #define VVC_INTER_LUMA_FILTER_TYPES 7
52 #define VVC_INTER_CHROMA_FILTER_TYPES 3
53 
54 #define VVC_INTER_LUMA_FACTS 16
55 #define VVC_INTER_LUMA_TAPS 8
56 #define VVC_INTER_CHROMA_FACTS 32
57 #define VVC_INTER_CHROMA_TAPS 4
58 #define VVC_INTER_LUMA_DMVR_FACTS 16
59 #define VVC_INTER_LUMA_DMVR_TAPS 2
63 
64 #define VVC_INTRA_LUMA_TYPES 2
65 #define VVC_INTRA_LUMA_FACTS 32
66 #define VVC_INTRA_LUMA_TAPS 4
68 
69 #define VVC_GPM_NUM_PARTITION 64
70 #define VVC_GPM_NUM_ANGLES 32
71 #define VVC_GPM_WEIGHT_SIZE 112
72 extern const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION];
74 extern const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES];
77 extern const uint8_t ff_vvc_gpm_weights_offset_x[VVC_GPM_NUM_PARTITION][4][4];
78 extern const uint8_t ff_vvc_gpm_weights_offset_y[VVC_GPM_NUM_PARTITION][4][4];
80 
81 extern const int16_t ff_vvc_alf_fix_filt_coeff[64][12];
82 extern const uint8_t ff_vvc_alf_class_to_filt_map[16][25];
83 extern const uint8_t ff_vvc_alf_aps_class_to_filt_map[25];
84 
85 const uint8_t* ff_vvc_get_mip_matrix(const int size_id, const int mode_idx);
87 
88 #endif /* AVCODEC_VVC_DATA_H */
ff_vvc_dct8_8x8
const int8_t ff_vvc_dct8_8x8[8][8]
Definition: data.c:1235
FF_VISIBILITY_PUSH_HIDDEN
#define FF_VISIBILITY_PUSH_HIDDEN
Definition: attributes_internal.h:30
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_lfnst_4x4
const int8_t ff_vvc_lfnst_4x4[4][2][16][16]
Definition: data.c:1476
VVC_INTER_LUMA_TAPS
#define VVC_INTER_LUMA_TAPS
Definition: data.h:55
ff_vvc_gpm_distance_idx
const uint8_t ff_vvc_gpm_distance_idx[VVC_GPM_NUM_PARTITION]
Definition: data.c:2084
ff_vvc_diag_scan_x
const FF_VISIBILITY_PUSH_HIDDEN uint8_t ff_vvc_diag_scan_x[5][5][16 *16]
Definition: data.c:27
ff_vvc_dst7_16x16
const int8_t ff_vvc_dst7_16x16[16][16]
Definition: data.c:1318
ff_vvc_dst7_4x4
const int8_t ff_vvc_dst7_4x4[4][4]
Definition: data.c:1316
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
VVC_GPM_NUM_PARTITION
#define VVC_GPM_NUM_PARTITION
Definition: data.h:69
ff_vvc_dct8_32x32
const int8_t ff_vvc_dct8_32x32[32][32]
Definition: data.c:1237
ff_vvc_gpm_angle_idx
const uint8_t ff_vvc_gpm_angle_idx[VVC_GPM_NUM_PARTITION]
Definition: data.c:2077
ff_vvc_scaling_pred_8
const uint8_t ff_vvc_scaling_pred_8[8 *8]
Definition: data.c:277
ff_vvc_diag_scan_y
const uint8_t ff_vvc_diag_scan_y[5][5][16 *16]
Definition: data.c:152
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
ff_vvc_scaling_pred_16
const uint8_t ff_vvc_scaling_pred_16[8 *8]
Definition: data.c:288
ff_vvc_lfnst_tr_set_index
const uint8_t ff_vvc_lfnst_tr_set_index[95]
Definition: data.c:1631
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_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_dst7_32x32
const int8_t ff_vvc_dst7_32x32[32][32]
Definition: data.c:1319
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
VVC_INTRA_LUMA_TYPES
#define VVC_INTRA_LUMA_TYPES
Definition: data.h:64
VVC_INTER_CHROMA_TAPS
#define VVC_INTER_CHROMA_TAPS
Definition: data.h:57
attributes_internal.h
VVC_INTER_CHROMA_FACTS
#define VVC_INTER_CHROMA_FACTS
Definition: data.h:56
VVC_INTER_LUMA_DMVR_FACTS
#define VVC_INTER_LUMA_DMVR_FACTS
Definition: data.h:58
ff_vvc_alf_fix_filt_coeff
const int16_t ff_vvc_alf_fix_filt_coeff[64][12]
Definition: data.c:1644
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
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_GPM_WEIGHT_SIZE
#define VVC_GPM_WEIGHT_SIZE
Definition: data.h:71
VVC_INTER_LUMA_FILTER_TYPES
#define VVC_INTER_LUMA_FILTER_TYPES
Definition: data.h:51
VVC_INTRA_LUMA_FACTS
#define VVC_INTRA_LUMA_FACTS
Definition: data.h:65
FF_VISIBILITY_POP_HIDDEN
#define FF_VISIBILITY_POP_HIDDEN
Definition: attributes_internal.h:31
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
VVC_INTER_LUMA_FACTS
#define VVC_INTER_LUMA_FACTS
Definition: data.h:54
ff_vvc_dst7_8x8
const int8_t ff_vvc_dst7_8x8[8][8]
Definition: data.c:1317
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_TAPS
#define VVC_INTRA_LUMA_TAPS
Definition: data.h:66
ff_vvc_default_scale_m
uint8_t ff_vvc_default_scale_m[64 *64]
Definition: data.c:1641
ff_vvc_lfnst_8x8
const int8_t ff_vvc_lfnst_8x8[4][2][16][48]
Definition: data.c:1321
VVC_INTER_CHROMA_FILTER_TYPES
#define VVC_INTER_CHROMA_FILTER_TYPES
Definition: data.h:52
ff_vvc_gpm_distance_lut
const int8_t ff_vvc_gpm_distance_lut[VVC_GPM_NUM_ANGLES]
Definition: data.c:2091
VVC_INTER_LUMA_DMVR_TAPS
#define VVC_INTER_LUMA_DMVR_TAPS
Definition: data.h:59
ff_vvc_alf_class_to_filt_map
const uint8_t ff_vvc_alf_class_to_filt_map[16][25]
Definition: data.c:1712
ff_vvc_scaling_list0
const int ff_vvc_scaling_list0[8 *8]
Definition: data.c:299
ff_vvc_dct8_16x16
const int8_t ff_vvc_dct8_16x16[16][16]
Definition: data.c:1236
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_dct8_4x4
const int8_t ff_vvc_dct8_4x4[4][4]
Definition: data.c:1234
VVC_GPM_NUM_ANGLES
#define VVC_GPM_NUM_ANGLES
Definition: data.h:70