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
213930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakartypedef enum {
214930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar    USER_DATA_BAR_DATA       = 0,
215930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar    USER_DATA_CC_DATA        = 1,
216930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar    USER_DATA_AFD_DATA       = 2,
217930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar
218930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar    // do not add anything below
219930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar    USER_DATA_MAX
220930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar} USER_DATA_SEI_TYPE_T;
221930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar
222613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar/**
223613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar ****************************************************************************
224613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar * SEI payload type
225613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar ****************************************************************************
226613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar */
227613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakarenum
228613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar{
229613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_BUFFERING_PERIOD                     = 0,
230613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_PICTURE_TIMING                       = 1,
231613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_PAN_SCAN_RECT                        = 2,
232613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_FILLER_PAYLOAD                       = 3,
233613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_USER_DATA_REGISTERED_ITU_T_T35       = 4,
234613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_USER_DATA_UNREGISTERED               = 5,
235613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_RECOVERY_POINT                       = 6,
236613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_SCENE_INFO                           = 9,
237613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_FULL_FRAME_SNAPSHOT                  = 15,
238613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_PROGRESSIVE_REFINEMENT_SEGMENT_START = 16,
239613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_PROGRESSIVE_REFINEMENT_SEGMENT_END   = 17,
240613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_FILM_GRAIN_CHARACTERISTICS           = 19,
241613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_POST_FILTER_HINT                     = 22,
242613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_TONE_MAPPING_INFO                    = 23,
243613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_FRAME_PACKING                        = 45,
244613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_DISPLAY_ORIENTATION                  = 47,
245613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_SOP_DESCRIPTION                      = 128,
246613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_ACTIVE_PARAMETER_SETS                = 129,
247613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_DECODING_UNIT_INFO                   = 130,
248613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_TEMPORAL_LEVEL0_INDEX                = 131,
249613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_DECODED_PICTURE_HASH                 = 132,
250613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_SCALABLE_NESTING                     = 133,
251613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_REGION_REFRESH_INFO                  = 134,
252613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_NO_DISPLAY                           = 135,
253613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_TIME_CODE                            = 136,
254613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_MASTERING_DISPLAY_COLOUR_VOLUME      = 137,
255613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_SEGM_RECT_FRAME_PACKING              = 138,
256613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_TEMP_MOTION_CONSTRAINED_TILE_SETS    = 139,
257613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_CHROMA_SAMPLING_FILTER_HINT          = 140,
258613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar    SEI_KNEE_FUNCTION_INFO                   = 141
259613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar};
260613c712d196d00b6aec71d0b316427ab3e947012Harish Mahendrakar
261930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar
2620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH           8
2630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH_LUMA      BIT_DEPTH
2640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define BIT_DEPTH_CHROMA    BIT_DEPTH
2650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Profile tier level defs                                                   */
2670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PROFILE_COMPATBLTY 32
2690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Reference frame defs                                                      */
2720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum DPB size */
2740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_DPB_SIZE 16
2750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* VPS restrictions                                                          */
2790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of VPS allowed  in Main Profile */
2820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_VPS_CNT         16
2830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max sub layers in VPS */
2850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_SUB_LAYERS  7
2860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max number of HRD parameters */
2880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_HRD_PARAMS  2
2890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum number of operation point layers */
2910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VPS_MAX_OP_LAYERS 2
2920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Tile restrictions                                                         */
2960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
2970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Minimum tile width in Main Profile */
2984d73ab3ec9823d009fa01beea164c0036b5215b9Harish Mahendrakar#define MIN_TILE_WD  MAX_CTB_SIZE
2990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Minimum tile height in Main Profile */
3014d73ab3ec9823d009fa01beea164c0036b5215b9Harish Mahendrakar#define MIN_TILE_HT  MAX_CTB_SIZE
3020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* SPS restrictions                                                          */
3050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of SPS allowed in Main Profile*/
3080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* An extra buffer is allocated to write the parsed data
3090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * It is copied to the appropriate location later */
3100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_SPS_CNT         (16 + 1)
3110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max sub layers in PPS */
3130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SPS_MAX_SUB_LAYERS  7
3140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum long term reference pics */
3160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_LTREF_PICS_SPS 16
3170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_STREF_PICS_SPS 64
3190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* PPS restrictions                                                          */
3220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of PPS allowed in Main Profile */
3250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* An extra buffer is allocated to write the parsed data
3260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * It is copied to the appropriate location later */
3270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PPS_CNT         (64 + 1)
3280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Macro definitions for sizes of CTB, PU, TU, CU                            */
3310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* CTB Size Range */
3340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CTB_SIZE        64
3350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_CTB_SIZE        16
3360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* TU Size Range */
3380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_SIZE         32
3390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_TU_SIZE         4
3400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max Transform Size */
3420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TRANS_SIZE      (MAX_TU_SIZE*MAX_TU_SIZE)
3430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* PU Size Range */
3450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_SIZE         64
3460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_PU_SIZE         4
3470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* CU Size Range */
3490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_SIZE         64
3500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_CU_SIZE         8
3510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB row */
3540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_IN_CTB_ROW   ((MAX_CTB_SIZE / MIN_TU_SIZE))
3550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB row */
3570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_IN_CTB_ROW   ((MAX_CTB_SIZE / MIN_CU_SIZE))
3580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max PU in a CTb row */
3600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_IN_CTB_ROW   ((MAX_CTB_SIZE / MIN_PU_SIZE))
3610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max CU in a CTB */
3630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_CU_IN_CTB       ((MAX_CTB_SIZE / MIN_CU_SIZE) * \
3640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                             (MAX_CTB_SIZE / MIN_CU_SIZE))
3650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max PU in a CTB */
3670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Note though for 64 x 64 CTB, Max PU in CTB is 128, in order to store      */
3690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*  intra pred info, 256 entries are needed                                  */
3700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_PU_IN_CTB       ((MAX_CTB_SIZE / MIN_PU_SIZE) * \
3720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                             (MAX_CTB_SIZE / MIN_PU_SIZE))
3730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of max TU in a CTB */
3750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TU_IN_CTB       ((MAX_CTB_SIZE / MIN_TU_SIZE) * \
3760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                             (MAX_CTB_SIZE / MIN_TU_SIZE))
3770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
3810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Maximum transform depths
3820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
3830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TRAFO_DEPTH 5
3840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Max number of deblocking edges */
3890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_VERT_DEBLK_EDGES ((MAX_CTB_SIZE/8) * (MAX_CTB_SIZE/4))
3900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HORZ_DEBLK_EDGES ((MAX_CTB_SIZE/4) * (MAX_CTB_SIZE/8))
3910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Qp can not change below 8x8 level */
3930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_DEBLK_QP_CNT     ((MAX_CTB_SIZE/8) * (MAX_CTB_SIZE/8))
3940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Parsing related macros                                                    */
3970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
3980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SUBBLK_COEFF_CNT    16
3990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Quant and Trans defs */
4010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Sizes for Transform functions                                             */
4040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_4   4
4060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_8   8
4070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_16 16
4080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TRANS_SIZE_32 32
4090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define IT_SHIFT_STAGE_1 7
4120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define IT_SHIFT_STAGE_2 12
4130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Maximum transform dynamic range (excluding sign bit)
4160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_TR_DYNAMIC_RANGE  15
4180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Q(QP%6) * IQ(QP%6) = 2^20
4210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_IQUANT_SHIFT    20
4230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Q factor for Qp%6 multiplication
4260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_SHIFT           14
4280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief Q shift factor for flat rescale matrix weights
4310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define FLAT_RESCALE_MAT_Q_SHIFT    11
4330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Scaling matrix is represented in Q15 format
4360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALING_Q_SHIFT       15
4380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  rounding factor for quantization represented in Q9 format
4410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define QUANT_ROUND_FACTOR_Q   9
4430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Minimum qp supported in HEVC spec
4460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MIN_HEVC_QP 0
4480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Maximum qp supported in HEVC spec
4510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HEVC_QP 51  //FOR MAIN Branch Encoder
4530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define MAX_HEVC_QP_10bit 63  //FOR HBD Branch Encoder
4550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4569663ae211632948494bebd703d4d8f7cb576d7d6Naveen Kumar Ponnusamy#define MAX_HEVC_QP_12bit 75  //FOR HBD Branch Encoder
4579663ae211632948494bebd703d4d8f7cb576d7d6Naveen Kumar Ponnusamy
4580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
4600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * @brief  Total number of transform sizes
4610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * used for sizeID while getting scale matrix
4620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define NUM_UNIQUE_TRANS_SIZE 4
4640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Number of scaling matrices for each transform size                        */
4670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_4    6
4690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_8    6
4700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_16   6
4710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_TRANS_SIZE_32   2
4720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Maximum number of scale matrices for a given transform size */
4740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SCALE_MAT_CNT_MAX_PER_TRANS_SIZE 6
4750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Total number of scale matrices */
4770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define TOTAL_SCALE_MAT_COUNT   (SCALE_MAT_CNT_TRANS_SIZE_4     + \
4780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                 SCALE_MAT_CNT_TRANS_SIZE_8     + \
4790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                 SCALE_MAT_CNT_TRANS_SIZE_16    + \
4800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                 SCALE_MAT_CNT_TRANS_SIZE_32)
4810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Intra pred Macros                                                         */
4850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
4860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Planar Intra prediction mode */
4870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PLANAR             0
4880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** DC Intra prediction mode */
4900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_DC                 1
4910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Gives angular mode for intra prediction */
4930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_ANGULAR(x) (x)
4940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Following is used to signal no intra prediction in case of pcm blocks
4960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
4970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PRED_NONE  63
4980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
4990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
5000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** Following is used to signal no intra prediction is needed for first three
5010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * 4x4 luma blocks in case of 4x4 TU sizes
5020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Also used in pcm cases
5030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
5040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define INTRA_PRED_CHROMA_IDX_NONE  7
5050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
506930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar#define MAX_NUM_CLOCK_TS    3
507930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar#define MAX_USERDATA_PAYLOAD 256
508930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar
509930b36b0dde7fc51531b578da21e3029c931b750Harish Mahendrakar#define MAX_CPB_CNT 32
5100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
5110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#endif /*__IHEVC_DEFS_H_*/
512