1 /****************************************************************************** 2 * 3 * Copyright (C) 2018 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 * 24 * @file ihevce_global_tables.h 25 * 26 * @brief 27 * This file contains declarations of global tables used by the encoder 28 * 29 * @author 30 * Ittiam 31 * 32 ****************************************************************************** 33 */ 34 35 #ifndef _IHEVCE_GLOBAL_TABLES_H_ 36 #define _IHEVCE_GLOBAL_TABLES_H_ 37 38 /*****************************************************************************/ 39 /* Constant Macros */ 40 /*****************************************************************************/ 41 42 /*****************************************************************************/ 43 /* Function Macros */ 44 /*****************************************************************************/ 45 46 /*****************************************************************************/ 47 /* Typedefs */ 48 /*****************************************************************************/ 49 50 /*****************************************************************************/ 51 /* Enums */ 52 /*****************************************************************************/ 53 54 /*****************************************************************************/ 55 /* Structures */ 56 /*****************************************************************************/ 57 typedef struct 58 { 59 LEVEL_T e_level; 60 61 UWORD32 u4_max_luma_sample_rate; 62 63 WORD32 i4_max_luma_picture_size; 64 65 WORD32 i4_max_bit_rate[TOTAL_NUM_TIERS]; 66 67 WORD32 i4_max_cpb[TOTAL_NUM_TIERS]; 68 69 WORD32 i4_min_compression_ratio; 70 71 WORD32 i4_max_slices_per_picture; 72 73 WORD32 i4_max_num_tile_rows; 74 75 WORD32 i4_max_num_tile_columns; 76 } level_data_t; 77 78 /*****************************************************************************/ 79 /* Extern Variable Declarations */ 80 /*****************************************************************************/ 81 extern const level_data_t g_as_level_data[TOTAL_NUM_LEVELS]; 82 83 extern const WORD16 gi2_flat_scale_mat_4x4[]; 84 extern const WORD16 gi2_flat_scale_mat_8x8[]; 85 86 extern const WORD16 gi2_flat_scale_mat_16x16[]; 87 88 extern const WORD16 gi2_flat_rescale_mat_4x4[]; 89 extern const WORD16 gi2_flat_rescale_mat_8x8[]; 90 extern const WORD16 gi2_flat_rescale_mat_16x16[]; 91 92 extern const UWORD8 g_u1_scan_table_8x8[3][64]; 93 extern const UWORD8 g_u1_scan_table_4x4[3][16]; 94 extern const UWORD8 g_u1_scan_table_2x2[3][4]; 95 extern const UWORD8 g_u1_scan_table_1x1[1]; 96 97 extern qpel_input_buf_cfg_t gas_qpel_inp_buf_cfg[4][4]; 98 99 extern const WORD8 gai1_is_part_vertical[TOT_NUM_PARTS]; 100 extern const WORD8 gai1_part_wd_and_ht[TOT_NUM_PARTS][2]; 101 102 extern UWORD8 gau1_ref_bits[16]; 103 104 extern const UWORD8 gau1_ctb_raster_to_zscan[256]; 105 extern WORD32 ga_trans_shift[5]; 106 107 extern UWORD32 gau4_frame_qstep_multiplier[54]; 108 109 extern UWORD8 gau1_inter_tu_posy_scl_amt_amp[4][10]; 110 111 extern UWORD8 gau1_inter_tu_posy_scl_amt[4]; 112 113 extern UWORD8 gau1_inter_tu_posx_scl_amt_amp[4][10]; 114 115 extern UWORD8 gau1_inter_tu_posx_scl_amt[4]; 116 117 extern UWORD8 gau1_inter_tu_shft_amt_amp[4][10]; 118 119 extern UWORD8 gau1_inter_tu_shft_amt[4]; 120 121 extern WORD32 g_i4_ip_funcs[MAX_NUM_IP_MODES]; 122 extern const UWORD8 gau1_chroma422_intra_angle_mapping[36]; 123 extern const UWORD32 gau4_nbr_flags_8x8_4x4blks[64]; 124 extern const UWORD8 gau1_modes_to_eval[11]; 125 126 extern WORD32 gai4_subBlock2csbfId_map4x4TU[1]; 127 extern WORD32 gai4_subBlock2csbfId_map8x8TU[4]; 128 extern WORD32 gai4_subBlock2csbfId_map16x16TU[16]; 129 extern WORD32 gai4_subBlock2csbfId_map32x32TU[64]; 130 131 extern const float gad_look_up_activity[TOT_QP_MOD_OFFSET]; 132 133 #endif 134