xref: /aosp_15_r20/external/libavc/common/ih264_common_tables.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1 /******************************************************************************
2  *
3  * Copyright (C) 2015 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19 */
20 
21 /**
22 *******************************************************************************
23 * @file
24 *  ih264_common_tables.h
25 *
26 * @brief
27 *  Common tables
28 *
29 * @author
30 *  ittiam
31 *
32 * @remarks
33 *  none
34 *
35 *******************************************************************************
36 */
37 
38 #ifndef _IH264_COMMON_TABLES_H_
39 #define _IH264_COMMON_TABLES_H_
40 
41 
42 /*****************************************************************************/
43 /* Structures                                                                */
44 /*****************************************************************************/
45 
46 /**
47 ******************************************************************************
48  *  @brief      level tables
49 ******************************************************************************
50  */
51 typedef struct
52 {
53     /* level */
54     IH264_LEVEL_T     u4_level_idc;
55 
56     /* max macroblock processing rate */
57     UWORD32     u4_max_mbps;
58 
59     /* max frame size in mbs */
60     UWORD32     u4_max_fs;
61 
62     /* max dpb size / 768 */
63     UWORD32     u4_max_dpb_size;
64 
65     /* max bit rate */
66     UWORD32     u4_max_br;
67 
68     /* max cpb size */
69     UWORD32     u4_max_cpb_size;
70 
71     /* max vertical MV component range */
72     UWORD32     u4_max_mv_y;
73 
74 }level_tables_t;
75 
76 /*****************************************************************************/
77 /* Extern global declarations                                                */
78 /*****************************************************************************/
79 
80 extern const level_tables_t gas_ih264_lvl_tbl[16];
81 
82 extern const WORD32 gai4_ih264_levels[];
83 extern const WORD32 gai4_ih264_max_luma_pic_size[];
84 extern const WORD32 gai4_ih264_max_wd_ht[];
85 extern const WORD32 gai4_ih264_min_wd_ht[];
86 
87 extern intra_mbtype_info_t gas_ih264_i_mbtype_info[];
88 extern inter_mbtype_info_t gas_ih264_p_mbtype_info[];
89 extern inter_mbtype_info_t gas_ih264_b_mbtype_info[];
90 extern submbtype_info_t gas_ih264_p_submbtype_info[];
91 extern submbtype_info_t gas_ih264_b_submbtype_info[];
92 
93 
94 extern const UWORD8 gau1_ih264_inv_scan_prog4x4[];
95 extern const UWORD8 gau1_ih264_inv_scan_int4x4[];
96 extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cavlc[64];
97 extern const UWORD8 gau1_ih264_inv_scan_int8x8_cavlc[64];
98 extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cabac[64];
99 extern const UWORD8 gau1_ih264_inv_scan_int8x8_cabac[64];
100 
101 extern const UWORD8 *const gpau1_ih264_inv_scan8x8[];
102 extern const UWORD8 *const gpau1_ih264_inv_scan4x4[];
103 
104 extern const UWORD8 gau1_ih264_8x8_subblk_idx[];
105 
106 extern const UWORD8 gau1_ih264_chroma_qp[];
107 
108 extern const UWORD8 gau1_ih264_4x4_ngbr_avbl[16][16];
109 extern const UWORD8 gau1_ih264_8x8_ngbr_avbl[16][4];
110 
111 
112 extern const UWORD16 gau2_ih264_default_inter4x4_weight_scale[];
113 extern const UWORD16 gau2_ih264_default_intra4x4_weight_scale[];
114 extern const UWORD16 gau2_ih264_default_intra4x4_scaling_list[];
115 extern const UWORD16 gau2_ih264_default_inter4x4_scaling_list[];
116 extern const UWORD16 gau2_ih264_default_intra8x8_scaling_list[];
117 extern const UWORD16 gau2_ih264_default_inter8x8_scaling_list[];
118 extern const UWORD16 gau2_ih264_default_intra8x8_weight_scale[];
119 extern const UWORD16 gau2_ih264_default_inter8x8_weight_scale[];
120 extern const UWORD16 gau2_ih264_flat_4x4_weight_scale[];
121 extern const UWORD16 gau2_ih264_flat_8x8_weight_scale[];
122 
123 extern const UWORD16 gau2_ih264_iquant_scale_matrix_4x4 [96];
124 extern const UWORD16 gau2_ih264_iquant_scale_matrix_8x8 [384];
125 
126 #endif /*_IH264_COMMON_TABLES_H_*/
127