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 566983e1aecd4739d2a558228e3fb6f9895333f25d4Doney Alex /** VUI structure */ 567983e1aecd4739d2a558228e3fb6f9895333f25d4Doney Alex vui_t s_vui; 568983e1aecd4739d2a558228e3fb6f9895333f25d4Doney Alex 5698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}cfg_params_t; 5708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Structure to hold format conversion context */ 5748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 5758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 5768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Current row for which format conversion should be done */ 5778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_row; 5788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Number of rows for which format conversion should be done */ 5808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_num_rows; 5818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}fmt_conv_t; 5838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 5868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure to represent a processing job entry 5878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 5898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 5908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Command 5928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cmd; 5948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB x of the starting MB 5978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_x; 5998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB y of the starting MB 6028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_y; 6058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs that need to be processed in this job 6088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_mb_cnt; 6108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process contexts base index 6138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Will toggle between 0 and MAX_PROCESS_THREADS 6148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 i2_proc_base_idx; 6168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} job_t; 6188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 6218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure to represent a MV Bank buffer 6228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 6278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 6298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold enc_pu_t for each PU in a picture 6328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pic_pu; 6348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold PU map for each MB in a picture 6378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_pu_map; 6398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold the Slice map 6428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 *pu1_pic_slice_map; 6448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Absolute POC for the current MV Bank 6478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_poc; 6498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer Id 6528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_buf_id; 6548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} mv_buf_t; 6568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 6598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference set containing pointers to MV buf and pic buf 6608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** Picture count */ 6648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 6658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** POC */ 6678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_poc; 6688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** picture buffer */ 6708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_pic_buf; 6718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** mv buffer */ 6738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mv_buf_t *ps_mv_buf; 6748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}ref_set_t; 6768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 6788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 6798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current PPS 6828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps; 6848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current SPS 6878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps; 6898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current slice header structure 6928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr; 6948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 6968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 6978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 6988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 6998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 7028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 7058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current PU structure - set to MB enc_pu_t pointer at the start of MB processing and incremented 7088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * for every TU 7098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pu; 7118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to frame level enc_pu_t for the current frame being parsed 7148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * where MVs and Intra pred modes will be updated 7158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pic_pu; 7178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 7208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 7228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** PU Index map per MB. The indices in this map are w.r.t picture pu array and not 7248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * w.r.t MB pu array. 7258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This will be used during mv prediction and since neighbors will have different MB pu map 7268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * it will be easier if they all have indices w.r.t picture level PU array rather than MB level 7278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU array. 7288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pu1_pic_pu_map is map w.r.t MB's enc_pu_t array 7298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_pu_idx_map; 7318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to pu_map for the current frame being parsed 7348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * where MVs and Intra pred modes will be updated 7358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_pu_map; 7378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU count in current MB 7408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_pu_cnt; 7428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * PU count in current MB 7458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_start_pu_idx; 7478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top availability for current MB level 7508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_mb_avail; 7528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top right availability for current MB level 7558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_rt_mb_avail; 7578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Top left availability for current MB level 7598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_top_lt_mb_avail; 7618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left availability for current MB level 7638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_left_mb_avail; 7658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mv_ctxt_t; 7678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 7698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 7708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 7728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 7748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 7778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 7798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a Slice in raster scan in MB units 7828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_x; 7848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a Slice in raster scan in MB units 7878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_y; 7898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Vertical strength, Two bits per edge. 7928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stored in format. BS[15] | BS[14] | .. |BS[0] 7938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 7948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_vert_bs; 7958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 7968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 7978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Boundary strength, Two bits per edge. 7988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stored in format. BS[15] | BS[14] | .. |BS[0] 7998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_pic_horz_bs; 8018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Qp array stored for each mb 8048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pic_qp; 8068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}bs_ctxt_t; 8088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 8138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 8158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 8188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 8208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * structure that contains BS and QP frame level arrays 8238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S bs_ctxt_t s_bs_ctxt; 8258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to 0th luma pixel in current pic 8288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_cur_pic_luma; 8308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to 0th chroma pixel in current pic 8338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_cur_pic_chroma; 8358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the slice 8388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to which each MB in a frame belongs. 8398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 8418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}deblk_ctxt_t; 8438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 8478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure to hold data and flags for 'n' mb processing for 8488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblocking , padding and half pel generation. 8498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 8508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position last processed + 1 8558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 8578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position ,current processing. 8608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 8628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs processed in a stretch 8658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_n_mbs; 8678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}n_mb_process_ctxt_t; 8698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure to hold coefficient info for a 4x4 subblock. 8748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * The following can be used to type-cast coefficient data that is stored 8758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * per subblock. Note that though i2_level is shown as an array that 8768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * holds 16 coefficients, only the first few entries will be valid. Next 8778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * subblocks data starts after the valid number of coefficients. Number 8788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * of non-zero coefficients will be derived using number of non-zero bits 8798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * in sig coeff map 8808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 8838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 8848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * significant coefficient map and nnz are packed in 8868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to msb (2 bytes) and lsb (2 bytes) respectively 8878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sig_map_nnz; 8898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 8918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array of non zero residue coefficients 8928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 8938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 ai2_residue[16]; 8948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}tu_sblk_coeff_data_t; 8968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 8988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 8998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Structure contains few common state variables such as MB indices, 9008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * current SPS, PPS etc which are to be used in the entropy thread. By keeping 9018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * it a different structure it is being explicitly signaled that these 9028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * variables are specific to entropy threads context and other threads should 9038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * not update these elements 9048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 9058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 9078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 908134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 909134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Pointer to the cabac context 910134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 911134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K cabac_ctxt_t *ps_cabac; 9128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * start of frame / start of slice flag 9158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sof; 9178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * end of frame / end of slice flag 9208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_eof; 9228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * generate header upon request 9258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_gen_header; 9278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * seq_parameter_set_id 9308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_sps_id; 9328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of sequence parameter set structure array 9358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps_base; 9378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic_parameter_set_id 9408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_pps_id; 9428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Picture parameter set structure array 9458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps_base; 9478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current slice idx 9508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_slice_idx; 9528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the independent slice 9558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to which each MB in a frame belongs. 9568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 9588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 9618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 9638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy status 9668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_entropy_map; 9688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 9718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 9738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 9768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 9788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB start address 9818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cnt; 9838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB start address 9868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_start_add; 9888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB end address 9918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_end_add; 9938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 9958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input width in mbs 9968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 9978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_wd_mbs; 9988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 9998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input height in mbs 10018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ht_mbs; 10038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Bitstream structure 10068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S bitstrm_t *ps_bitstrm; 10088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform_8x8_mode_flag 10118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD8 i1_transform_8x8_mode_flag; 10138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy_coding_mode_flag 10168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD8 u1_entropy_coding_mode_flag; 10188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the top row nnz for luma 10218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*pu1_top_nnz_luma)[4]; 10238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left nnz for luma 10268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_left_nnz_luma; 10288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to zero runs before for the mb 10318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_zero_run[16]; 10338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the top row nnz for chroma 10368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*pu1_top_nnz_cbcr)[4]; 10388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left nnz for chroma 10418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u4_left_nnz_cbcr; 10438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb subblock coeff data 10468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_coeff_data; 10488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb subblock coeff data and number of subblocks and scan idx 10518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Incremented each time a coded subblock is processed 10528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_coeff_data; 10548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb header data 10578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_header_data; 10598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb header data and 10628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * incremented each time a coded mb is encoded 10638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_header_data; 10658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Error code during parse stage 10688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IH264E_ERROR_T i4_error_code; 10708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to job context 10738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 10758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to signal end of frame 10788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_end_of_frame; 10808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Abs POC count of the frame 10838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_pic_order_cnt; 10858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb skip run 10888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 *pi4_mb_skip_run; 10908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to signal end of sequence 10938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_last; 10958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 10968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 10978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Lower 32bits of time-stamp corresponding to the buffer being encoded 10988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 10998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_low; 11008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Upper 32bits of time-stamp corresponding to the buffer being encoded 11038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_timestamp_high; 11058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current Picture count - used for synchronization 11088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 11108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of bits consumed by header for I and P mb types 11138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_header_bits[MAX_MB_TYPE]; 11158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of bits consumed by residue for I and P mb types 11188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_residue_bits[MAX_MB_TYPE]; 11208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} entropy_ctxt_t; 11228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 11248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief macro block info. 11268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 11278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 11288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 11298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 11308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 11328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_is_intra; 11348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 11378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_mb_type; 11398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * csbp 11428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_csbp; 11448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 11468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb distortion 11478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 11488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 11498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mb_info_t; 11518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 11528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 11538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 1154c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief mb_hdr structures to access first few common elements of above 1155c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* structures 1156c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1157c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1158c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1159c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1160c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1161c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1162c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * mb type and mode 1163c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1164c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 u1_mb_type_mode; 1165c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1166c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1167c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * CBP 1168c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1169c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 u1_cbp; 1170c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1171c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1172c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * MB qp delta 1173c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1174c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 u1_mb_qp_delta; 1175c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1176c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1177c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Element to align structure to 2 byte boundary 1178c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1179c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 u1_pad; 1180c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_common_t; 1181c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1182c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1183c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1184c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for I4x4 MB 1185c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1186c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1187c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1188c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1189c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1190c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1191c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1192c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1193c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1194c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1195c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Sub block modes, 2 modes per byte 1196c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1197c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 au1_sub_blk_modes[8]; 1198c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_i4x4_t; 1199c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1200c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1201c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1202c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for I8x8 MB 1203c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1204c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1205c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1206c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1207c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1208c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1209c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1210c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1211c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1212c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1213c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1214c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Sub block modes, 2 modes per byte 1215c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1216c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar UWORD8 au1_sub_blk_modes[2]; 1217c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_i8x8_t; 1218c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1219c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1220c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1221c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for I16x16 MB 1222c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1223c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1224c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1225c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1226c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1227c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1228c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1229c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1230c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1231c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_i16x16_t; 1232c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1233c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1234c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1235c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for P16x16 MB 1236c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1237c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1238c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1239c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1240c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1241c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1242c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1243c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1244c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1245c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1246c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * MV 1247c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1248c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar WORD16 ai2_mv[2]; 1249c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_p16x16_t; 1250c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1251c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1252c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1253c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for PSKIP MB 1254c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1255c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1256c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1257c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1258c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1259c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1260c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1261c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1262c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1263c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_pskip_t; 1264c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1265c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1266c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1267c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for B16x16 MB 1268c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1269c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1270c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1271c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1272c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1273c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1274c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1275c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1276c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1277c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1278c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1279c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * MV 1280c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1281c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar WORD16 ai2_mv[2][2]; 1282c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_b16x16_t; 1283c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1284c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1285c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1286c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for BDIRECT MB 1287c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1288c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1289c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1290c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1291c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1292c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1293c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1294c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1295c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1296c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_bdirect_t; 1297c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1298c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1299c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1300c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief macro block info for PSKIP MB 1301c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1302c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1303c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef struct 1304c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1305c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar /** 1306c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar * Common MB header params 1307c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar */ 1308c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_common_t common; 1309c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1310c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_bskip_t; 1311c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1312c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1313c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1314c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* @brief Union of mb_hdr structures for size calculation 1315c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar* and to access first few common elements 1316c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 1317c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar*/ 1318c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar 1319c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakartypedef union 1320c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar{ 1321c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_i4x4_t mb_hdr_i4x4; 1322c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_i8x8_t mb_hdr_i8x8; 1323c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_i16x16_t mb_hdr_i16x16; 1324c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_p16x16_t mb_hdr_p16x16; 1325c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_pskip_t mb_hdr_pskip; 1326c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_b16x16_t mb_hdr_b16x16; 1327c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_bdirect_t mb_hdr_bdirect; 1328c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar mb_hdr_bskip_t mb_hdr_bskip; 1329c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar}mb_hdr_t; 1330c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar/** 1331c7d9c91417bf69c783f390e48dbbe7aafb45bbdaHarish Mahendrakar****************************************************************************** 13328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief structure presenting the neighbor availability of a mb 13338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* or subblk or any other partition 13348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 13358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 13368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 13378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 13388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left blk/subblk/partition 13408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_a; 13428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top blk/subblk/partition 13458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_b; 13478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * topright blk/subblk/partition 13508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_c; 13528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * topleft blk/subblk/partition 13558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_mb_d; 13578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}block_neighbors_t; 13598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 13618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 13628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief MB info related variables used during NMB processing 13638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 13648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 13668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 13678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_type; 13688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 13698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad_reached; 13708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cost; 13718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 13728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1373134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t as_skip_mv[4]; 13748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1375134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t as_pred_mv[2]; 13768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t s_ngbr_avbl; 13788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 13808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer to hold best subpel buffer in each MB of NMB 13818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_best_sub_pel_buf; 13838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 13858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stride for subpel buffer 13868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 13878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_bst_spel_buf_strd; 13888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}mb_info_nmb_t; 13908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 13918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 13928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 13938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Pixel processing thread context 13948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 13958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1396134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K Kstruct _proc_t 13978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 13988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 13998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy context 14008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S entropy_ctxt_t s_entropy; 14028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * me context 14058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S me_ctxt_t s_me_ctxt; 14078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to codec context 14108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S codec_t *ps_codec; 14128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * N mb process contest 14158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S n_mb_process_ctxt_t s_n_mb_ctxt; 14178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Source pointer to current MB luma 14208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_luma; 14228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Source pointer to current MB chroma 14258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_chroma; 14278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Recon pointer to current MB luma 14308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_luma; 14328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Recon pointer to current MB chroma 14358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_chroma; 14378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Ref pointer to current MB luma 14408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1441134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_luma[MAX_REF_PIC_CNT]; 14428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Ref pointer to current MB chroma 14458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1446134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_chroma[MAX_REF_PIC_CNT]; 14478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of input buffer (base :: mb (0,0)) 14508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_luma_base; 14528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of reconstructed buffer (base :: mb (0,0)) 14558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_luma_base; 14578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to luma plane of ref buffer (base :: mb (0,0)) 14608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1461134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_luma_base[MAX_REF_PIC_CNT]; 14628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of input buffer (base :: mb (0,0)) 14658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_src_buf_chroma_base; 14678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 14698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer for color space conversion of luma 14708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_csc_buf; 14728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 14748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer for color space conversion of luma 14758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_csc_buf; 14788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of reconstructed buffer (base :: mb (0,0)) 14818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_rec_buf_chroma_base; 14838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointer to chroma plane of reconstructed buffer (base :: mb (0,0)) 14868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1487134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_ref_buf_chroma_base[MAX_REF_PIC_CNT]; 14888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 14908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to ME NMB info 14918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_nmb_t *ps_nmb_info; 14938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_nmb_t *ps_cur_mb; 14958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 14968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 149753c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo * source luma stride 14988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 14998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_src_strd; 15008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 150253c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo * source chroma stride 150353c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo */ 150453c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo WORD32 i4_src_chroma_strd; 150553c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo 150653c6878c155d3329e947659c0d0ba1b97488e246Martin Storsjo /** 15078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon stride & ref stride 15088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * (strides for luma and chroma are the same) 15098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_rec_strd; 15118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel x plane from the pic buf 15148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_x_offset; 15168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel y plane from half x plane 15198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_y_offset; 15218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Offset for half pel xy plane from half y plane 15248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_half_xy_offset; 15268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (temp buffer 1) 15298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb; 15318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra 16x16 15348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_16x16; 15368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra 16x16_plane 15398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_16x16_plane; 15418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra chroma 15448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_chroma; 15468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pred buffer pointer (prediction buffer for intra chroma plane 15498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_pred_mb_intra_chroma_plane; 15518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * temp. reference buffer ptr for intra 4x4 when rdopt is on 15548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_ref_mb_intra_4x4; 15568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * prediction buffer stride 15598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pred_strd; 15618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform buffer pointer (temp buffer 2) 15648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 *pi2_res_buf; 15668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * temp. transform buffer ptr for intra 4x4 when rdopt is on 15698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD16 *pi2_res_buf_intra_4x4; 15718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * transform buffer stride 15748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_res_strd; 15768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * scratch buffer for inverse transform (temp buffer 3) 15798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_scratch_buff; 15818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame num 15848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_num; 15868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * start address of frame / sub-frame 15898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_strt_add; 15918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * IDR pic 15948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 15958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_idr; 15968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 15978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 15988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * idr_pic_id 15998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_idr_pic_id; 16018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input width in mbs 16048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_wd_mbs; 16068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Input height in mbs 16098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ht_mbs; 16118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice_type 16148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_slice_type; 16168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current slice idx 16198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_slice_idx; 16218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a picture in raster scan in MB units 16248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_x; 16268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a picture in raster scan in MB units 16298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_y; 16318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's x position within a Slice in raster scan in MB units 16348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_x; 16368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MB's y position within a Slice in raster scan in MB units 16398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_slice_y; 16418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb type 16448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_type; 16468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is intra 16498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_intra; 16518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb neighbor availability pointer 16548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t *ps_ngbr_avbl; 16568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * lambda (lagrange multiplier for cost computation) 16598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_lambda; 16618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb distortion 16648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_distortion; 16668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb cost 16698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cost; 16718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 16738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_mb_16 - ngbr avbl of curr mb */ 16748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_sb_8 - ngbr avbl of all 8x8 sub blocks of curr mb */ 16758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_sb_4 - ngbr avbl of all 4x4 sub blocks of curr mb */ 16768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4_ngbr_avbl_mb_c - chroma ngbr avbl of curr mb */ 16778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 16788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ngbr_avbl_16x16_mb; 16798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_neighbor_avail_8x8_subblks[4]; 16808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_ngbr_avbl_4x4_subblks[16]; 16818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_chroma_neighbor_avail_8x8_mb; 16828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the mode of mb sub blocks 16858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_intra_luma_mb_4x4_modes[16]; 16878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the predicted mode of mb sub blks 16908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_predicted_intra_luma_mb_4x4_modes[16]; 16928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * macro block intra 16x16 mode 16958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 16968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_l_i16_mode; 16978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 16988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 16998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array to store the mode of the macro block intra 8x8 4 modes 17008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_intra_luma_mb_8x8_modes[4]; 17028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra chroma mb mode 17058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 u1_c_i8_mode; 17078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 17098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* array to store pixels from the neighborhood for intra prediction */ 17108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i16 - 16 left pels + 1 top left pel + 16 top pels = 33 pels */ 17118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i8 - 8 lpels + 1 tlpels + 8 tpels + 8 tr pels = 25 pels */ 17128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* i4 - 4 lpels + 1 tlpels + 4 tpels + 4 tr pels = 13 pels */ 17138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* ic - 8 left pels + 1 top left pel + 8 top pels )*2 */ 17148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /********************************************************************/ 17158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_ngbr_pels[34]; 17168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * array for 8x8 intra pels filtering (temp buff 4) 17198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_neighbor_pels_i8x8_unfiltered[25]; 17218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of sub partitons in the inter pred MB 17248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_num_sub_partitions; 17268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to hold num PUs each MB in a picture 17298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_mb_pu_cnt; 17318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the array of structures having motion vectors, size 17348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * and position of sub partitions 17358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_pu; 17378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 1739134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Pointer to the pu of current co-located MB in list 1 1740134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 1741134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_t *ps_colpu; 1742134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1743134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 17448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * predicted motion vector 17458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1746134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t *ps_skip_mv; 1747134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 1748134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 1749134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * predicted motion vector 1750134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 1751134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K enc_pu_mv_t *ps_pred_mv; 17528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row mb syntax information base 17558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 17568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the mb syntax info pointer is identical across all process threads. 17578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 17588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 17598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 17608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 17618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 17628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 17638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 17648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 17658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t *ps_top_row_mb_syntax_ele_base; 17678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row mb syntax information 17708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t *ps_top_row_mb_syntax_ele; 17728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb syntax information 17758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_left_mb_syntax_ele; 17778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb syntax information 17808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_top_left_mb_syntax_ele; 17828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb syntax information 17858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mb_info_t s_top_left_mb_syntax_ME; 17888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb motion vector 17918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_left_mb_pu_ME; 17938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 17958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb motion vector 17968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 17978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_top_left_mb_pu_ME; 17988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 17998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb neighbor availability pointer 18018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S block_neighbors_t s_ngbr_avbl; 18038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 18068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the left mb are stored in the array below 18078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 au1_left_mb_intra_modes[16]; 18098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 18128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the top mb are stored in the array below 18138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 18148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 18158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the mb syntax info pointer is identical across all process threads. 18168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 18178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 18188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 18198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 18208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 18218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 18228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 18238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 18248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_top_mb_intra_modes_base; 18268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In case the macroblock type is intra, the intra modes of all 18298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partitions for the top mb are stored in the array below 18308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_top_mb_intra_modes; 18328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * left mb motion vector 18358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_left_mb_pu; 18378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top left mb motion vector 18408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t s_top_left_mb_pu; 18428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row motion vector info 18458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 18468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * In normal working scenarios, for a given context set, 18478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the top row pu pointer is identical across all process threads. 18488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But when the hard bound on slices are enabled, in multi core, frame 18498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * is partitioned in to sections equal to set number of cores and each 18508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * partition is run independently. In this scenario, a ctxt set will alone 18518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * appear to run multiple frames at a time. For this to occur, the common 18528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pointers across the proc ctxt should disappear. 18538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 18548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is done by allocating MAX_PROCESS_THREADS memory and distributing 18558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * across individual ctxts when byte bnd per slice is enabled. 18568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu_base; 18588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * top row motion vector info 18618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu; 18638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S enc_pu_t *ps_top_row_pu_ME; 18658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * coded block pattern 18688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_cbp; 18708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * csbp 18738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_csbp; 18758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * number of non zero coeffs 18788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 au4_nnz[5]; 18808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * number of non zero coeffs for intra 4x4 when rdopt is on 18838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 au4_nnz_intra_4x4[4]; 18858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame qp & mb qp 18888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_frame_qp, u4_mb_qp; 18908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * mb qp previous 18938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_mb_qp_prev; 18958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 18968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 18978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * quantization parameters for luma & chroma planes 18988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 18998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S quant_params_t *ps_qp_params[3]; 19008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb subblock coeff data 19038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_coeff_data; 19058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb subblock coeff data and number of subblocks and scan idx 19088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Incremented each time a coded subblock is processed 19098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_coeff_data; 19118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer frame level mb header data 19148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_mb_header_data; 19168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to mb header data and 19198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * incremented each time a coded mb is encoded 19208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mb_header_data; 19228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Signal that pic_init is called first time 19258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_first_pic_init; 19278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current MV Bank's buffer ID 19308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_cur_mv_bank_buf_id; 19328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to job context 19358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 19378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs to be processed in the current Job 19408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_mb_cnt; 19428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * ID for the current context - Used for debugging 19458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_id; 19478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current picture buffer structure 19508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_cur_pic; 19528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to current picture's mv buffer structure 19558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S mv_buf_t *ps_cur_mv_buf; 19578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to indicate if ps_proc was initialized at least once in a frame. 19608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This is needed to handle cases where a core starts to handle format 19618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * conversion jobs directly 19628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_init_done; 19648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process status: one byte per MB 19678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_proc_map; 19698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Deblk status: one byte per MB 19728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_deblk_map; 19748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Process status: one byte per MB 19778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_me_map; 19798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 19818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intra refresh mask. 19828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Indicates if an Mb is coded in intra mode within the current AIR interval 19838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE Refreshes after each AIR period 19848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE The map is shared between process 19858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_is_intra_coded; 19878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Disable deblock level (0: Enable completely, 3: Disable completely 19908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_disable_deblock_level; 19928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to the structure that contains deblock context 19958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 19968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S deblk_ctxt_t s_deblk_ctxt; 19978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 19988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 19998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Points to the array of slice indices which is used to identify the independent 20008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice to which each MB in a frame belongs. 20018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_slice_idx; 20038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 20068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 20088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of mb's to process in one loop 20118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_nmb_ntrpy; 20138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of mb's to process in one loop 20168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_nmb_me; 20188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Structure for current input buffer 20218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S inp_buf_t s_inp_buf; 20238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * api call cnt 20268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_encode_api_call_cnt; 20288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current Picture count - used for synchronization 20318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 20338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intermediate buffer for interpred leaf level functions 20368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai16_pred1[HP_BUFF_WD * HP_BUFF_HT]; 20388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference picture for the current picture 2041134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * TODO: Only 2 reference assumed currently 2042134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2043134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K pic_buf_t *aps_ref_pic[MAX_REF_PIC_CNT]; 2044134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2045134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2046134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Reference MV buff for the current picture 20478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2048134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K mv_buf_t *aps_mv_buf[MAX_REF_PIC_CNT]; 20498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame info used by RC 20528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S frame_info_t s_frame_info; 20548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NOTE NOT PERSISTANT INSIDE FUNCTIONS 20578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Min sad for current MB 20588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * will be populated initially 20598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Once a sad less than eq to u4_min_sad is reached, the value will be copied to the cariable 20608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 20628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * indicates weather we have rached minimum sa or not 20658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad_reached; 20678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 20698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current error code 20708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_error_code; 20728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enables or disables computation of recon 20758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_compute_recon; 20778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 2079134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Temporary buffers to be used for subpel computation 20808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2081134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K UWORD8 *apu1_subpel_buffs[SUBPEL_BUFF_CNT]; 20828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer holding best sub pel values 20858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_best_subpel_buf; 20878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 20898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stride for buffer holding best sub pel 20908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 20918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_bst_spel_buf_strd; 20928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2093134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K}; 20948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 20958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 20968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 20978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Rate control related variables 20988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 20998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef struct 21018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 21028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_rate_control_api; 21038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_frame_time; 21058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_time_stamp; 21078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pps_pd_frm_rate; 21098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame rate pull down 21128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 pre_encode_skip[MAX_CTXT_SETS]; 21148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * skip frame (cbr) 21178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 post_encode_skip[MAX_CTXT_SETS]; 21198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * rate control type 21228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rc_type_e e_rc_type; 21248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic type 21278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S picture_type_e e_pic_type; 21298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra cnt in previous frame 21328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 num_intra_in_prev_frame; 21348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * avg activity of prev frame 21378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_avg_activity; 21398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}rate_control_ctxt_t; 21418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 21438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Codec context 21448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sstruct _codec_t 21468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 21478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2148134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Id of current pic (input order) 21498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2150134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_poc; 21518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of encode frame API calls made 2154134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * This variable must only be used for context selection [Read only] 21558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_encode_api_call_cnt; 21578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of pictures encoded 21608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_cnt; 21628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of threads created 21658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_thread_cnt; 21678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Mutex used to keep the control calls thread-safe 21708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ctl_mutex; 21728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current active config parameters 21758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S cfg_params_t s_cfg; 21778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array containing the config parameter sets 21808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S cfg_params_t as_cfg[MAX_ACTIVE_CONFIG_PARAMS]; 21828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Color format used by encoder internally 21858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_COLOR_FORMAT_T e_codec_color_format; 21878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon stride 21908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * (strides for luma and chroma are the same) 21918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_rec_strd; 21938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 21958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to enable/disable deblocking of a frame 21968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 21978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_disable_deblk_pic; 21988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 21998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of continuous frames where deblocking was disabled 22018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_disable_deblk_pic_cnt; 22038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame type 22068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S PIC_TYPE_T pic_type; 22088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame qp 22118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_frame_qp; 22138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * frame num 22168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_frame_num; 22188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * slice_type 22218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_slice_type; 22238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 22258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Force current frame to specific type 22268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S IV_PICTURE_CODING_TYPE_T force_curr_frame_type; 22288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * IDR pic 22318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_idr; 22338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * idr_pic_id 22368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_idr_pic_id; 22388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flush mode 22418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_flush_mode; 22438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Encode header mode 22468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_header_mode; 22488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to indicate if header has already 22518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * been generated when i4_api_call_cnt 0 22528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_header_generated; 22548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Encode generate header 22578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_gen_header; 22598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * To signal successful completion of init 22628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_init_done; 22648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * To signal that at least one picture was decoded 22678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_first_pic_done; 22698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reset flag - Codec is reset if this flag is set 22728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_reset_flag; 22748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current error code 22778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_error_code; 22798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * threshold residue 22828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_thres_resi; 22848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * disable intra inter gating 22878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_inter_gate; 22898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds mem records passed during init. 22928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This will be used to return the mem records during retrieve call 22938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S iv_mem_rec_t *ps_mem_rec_backup; 22958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 22968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 22978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Flag to determine if the entropy thread is active 22988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 22998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S volatile UWORD32 au4_entropy_thread_active[MAX_CTXT_SETS]; 23008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Mutex used to keep the entropy calls thread-safe 23038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_entropy_mutex; 23058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Job queue buffer base 23088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq_buf, *pv_entropy_jobq_buf; 23108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Job Queue mem tab size 23138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_jobq_buf_size, i4_entropy_jobq_buf_size; 23158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for MV Bank buffer manager 23188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_buf_mgr_base; 23208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MV Bank buffer manager 23238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_buf_mgr; 23258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to MV Buf structure array 23288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *ps_mv_buf; 23308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Base address for Motion Vector bank buffer 23338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_mv_bank_buf_base; 23358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MV Bank size allocated 23388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_total_mv_bank_size; 23408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Picture buffer manager for reference pictures 23438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ref_buf_mgr_base; 23458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Picture buffer manager for reference pictures 23488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_ref_buf_mgr; 23508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of reference buffers added to the buffer manager 23538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_ref_buf_cnt; 23558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to Pic Buf structure array 23588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *ps_pic_buf; 23608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Base address for Picture buffer 23638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_pic_buf_base; 23658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Total pic buffer size allocated 23688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_total_pic_buf_size; 23708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Buffer manager for output buffers 23738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_out_buf_mgr_base; 23758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer manager for output buffers 23788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_out_buf_mgr; 23808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current output buffer's buffer ID 23838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_out_buf_id; 23858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of output buffers added to the buffer manager 23888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_out_buf_cnt; 23908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for Picture buffer manager for input buffers 23938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_inp_buf_mgr_base; 23958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 23968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 23978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Picture buffer manager for input buffers 23988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 23998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_inp_buf_mgr; 24008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current input buffer's buffer ID 24038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_inp_buf_id; 24058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of input buffers added to the buffer manager 24088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_inp_buf_cnt; 24108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Current input buffer 24138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_inp_buf; 24158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to dpb manager structure 24188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_dpb_mgr; 24208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Sequence parameter set structure array 24238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S sps_t *ps_sps_base; 24258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of Picture parameter set structure array 24288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pps_t *ps_pps_base; 24308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * seq_parameter_set_id 24338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_sps_id; 24358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * pic_parameter_set_id 24388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pps_id; 24408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pointer to base of slice header structure array 24438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S slice_header_t *ps_slice_hdr_base; 24458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * packed residue coeff data size for 1 row of mbs 24488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_size_coeff_data; 24508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * packed header data size for 1 row of mbs 24538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_size_header_data; 24558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Processing context - One for each processing thread 24588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Create two sets, each set used for alternate frames 24598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S process_ctxt_t as_process[MAX_PROCESS_CTXT]; 24618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Thread handle for each of the processing threads 24648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *apv_proc_thread_handle[MAX_PROCESS_THREADS]; 24668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Thread created flag for each of the processing threads 24698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_process_thread_created[MAX_PROCESS_THREADS]; 24718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Void pointer to process job context 24748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S void *pv_proc_jobq, *pv_entropy_jobq; 24768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of MBs processed together for better instruction cache handling 24798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_proc_nmb; 24818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Previous POC lsb 24848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_prev_poc_lsb; 24868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Previous POC msb 24898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_prev_poc_msb; 24918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Max POC lsb that has arrived till now 24948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 24958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_max_prev_poc_lsb; 24968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 24978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 24988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Context for format conversion 24998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S fmt_conv_t s_fmt_conv; 25018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Absolute pic order count 25048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_abs_pic_order_cnt; 25068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Pic order count of lsb 25098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_pic_order_cnt_lsb; 25118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array giving current picture being processed in each context set 25148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ai4_pic_cnt[MAX_CTXT_SETS]; 25168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 25188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Min sad to search for 25198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_min_sad; 25218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Reference picture set 25248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ref_set_t as_ref_set[MAX_DPB_SIZE + MAX_CTXT_SETS]; 25268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2527134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 25288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 25298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Air pic cnt 25308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains the number of pictures that have been encoded with air 25318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * This value is moudulo air refresh period 25328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i4_air_pic_cnt; 25348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 25368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Intra refresh map 25378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Stores the frames at which intra refresh should occur for a MB 25388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 *pu2_intr_rfrsh_map; 25408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 25428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Indicates if the current frame is used as a reference frame 25438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_is_curr_frm_ref; 25458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 2547134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Indicates if there can be non reference frames in the stream 2548134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2549134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_non_ref_frames_in_stream; 2550134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2551134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /* 25528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for color space conversion for luma plane 25538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_csc_buf_base; 25558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 25578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for color space conversion foe chroma plane 25588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_csc_buf_base; 25608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function pointers for intra pred leaf level functions luma 25638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_16_l[MAX_I16x16]; 25658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_8_l[MAX_I8x8]; 25668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_4_l[MAX_I4x4]; 25678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function pointers for intra pred leaf level functions chroma 25708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_intra_pred apf_intra_pred_c[MAX_CH_I8x8]; 25728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * luma core coding function pointer 25758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*luma_energy_compaction[4])(process_ctxt_t *ps_proc); 25778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * chroma core coding function pointer 25808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 (*chroma_energy_compaction[2])(process_ctxt_t *ps_proc); 25828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for intra blk of mb type 16x16 25858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_luma_16x16_resi_trans_dctrans_quant_ft *pf_resi_trans_dctrans_quant_16x16; 25878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for intra blk of mb type 16x16 25908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_luma_16x16_idctrans_iquant_itrans_recon_ft *pf_idctrans_iquant_itrans_recon_16x16; 25928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 4x4 blk luma 25958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 25968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_4x4; 25978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 25988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 25998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 4x4 blk luma 26008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_chroma_4x4; 26028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 26048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * hadamard transform and quant for a 4x4 block 26058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_hadamard_quant_ft *pf_hadamard_quant_4x4; 26078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 26098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * hadamard transform and quant for a 4x4 block 26108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_hadamard_quant_ft *pf_hadamard_quant_2x2_uv; 26128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk 26158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_4x4; 26178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma 4x4 blk 26208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4; 26228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk with only single dc coeff 26258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_4x4_dc; 26278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma 4x4 blk with only single dc coeff 26308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4_dc; 26328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 26348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inverse hadamard transform and iquant for a 4x4 block 26358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_4x4; 26378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 26398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inverse hadamard transform and iquant for a 4x4 block 26408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_2x2_uv; 26428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 26448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Function for interleave copy* 26458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_interleave_copy_ft *pf_interleave_copy; 26478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for 8x8 blk 26508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_resi_trans_quant_ft *pf_resi_trans_quant_8x8; 26528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 8x8 blk 26558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for 4x4 blk 26588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_8x8; 26608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forward transform for chroma MB 26638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_chroma_8x8_resi_trans_dctrans_quant_ft *pf_resi_trans_dctrans_quant_8x8_chroma; 26658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * inverse transform for chroma MB 26688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_idctrans_iquant_itrans_recon_ft *pf_idctrans_iquant_itrans_recon_8x8_chroma; 26708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical luma edge with blocking strength 4 26738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4; 26758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical chroma edge with blocking strength 4 26788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4; 26808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical luma edge with blocking strength less than 4 26838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4; 26858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock vertical chroma edge with blocking strength less than 4 26888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4; 26908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal luma edge with blocking strength 4 26938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bs4_ft *pf_deblk_luma_horz_bs4; 26958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 26968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 26978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal chroma edge with blocking strength 4 26988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 26998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_horz_bs4; 27008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal luma edge with blocking strength less than 4 27038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_edge_bslt4_ft *pf_deblk_luma_horz_bslt4; 27058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * deblock horizontal chroma edge with blocking strength less than 4 27088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_horz_bslt4; 27108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * functions for padding 27148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_top; 27168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_bottom; 27178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_left_luma; 27188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_left_chroma; 27198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_right_luma; 27208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_pad pf_pad_right_chroma; 27218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Inter pred leaf level functions 27248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_copy; 27268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_horz; 27278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_luma_ft *pf_inter_pred_luma_vert; 27288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_inter_pred_luma_bilinear pf_inter_pred_luma_bilinear; 27298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ih264_inter_pred_chroma_ft *pf_inter_pred_chroma; 27308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * fn ptrs for compute sad routines 27338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ime_compute_sad_ft *apf_compute_sad_16x16[2]; 27358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ime_compute_sad_ft *pf_compute_sad_16x8; 27368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2737134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2738134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2739134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Function pointer for computing ME 2740134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * 1 for PSLICE and 1 for BSLICE 2741134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2742134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ih264e_compute_me_ft *apf_compute_me[2]; 2743134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2744134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2745134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Function pointers for computing SKIP parameters 2746134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2747134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ih264e_skip_params_ft *apf_find_skip_params_me[2]; 2748134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 27498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * fn ptrs for memory handling operations 27518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memcpy pf_mem_cpy; 27538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memset pf_mem_set; 27548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memcpy_mul8 pf_mem_cpy_mul8; 27558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_memset_mul8 pf_mem_set_mul8; 27568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * intra mode eval -encoder level function 27598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_modes pf_ih264e_evaluate_intra16x16_modes; 27618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_modes pf_ih264e_evaluate_intra_chroma_modes; 27628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_evaluate_intra_4x4_modes pf_ih264e_evaluate_intra_4x4_modes; 27638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* Half pel generation function - encoder level 27658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 27668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_sixtapfilter_horz pf_ih264e_sixtapfilter_horz; 27688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_sixtap_filter_2dvh_vert pf_ih264e_sixtap_filter_2dvh_vert; 27698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * color space conversion form YUV 420P to YUV 420Sp 27728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_fmt_conv_420p_to_420sp pf_ih264e_conv_420p_to_420sp; 27748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * color space conversion form YUV 420P to YUV 420Sp 27788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pf_fmt_conv_422ile_to_420sp pf_ih264e_fmt_conv_422i_to_420sp; 27808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * write mb layer for a given slice I, P, B 27838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2784134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K IH264E_ERROR_T (*pf_write_mb_syntax_layer[2][3]) ( entropy_ctxt_t *ps_ent_ctxt ); 27858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Output buffer 27888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S out_buf_t as_out_buf[MAX_CTXT_SETS]; 27908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * recon buffer 27938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rec_buf_t as_rec_buf[MAX_CTXT_SETS]; 27958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 27968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 27978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * rate control context 27988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 27998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S rate_control_ctxt_t s_rate_control; 2800134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2801134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 2802134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * input buffer queue 2803134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2804134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K inp_buf_t as_inp_list[MAX_NUM_BFRAMES]; 2805134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 280663f40a8f8582f4d9cfe1668089674af18cda677cHarinarayanan K K /** 2807aad45873352203b7dc56afa2e079b230c1b54229Harinarayanan K K * Flag to indicate if any IDR requests are pending 280863f40a8f8582f4d9cfe1668089674af18cda677cHarinarayanan K K */ 2809aad45873352203b7dc56afa2e079b230c1b54229Harinarayanan K K WORD32 i4_pending_idr_flag; 2810134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 2811134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /* 2812134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *Flag to indicate if we have recived the last input frame 2813134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 2814134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K WORD32 i4_last_inp_buff_received; 2815134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 28168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}; 2817134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 28188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#endif /* IH264E_STRUCTS_H_ */ 2819