Home | History | Annotate | Download | only in common
      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  */
     52 typedef 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  */
     90 extern const level_tables_t gas_ih264_lvl_tbl[16];
     91 
     92 extern const WORD32 gai4_ih264_levels[];
     93 extern const WORD32 gai4_ih264_max_luma_pic_size[];
     94 extern const WORD32 gai4_ih264_max_wd_ht[];
     95 extern const WORD32 gai4_ih264_min_wd_ht[];
     96 
     97 extern intra_mbtype_info_t gas_ih264_i_mbtype_info[];
     98 extern inter_mbtype_info_t gas_ih264_p_mbtype_info[];
     99 extern inter_mbtype_info_t gas_ih264_b_mbtype_info[];
    100 extern submbtype_info_t gas_ih264_p_submbtype_info[];
    101 extern submbtype_info_t gas_ih264_b_submbtype_info[];
    102 
    103 
    104 extern const UWORD8 gau1_ih264_inv_scan_prog4x4[];
    105 extern const UWORD8 gau1_ih264_inv_scan_int4x4[];
    106 extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cavlc[64];
    107 extern const UWORD8 gau1_ih264_inv_scan_int8x8_cavlc[64];
    108 extern const UWORD8 gau1_ih264_inv_scan_prog8x8_cabac[64];
    109 extern const UWORD8 gau1_ih264_inv_scan_int8x8_cabac[64];
    110 
    111 extern const UWORD8 *const gpau1_ih264_inv_scan8x8[];
    112 extern const UWORD8 *const gpau1_ih264_inv_scan4x4[];
    113 
    114 extern const UWORD8 gau1_ih264_8x8_subblk_idx[];
    115 
    116 extern const UWORD8 gau1_ih264_chroma_qp[];
    117 
    118 extern const UWORD8 gau1_ih264_4x4_ngbr_avbl[16][16];
    119 extern const UWORD8 gau1_ih264_8x8_ngbr_avbl[16][4];
    120 
    121 
    122 extern const UWORD16 gau2_ih264_default_inter4x4_weight_scale[];
    123 extern const UWORD16 gau2_ih264_default_intra4x4_weight_scale[];
    124 extern const UWORD16 gau2_ih264_default_intra4x4_scaling_list[];
    125 extern const UWORD16 gau2_ih264_default_inter4x4_scaling_list[];
    126 extern const UWORD16 gau2_ih264_default_intra8x8_scaling_list[];
    127 extern const UWORD16 gau2_ih264_default_inter8x8_scaling_list[];
    128 extern const UWORD16 gau2_ih264_default_intra8x8_weight_scale[];
    129 extern const UWORD16 gau2_ih264_default_inter8x8_weight_scale[];
    130 extern const UWORD16 gau2_ih264_flat_4x4_weight_scale[];
    131 extern const UWORD16 gau2_ih264_flat_8x8_weight_scale[];
    132 
    133 extern const UWORD16 gau2_ih264_iquant_scale_matrix_4x4 [96];
    134 extern const UWORD16 gau2_ih264_iquant_scale_matrix_8x8 [384];
    135 
    136 #endif /*_IH264_COMMON_TABLES_H_*/
    137