1*c83a76b0SSuyog Pawar /****************************************************************************** 2*c83a76b0SSuyog Pawar * 3*c83a76b0SSuyog Pawar * Copyright (C) 2018 The Android Open Source Project 4*c83a76b0SSuyog Pawar * 5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License"); 6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License. 7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at: 8*c83a76b0SSuyog Pawar * 9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0 10*c83a76b0SSuyog Pawar * 11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software 12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS, 13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and 15*c83a76b0SSuyog Pawar * limitations under the License. 16*c83a76b0SSuyog Pawar * 17*c83a76b0SSuyog Pawar ***************************************************************************** 18*c83a76b0SSuyog Pawar * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*c83a76b0SSuyog Pawar */ 20*c83a76b0SSuyog Pawar 21*c83a76b0SSuyog Pawar /** 22*c83a76b0SSuyog Pawar ****************************************************************************** 23*c83a76b0SSuyog Pawar * 24*c83a76b0SSuyog Pawar * @file ihevce_global_tables.h 25*c83a76b0SSuyog Pawar * 26*c83a76b0SSuyog Pawar * @brief 27*c83a76b0SSuyog Pawar * This file contains declarations of global tables used by the encoder 28*c83a76b0SSuyog Pawar * 29*c83a76b0SSuyog Pawar * @author 30*c83a76b0SSuyog Pawar * Ittiam 31*c83a76b0SSuyog Pawar * 32*c83a76b0SSuyog Pawar ****************************************************************************** 33*c83a76b0SSuyog Pawar */ 34*c83a76b0SSuyog Pawar 35*c83a76b0SSuyog Pawar #ifndef _IHEVCE_GLOBAL_TABLES_H_ 36*c83a76b0SSuyog Pawar #define _IHEVCE_GLOBAL_TABLES_H_ 37*c83a76b0SSuyog Pawar 38*c83a76b0SSuyog Pawar /*****************************************************************************/ 39*c83a76b0SSuyog Pawar /* Constant Macros */ 40*c83a76b0SSuyog Pawar /*****************************************************************************/ 41*c83a76b0SSuyog Pawar 42*c83a76b0SSuyog Pawar /*****************************************************************************/ 43*c83a76b0SSuyog Pawar /* Function Macros */ 44*c83a76b0SSuyog Pawar /*****************************************************************************/ 45*c83a76b0SSuyog Pawar 46*c83a76b0SSuyog Pawar /*****************************************************************************/ 47*c83a76b0SSuyog Pawar /* Typedefs */ 48*c83a76b0SSuyog Pawar /*****************************************************************************/ 49*c83a76b0SSuyog Pawar 50*c83a76b0SSuyog Pawar /*****************************************************************************/ 51*c83a76b0SSuyog Pawar /* Enums */ 52*c83a76b0SSuyog Pawar /*****************************************************************************/ 53*c83a76b0SSuyog Pawar 54*c83a76b0SSuyog Pawar /*****************************************************************************/ 55*c83a76b0SSuyog Pawar /* Structures */ 56*c83a76b0SSuyog Pawar /*****************************************************************************/ 57*c83a76b0SSuyog Pawar typedef struct 58*c83a76b0SSuyog Pawar { 59*c83a76b0SSuyog Pawar LEVEL_T e_level; 60*c83a76b0SSuyog Pawar 61*c83a76b0SSuyog Pawar UWORD32 u4_max_luma_sample_rate; 62*c83a76b0SSuyog Pawar 63*c83a76b0SSuyog Pawar WORD32 i4_max_luma_picture_size; 64*c83a76b0SSuyog Pawar 65*c83a76b0SSuyog Pawar WORD32 i4_max_bit_rate[TOTAL_NUM_TIERS]; 66*c83a76b0SSuyog Pawar 67*c83a76b0SSuyog Pawar WORD32 i4_max_cpb[TOTAL_NUM_TIERS]; 68*c83a76b0SSuyog Pawar 69*c83a76b0SSuyog Pawar WORD32 i4_min_compression_ratio; 70*c83a76b0SSuyog Pawar 71*c83a76b0SSuyog Pawar WORD32 i4_max_slices_per_picture; 72*c83a76b0SSuyog Pawar 73*c83a76b0SSuyog Pawar WORD32 i4_max_num_tile_rows; 74*c83a76b0SSuyog Pawar 75*c83a76b0SSuyog Pawar WORD32 i4_max_num_tile_columns; 76*c83a76b0SSuyog Pawar } level_data_t; 77*c83a76b0SSuyog Pawar 78*c83a76b0SSuyog Pawar /*****************************************************************************/ 79*c83a76b0SSuyog Pawar /* Extern Variable Declarations */ 80*c83a76b0SSuyog Pawar /*****************************************************************************/ 81*c83a76b0SSuyog Pawar extern const level_data_t g_as_level_data[TOTAL_NUM_LEVELS]; 82*c83a76b0SSuyog Pawar 83*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_scale_mat_4x4[]; 84*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_scale_mat_8x8[]; 85*c83a76b0SSuyog Pawar 86*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_scale_mat_16x16[]; 87*c83a76b0SSuyog Pawar 88*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_rescale_mat_4x4[]; 89*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_rescale_mat_8x8[]; 90*c83a76b0SSuyog Pawar extern const WORD16 gi2_flat_rescale_mat_16x16[]; 91*c83a76b0SSuyog Pawar 92*c83a76b0SSuyog Pawar extern const UWORD8 g_u1_scan_table_8x8[3][64]; 93*c83a76b0SSuyog Pawar extern const UWORD8 g_u1_scan_table_4x4[3][16]; 94*c83a76b0SSuyog Pawar extern const UWORD8 g_u1_scan_table_2x2[3][4]; 95*c83a76b0SSuyog Pawar extern const UWORD8 g_u1_scan_table_1x1[1]; 96*c83a76b0SSuyog Pawar 97*c83a76b0SSuyog Pawar extern qpel_input_buf_cfg_t gas_qpel_inp_buf_cfg[4][4]; 98*c83a76b0SSuyog Pawar 99*c83a76b0SSuyog Pawar extern const WORD8 gai1_is_part_vertical[TOT_NUM_PARTS]; 100*c83a76b0SSuyog Pawar extern const WORD8 gai1_part_wd_and_ht[TOT_NUM_PARTS][2]; 101*c83a76b0SSuyog Pawar 102*c83a76b0SSuyog Pawar extern UWORD8 gau1_ref_bits[16]; 103*c83a76b0SSuyog Pawar 104*c83a76b0SSuyog Pawar extern const UWORD8 gau1_ctb_raster_to_zscan[256]; 105*c83a76b0SSuyog Pawar extern WORD32 ga_trans_shift[5]; 106*c83a76b0SSuyog Pawar 107*c83a76b0SSuyog Pawar extern UWORD32 gau4_frame_qstep_multiplier[54]; 108*c83a76b0SSuyog Pawar 109*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_posy_scl_amt_amp[4][10]; 110*c83a76b0SSuyog Pawar 111*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_posy_scl_amt[4]; 112*c83a76b0SSuyog Pawar 113*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_posx_scl_amt_amp[4][10]; 114*c83a76b0SSuyog Pawar 115*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_posx_scl_amt[4]; 116*c83a76b0SSuyog Pawar 117*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_shft_amt_amp[4][10]; 118*c83a76b0SSuyog Pawar 119*c83a76b0SSuyog Pawar extern UWORD8 gau1_inter_tu_shft_amt[4]; 120*c83a76b0SSuyog Pawar 121*c83a76b0SSuyog Pawar extern WORD32 g_i4_ip_funcs[MAX_NUM_IP_MODES]; 122*c83a76b0SSuyog Pawar extern const UWORD8 gau1_chroma422_intra_angle_mapping[36]; 123*c83a76b0SSuyog Pawar extern const UWORD32 gau4_nbr_flags_8x8_4x4blks[64]; 124*c83a76b0SSuyog Pawar 125*c83a76b0SSuyog Pawar extern WORD32 gai4_subBlock2csbfId_map4x4TU[1]; 126*c83a76b0SSuyog Pawar extern WORD32 gai4_subBlock2csbfId_map8x8TU[4]; 127*c83a76b0SSuyog Pawar extern WORD32 gai4_subBlock2csbfId_map16x16TU[16]; 128*c83a76b0SSuyog Pawar extern WORD32 gai4_subBlock2csbfId_map32x32TU[64]; 129*c83a76b0SSuyog Pawar 130*c83a76b0SSuyog Pawar extern const float gad_look_up_activity[TOT_QP_MOD_OFFSET]; 131*c83a76b0SSuyog Pawar 132*c83a76b0SSuyog Pawar #endif 133