ih264e_structs.h revision 53c6878c155d3329e947659c0d0ba1b97488e246
18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/****************************************************************************** 28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project 48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License"); 68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License. 78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at: 88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0 108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software 128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS, 138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and 158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License. 168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @file 248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ih264e_structs.h 258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief 278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Structure definitions used in the encoder 288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author 308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Harish 318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks 338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* None 348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#ifndef IH264E_STRUCTS_H_ 398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define IH264E_STRUCTS_H_ 408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 42134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/* Structure definitions */ 43134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/*****************************************************************************/ 44134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 45134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/* Early declaration of structs */ 46134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Ktypedef struct _codec_t codec_t; 47134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Ktypedef struct _proc_t process_ctxt_t; 48134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 49134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 50134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/*****************************************************************************/ 518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Extern Function type definitions */ 528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief intra prediction filters leaf level 578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_intra_pred)(UWORD8 *pu1_src, UWORD8 *pu1_dst, 608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_strd, WORD32 dst_strd, 618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ui_neighboravailability); 628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief inter prediction filters leaf level 668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_inter_pred_luma_bilinear)(UWORD8 *pu1_src1, UWORD8 *pu1_src2, UWORD8 *pu1_dst, 708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_strd1, WORD32 src_strd2, WORD32 dst_strd, 718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 height, WORD32 width); 728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief fwd transform leaf level 768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_trans_quant)(UWORD8*pu1_src, UWORD8 *pu1_pred, WORD16 *pi2_out, 798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_src_stride, UWORD32 u4_pred_stride, UWORD32 u4_dst_stride, 808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S const UWORD16 *pu2_scale_mat, const UWORD16 *pu2_thresh_mat, 818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_qbit, UWORD32 u4_round_fact, UWORD8 *pu1_nnz); 828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_iquant_itrans)(WORD16 *pi2_src, UWORD8 *pu1_pred, UWORD8 *pu1_out, 848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_src_stride, UWORD32 u4_pred_stride, UWORD32 u4_out_stride, 858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S const UWORD16 *pu2_iscale_mat, const UWORD16 *pu2_weigh_mat, 868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 qp_div, WORD32 *pi4_tmp); 878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Padding leaf level 918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_pad)(UWORD8 *pu1_src, WORD32 src_strd, WORD32 wd, WORD32 pad_size); 948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief memory handling leaf level 988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_memcpy)(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); 1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_memset)(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); 1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_memcpy_mul8)(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes); 1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_memset_mul8)(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes); 1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Sad computation 1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_compute_sad)(UWORD8 *pu1_src, UWORD8 *pu1_est, 1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 src_strd, UWORD32 est_strd, 1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_max_sad, WORD32 *pi4_mb_distortion); 1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Intra mode eval:encoder level 1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_evaluate_intra_modes)(UWORD8 *pu1_src, UWORD8 *pu1_ngbr_pels_i16, UWORD8 *pu1_dst, 1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 src_strd, UWORD32 dst_strd, 1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_n_avblty, UWORD32 *u4_intra_mode, 1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 *pu4_sadmin, 1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_valid_intra_modes); 1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_evaluate_intra_4x4_modes)(UWORD8 *pu1_src, UWORD8 *pu1_ngbr_pels, UWORD8 *pu1_dst, 1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 src_strd, UWORD32 dst_strd, 1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_n_avblty, UWORD32 *u4_intra_mode, 1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 *pu4_sadmin, 1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_valid_intra_modes, UWORD32 u4_lambda, 1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_predictd_mode); 1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief half_pel generation :encoder level 1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_sixtapfilter_horz)(UWORD8 *pu1_src, UWORD8 *pu1_dst, 1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_strd, WORD32 dst_strd); 1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_sixtap_filter_2dvh_vert)(UWORD8 *pu1_src, UWORD8 *pu1_dst1, UWORD8 *pu1_dst2, 1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_strd, WORD32 dst_strd, 1458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 *pi16_pred1, 1468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 pi16_pred1_strd); 1478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief color space conversion 1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_fmt_conv_420p_to_420sp)(UWORD8 *pu1_y_src, UWORD8 *pu1_u_src, UWORD8 *pu1_v_src, 1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_dst, UWORD8 *pu1_uv_dst, 1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_height, UWORD16 u2_width, 1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 src_y_strd, UWORD16 src_u_strd, UWORD16 src_v_strd, 1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 dst_y_strd, UWORD16 dst_uv_strd, 1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 convert_uv_only); 1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void (*pf_fmt_conv_422ile_to_420sp)(UWORD8 *pu1_y_buf, UWORD8 *pu1_u_buf, UWORD8 *pu1_v_buf, 1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_422i_buf, 1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_y_width, WORD32 u4_y_height, WORD32 u4_y_stride, 1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_u_stride, WORD32 u4_v_stride, 1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_422i_stride); 1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 166134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 167134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** 168134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K****************************************************************************** 169134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * @brief ME evaluation 170134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K****************************************************************************** 171134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 172134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Ktypedef void ih264e_compute_me_ft(process_ctxt_t *); 173134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 174134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** 175134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K****************************************************************************** 176134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * @brief SKIP decision 177134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K****************************************************************************** 178134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 179134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Ktypedef WORD32 ih264e_skip_params_ft(process_ctxt_t *, WORD32); 180134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 181134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Enums */ 1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @enum CODEC_STATE_T 1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief codec state 1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef enum 1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S INIT_DONE, 1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S HEADER_DONE, 1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S FIRST_FRAME_DONE, 1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} CODEC_STATE_T; 1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 2018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 2028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @enum JOBQ_CMD_T 2038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief list of job commands (used during job instantiation) 2048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 2058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef enum 2078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 2088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CMD_PROCESS, 2098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CMD_ENTROPY, 2108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CMD_FMTCONV, 2118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CMD_ME, 2128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}JOBQ_CMD_T; 2138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 2168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Structures */ 2178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 2188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 2208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU information 2218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 2238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 224134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 225134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Motion Vector 226134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 227134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K mv_t s_mv; 2288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 230134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Ref index 2318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 232134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD8 i1_ref_idx; 233134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 234134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K} enc_pu_mv_t; 235134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 236134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 237134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/* 238134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Total Pu info for an MB 239134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 240134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Ktypedef struct 241134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K{ 242134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 243134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /* Array with ME info for all lists */ 244134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t s_me_info[2]; 2458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU X position in terms of min PU (4x4) units 2488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 b4_pos_x : 4; 2508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU Y position in terms of min PU (4x4) units 2538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 b4_pos_y : 4; 2558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU width in pixels = (b4_wd + 1) << 2 2588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 b4_wd : 2; 2608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU height in pixels = (b4_ht + 1) << 2 2638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 b4_ht : 2; 2658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 267134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Intra or Inter flag for each partition - 0 or 1 268134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 269134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD32 b1_intra_flag : 1; 270134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 271134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 272134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * PRED_L0, PRED_L1, PRED_BI 2738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 274134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD32 b2_pred_mode : 2; 275134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} enc_pu_t; 2788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 2818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 2828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Descriptor of raw buffer */ 2838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S iv_raw_buf_t s_raw_buf; 2848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Lower 32bits of time stamp corresponding to the above buffer */ 2868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 2878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Upper 32bits of time stamp corresponding to the above buffer */ 2898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 2908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate if the current buffer is last buffer */ 2928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_last; 2938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate if mb info is sent along with input buffer */ 2958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_info_type; 2968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate the size of mb info structure */ 2988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_info_size; 2998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Buffer containing mb info if mb_info_type is non-zero */ 3018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_info; 3028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate if pic info is sent along with input buffer */ 3048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_pic_info_type; 3058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Buffer containing pic info if mb_info_type is non-zero */ 3078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_info; 3088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}inp_buf_t; 3108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 3128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 3138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Descriptor of bitstream buffer */ 3148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S iv_bits_buf_t s_bits_buf; 3158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Lower 32bits of time stamp corresponding to the above buffer */ 3178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 3188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Upper 32bits of time stamp corresponding to the above buffer */ 3208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 3218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate if the current buffer is last buffer */ 3238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_last; 3248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}out_buf_t; 3268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 3288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 3298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Descriptor of picture buffer */ 3308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t s_pic_buf; 3318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Lower 32bits of time stamp corresponding to the above buffer */ 3338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 3348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Upper 32bits of time stamp corresponding to the above buffer */ 3368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 3378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to indicate if the current buffer is last buffer */ 3398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_last; 3408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Picture count corresponding to current picture */ 3428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 3438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}rec_buf_t; 3458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 3478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 3488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** maximum width for which codec should request memory requirements */ 3498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_wd; 3508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** maximum height for which codec should request memory requirements */ 3528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_ht; 3538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum number of reference frames */ 3558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_ref_cnt; 3568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum number of reorder frames */ 3588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_reorder_cnt; 3598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum level supported */ 3618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_level; 3628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input color format */ 3648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_COLOR_FORMAT_T e_inp_color_fmt; 3658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable - To be used only for debugging/testing */ 3678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_recon; 3688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Recon color format */ 3708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_COLOR_FORMAT_T e_recon_color_fmt; 3718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Encoder Speed preset - Value between 0 (slowest) and 100 (fastest) */ 3738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_SPEED_CONFIG u4_enc_speed_preset; 3748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Rate control mode */ 3768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_RC_MODE_T e_rc_mode; 3778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum frame rate to be supported */ 3798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_framerate; 3808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum bitrate to be supported */ 3828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_bitrate; 3838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum number of consecutive B frames */ 385134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD32 u4_num_bframes; 3868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Content type Interlaced/Progressive */ 3888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_CONTENT_TYPE_T e_content_type; 3898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum search range to be used in X direction */ 3918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_srch_rng_x; 3928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum search range to be used in Y direction */ 3948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_max_srch_rng_y; 3958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Slice Mode */ 3978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_SLICE_MODE_T e_slice_mode; 3988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Slice parameter */ 4008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_slice_param; 4018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Processor architecture */ 4038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_ARCH_T e_arch; 4048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** SOC details */ 4068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_SOC_T e_soc; 4078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input width to be sent in bitstream */ 4098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_disp_wd; 4108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input height to be sent in bitstream */ 4128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_disp_ht; 4138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input width */ 4158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_wd; 4168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input height */ 4188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_ht; 4198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input stride */ 4218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_strd; 4228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Source frame rate */ 4248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_src_frame_rate; 4258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Target frame rate */ 4278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_tgt_frame_rate; 4288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Target bitrate in kilobits per second */ 4308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_target_bitrate; 4318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Force current frame type */ 4338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_PICTURE_CODING_TYPE_T e_frame_type; 4348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Encoder mode */ 4368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_ENC_MODE_T e_enc_mode; 4378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set initial Qp for I pictures */ 4398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_i_qp; 4408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set initial Qp for P pictures */ 4428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_p_qp; 4438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set initial Qp for B pictures */ 4458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_b_qp; 4468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set minimum Qp for I pictures */ 4488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_i_qp_min; 4498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set maximum Qp for I pictures */ 4518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_i_qp_max; 4528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set minimum Qp for P pictures */ 4548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_p_qp_min; 4558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set maximum Qp for P pictures */ 4578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_p_qp_max; 4588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set minimum Qp for B pictures */ 4608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_b_qp_min; 4618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Set maximum Qp for B pictures */ 4638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_b_qp_max; 4648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Adaptive intra refresh mode */ 4668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_AIR_MODE_T e_air_mode; 4678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Adaptive intra refresh period in frames */ 4698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_air_refresh_period; 4708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** VBV buffer delay */ 4728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_vbv_buffer_delay; 4738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** VBV buffer size */ 4758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_vbv_buf_size; 4768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Number of cores to be used */ 4788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_num_cores; 4798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** ME speed preset - Value between 0 (slowest) and 100 (fastest) */ 4818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_me_speed_preset; 4828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable half pel motion estimation */ 4848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_hpel; 4858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable quarter pel motion estimation */ 4878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_qpel; 4888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable intra 4x4 analysis */ 4908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_intra_4x4; 4918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable intra 8x8 analysis */ 4938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_intra_8x8; 4948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable intra 16x16 analysis */ 4968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_intra_16x16; 4978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to enable/disable fast SAD approximation */ 4998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_fast_sad; 5008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /*flag to enable/disable alternate reference frames */ 5028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_alt_ref; 5038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /*Flag to enable/disable computation of SATDQ in ME*/ 5058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_enable_satqd; 5068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /*Minimum SAD to search for*/ 5088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_min_sad; 5098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum search range in X direction for farthest reference */ 5118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_srch_rng_x; 5128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Maximum search range in Y direction for farthest reference */ 5148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_srch_rng_y; 5158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** I frame interval */ 5178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_i_frm_interval; 5188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** IDR frame interval */ 5208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_idr_frm_interval; 5218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Disable deblock level (0: Enable completely, 3: Disable completely */ 5238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_disable_deblock_level; 5248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Profile */ 5268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_PROFILE_T e_profile; 5278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Lower 32bits of time stamp corresponding to input buffer, 5298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * from which this command takes effect */ 5308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 5318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Upper 32bits of time stamp corresponding to input buffer, 5338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * from which this command takes effect */ 5348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 5358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Flag to say if the current config parameter set is valid 5378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Will be zero to start with and will be set to 1, when configured 5388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Once encoder uses the parameter set, this will be set to zero */ 5398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_valid; 5408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Command associated with this config param set */ 5428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IVE_CONTROL_API_COMMAND_TYPE_T e_cmd; 5438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input width in mbs */ 5458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 i4_wd_mbs; 5468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Input height in mbs */ 5488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 i4_ht_mbs; 5498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** entropy coding mode flag */ 5518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_entropy_coding_mode; 5528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** enable weighted prediction */ 5548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_weighted_prediction; 5558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** enable constrained intra prediction */ 5578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_constrained_intra_pred; 5588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Pic info type */ 5608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_pic_info_type; 5618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB info type 5638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_info_type; 5658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}cfg_params_t; 5678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Structure to hold format conversion context */ 5718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 5728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 5738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Current row for which format conversion should be done */ 5748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_row; 5758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Number of rows for which format conversion should be done */ 5778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_num_rows; 5788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}fmt_conv_t; 5808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 5838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure to represent a processing job entry 5848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 5868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 5878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Command 5898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cmd; 5918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB x of the starting MB 5948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_x; 5968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB y of the starting MB 5998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_y; 6028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs that need to be processed in this job 6058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_cnt; 6078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process contexts base index 6108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Will toggle between 0 and MAX_PROCESS_THREADS 6118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_proc_base_idx; 6138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} job_t; 6158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 6188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure to represent a MV Bank buffer 6198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 6248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 6268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold enc_pu_t for each PU in a picture 6298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pic_pu; 6318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold PU map for each MB in a picture 6348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_pu_map; 6368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold the Slice map 6398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 *pu1_pic_slice_map; 6418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Absolute POC for the current MV Bank 6448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_poc; 6468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer Id 6498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_buf_id; 6518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} mv_buf_t; 6538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 6568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference set containing pointers to MV buf and pic buf 6578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Picture count */ 6618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 6628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** POC */ 6648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_poc; 6658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** picture buffer */ 6678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_pic_buf; 6688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** mv buffer */ 6708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mv_buf_t *ps_mv_buf; 6718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}ref_set_t; 6738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current PPS 6798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps; 6818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current SPS 6848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps; 6868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current slice header structure 6898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr; 6918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 6948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 6968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 6998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 7028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current PU structure - set to MB enc_pu_t pointer at the start of MB processing and incremented 7058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * for every TU 7068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pu; 7088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to frame level enc_pu_t for the current frame being parsed 7118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * where MVs and Intra pred modes will be updated 7128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pic_pu; 7148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 7178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 7198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** PU Index map per MB. The indices in this map are w.r.t picture pu array and not 7218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * w.r.t MB pu array. 7228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This will be used during mv prediction and since neighbors will have different MB pu map 7238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * it will be easier if they all have indices w.r.t picture level PU array rather than MB level 7248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU array. 7258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pu1_pic_pu_map is map w.r.t MB's enc_pu_t array 7268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_pu_idx_map; 7288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to pu_map for the current frame being parsed 7318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * where MVs and Intra pred modes will be updated 7328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_pu_map; 7348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU count in current MB 7378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_pu_cnt; 7398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU count in current MB 7428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_start_pu_idx; 7448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top availability for current MB level 7478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_mb_avail; 7498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top right availability for current MB level 7528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_rt_mb_avail; 7548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top left availability for current MB level 7568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_lt_mb_avail; 7588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left availability for current MB level 7608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_left_mb_avail; 7628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mv_ctxt_t; 7648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 7668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 7678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 7698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 7718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 7748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 7768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a Slice in raster scan in MB units 7798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_x; 7818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a Slice in raster scan in MB units 7848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_y; 7868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Vertical strength, Two bits per edge. 7898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stored in format. BS[15] | BS[14] | .. |BS[0] 7908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_vert_bs; 7928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Boundary strength, Two bits per edge. 7958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stored in format. BS[15] | BS[14] | .. |BS[0] 7968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_horz_bs; 7988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Qp array stored for each mb 8018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_qp; 8038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}bs_ctxt_t; 8058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 8108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 8128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 8158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 8178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * structure that contains BS and QP frame level arrays 8208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S bs_ctxt_t s_bs_ctxt; 8228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to 0th luma pixel in current pic 8258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_cur_pic_luma; 8278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to 0th chroma pixel in current pic 8308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_cur_pic_chroma; 8328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the slice 8358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to which each MB in a frame belongs. 8368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 8388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}deblk_ctxt_t; 8408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 8448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure to hold data and flags for 'n' mb processing for 8458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblocking , padding and half pel generation. 8468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 8478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position last processed + 1 8528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 8548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position ,current processing. 8578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 8598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs processed in a stretch 8628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_n_mbs; 8648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}n_mb_process_ctxt_t; 8668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure to hold coefficient info for a 4x4 subblock. 8718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * The following can be used to type-cast coefficient data that is stored 8728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * per subblock. Note that though i2_level is shown as an array that 8738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * holds 16 coefficients, only the first few entries will be valid. Next 8748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * subblocks data starts after the valid number of coefficients. Number 8758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * of non-zero coefficients will be derived using number of non-zero bits 8768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * in sig coeff map 8778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * significant coefficient map and nnz are packed in 8838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to msb (2 bytes) and lsb (2 bytes) respectively 8848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sig_map_nnz; 8868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array of non zero residue coefficients 8898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 ai2_residue[16]; 8918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}tu_sblk_coeff_data_t; 8938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure contains few common state variables such as MB indices, 8978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * current SPS, PPS etc which are to be used in the entropy thread. By keeping 8988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * it a different structure it is being explicitly signaled that these 8998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * variables are specific to entropy threads context and other threads should 9008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * not update these elements 9018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 9028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 9048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 905134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 906134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Pointer to the cabac context 907134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 908134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K cabac_ctxt_t *ps_cabac; 9098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * start of frame / start of slice flag 9128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sof; 9148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * end of frame / end of slice flag 9178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_eof; 9198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * generate header upon request 9228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_gen_header; 9248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * seq_parameter_set_id 9278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_sps_id; 9298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of sequence parameter set structure array 9328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps_base; 9348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic_parameter_set_id 9378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_pps_id; 9398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Picture parameter set structure array 9428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps_base; 9448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current slice idx 9478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_slice_idx; 9498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the independent slice 9528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to which each MB in a frame belongs. 9538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 9558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 9588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 9608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy status 9638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_entropy_map; 9658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 9688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 9708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 9738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 9758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB start address 9788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cnt; 9808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB start address 9838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_start_add; 9858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB end address 9888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_end_add; 9908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input width in mbs 9938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_wd_mbs; 9958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input height in mbs 9988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ht_mbs; 10008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Bitstream structure 10038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S bitstrm_t *ps_bitstrm; 10058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform_8x8_mode_flag 10088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD8 i1_transform_8x8_mode_flag; 10108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy_coding_mode_flag 10138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD8 u1_entropy_coding_mode_flag; 10158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the top row nnz for luma 10188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*pu1_top_nnz_luma)[4]; 10208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left nnz for luma 10238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_left_nnz_luma; 10258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to zero runs before for the mb 10288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_zero_run[16]; 10308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the top row nnz for chroma 10338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*pu1_top_nnz_cbcr)[4]; 10358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left nnz for chroma 10388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u4_left_nnz_cbcr; 10408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb subblock coeff data 10438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_coeff_data; 10458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb subblock coeff data and number of subblocks and scan idx 10488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Incremented each time a coded subblock is processed 10498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_coeff_data; 10518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb header data 10548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_header_data; 10568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb header data and 10598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * incremented each time a coded mb is encoded 10608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_header_data; 10628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Error code during parse stage 10658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IH264E_ERROR_T i4_error_code; 10678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to job context 10708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 10728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to signal end of frame 10758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_end_of_frame; 10778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Abs POC count of the frame 10808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_pic_order_cnt; 10828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb skip run 10858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 *pi4_mb_skip_run; 10878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to signal end of sequence 10908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_last; 10928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Lower 32bits of time-stamp corresponding to the buffer being encoded 10958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 10978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Upper 32bits of time-stamp corresponding to the buffer being encoded 11008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 11028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current Picture count - used for synchronization 11058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 11078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of bits consumed by header for I and P mb types 11108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_header_bits[MAX_MB_TYPE]; 11128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of bits consumed by residue for I and P mb types 11158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_residue_bits[MAX_MB_TYPE]; 11178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} entropy_ctxt_t; 11198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 11218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief macro block info. 11238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 11258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 11268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 11278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 11298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_is_intra; 11318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 11348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_mb_type; 11368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * csbp 11398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_csbp; 11418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb distortion 11448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 11468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mb_info_t; 11488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 11508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief structure presenting the neighbor availability of a mb 11528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* or subblk or any other partition 11538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 11558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 11568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 11578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left blk/subblk/partition 11598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_a; 11618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top blk/subblk/partition 11648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_b; 11668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * topright blk/subblk/partition 11698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_c; 11718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * topleft blk/subblk/partition 11748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_d; 11768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}block_neighbors_t; 11788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 11808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 11818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief MB info related variables used during NMB processing 11828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 11838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 11858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 11868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_type; 11878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 11888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad_reached; 11898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cost; 11908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 11918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1192134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t as_skip_mv[4]; 11938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1194134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t as_pred_mv[2]; 11958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t s_ngbr_avbl; 11978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 11998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer to hold best subpel buffer in each MB of NMB 12008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_best_sub_pel_buf; 12028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 12048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stride for subpel buffer 12058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_bst_spel_buf_strd; 12078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mb_info_nmb_t; 12098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 12118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 12128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Pixel processing thread context 12138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 12148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1215134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Kstruct _proc_t 12168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 12178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy context 12198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S entropy_ctxt_t s_entropy; 12218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * me context 12248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S me_ctxt_t s_me_ctxt; 12268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to codec context 12298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S codec_t *ps_codec; 12318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * N mb process contest 12348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S n_mb_process_ctxt_t s_n_mb_ctxt; 12368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Source pointer to current MB luma 12398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_luma; 12418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Source pointer to current MB chroma 12448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_chroma; 12468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Recon pointer to current MB luma 12498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_luma; 12518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Recon pointer to current MB chroma 12548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_chroma; 12568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Ref pointer to current MB luma 12598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1260134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_luma[MAX_REF_PIC_CNT]; 12618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Ref pointer to current MB chroma 12648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1265134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_chroma[MAX_REF_PIC_CNT]; 12668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of input buffer (base :: mb (0,0)) 12698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_luma_base; 12718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of reconstructed buffer (base :: mb (0,0)) 12748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_luma_base; 12768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of ref buffer (base :: mb (0,0)) 12798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1280134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_luma_base[MAX_REF_PIC_CNT]; 12818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of input buffer (base :: mb (0,0)) 12848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_chroma_base; 12868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 12888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer for color space conversion of luma 12898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_csc_buf; 12918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 12938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer for color space conversion of luma 12948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 12958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_csc_buf; 12978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 12998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of reconstructed buffer (base :: mb (0,0)) 13008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_chroma_base; 13028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of reconstructed buffer (base :: mb (0,0)) 13058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1306134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_chroma_base[MAX_REF_PIC_CNT]; 13078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to ME NMB info 13108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_nmb_t *ps_nmb_info; 13128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_nmb_t *ps_cur_mb; 13148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 131653c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo * source luma stride 13178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_src_strd; 13198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 132153c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo * source chroma stride 132253c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo */ 132353c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo WORD32 i4_src_chroma_strd; 132453c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo 132553c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo /** 13268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon stride & ref stride 13278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * (strides for luma and chroma are the same) 13288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_rec_strd; 13308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel x plane from the pic buf 13338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_x_offset; 13358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel y plane from half x plane 13388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_y_offset; 13408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel xy plane from half y plane 13438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_xy_offset; 13458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (temp buffer 1) 13488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb; 13508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra 16x16 13538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_16x16; 13558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra 16x16_plane 13588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_16x16_plane; 13608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra chroma 13638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_chroma; 13658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra chroma plane 13688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_chroma_plane; 13708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * temp. reference buffer ptr for intra 4x4 when rdopt is on 13738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_ref_mb_intra_4x4; 13758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * prediction buffer stride 13788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pred_strd; 13808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform buffer pointer (temp buffer 2) 13838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 *pi2_res_buf; 13858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * temp. transform buffer ptr for intra 4x4 when rdopt is on 13888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 *pi2_res_buf_intra_4x4; 13908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform buffer stride 13938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_res_strd; 13958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * scratch buffer for inverse transform (temp buffer 3) 13988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_scratch_buff; 14008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame num 14038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_num; 14058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * start address of frame / sub-frame 14088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_strt_add; 14108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * IDR pic 14138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_idr; 14158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * idr_pic_id 14188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_idr_pic_id; 14208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input width in mbs 14238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_wd_mbs; 14258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input height in mbs 14288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ht_mbs; 14308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice_type 14338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_slice_type; 14358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current slice idx 14388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_slice_idx; 14408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 14438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 14458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 14488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 14508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a Slice in raster scan in MB units 14538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_x; 14558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a Slice in raster scan in MB units 14588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_y; 14608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 14638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_type; 14658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is intra 14688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_intra; 14708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb neighbor availability pointer 14738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t *ps_ngbr_avbl; 14758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * lambda (lagrange multiplier for cost computation) 14788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_lambda; 14808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb distortion 14838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 14858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb cost 14888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cost; 14908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 14928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_mb_16 - ngbr avbl of curr mb */ 14938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_sb_8 - ngbr avbl of all 8x8 sub blocks of curr mb */ 14948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_sb_4 - ngbr avbl of all 4x4 sub blocks of curr mb */ 14958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_mb_c - chroma ngbr avbl of curr mb */ 14968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 14978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ngbr_avbl_16x16_mb; 14988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_neighbor_avail_8x8_subblks[4]; 14998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_ngbr_avbl_4x4_subblks[16]; 15008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_chroma_neighbor_avail_8x8_mb; 15018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the mode of mb sub blocks 15048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_intra_luma_mb_4x4_modes[16]; 15068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the predicted mode of mb sub blks 15098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_predicted_intra_luma_mb_4x4_modes[16]; 15118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * macro block intra 16x16 mode 15148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_l_i16_mode; 15168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the mode of the macro block intra 8x8 4 modes 15198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_intra_luma_mb_8x8_modes[4]; 15218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra chroma mb mode 15248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_c_i8_mode; 15268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 15288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* array to store pixels from the neighborhood for intra prediction */ 15298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i16 - 16 left pels + 1 top left pel + 16 top pels = 33 pels */ 15308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i8 - 8 lpels + 1 tlpels + 8 tpels + 8 tr pels = 25 pels */ 15318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4 - 4 lpels + 1 tlpels + 4 tpels + 4 tr pels = 13 pels */ 15328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* ic - 8 left pels + 1 top left pel + 8 top pels )*2 */ 15338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 15348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_ngbr_pels[34]; 15358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array for 8x8 intra pels filtering (temp buff 4) 15388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_neighbor_pels_i8x8_unfiltered[25]; 15408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of sub partitons in the inter pred MB 15438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_num_sub_partitions; 15458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 15488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 15508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the array of structures having motion vectors, size 15538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * and position of sub partitions 15548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pu; 15568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 1558134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Pointer to the pu of current co-located MB in list 1 1559134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 1560134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_t *ps_colpu; 1561134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1562134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 15638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * predicted motion vector 15648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1565134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t *ps_skip_mv; 1566134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1567134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 1568134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * predicted motion vector 1569134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 1570134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t *ps_pred_mv; 15718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row mb syntax information base 15748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 15758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the mb syntax info pointer is identical across all process threads. 15768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 15778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 15788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 15798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 15808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 15818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 15828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 15838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 15848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t *ps_top_row_mb_syntax_ele_base; 15868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row mb syntax information 15898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t *ps_top_row_mb_syntax_ele; 15918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb syntax information 15948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_left_mb_syntax_ele; 15968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb syntax information 15998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_top_left_mb_syntax_ele; 16018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb syntax information 16048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_top_left_mb_syntax_ME; 16078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb motion vector 16108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_left_mb_pu_ME; 16128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb motion vector 16158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_top_left_mb_pu_ME; 16178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb neighbor availability pointer 16208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t s_ngbr_avbl; 16228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 16258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the left mb are stored in the array below 16268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_left_mb_intra_modes[16]; 16288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 16318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the top mb are stored in the array below 16328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 16338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 16348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the mb syntax info pointer is identical across all process threads. 16358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 16368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 16378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 16388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 16398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 16408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 16418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 16428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 16438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_top_mb_intra_modes_base; 16458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 16488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the top mb are stored in the array below 16498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_top_mb_intra_modes; 16518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb motion vector 16548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_left_mb_pu; 16568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb motion vector 16598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_top_left_mb_pu; 16618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row motion vector info 16648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 16658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 16668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the top row pu pointer is identical across all process threads. 16678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 16688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 16698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 16708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 16718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 16728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 16738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 16748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 16758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu_base; 16778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row motion vector info 16808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu; 16828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu_ME; 16848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * coded block pattern 16878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_cbp; 16898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * csbp 16928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_csbp; 16948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * number of non zero coeffs 16978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 au4_nnz[5]; 16998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * number of non zero coeffs for intra 4x4 when rdopt is on 17028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 au4_nnz_intra_4x4[4]; 17048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame qp & mb qp 17078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_frame_qp, u4_mb_qp; 17098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb qp previous 17128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_qp_prev; 17148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * quantization parameters for luma & chroma planes 17178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S quant_params_t *ps_qp_params[3]; 17198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb subblock coeff data 17228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_coeff_data; 17248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb subblock coeff data and number of subblocks and scan idx 17278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Incremented each time a coded subblock is processed 17288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_coeff_data; 17308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb header data 17338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_header_data; 17358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb header data and 17388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * incremented each time a coded mb is encoded 17398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_header_data; 17418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Signal that pic_init is called first time 17448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_first_pic_init; 17468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current MV Bank's buffer ID 17498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_mv_bank_buf_id; 17518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to job context 17548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 17568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs to be processed in the current Job 17598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cnt; 17618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * ID for the current context - Used for debugging 17648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_id; 17668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current picture buffer structure 17698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_cur_pic; 17718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current picture's mv buffer structure 17748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mv_buf_t *ps_cur_mv_buf; 17768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to indicate if ps_proc was initialized at least once in a frame. 17798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is needed to handle cases where a core starts to handle format 17808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * conversion jobs directly 17818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_init_done; 17838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process status: one byte per MB 17868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_proc_map; 17888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Deblk status: one byte per MB 17918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_deblk_map; 17938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process status: one byte per MB 17968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_me_map; 17988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 18008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intra refresh mask. 18018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Indicates if an Mb is coded in intra mode within the current AIR interval 18028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE Refreshes after each AIR period 18038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE The map is shared between process 18048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_is_intra_coded; 18068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Disable deblock level (0: Enable completely, 3: Disable completely 18098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_disable_deblock_level; 18118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the structure that contains deblock context 18148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S deblk_ctxt_t s_deblk_ctxt; 18168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the independent 18198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice to which each MB in a frame belongs. 18208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 18228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 18258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 18278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of mb's to process in one loop 18308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_nmb_ntrpy; 18328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of mb's to process in one loop 18358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_nmb_me; 18378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure for current input buffer 18408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S inp_buf_t s_inp_buf; 18428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * api call cnt 18458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_encode_api_call_cnt; 18478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current Picture count - used for synchronization 18508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 18528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intermediate buffer for interpred leaf level functions 18558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai16_pred1[HP_BUFF_WD * HP_BUFF_HT]; 18578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference picture for the current picture 1860134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * TODO: Only 2 reference assumed currently 1861134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 1862134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K pic_buf_t *aps_ref_pic[MAX_REF_PIC_CNT]; 1863134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1864134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 1865134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Reference MV buff for the current picture 18668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1867134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K mv_buf_t *aps_mv_buf[MAX_REF_PIC_CNT]; 18688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame info used by RC 18718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S frame_info_t s_frame_info; 18738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 18758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE NOT PERSISTANT INSIDE FUNCTIONS 18768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Min sad for current MB 18778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * will be populated initially 18788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Once a sad less than eq to u4_min_sad is reached, the value will be copied to the cariable 18798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 18818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 18838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * indicates weather we have rached minimum sa or not 18848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad_reached; 18868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current error code 18898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_error_code; 18918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 18938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enables or disables computation of recon 18948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_compute_recon; 18968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 1898134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Temporary buffers to be used for subpel computation 18998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1900134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_subpel_buffs[SUBPEL_BUFF_CNT]; 19018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 19038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer holding best sub pel values 19048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_best_subpel_buf; 19068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 19088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stride for buffer holding best sub pel 19098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_bst_spel_buf_strd; 19118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1912134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K}; 19138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 19158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 19168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Rate control related variables 19178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 19188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 19208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 19218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_rate_control_api; 19228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_frame_time; 19248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_time_stamp; 19268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_pd_frm_rate; 19288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame rate pull down 19318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 pre_encode_skip[MAX_CTXT_SETS]; 19338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * skip frame (cbr) 19368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 post_encode_skip[MAX_CTXT_SETS]; 19388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * rate control type 19418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rc_type_e e_rc_type; 19438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic type 19468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S picture_type_e e_pic_type; 19488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra cnt in previous frame 19518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 num_intra_in_prev_frame; 19538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * avg activity of prev frame 19568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_avg_activity; 19588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}rate_control_ctxt_t; 19608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 19628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Codec context 19638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sstruct _codec_t 19658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 19668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 1967134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Id of current pic (input order) 19688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1969134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_poc; 19708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of encode frame API calls made 1973134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * This variable must only be used for context selection [Read only] 19748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_encode_api_call_cnt; 19768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of pictures encoded 19798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 19818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of threads created 19848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_thread_cnt; 19868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Mutex used to keep the control calls thread-safe 19898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ctl_mutex; 19918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current active config parameters 19948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S cfg_params_t s_cfg; 19968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array containing the config parameter sets 19998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S cfg_params_t as_cfg[MAX_ACTIVE_CONFIG_PARAMS]; 20018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Color format used by encoder internally 20048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_COLOR_FORMAT_T e_codec_color_format; 20068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * source stride 20098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * (strides for luma and chroma are the same) 20108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_src_strd; 20128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon stride 20158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * (strides for luma and chroma are the same) 20168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_rec_strd; 20188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to enable/disable deblocking of a frame 20218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_disable_deblk_pic; 20238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of continuous frames where deblocking was disabled 20268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_disable_deblk_pic_cnt; 20288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame type 20318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S PIC_TYPE_T pic_type; 20338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame qp 20368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_frame_qp; 20388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame num 20418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_num; 20438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice_type 20468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_slice_type; 20488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Force current frame to specific type 20518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_PICTURE_CODING_TYPE_T force_curr_frame_type; 20538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * IDR pic 20568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_idr; 20588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * idr_pic_id 20618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_idr_pic_id; 20638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flush mode 20668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_flush_mode; 20688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Encode header mode 20718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_header_mode; 20738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to indicate if header has already 20768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * been generated when i4_api_call_cnt 0 20778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_header_generated; 20798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Encode generate header 20828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_gen_header; 20848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * To signal successful completion of init 20878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_init_done; 20898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * To signal that at least one picture was decoded 20928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_first_pic_done; 20948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reset flag - Codec is reset if this flag is set 20978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_reset_flag; 20998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current error code 21028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_error_code; 21048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * threshold residue 21078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_thres_resi; 21098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * disable intra inter gating 21128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_inter_gate; 21148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds mem records passed during init. 21178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This will be used to return the mem records during retrieve call 21188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S iv_mem_rec_t *ps_mem_rec_backup; 21208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to determine if the entropy thread is active 21238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S volatile UWORD32 au4_entropy_thread_active[MAX_CTXT_SETS]; 21258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Mutex used to keep the entropy calls thread-safe 21288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_entropy_mutex; 21308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Job queue buffer base 21338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq_buf, *pv_entropy_jobq_buf; 21358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Job Queue mem tab size 21388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_jobq_buf_size, i4_entropy_jobq_buf_size; 21408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for MV Bank buffer manager 21438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_buf_mgr_base; 21458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MV Bank buffer manager 21488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_buf_mgr; 21508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to MV Buf structure array 21538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *ps_mv_buf; 21558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Base address for Motion Vector bank buffer 21588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_bank_buf_base; 21608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MV Bank size allocated 21638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_total_mv_bank_size; 21658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Picture buffer manager for reference pictures 21688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ref_buf_mgr_base; 21708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Picture buffer manager for reference pictures 21738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ref_buf_mgr; 21758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of reference buffers added to the buffer manager 21788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ref_buf_cnt; 21808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to Pic Buf structure array 21838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *ps_pic_buf; 21858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Base address for Picture buffer 21888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_buf_base; 21908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Total pic buffer size allocated 21938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_total_pic_buf_size; 21958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Buffer manager for output buffers 21988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_out_buf_mgr_base; 22008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer manager for output buffers 22038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_out_buf_mgr; 22058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current output buffer's buffer ID 22088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_out_buf_id; 22108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of output buffers added to the buffer manager 22138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_out_buf_cnt; 22158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Picture buffer manager for input buffers 22188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_inp_buf_mgr_base; 22208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Picture buffer manager for input buffers 22238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_inp_buf_mgr; 22258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current input buffer's buffer ID 22288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_inp_buf_id; 22308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of input buffers added to the buffer manager 22338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_inp_buf_cnt; 22358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current input buffer 22388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_inp_buf; 22408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to dpb manager structure 22438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_dpb_mgr; 22458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Sequence parameter set structure array 22488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps_base; 22508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Picture parameter set structure array 22538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps_base; 22558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * seq_parameter_set_id 22588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sps_id; 22608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic_parameter_set_id 22638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pps_id; 22658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 22688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 22708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * packed residue coeff data size for 1 row of mbs 22738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_size_coeff_data; 22758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * packed header data size for 1 row of mbs 22788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_size_header_data; 22808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Processing context - One for each processing thread 22838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Create two sets, each set used for alternate frames 22848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S process_ctxt_t as_process[MAX_PROCESS_CTXT]; 22868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Thread handle for each of the processing threads 22898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *apv_proc_thread_handle[MAX_PROCESS_THREADS]; 22918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Thread created flag for each of the processing threads 22948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_process_thread_created[MAX_PROCESS_THREADS]; 22968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to process job context 22998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 23018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs processed together for better instruction cache handling 23048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_nmb; 23068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Previous POC lsb 23098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_prev_poc_lsb; 23118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Previous POC msb 23148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_prev_poc_msb; 23168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Max POC lsb that has arrived till now 23198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_max_prev_poc_lsb; 23218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Context for format conversion 23248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S fmt_conv_t s_fmt_conv; 23268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Absolute pic order count 23298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_pic_order_cnt; 23318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pic order count of lsb 23348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_order_cnt_lsb; 23368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array giving current picture being processed in each context set 23398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_pic_cnt[MAX_CTXT_SETS]; 23418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 23438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Min sad to search for 23448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 23468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference picture set 23498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ref_set_t as_ref_set[MAX_DPB_SIZE + MAX_CTXT_SETS]; 23518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2352134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 23538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 23548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Air pic cnt 23558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains the number of pictures that have been encoded with air 23568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This value is moudulo air refresh period 23578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_air_pic_cnt; 23598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 23618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intra refresh map 23628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stores the frames at which intra refresh should occur for a MB 23638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 *pu2_intr_rfrsh_map; 23658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 23678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Indicates if the current frame is used as a reference frame 23688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_curr_frm_ref; 23708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 2372134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Indicates if there can be non reference frames in the stream 2373134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2374134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_non_ref_frames_in_stream; 2375134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2376134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /* 23778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for color space conversion for luma plane 23788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_csc_buf_base; 23808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 23828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for color space conversion foe chroma plane 23838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_csc_buf_base; 23858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function pointers for intra pred leaf level functions luma 23888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_16_l[MAX_I16x16]; 23908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_8_l[MAX_I8x8]; 23918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_4_l[MAX_I4x4]; 23928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function pointers for intra pred leaf level functions chroma 23958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_c[MAX_CH_I8x8]; 23978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * luma core coding function pointer 24008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*luma_energy_compaction[4])(process_ctxt_t *ps_proc); 24028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * chroma core coding function pointer 24058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*chroma_energy_compaction[2])(process_ctxt_t *ps_proc); 24078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for intra blk of mb type 16x16 24108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_luma_16x16_resi_trans_dctrans_quant_ft *pf_resi_trans_dctrans_quant_16x16; 24128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for intra blk of mb type 16x16 24158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_luma_16x16_idctrans_iquant_itrans_recon_ft *pf_idctrans_iquant_itrans_recon_16x16; 24178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 4x4 blk luma 24208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_4x4; 24228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 4x4 blk luma 24258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_chroma_4x4; 24278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 24298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * hadamard transform and quant for a 4x4 block 24308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_hadamard_quant_ft *pf_hadamard_quant_4x4; 24328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 24348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * hadamard transform and quant for a 4x4 block 24358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_hadamard_quant_ft *pf_hadamard_quant_2x2_uv; 24378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk 24408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_4x4; 24428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma 4x4 blk 24458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4; 24478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk with only single dc coeff 24508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_4x4_dc; 24528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma 4x4 blk with only single dc coeff 24558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4_dc; 24578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 24598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inverse hadamard transform and iquant for a 4x4 block 24608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_4x4; 24628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 24648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inverse hadamard transform and iquant for a 4x4 block 24658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_2x2_uv; 24678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 24698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function for interleave copy* 24708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_interleave_copy_ft *pf_interleave_copy; 24728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 8x8 blk 24758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_8x8; 24778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 8x8 blk 24808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk 24838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_8x8; 24858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for chroma MB 24888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_chroma_8x8_resi_trans_dctrans_quant_ft *pf_resi_trans_dctrans_quant_8x8_chroma; 24908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma MB 24938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_idctrans_iquant_itrans_recon_ft *pf_idctrans_iquant_itrans_recon_8x8_chroma; 24958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical luma edge with blocking strength 4 24988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4; 25008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical chroma edge with blocking strength 4 25038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4; 25058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical luma edge with blocking strength less than 4 25088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4; 25108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical chroma edge with blocking strength less than 4 25138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4; 25158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal luma edge with blocking strength 4 25188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bs4_ft *pf_deblk_luma_horz_bs4; 25208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal chroma edge with blocking strength 4 25238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_horz_bs4; 25258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal luma edge with blocking strength less than 4 25288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bslt4_ft *pf_deblk_luma_horz_bslt4; 25308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal chroma edge with blocking strength less than 4 25338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_horz_bslt4; 25358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * functions for padding 25398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_top; 25418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_bottom; 25428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_left_luma; 25438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_left_chroma; 25448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_right_luma; 25458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_right_chroma; 25468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inter pred leaf level functions 25498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_copy; 25518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_horz; 25528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_vert; 25538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_inter_pred_luma_bilinear pf_inter_pred_luma_bilinear; 25548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_chroma_ft *pf_inter_pred_chroma; 25558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * fn ptrs for compute sad routines 25588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ime_compute_sad_ft *apf_compute_sad_16x16[2]; 25608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ime_compute_sad_ft *pf_compute_sad_16x8; 25618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2562134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2563134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2564134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Function pointer for computing ME 2565134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * 1 for PSLICE and 1 for BSLICE 2566134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2567134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ih264e_compute_me_ft *apf_compute_me[2]; 2568134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2569134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2570134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Function pointers for computing SKIP parameters 2571134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2572134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ih264e_skip_params_ft *apf_find_skip_params_me[2]; 2573134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 25748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * fn ptrs for memory handling operations 25768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memcpy pf_mem_cpy; 25788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memset pf_mem_set; 25798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memcpy_mul8 pf_mem_cpy_mul8; 25808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memset_mul8 pf_mem_set_mul8; 25818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra mode eval -encoder level function 25848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_modes pf_ih264e_evaluate_intra16x16_modes; 25868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_modes pf_ih264e_evaluate_intra_chroma_modes; 25878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_4x4_modes pf_ih264e_evaluate_intra_4x4_modes; 25888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* Half pel generation function - encoder level 25908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 25918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_sixtapfilter_horz pf_ih264e_sixtapfilter_horz; 25938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_sixtap_filter_2dvh_vert pf_ih264e_sixtap_filter_2dvh_vert; 25948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * color space conversion form YUV 420P to YUV 420Sp 25978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_fmt_conv_420p_to_420sp pf_ih264e_conv_420p_to_420sp; 25998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * color space conversion form YUV 420P to YUV 420Sp 26038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_fmt_conv_422ile_to_420sp pf_ih264e_fmt_conv_422i_to_420sp; 26058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * write mb layer for a given slice I, P, B 26088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2609134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K IH264E_ERROR_T (*pf_write_mb_syntax_layer[2][3]) ( entropy_ctxt_t *ps_ent_ctxt ); 26108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Output buffer 26138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S out_buf_t as_out_buf[MAX_CTXT_SETS]; 26158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon buffer 26188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rec_buf_t as_rec_buf[MAX_CTXT_SETS]; 26208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * rate control context 26238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rate_control_ctxt_t s_rate_control; 2625134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2626134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2627134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * input buffer queue 2628134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2629134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K inp_buf_t as_inp_list[MAX_NUM_BFRAMES]; 2630134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2631134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2632134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /* 2633134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *Flag to indicate if we have recived the last input frame 2634134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2635134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_last_inp_buff_received; 2636134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 26378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}; 2638134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 26398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#endif /* IH264E_STRUCTS_H_ */ 2640