/******************************************************************************
 *
 * 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,
    B16x16      = 9,
    BSKIP       = 10,
    BDIRECT     = 11,
    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 MbPartps_pred_mode_ctxt 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_ */
