/****************************************************************************** * * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ /** ******************************************************************************* * @file * ih264_common_tables.h * * @brief * Common tables * * @author * Harish * * @par List of Functions: * * @remarks * None * ******************************************************************************* */ #ifndef _IH264_COMMON_TABLES_H_ #define _IH264_COMMON_TABLES_H_ /*****************************************************************************/ /* Structures */ /*****************************************************************************/ /** ****************************************************************************** * @brief level tables ****************************************************************************** */ typedef struct { /* level */ IH264_LEVEL_T u4_level_idc; /* max macroblock processing rate */ UWORD32 u4_max_mbps; /* max frame size in mbs */ UWORD32 u4_max_fs; /* max dpb size / 768 */ UWORD32 u4_max_dpb_size; /* max bit rate */ UWORD32 u4_max_br; /* max cpb size */ UWORD32 u4_max_cpb_size; /* max vertical MV component range */ UWORD32 u4_max_mv_y; }level_tables_t; /*****************************************************************************/ /* Extern global declarations */ /*****************************************************************************/ /** ****************************************************************************** * @brief while encoding, basing on the input configuration parameters, the * the level of the bitstream is computed basing on the table below. * input : table_idx * output : level_idc or cpb size * @remarks Table A-1 – level table limits ****************************************************************************** */ extern const level_tables_t gas_ih264_lvl_tbl[16]; extern const WORD32 gai4_ih264_levels[]; extern const WORD32 gai4_ih264_max_luma_pic_size[]; extern const WORD32 gai4_ih264_max_wd_ht[]; extern const WORD32 gai4_ih264_min_wd_ht[]; extern intra_mbtype_info_t gas_ih264_i_mbtype_info[]; extern inter_mbtype_info_t gas_ih264_p_mbtype_info[]; extern inter_mbtype_info_t gas_ih264_b_mbtype_info[]; extern submbtype_info_t gas_ih264_p_submbtype_info[]; extern submbtype_info_t gas_ih264_b_submbtype_info[]; extern const UWORD8 gau1_ih264_inv_scan_prog4x4[]; extern const UWORD8 gau1_ih264_inv_scan_int4x4[]; extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cavlc[64]; extern const UWORD8 gau1_ih264_inv_scan_int8x8_cavlc[64]; extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cabac[64]; extern const UWORD8 gau1_ih264_inv_scan_int8x8_cabac[64]; extern const UWORD8 *const gpau1_ih264_inv_scan8x8[]; extern const UWORD8 *const gpau1_ih264_inv_scan4x4[]; extern const UWORD8 gau1_ih264_8x8_subblk_idx[]; extern const UWORD8 gau1_ih264_chroma_qp[]; extern const UWORD8 gau1_ih264_4x4_ngbr_avbl[16][16]; extern const UWORD8 gau1_ih264_8x8_ngbr_avbl[16][4]; extern const UWORD16 gau2_ih264_default_inter4x4_weight_scale[]; extern const UWORD16 gau2_ih264_default_intra4x4_weight_scale[]; extern const UWORD16 gau2_ih264_default_intra4x4_scaling_list[]; extern const UWORD16 gau2_ih264_default_inter4x4_scaling_list[]; extern const UWORD16 gau2_ih264_default_intra8x8_scaling_list[]; extern const UWORD16 gau2_ih264_default_inter8x8_scaling_list[]; extern const UWORD16 gau2_ih264_default_intra8x8_weight_scale[]; extern const UWORD16 gau2_ih264_default_inter8x8_weight_scale[]; extern const UWORD16 gau2_ih264_flat_4x4_weight_scale[]; extern const UWORD16 gau2_ih264_flat_8x8_weight_scale[]; extern const UWORD16 gau2_ih264_iquant_scale_matrix_4x4 [96]; extern const UWORD16 gau2_ih264_iquant_scale_matrix_8x8 [384]; #endif /*_IH264_COMMON_TABLES_H_*/