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* @file 238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ih264e_defs.h 248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief 268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Definitions used in the encoder 278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author 298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ittiam 308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks 328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* None 338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#ifndef IH264E_DEFS_H_ 388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define IH264E_DEFS_H_ 398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 41134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define PARSE_COEFF_DATA_BLOCK_4x4(pv_mb_coeff_data, ps_mb_coeff_data, u4_nnz, u4_sig_coeff_map, pi2_res_block) \ 42134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K{ \ 43134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ps_mb_coeff_data = pv_mb_coeff_data; \ 44134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K u4_nnz = ps_mb_coeff_data->i4_sig_map_nnz & 0xff; \ 45134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K if (u4_nnz) \ 46134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K { \ 47134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K u4_sig_coeff_map = ps_mb_coeff_data->i4_sig_map_nnz >> 16; \ 48134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K pi2_res_block = ps_mb_coeff_data->ai2_residue; \ 49134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz); \ 50134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K } \ 51134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K else \ 52134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K { \ 53134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue; \ 54134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K } \ 55134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K} 56134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Width and height restrictions */ 598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Minimum width supported by codec 628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_WD 16 648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum width supported by codec 678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 6972ba34b131d7bbf7b7230c7ce9093c814b32aa28Ryan Haining/* changed by haining@ to support Nexus 6P screen size, was previously 1920 */ 7072ba34b131d7bbf7b7230c7ce9093c814b32aa28Ryan Haining#define MAX_WD 2560 718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Minimum height supported by codec 748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_HT 16 768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum height supported by codec 798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 8172ba34b131d7bbf7b7230c7ce9093c814b32aa28Ryan Haining/* changed by haining@ to support Nexus 6P screen size, was previously 1920 */ 8272ba34b131d7bbf7b7230c7ce9093c814b32aa28Ryan Haining#define MAX_HT 2560 838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Padding sizes */ 868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding used for top of the frame 898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_TOP 32 918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding used for bottom of the frame 948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_BOT 32 968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding used at left of the frame 998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_LEFT 32 1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding used at right of the frame 1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_RIGHT 32 1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding for width 1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_WD (PAD_LEFT + PAD_RIGHT) 1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Padding for height 1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PAD_HT (PAD_TOP + PAD_BOT) 1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* 1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * buffer width and height for half pel buffers 1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define HP_BUFF_WD 24 1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define HP_BUFF_HT 18 1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Number of frame restrictions */ 1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 125134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Maximum number of reference pictures 126134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 127134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define MAX_REF_PIC_CNT 2 128134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 129134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** 130134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Minimum number of reference pictures 131134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 132134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define MIN_REF_PIC_CNT 1 133134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 134134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** 135134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Maximum number of B pictures between two I/P pictures 136134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 137134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define MAX_NUM_BFRAMES 10 138134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 139134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** 1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum number of reference buffers in DPB manager 1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_REF_CNT 32 1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1456cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K/* Minimum size of inter prediction unit supported by encoder */ 1466cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K/*****************************************************************************/ 1476cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K#define ENC_MIN_PU_SIZE 16 1486cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K 1496cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K/*****************************************************************************/ 1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Num cores releated defs */ 1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum number of cores 1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_NUM_CORES 8 1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum number of threads for pixel processing 1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_PROCESS_THREADS MAX_NUM_CORES 1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum process context sets 1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Used to stagger encoding of MAX_CTXT_SETS in parallel 1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1666cb6772805d86c66848b15a54926e396daed06b1Harinarayanan K K#define MAX_CTXT_SETS 1 1678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum number of contexts 1698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Kept as twice the number of threads, to make it easier to initialize the contexts 1708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * from master thread 1718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_PROCESS_CTXT MAX_NUM_CORES * MAX_CTXT_SETS 1738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Profile and level restrictions */ 1768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 1778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Max level supported by the codec 1798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_LEVEL IH264_LEVEL_51 1818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Min level supported by the codec 1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_LEVEL IH264_LEVEL_10 1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Maximum number of slice headers that are held in memory simultaneously 1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * For single core implementation only 1 slice header is enough. 1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * But for multi-core parsing thread needs to ensure that slice headers are 1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * stored till the last CB in a slice is decoded. 1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Parsing thread has to wait till last CB of a slice is consumed before reusing 1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * overwriting the slice header 1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * MAX_SLICE_HDR_CNT is assumed to be a power of 2 1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define LOG2_MAX_SLICE_HDR_CNT 8 1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_SLICE_HDR_CNT (1 << LOG2_MAX_SLICE_HDR_CNT) 1998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Generic declarations */ 2018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_LEVEL 40 2028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_RECON_ENABLE 0 2038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_RC IVE_RC_STORAGE 2048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_FRAMERATE 120000 2059b39261eb258284a22d7b093f44a3cba4bd8ff90Ram Mohan#define DEFAULT_MAX_BITRATE 50000000 206134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define DEFAULT_MAX_NUM_BFRAMES 0 2078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_SRCH_RANGE_X 256 2088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_SRCH_RANGE_Y 256 2098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_SLICE_PARAM 256 2108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_SRC_FRAME_RATE 30000 2118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_TGT_FRAME_RATE 30000 2128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_BITRATE 6000000 2138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_QP_MIN 10 2148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_QP_MAX 51 2158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_I_QP 25 2168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_P_QP 28 2178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_B_QP 28 2188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_AIR_MODE IVE_AIR_MODE_NONE 2198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_AIR_REFRESH_PERIOD 30 2208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_VBV_DELAY 1000 2218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_VBV_SIZE 16800000 /* level 3.1 */ 2228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_NUM_CORES 1 2238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_ME_SPEED_PRESET 100 2248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_HPEL 1 2258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_QPEL 1 2268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_I4 1 2278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_I8 0 2288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_I16 1 2298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_ENABLE_FAST_SAD 0 2308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_ENABLE_SATQD 1 2318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MIN_SAD_ENABLE 0 2328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MIN_SAD_DISABLE -1 2338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_SRCH_RNG_X 64 2348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_SRCH_RNG_Y 48 2358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_I_INTERVAL 30 2368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_IDR_INTERVAL 1000 2378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_B_FRAMES 0 2388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_DISABLE_DEBLK_LEVEL 0 2398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_PROFILE IV_PROFILE_BASE 2408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MIN_INTRA_FRAME_RATE 1 2418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_INTRA_FRAME_RATE 2147483647 2428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MIN_BUFFER_DELAY 30 2438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_MAX_BUFFER_DELAY 20000 2448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_STRIDE 0 2458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_ENC_SPEED_PRESET IVE_USER_DEFINED 2468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_PRE_ENC_ME 0 2478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DEFAULT_PRE_ENC_IPE 0 248134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define DEFAULT_ENTROPY_CODING_MODE 0 2498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Maximum number of entries in input buffer list */ 2518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_INP_BUF_LIST_ENTRIES 32 2528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Maximum number of entries in output buffer list */ 2548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_OUT_BUF_LIST_ENTRIES 32 2558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Maximum number of entries in recon buffer list used within the encoder */ 2578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_REC_LIST_ENTRIES 16 2588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Number of buffers created to hold half-pel planes for every reference buffer */ 260134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define HPEL_PLANES_CNT 1 261134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 262134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/** Number of buffers Needed for SUBPEL and BIPRED computation */ 263134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define SUBPEL_BUFF_CNT 4 2648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 2668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 2678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Macro to compute total size required to hold on set of scaling matrices 2688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 2698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define SCALING_MAT_SIZE(m_scaling_mat_size) \ 2718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ \ 2728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S m_scaling_mat_size = 6 * TRANS_SIZE_4 * TRANS_SIZE_4; \ 2738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S m_scaling_mat_size += 6 * TRANS_SIZE_8 * TRANS_SIZE_8; \ 2748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S m_scaling_mat_size += 6 * TRANS_SIZE_16 * TRANS_SIZE_16; \ 2758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S m_scaling_mat_size += 2 * TRANS_SIZE_32 * TRANS_SIZE_32; \ 2768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} 2778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 2798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 2808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Macros to get raster scan position of a block[8x8] / sub block[4x4] 2818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ****************************************************************************** 2828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define GET_BLK_RASTER_POS_X(x) ((x & 0x01)) 2848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define GET_BLK_RASTER_POS_Y(y) ((y >> 1)) 2858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define GET_SUB_BLK_RASTER_POS_X(x) ((x & 0x01)) 2868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define GET_SUB_BLK_RASTER_POS_Y(y) ((y >> 1)) 2878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NUM_RC_MEMTABS 17 2898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 2918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *************************************************************************** 2928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enum to hold various mem records being request 2938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S **************************************************************************** 2948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 2958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Senum 2968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 2978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 2988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Codec Object at API level 2998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_IV_OBJ, 3018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Codec context 3048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_CODEC, 3068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 308134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Cabac context 309134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 310134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K MEM_REC_CABAC, 311134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 312134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 313134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Cabac context_mb_info 314134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */ 315134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K MEM_REC_CABAC_MB_INFO, 316134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K 317134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K /** 3188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * entropy context 3198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_ENTROPY, 3218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer to hold coeff data 3248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_MB_COEFF_DATA, 3268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Buffer to hold coeff data 3298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_MB_HEADER_DATA, 3318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Motion vector bank 3348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_MVBANK, 3368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Motion vector bits 3398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_MVBITS, 3418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds mem records passed to the codec. 3448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_BACKUP, 3468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds SPS 3498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_SPS, 3518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds PPS 3548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_PPS, 3568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds Slice Headers 3598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_SLICE_HDR, 3618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains map indicating slice index per MB basis 3648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_SLICE_MAP, 3668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds thread handles 3698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_THREAD_HANDLE, 3718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds control call mutex 3748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_CTL_MUTEX, 3768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds entropy call mutex 3798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_ENTROPY_MUTEX, 3818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds memory for Process JOB Queue 3848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_PROC_JOBQ, 3868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds memory for Entropy JOB Queue 3898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_ENTROPY_JOBQ, 3918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains status map indicating processing status per MB basis 3948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 3958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_PROC_MAP, 3968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 3978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 3988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains status map indicating deblocking status per MB basis 3998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_DBLK_MAP, 4018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 4038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains AIR map and mask 4048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_AIR_MAP, 4068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Contains status map indicating ME status per MB basis 4098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_ME_MAP, 4118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds dpb manager context 4148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_DPB_MGR, 4168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds intermediate buffers needed during processing stage 4198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Memory for process contexts is allocated in this memtab 4208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_PROC_SCRATCH, 4228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds buffers for vert_bs, horz_bs and QP (all frame level) 4258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_QUANT_PARAM, 4278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds top row syntax information 4308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_TOP_ROW_SYN_INFO, 4328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds buffers for vert_bs, horz_bs and QP (all frame level) 4358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_BS_QP, 4378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds input buffer manager context 4408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_INP_PIC, 4428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds output buffer manager context 4458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_OUT, 4478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Holds picture buffer manager context and array of pic_buf_ts 4508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Also holds reference picture buffers in non-shared mode 4518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_REF_PIC, 4538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 4558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Mem record for color space conversion 4568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_CSC, 4588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * NMB info struct 4618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_MB_INFO_NMB, 4638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Rate control of memory records. 4668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_RC, 4688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Place holder to compute number of memory records. 4718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S MEM_REC_CNT = MEM_REC_RC + NUM_RC_MEMTABS, 4738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /* 4758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Do not add anything below 4768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}; 4788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define DISABLE_DEBLOCK_INTERVAL 8 4808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 4828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S **************************************************************************** 4838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Disable deblock levels 4848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Level 0 enables deblocking completely and level 4 disables completely 4858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Other levels are intermediate values to control deblocking level 4868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S **************************************************************************** 4878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Senum 4898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 4908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enable deblocking completely 4928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DISABLE_DEBLK_LEVEL_0, 4948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 4958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 4968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Disable only within MB edges - Not supported currently 4978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 4988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DISABLE_DEBLK_LEVEL_1, 4998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enable deblocking once in DEBLOCK_INTERVAL number of pictures 5028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * and for I slices 5038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DISABLE_DEBLK_LEVEL_2, 5058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Enable deblocking only for I slices 5088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DISABLE_DEBLK_LEVEL_3, 5108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S /** 5128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Disable deblocking completely 5138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DISABLE_DEBLK_LEVEL_4 5158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S}; 5168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 5188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S **************************************************************************** 5198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Number of buffers for I/O based on format 5208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S **************************************************************************** 5218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 5228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Minimum number of input buffers */ 5248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_INP_BUFS 2 5258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Minimum number of output buffers */ 5278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_OUT_BUFS 1 5288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Minimum number of components in bitstream buffer */ 5308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_BITS_BUFS_COMP 1 5318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Minimum number of components in raw buffer */ 5338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_RAW_BUFS_420_COMP 3 5348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_RAW_BUFS_422ILE_COMP 1 5358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_RAW_BUFS_RGB565_COMP 1 5368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_RAW_BUFS_RGBA8888_COMP 1 5378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MIN_RAW_BUFS_420SP_COMP 2 5388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Maximum number of active config paramter sets */ 5408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_ACTIVE_CONFIG_PARAMS 32 5418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 5438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 5448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief Thresholds for luma & chroma to determine if the 8x8 subblock needs 5458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * to be encoded or skipped 5468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 5478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 5488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define LUMA_SUB_BLOCK_SKIP_THRESHOLD 4 5498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define LUMA_BLOCK_SKIP_THRESHOLD 5 5508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define CHROMA_BLOCK_SKIP_THRESHOLD 4 5518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 5538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 5548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief defines the first byte of a NAL unit 5558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * forbidden zero bit - nal_ref_idc - nal_unit_type 5568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S****************************************************************************** 5578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 5588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 11 - 00111] */ 5598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_SPS_FIRST_BYTE 0x67 5608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 11 - 01000] */ 5628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_PPS_FIRST_BYTE 0x68 5638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 11 - 00001] */ 5658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_SLICE_FIRST_BYTE 0x61 5668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 00 - 00001] */ 5688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_NON_REF_SLICE_FIRST_BYTE 0x01 5698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 11 - 00101] */ 5718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_IDR_SLICE_FIRST_BYTE 0x65 5728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 00 - 01100] */ 5748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_FILLER_FIRST_BYTE 0x0C 5758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* [0 - 00 - 00110] */ 5778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define NAL_SEI_FIRST_BYTE 0x06 5788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 579134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define H264_ALLOC_INTER_FRM_INTV 2 5808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 581134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K#define H264_MPEG_QP_MAP 255 5828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MPEG2_QP_ELEM (H264_MPEG_QP_MAP + 1) 5848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define H264_QP_ELEM (MAX_H264_QP + 1) 5858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define H264_INIT_QUANT_I 26 5878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define H264_INIT_QUANT_P 34 5888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 5898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#endif /*IH264E_DEFS_H_*/ 590