10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/****************************************************************************** 20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Licensed under the Apache License, Version 2.0 (the "License"); 60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* you may not use this file except in compliance with the License. 70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* You may obtain a copy of the License at: 80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* http://www.apache.org/licenses/LICENSE-2.0 100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Unless required by applicable law or agreed to in writing, software 120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* distributed under the License is distributed on an "AS IS" BASIS, 130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* See the License for the specific language governing permissions and 150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* limitations under the License. 160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************/ 180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @file 210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* ihevc_defs.h 220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief 240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Definitions used in the codec 250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @author 270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Ittiam 280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks 310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* None 320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/ 350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#ifndef _IHEVC_DEFS_H_ 360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define _IHEVC_DEFS_H_ 370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Profile and Levels */ 400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_PROFILE_MAIN = 0, 440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_TIER_MAIN, 490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_TIER_HIGH, 500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Slice type enums - Do not change the values */ 540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar BSLICE = 0, 580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PSLICE = 1, 590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar ISLICE = 2, 600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Enum for Level : Multiplication by 30 as per spec is implemented as multiplied by 10 and then by 3 630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * User will give level multiplied by 10 in the API 640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_10 = 10 * 3, 680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_20 = 20 * 3, 690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_21 = 21 * 3, 700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_30 = 30 * 3, 710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_31 = 31 * 3, 720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_40 = 40 * 3, 730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_41 = 41 * 3, 740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_50 = 50 * 3, 750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_51 = 51 * 3, 760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_52 = 52 * 3, 770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_60 = 60 * 3, 780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_61 = 61 * 3, 790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar IHEVC_LEVEL_62 = 62 * 3, 800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_TRAIL_N = 0, 860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_TRAIL_R, 870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_TSA_N, 880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_TSA_R, 890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_STSA_N, 900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_STSA_R, 910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RADL_N, 920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RADL_R, 930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RASL_N, 940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RASL_R, 950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_N10 = 10, 960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_N12 = 12, 970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_N14 = 14, 980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_R11 = 11, 990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_R13 = 13, 1000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL_R15 = 15, 1010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_BLA_W_LP = 16, 1030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_BLA_W_DLP, 1040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_BLA_N_LP, 1050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_IDR_W_LP, 1060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_IDR_N_LP, 1070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_CRA, 1080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_RAP_VCL22 = 22, 1090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_RAP_VCL23 = 23, 1100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL24 = 24, 1110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_VCL31 = 31, 1120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_VPS = 32, 1130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_SPS, 1140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_PPS, 1150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_AUD, 1160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_EOS, 1170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_EOB, 1180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_FD, 1190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_PREFIX_SEI = 39, 1200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_SUFFIX_SEI = 40, 1210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_NVCL41 = 41, 1220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_RSV_NVCL47 = 47 , 1230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_UNSPEC48 = 48 , 1240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar NAL_UNSPEC63 = 49, 1250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar CHROMA_FMT_IDC_MONOCHROME = 0, 1300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar CHROMA_FMT_IDC_YUV420 = 1, 1310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar CHROMA_FMT_IDC_YUV422 = 2, 1320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar CHROMA_FMT_IDC_YUV444 = 3, 1330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar CHROMA_FMT_IDC_YUV444_PLANES = 4, 1340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Pred Modes */ 1370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Do not change enum values */ 1380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_MODE_INTER = 0, 1410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_MODE_INTRA = 1, 1420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_MODE_SKIP = 2 1430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Partition Modes */ 1460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Do not change enum values */ 1470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_2Nx2N = 0, 1500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_2NxN = 1, 1510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_Nx2N = 2, 1520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_NxN = 3, 1530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_2NxnU = 4, 1540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_2NxnD = 5, 1550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_nLx2N = 6, 1560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PART_nRx2N = 7 1570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Prediction list */ 1600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Do not change enum values */ 1610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_L0 = 0, 1640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_L1 = 1, 1650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar PRED_BI = 2 1660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 1690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Scan types 1700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 1710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCAN_DIAG_UPRIGHT, 1740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCAN_HORZ, 1750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCAN_VERT 1760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 1770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 1790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * VUI aspect ratio indicator 1800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 1810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 1820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 1830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_UNUSED = 0, 1840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_1_1 = 1, 1850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_12_11, 1860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_10_11, 1870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_16_11, 1880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_40_33, 1890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_24_11, 1900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_20_11, 1910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_32_11, 1920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_80_33, 1930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_18_11, 1940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_15_11, 1950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_64_33, 1960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_160_99, 1970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_4_3, 1980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_3_2, 1990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SAR_2_1, 2000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar EXTENDED_SAR = 255 2010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 2020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarenum 2040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 2050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_COMPONENT = 0, 2060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_PAL, 2070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_NTSC, 2080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_SECAM, 2090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_MAC, 2100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VID_FMT_UNSPECIFIED 2110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}; 2120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH 8 2140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH_LUMA BIT_DEPTH 2150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH_CHROMA BIT_DEPTH 2160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Profile tier level defs */ 2180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PROFILE_COMPATBLTY 32 2200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Reference frame defs */ 2230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum DPB size */ 2250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_DPB_SIZE 16 2260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* VPS restrictions */ 2300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of VPS allowed in Main Profile */ 2330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_VPS_CNT 16 2340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max sub layers in VPS */ 2360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_SUB_LAYERS 7 2370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max number of HRD parameters */ 2390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_HRD_PARAMS 2 2400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum number of operation point layers */ 2420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_OP_LAYERS 2 2430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Tile restrictions */ 2470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Minimum tile width in Main Profile */ 2490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_TILE_WD MIN_CTB_SIZE 2500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Minimum tile height in Main Profile */ 2520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_TILE_HT MIN_CTB_SIZE 2530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* SPS restrictions */ 2560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of SPS allowed in Main Profile*/ 2590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* An extra buffer is allocated to write the parsed data 2600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * It is copied to the appropriate location later */ 2610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_SPS_CNT (16 + 1) 2620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max sub layers in PPS */ 2640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SPS_MAX_SUB_LAYERS 7 2650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum long term reference pics */ 2670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_LTREF_PICS_SPS 16 2680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_STREF_PICS_SPS 64 2700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* PPS restrictions */ 2730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of PPS allowed in Main Profile */ 2760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* An extra buffer is allocated to write the parsed data 2770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * It is copied to the appropriate location later */ 2780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PPS_CNT (64 + 1) 2790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Macro definitions for sizes of CTB, PU, TU, CU */ 2820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 2830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* CTB Size Range */ 2850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CTB_SIZE 64 2860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_CTB_SIZE 16 2870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* TU Size Range */ 2890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_SIZE 32 2900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_TU_SIZE 4 2910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max Transform Size */ 2930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TRANS_SIZE (MAX_TU_SIZE*MAX_TU_SIZE) 2940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* PU Size Range */ 2960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_SIZE 64 2970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_PU_SIZE 4 2980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 2990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* CU Size Range */ 3000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_SIZE 64 3010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_CU_SIZE 8 3020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB row */ 3050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_IN_CTB_ROW ((MAX_CTB_SIZE / MIN_TU_SIZE)) 3060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB row */ 3080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_IN_CTB_ROW ((MAX_CTB_SIZE / MIN_CU_SIZE)) 3090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max PU in a CTb row */ 3110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_IN_CTB_ROW ((MAX_CTB_SIZE / MIN_PU_SIZE)) 3120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max CU in a CTB */ 3140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_IN_CTB ((MAX_CTB_SIZE / MIN_CU_SIZE) * \ 3150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar (MAX_CTB_SIZE / MIN_CU_SIZE)) 3160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max PU in a CTB */ 3180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Note though for 64 x 64 CTB, Max PU in CTB is 128, in order to store */ 3200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* intra pred info, 256 entries are needed */ 3210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_IN_CTB ((MAX_CTB_SIZE / MIN_PU_SIZE) * \ 3230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar (MAX_CTB_SIZE / MIN_PU_SIZE)) 3240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB */ 3260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_IN_CTB ((MAX_CTB_SIZE / MIN_TU_SIZE) * \ 3270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar (MAX_CTB_SIZE / MIN_TU_SIZE)) 3280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Maximum transform depths 3330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TRAFO_DEPTH 5 3350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max number of deblocking edges */ 3400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_VERT_DEBLK_EDGES ((MAX_CTB_SIZE/8) * (MAX_CTB_SIZE/4)) 3410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HORZ_DEBLK_EDGES ((MAX_CTB_SIZE/4) * (MAX_CTB_SIZE/8)) 3420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Qp can not change below 8x8 level */ 3440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_DEBLK_QP_CNT ((MAX_CTB_SIZE/8) * (MAX_CTB_SIZE/8)) 3450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Parsing related macros */ 3480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SUBBLK_COEFF_CNT 16 3500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Quant and Trans defs */ 3520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Sizes for Transform functions */ 3550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 3560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_4 4 3570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_8 8 3580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_16 16 3590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_32 32 3600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define IT_SHIFT_STAGE_1 7 3630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define IT_SHIFT_STAGE_2 12 3640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Maximum transform dynamic range (excluding sign bit) 3670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TR_DYNAMIC_RANGE 15 3690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Q(QP%6) * IQ(QP%6) = 2^20 3720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_IQUANT_SHIFT 20 3740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Q factor for Qp%6 multiplication 3770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_SHIFT 14 3790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Q shift factor for flat rescale matrix weights 3820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define FLAT_RESCALE_MAT_Q_SHIFT 11 3840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Scaling matrix is represented in Q15 format 3870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALING_Q_SHIFT 15 3890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief rounding factor for quantization represented in Q9 format 3920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_ROUND_FACTOR_Q 9 3940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 3950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 3960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Minimum qp supported in HEVC spec 3970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 3980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_HEVC_QP 0 3990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 4010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Maximum qp supported in HEVC spec 4020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 4030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HEVC_QP 51 //FOR MAIN Branch Encoder 4040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HEVC_QP_10bit 63 //FOR HBD Branch Encoder 4060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 407221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6eNaveen Kumar Ponnusamy#define MAX_HEVC_QP_12bit 75 //FOR HBD Branch Encoder 408221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6eNaveen Kumar Ponnusamy 4090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 4110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Total number of transform sizes 4120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * used for sizeID while getting scale matrix 4130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 4140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define NUM_UNIQUE_TRANS_SIZE 4 4150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 4170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of scaling matrices for each transform size */ 4180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 4190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_4 6 4200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_8 6 4210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_16 6 4220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_32 2 4230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum number of scale matrices for a given transform size */ 4250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_MAX_PER_TRANS_SIZE 6 4260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Total number of scale matrices */ 4280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TOTAL_SCALE_MAT_COUNT (SCALE_MAT_CNT_TRANS_SIZE_4 + \ 4290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCALE_MAT_CNT_TRANS_SIZE_8 + \ 4300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCALE_MAT_CNT_TRANS_SIZE_16 + \ 4310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar SCALE_MAT_CNT_TRANS_SIZE_32) 4320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 4350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Intra pred Macros */ 4360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 4370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Planar Intra prediction mode */ 4380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PLANAR 0 4390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** DC Intra prediction mode */ 4410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_DC 1 4420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Gives angular mode for intra prediction */ 4440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_ANGULAR(x) (x) 4450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Following is used to signal no intra prediction in case of pcm blocks 4470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 4480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PRED_NONE 63 4490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Following is used to signal no intra prediction is needed for first three 4520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * 4x4 luma blocks in case of 4x4 TU sizes 4530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Also used in pcm cases 4540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 4550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PRED_CHROMA_IDX_NONE 7 4560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 4590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#endif /*__IHEVC_DEFS_H_*/ 460