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