ih264_common_tables.h revision 8d3d303c7942ced6a987a52db8977d768dc3605f
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* @file
23*  ih264_common_tables.h
24*
25* @brief
26*  Common tables
27*
28* @author
29*  Harish
30*
31* @par List of Functions:
32*
33* @remarks
34*  None
35*
36*******************************************************************************
37*/
38
39#ifndef _IH264_COMMON_TABLES_H_
40#define _IH264_COMMON_TABLES_H_
41
42
43/*****************************************************************************/
44/* Structures                                                                */
45/*****************************************************************************/
46
47/**
48******************************************************************************
49 *  @brief      level tables
50******************************************************************************
51 */
52typedef struct
53{
54    /* level */
55    IH264_LEVEL_T     u4_level_idc;
56
57    /* max macroblock processing rate */
58    UWORD32     u4_max_mbps;
59
60    /* max frame size in mbs */
61    UWORD32     u4_max_fs;
62
63    /* max dpb size / 768 */
64    UWORD32     u4_max_dpb_size;
65
66    /* max bit rate */
67    UWORD32     u4_max_br;
68
69    /* max cpb size */
70    UWORD32     u4_max_cpb_size;
71
72    /* max vertical MV component range */
73    UWORD32     u4_max_mv_y;
74
75}level_tables_t;
76
77/*****************************************************************************/
78/* Extern global declarations                                                */
79/*****************************************************************************/
80
81/**
82 ******************************************************************************
83 * @brief  while encoding, basing on the input configuration parameters, the
84 * the level of the bitstream is computed basing on the table below.
85 * input  : table_idx
86 * output : level_idc or cpb size
87 * @remarks Table A-1 � level table limits
88 ******************************************************************************
89 */
90extern const level_tables_t gas_ih264_lvl_tbl[16];
91
92extern const WORD32 gai4_ih264_levels[];
93extern const WORD32 gai4_ih264_max_luma_pic_size[];
94extern const WORD32 gai4_ih264_max_wd_ht[];
95extern const WORD32 gai4_ih264_min_wd_ht[];
96
97extern intra_mbtype_info_t gas_ih264_i_mbtype_info[];
98extern inter_mbtype_info_t gas_ih264_p_mbtype_info[];
99extern inter_mbtype_info_t gas_ih264_b_mbtype_info[];
100extern submbtype_info_t gas_ih264_p_submbtype_info[];
101extern submbtype_info_t gas_ih264_b_submbtype_info[];
102
103
104extern const UWORD8 gau1_ih264_inv_scan_prog4x4[];
105extern const UWORD8 gau1_ih264_inv_scan_int4x4[];
106extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cavlc[64];
107extern const UWORD8 gau1_ih264_inv_scan_int8x8_cavlc[64];
108extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cabac[64];
109extern const UWORD8 gau1_ih264_inv_scan_int8x8_cabac[64];
110
111extern const UWORD8 *gpau1_ih264_inv_scan8x8[];
112extern const UWORD8 *gpau1_ih264_inv_scan4x4[];
113
114extern const UWORD8 gau1_ih264_8x8_subblk_idx[];
115
116extern const UWORD8 gau1_ih264_chroma_qp[];
117
118extern const UWORD8 gau1_ih264_4x4_ngbr_avbl[16][16];
119extern const UWORD8 gau1_ih264_8x8_ngbr_avbl[16][4];
120
121
122extern const UWORD16 gau2_ih264_default_inter4x4_weight_scale[];
123extern const UWORD16 gau2_ih264_default_intra4x4_weight_scale[];
124extern const UWORD16 gau2_ih264_default_intra4x4_scaling_list[];
125extern const UWORD16 gau2_ih264_default_inter4x4_scaling_list[];
126extern const UWORD16 gau2_ih264_default_intra8x8_scaling_list[];
127extern const UWORD16 gau2_ih264_default_inter8x8_scaling_list[];
128extern const UWORD16 gau2_ih264_default_intra8x8_weight_scale[];
129extern const UWORD16 gau2_ih264_default_inter8x8_weight_scale[];
130extern const UWORD16 gau2_ih264_flat_4x4_weight_scale[];
131extern const UWORD16 gau2_ih264_flat_8x8_weight_scale[];
132
133extern const UWORD16 gau2_ih264_iquant_scale_matrix_4x4 [96];
134extern const UWORD16 gau2_ih264_iquant_scale_matrix_8x8 [384];
135
136#endif /*_IH264_COMMON_TABLES_H_*/
137