/******************************************************************************
 *
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
/**
*******************************************************************************
* @file
*  ih264_defs.h
*
* @brief
*  Definitions used in the codec
*
* @author
*  Ittiam
*
*
* @remarks
*  None
*
*******************************************************************************
*/

#ifndef IH264_DEFS_H_
#define IH264_DEFS_H_

/*****************************************************************************/
/* Enums                                                                     */
/*****************************************************************************/


/*****************************************************************************/
/* Profile and Levels                                                        */
/*****************************************************************************/

/**
******************************************************************************
 *  @enum  PROFILE_IDC
 *  @brief Defines the set of possible profiles
******************************************************************************
*/
enum
{
    IH264_PROFILE_BASELINE = 66,
    IH264_PROFILE_MAIN = 77,
    IH264_PROFILE_EXTENDED = 88,
    IH264_PROFILE_HIGH = 100,
    IH264_PROFILE_HIGH10 = 110,
    IH264_PROFILE_HIGH422 = 122,
    IH264_PROFILE_HIGH444 = 144,
};

/**
******************************************************************************
 *  @enum  LEVEL_IDC
 *  @brief Defines the set of possible levels
******************************************************************************
*/
typedef enum
{
    IH264_LEVEL_10         = 10,
    IH264_LEVEL_1B         = 9,
    IH264_LEVEL_11         = 11,
    IH264_LEVEL_12         = 12,
    IH264_LEVEL_13         = 13,
    IH264_LEVEL_20         = 20,
    IH264_LEVEL_21         = 21,
    IH264_LEVEL_22         = 22,
    IH264_LEVEL_30         = 30,
    IH264_LEVEL_31         = 31,
    IH264_LEVEL_32         = 32,
    IH264_LEVEL_40         = 40,
    IH264_LEVEL_41         = 41,
    IH264_LEVEL_42         = 42,
    IH264_LEVEL_50         = 50,
    IH264_LEVEL_51         = 51,
}IH264_LEVEL_T;


/**
******************************************************************************
 *  @enum  PIC TYPES
 *  @brief Defines the set of possible picture type - not signaled in bitstream
******************************************************************************
*/
typedef enum
{
    PIC_NA = 0x7FFFFFFF,
    PIC_IDR = 0,
    PIC_I = 1,
    PIC_P = 2,
    PIC_B = 3,
    PIC_P_NONREF = 4,
    PIC_B_NONREF = 5,
    PIC_MAX,
}PIC_TYPE_T;

/**
******************************************************************************
 *  @enum  FRAME-FIELD types
 *  @brief Defines the set of possible field types.
******************************************************************************
*/
enum
{
    TOP_FIELD,
    BOTTOM_FIELD,
    FRAME,
};

/**
******************************************************************************
 *  @enum  SLICE TYPES
 *  @brief Defines the set of possible SLICE TYPES
******************************************************************************
*/
enum
{
    PSLICE = 0,
    BSLICE = 1,
    ISLICE = 2,
    SPSLICE = 3,
    SISLICE = 4,
    MAXSLICE_TYPE,
};

/**
******************************************************************************
 *  @enum  NAL_UNIT_TYPE
 *  @brief Defines the set of possible nal unit types
******************************************************************************
*/
enum
{
    NAL_UNSPEC_0        = 0,
    NAL_SLICE_NON_IDR   = 1,
    NAL_SLICE_DPA       = 2,
    NAL_SLICE_DPB       = 3,
    NAL_SLICE_DPC       = 4,
    NAL_SLICE_IDR       = 5,
    NAL_SEI             = 6,
    NAL_SPS             = 7,
    NAL_PPS             = 8,
    NAL_AUD             = 9,
    NAL_EOSEQ           = 10,
    NAL_EOSTR           = 11,
    NAL_FILLER          = 12,
    NAL_SPSE            = 13,
    NAL_RES_18          = 14,
    NAL_AUX_PIC         = 19,
    NAL_RES_23          = 20,
    NAL_UNSPEC_31       = 24,
};

/**
******************************************************************************
 *  @enum  CHROMA_FORMAT_IDC
 *  @brief Defines the set of possible chroma formats
 *  Note Chorma format Do not change enum values
******************************************************************************
*/
enum
{
    CHROMA_FMT_IDC_MONOCHROME   = 0,
    CHROMA_FMT_IDC_YUV420       = 1,
    CHROMA_FMT_IDC_YUV422       = 2,
    CHROMA_FMT_IDC_YUV444       = 3,
    CHROMA_FMT_IDC_YUV444_PLANES = 4,
};


/**
******************************************************************************
 *  @enum  MBMODES_I16x16
 *  @brief Defines the set of possible intra 16x16 mb modes
******************************************************************************
*/
typedef enum
{
    VERT_I16x16     = 0,
    HORZ_I16x16     = 1,
    DC_I16x16       = 2,
    PLANE_I16x16    = 3,
    MAX_I16x16      = 4,
}MBMODES_I16x16;

/**
******************************************************************************
 *  @enum  MBMODES_I4x4
 *  @brief Defines the set of possible intra 4x4 mb modes
******************************************************************************
*/
typedef enum
{
    VERT_I4x4     = 0,
    HORZ_I4x4     = 1,
    DC_I4x4       = 2,
    DIAG_DL_I4x4  = 3,
    DIAG_DR_I4x4  = 4,
    VERT_R_I4x4   = 5,
    HORZ_D_I4x4   = 6,
    VERT_L_I4x4   = 7,
    HORZ_U_I4x4   = 8,
    MAX_I4x4      = 9,
}MBMODES_I4x4;

/**
******************************************************************************
 *  @enum  MBMODES_I8x8
 *  @brief Defines the set of possible intra 8x8 mb modes
******************************************************************************
*/
typedef enum
{
    VERT_I8x8     = 0,
    HORZ_I8x8     = 1,
    DC_I8x8       = 2,
    DIAG_DL_I8x8  = 3,
    DIAG_DR_I8x8  = 4,
    VERT_R_I8x8   = 5,
    HORZ_D_I8x8   = 6,
    VERT_L_I8x8   = 7,
    HORZ_U_I8x8   = 8,
    MAX_I8x8      = 9,
}MBMODES_I8x8;

/**
******************************************************************************
 *  @enum  MBMODES_CHROMA_I8x8 (Chroma)
 *  @brief Defines the set of possible intra 8x8 mb modes for chroma
******************************************************************************
*/
typedef enum
{
    DC_CH_I8x8     = 0,
    HORZ_CH_I8x8   = 1,
    VERT_CH_I8x8   = 2,
    PLANE_CH_I8x8  = 3,
    MAX_CH_I8x8    = 4,
}MBMODES_CHROMA_I8x8;

/**
******************************************************************************
 *  @enum  MBTYPES
 *  @brief Defines the set of possible macro block types
******************************************************************************
*/
typedef enum
{
    I16x16      = 0,
    I4x4        = 1,
    I8x8        = 2,
    P16x16      = 3,
    P16x8       = 4,
    P8x16       = 5,
    P8x8        = 6,
    PSKIP       = 7,
    IPCM        = 8,
    MAX_MBTYPES,
}MBTYPES_T;

/* Prediction list */
/* Do not change enum values */
enum
{
    PRED_L0 = 0,
    PRED_L1 = 1,
    PRED_BI = 2
};


/**
******************************************************************************
 *  @enum  ENTROPY_BLK_TYPE
 *  @brief Defines the nature of blocks employed in entropy coding
******************************************************************************
*/
typedef enum
{
    ENTROPY_BLK_INVALID = -1,
    CAVLC_LUMA_4x4_DC = 0,
    CAVLC_LUMA_4x4_AC = 1,
    CAVLC_LUMA_4x4 = 2,
    CAVLC_CHROMA_4x4_DC = 3,
    CAVLC_CHROMA_4x4_AC = 4,
} ENTROPY_BLK_TYPE;

/**
******************************************************************************
 *  @enum  ENTROPY_MODE
 *  @brief Entropy coding modes
******************************************************************************
*/
typedef enum
{
    CAVLC = 0,
    CABAC = 1,
} ENTROPY_MODE;

/**
******************************************************************************
 *  @enum  COMPONENT_TYPE
 *  @brief components Y, U & V
******************************************************************************
*/
typedef enum
{
    Y,
    U,
    V,
} COMPONENT_TYPE;


/**
******************************************************************************
 *  @enum  MBPART_PREDMODE_T
 *  @brief MbPartPredMode Table 7-11 to 7-14
******************************************************************************
*/
typedef enum
{
    MBPART_NA,
    MBPART_I4x4,
    MBPART_I8x8,
    MBPART_I16x16,
    MBPART_L0,
    MBPART_L1,
    MBPART_BI,
    MBPART_DIRECT,
    MBPART_IPCM,
}MBPART_PREDMODE_T;


typedef enum
{
    I_NxN,
    I_16x16_0_0_0,
    I_16x16_1_0_0,
    I_16x16_2_0_0,
    I_16x16_3_0_0,
    I_16x16_0_1_0,
    I_16x16_1_1_0,
    I_16x16_2_1_0,
    I_16x16_3_1_0,
    I_16x16_0_2_0,
    I_16x16_1_2_0,
    I_16x16_2_2_0,
    I_16x16_3_2_0,
    I_16x16_0_0_1,
    I_16x16_1_0_1,
    I_16x16_2_0_1,
    I_16x16_3_0_1,
    I_16x16_0_1_1,
    I_16x16_1_1_1,
    I_16x16_2_1_1,
    I_16x16_3_1_1,
    I_16x16_0_2_1,
    I_16x16_1_2_1,
    I_16x16_2_2_1,
    I_16x16_3_2_1,
    I_PCM,
}MBTYPE_ISLICE_T;

typedef enum
{
    P_L0_16x16,
    P_L0_L0_16x8,
    P_L0_L0_8x16,
    P_8x8,
    P_8x8REF0,
    P_SKIP
}MBTYPE_PSLICE_T;

typedef enum
{
    B_DIRECT_16x16,
    B_L0_16x16,
    B_L1_16x16,
    B_BI_16x16,
    B_L0_L0_16x8,
    B_L0_L0_8x16,
    B_L1_L1_16x8,
    B_L1_L1_8x16,
    B_L0_L1_16x8,
    B_L0_L1_8x16,
    B_L1_L0_16x8,
    B_L1_L0_8x16,
    B_L0_BI_16x8,
    B_L0_BI_8x16,
    B_L1_BI_16x8,
    B_L1_BI_8x16,
    B_BI_L0_16x8,
    B_BI_L0_8x16,
    B_BI_L1_16x8,
    B_BI_L1_8x16,
    B_BI_BI_16x8,
    B_BI_BI_8x16,
    B_8x8,
    B_SKIP,
}MBTYPE_BSLICE_T;


typedef enum
{
    P_L0_8x8,
    P_L0_8x4,
    P_L0_4x8,
    P_L0_4x4,
}SUBMBTYPE_PSLICE_T;

typedef enum
{
    B_DIRECT_8x8,
    B_L0_8x8,
    B_L1_8x8,
    B_BI_8x8,
    B_L0_8x4,
    B_L0_4x8,
    B_L1_8x4,
    B_L1_4x8,
    B_BI_8x4,
    B_BI_4x8,
    B_L0_4x4,
    B_L1_4x4,
    B_BI_4x4,
}SUBMBTYPE_BSLICE_T;

/**
 * DC Mode pattern for 4 4x4 sub blocks in an MB row
 */
#define DC_I16X16_MB_ROW (DC_I16x16 << 24) | (DC_I16x16 << 16) | \
                         (DC_I16x16 << 8)  | DC_I16x16



/*****************************************************************************/
/* Constant Macros                                                           */
/*****************************************************************************/

/*****************************************************************************/
/* Reference frame defs                                                      */
/*****************************************************************************/
/* Maximum DPB size */
#define MAX_DPB_SIZE 16

/* Maximum mmco commands in slice header */
#define MAX_MMCO_COMMANDS 32

/* Maximum reference reorder idc */
#define MAX_MODICATION_IDC 32

/*****************************************************************************/
/* SPS restrictions                                                          */
/*****************************************************************************/

/* Number of SPS allowed */
/* An extra buffer is allocated to write the parsed data
 * It is copied to the appropriate location later */
#define MAX_SPS_CNT         (32 + 1)

/* Maximum long term reference pics */
#define MAX_LTREF_PICS_SPS 16

/* Maximum short term reference pics */
#define MAX_STREF_PICS_SPS 64


/*****************************************************************************/
/* PPS restrictions                                                          */
/*****************************************************************************/

/* Number of PPS allowed  */
/* An extra buffer is allocated to write the parsed data
 * It is copied to the appropriate location later */
#define MAX_PPS_CNT         (256 + 1)

/*****************************************************************************/
/* Macro definitions for sizes of MB, PU, TU, CU                            */
/*****************************************************************************/
#define MB_SIZE             16
#define BLK8x8SIZE          8
#define BLK_SIZE            4


/* TU Size Range */
#define MAX_TU_SIZE         8
#define MIN_TU_SIZE         4

/* Max Transform Size */
#define MAX_TRANS_SIZE      (MAX_TU_SIZE*MAX_TU_SIZE)

/* PU Size Range */
#define MAX_PU_SIZE         16
#define MIN_PU_SIZE         4

/* Number of max TU in a MB row */
#define MAX_TU_IN_MB_ROW   ((MB_SIZE / MIN_TU_SIZE))

/* Number of max PU in a CTb row */
#define MAX_PU_IN_MB_ROW   ((MB_SIZE / MIN_PU_SIZE))


/* Number of max PU in a MB */
/*****************************************************************************/
/* Note though for 64 x 64 MB, Max PU in MB is 128, in order to store      */
/*  intra pred info, 256 entries are needed                                  */
/*****************************************************************************/
#define MAX_PU_IN_MB       ((MB_SIZE / MIN_PU_SIZE) * \
                             (MB_SIZE / MIN_PU_SIZE))

/* Number of max TU in a MB */
#define MAX_TU_IN_MB       ((MB_SIZE / MIN_TU_SIZE) * \
                             (MB_SIZE / MIN_TU_SIZE))



/**
 * Maximum transform depths
 */
#define MAX_TRAFO_DEPTH 5

#define MAX_DC_4x4_SUBBLK_LUMA 1
#define MAX_AC_4x4_SUBBLK_LUMA 16
#define MAX_DC_4x4_SUBBLK_CHROMA 2
#define MAX_AC_4x4_SUBBLK_CHROMA 8

#define MAX_4x4_SUBBLKS (MAX_DC_4x4_SUBBLK_LUMA + MAX_DC_4x4_SUBBLK_CHROMA +\
                         MAX_AC_4x4_SUBBLK_LUMA + MAX_AC_4x4_SUBBLK_CHROMA)

/* Max number of deblocking edges */
#define MAX_VERT_DEBLK_EDGES ((MB_SIZE/8) * (MB_SIZE/4))
#define MAX_HORZ_DEBLK_EDGES ((MB_SIZE/4) * (MB_SIZE/8))

/* Qp can not change below 8x8 level */
#define MAX_DEBLK_QP_CNT     ((MB_SIZE/8) * (MB_SIZE/8))

/*****************************************************************************/
/* Parsing related macros                                                    */
/*****************************************************************************/
#define SUBBLK_COEFF_CNT    16

/* Quant and Trans defs */

/*****************************************************************************/
/* Sizes for Transform functions                                             */
/*****************************************************************************/
#define TRANS_SIZE_4   4
#define TRANS_SIZE_8   8
#define TRANS_SIZE_16 16
#define TRANS_SIZE_32 32


#define IT_SHIFT_STAGE_1 7
#define IT_SHIFT_STAGE_2 12

/**
 * @breif  Maximum transform dynamic range (excluding sign bit)
 */
#define MAX_TR_DYNAMIC_RANGE  15

/**
 * @brief  Q(QP%6) * IQ(QP%6) = 2^20
 */
#define QUANT_IQUANT_SHIFT    20

/**
 * @breif Q factor for Qp%6 multiplication
 */
#define QUANT_SHIFT           14

/**
 * @breif Q shift factor for flat rescale matrix weights
 */
#define FLAT_RESCALE_MAT_Q_SHIFT    11

/**
 * @breif  Scaling matrix is represented in Q15 format
 */
#define SCALING_Q_SHIFT       15

/**
 * @brief  rounding factor for quantization represented in Q9 format
 */
#define QUANT_ROUND_FACTOR_Q   9

/**
 * @brief  Minimum qp supported in H264 spec
 */
#define MIN_H264_QP 0

/**
 * @brief  Maximum qp supported in H264 spec
 */
#define MAX_H264_QP 51

/**
 * @breif  Total number of transform sizes
 * used for sizeID while getting scale matrix
 */
#define NUM_UNIQUE_TRANS_SIZE 4

/**
 * @breif  Maximum number of bits in frameNumber signaling
 */
#define MAX_BITS_IN_FRAME_NUM     16

/**
 * @breif  Maximum number of bits in POC LSB signaling
 */
#define MAX_BITS_IN_POC_LSB     16


/**
 * @breif  Maximum PIC Order Count type
 */
#define MAX_PIC_ORDER_COUNT_TYPE    2


/**
 * @breif  Maximum Weighted bipred idc
 */
#define MAX_WEIGHT_BIPRED_IDC 2

/*****************************************************************************/
/* Number of scaling matrices for each transform size                        */
/*****************************************************************************/
#define SCALE_MAT_CNT_TRANS_SIZE_4    6
#define SCALE_MAT_CNT_TRANS_SIZE_8    6
#define SCALE_MAT_CNT_TRANS_SIZE_16   6
#define SCALE_MAT_CNT_TRANS_SIZE_32   2

/* Maximum number of scale matrices for a given transform size */
#define SCALE_MAT_CNT_MAX_PER_TRANS_SIZE 6

/* Total number of scale matrices */
#define TOTAL_SCALE_MAT_COUNT   (SCALE_MAT_CNT_TRANS_SIZE_4     + \
                                 SCALE_MAT_CNT_TRANS_SIZE_8     + \
                                 SCALE_MAT_CNT_TRANS_SIZE_16    + \
                                 SCALE_MAT_CNT_TRANS_SIZE_32)


/*****************************************************************************/
/* Intra pred Macros                                                         */
/*****************************************************************************/
/** Planar Intra prediction mode */
#define INTRA_PLANAR             0

/** DC Intra prediction mode */
#define INTRA_DC                 1

/** Gives angular mode for intra prediction */
#define INTRA_ANGULAR(x) (x)

/** Following is used to signal no intra prediction in case of pcm blocks
 */
#define INTRA_PRED_NONE  63


/** Following is used to signal no intra prediction is needed for first three
 * 4x4 luma blocks in case of 4x4 TU sizes
 * Also used in pcm cases
 */
#define INTRA_PRED_CHROMA_IDX_NONE  7


/**
******************************************************************************
 *  @brief  neighbor availability masks
******************************************************************************
 */
#define LEFT_MB_AVAILABLE_MASK      0x01
#define TOP_LEFT_MB_AVAILABLE_MASK  0x02
#define TOP_MB_AVAILABLE_MASK       0x04
#define TOP_RIGHT_MB_AVAILABLE_MASK 0x08

#endif /* IH264_DEFS_H_ */
