Home | History | Annotate | Download | only in common
      1 /******************************************************************************
      2 *
      3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
      4 *
      5 * Licensed under the Apache License, Version 2.0 (the "License");
      6 * you may not use this file except in compliance with the License.
      7 * You may obtain a copy of the License at:
      8 *
      9 * http://www.apache.org/licenses/LICENSE-2.0
     10 *
     11 * Unless required by applicable law or agreed to in writing, software
     12 * distributed under the License is distributed on an "AS IS" BASIS,
     13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 * See the License for the specific language governing permissions and
     15 * limitations under the License.
     16 *
     17 ******************************************************************************/
     18 /**
     19 *******************************************************************************
     20 * @file
     21 *  ihevc_iquant_recon.h
     22 *
     23 * @brief
     24 *  Functions declarations for inverse quantization and  reconstruction
     25 *
     26 * @author
     27 *  Ittiam
     28 *
     29 * @remarks
     30 *  None
     31 *
     32 *******************************************************************************
     33 */
     34 #ifndef _IHEVC_IQUANT_RECON_H_
     35 #define _IHEVC_IQUANT_RECON_H_
     36 
     37 typedef void ihevc_iquant_recon_4x4_ttype1_ft(WORD16 *pi2_src,
     38                                               UWORD8 *pu1_pred,
     39                                               WORD16 *pi2_dequant_coeff,
     40                                               UWORD8 *pu1_dst,
     41                                               WORD32 qp_div, /* qpscaled / 6 */
     42                                               WORD32 qp_rem, /* qpscaled % 6 */
     43                                               WORD32 src_strd,
     44                                               WORD32 pred_strd,
     45                                               WORD32 dst_strd,
     46                                               WORD32 zero_cols);
     47 typedef void ihevc_hbd_iquant_recon_4x4_ttype1_ft(WORD16 *pi2_src,
     48                                                   UWORD16 *pu2_pred,
     49                                                   WORD16 *pi2_dequant_coeff,
     50                                                   UWORD16 *pu2_dst,
     51                                                   WORD32 qp_div, /* qpscaled / 6 */
     52                                                   WORD32 qp_rem, /* qpscaled % 6 */
     53                                                   WORD32 src_strd,
     54                                                   WORD32 pred_strd,
     55                                                   WORD32 dst_strd,
     56                                                   WORD32 zero_cols,
     57                                                   UWORD8 bit_depth);
     58 typedef void ihevc_iquant_recon_4x4_ft(WORD16 *pi2_src,
     59                                        UWORD8 *pu1_pred,
     60                                        WORD16 *pi2_dequant_coeff,
     61                                        UWORD8 *pu1_dst,
     62                                        WORD32 qp_div, /* qpscaled / 6 */
     63                                        WORD32 qp_rem, /* qpscaled % 6 */
     64                                        WORD32 src_strd,
     65                                        WORD32 pred_strd,
     66                                        WORD32 dst_strd,
     67                                        WORD32 zero_cols);
     68 typedef void ihevc_hbd_iquant_recon_4x4_ft(WORD16 *pi2_src,
     69                                            UWORD16 *pu2_pred,
     70                                            WORD16 *pi2_dequant_coeff,
     71                                            UWORD16 *pu2_dst,
     72                                            WORD32 qp_div, /* qpscaled / 6 */
     73                                            WORD32 qp_rem, /* qpscaled % 6 */
     74                                            WORD32 src_strd,
     75                                            WORD32 pred_strd,
     76                                            WORD32 dst_strd,
     77                                            WORD32 zero_cols,
     78                                            UWORD8 bit_depth);
     79 typedef void ihevc_iquant_recon_8x8_ft(WORD16 *pi2_src,
     80                                        UWORD8 *pu1_pred,
     81                                        WORD16 *pi2_dequant_coeff,
     82                                        UWORD8 *pu1_dst,
     83                                        WORD32 qp_div, /* qpscaled / 6 */
     84                                        WORD32 qp_rem, /* qpscaled % 6 */
     85                                        WORD32 src_strd,
     86                                        WORD32 pred_strd,
     87                                        WORD32 dst_strd,
     88                                        WORD32 zero_cols);
     89 typedef void ihevc_hbd_iquant_recon_8x8_ft(WORD16 *pi2_src,
     90                                            UWORD16 *pu2_pred,
     91                                            WORD16 *pi2_dequant_coeff,
     92                                            UWORD16 *pu2_dst,
     93                                            WORD32 qp_div, /* qpscaled / 6 */
     94                                            WORD32 qp_rem, /* qpscaled % 6 */
     95                                            WORD32 src_strd,
     96                                            WORD32 pred_strd,
     97                                            WORD32 dst_strd,
     98                                            WORD32 zero_cols,
     99                                            UWORD8 bit_depth);
    100 typedef void ihevc_iquant_recon_16x16_ft(WORD16 *pi2_src,
    101                                          UWORD8 *pu1_pred,
    102                                          WORD16 *pi2_dequant_coeff,
    103                                          UWORD8 *pu1_dst,
    104                                          WORD32 qp_div, /* qpscaled / 6 */
    105                                          WORD32 qp_rem, /* qpscaled % 6 */
    106                                          WORD32 src_strd,
    107                                          WORD32 pred_strd,
    108                                          WORD32 dst_strd,
    109                                          WORD32 zero_cols);
    110 typedef void ihevc_hbd_iquant_recon_16x16_ft(WORD16 *pi2_src,
    111                                              UWORD16 *pu2_pred,
    112                                              WORD16 *pi2_dequant_coeff,
    113                                              UWORD16 *pu2_dst,
    114                                              WORD32 qp_div, /* qpscaled / 6 */
    115                                              WORD32 qp_rem, /* qpscaled % 6 */
    116                                              WORD32 src_strd,
    117                                              WORD32 pred_strd,
    118                                              WORD32 dst_strd,
    119                                              WORD32 zero_cols,
    120                                              UWORD8 bit_depth);
    121 typedef void ihevc_iquant_recon_32x32_ft(WORD16 *pi2_src,
    122                                          UWORD8 *pu1_pred,
    123                                          WORD16 *pi2_dequant_coeff,
    124                                          UWORD8 *pu1_dst,
    125                                          WORD32 qp_div, /* qpscaled / 6 */
    126                                          WORD32 qp_rem, /* qpscaled % 6 */
    127                                          WORD32 src_strd,
    128                                          WORD32 pred_strd,
    129                                          WORD32 dst_strd,
    130                                          WORD32 zero_cols);
    131 typedef void ihevc_hbd_iquant_recon_32x32_ft(WORD16 *pi2_src,
    132                                              UWORD16 *pu2_pred,
    133                                              WORD16 *pi2_dequant_coeff,
    134                                              UWORD16 *pu2_dst,
    135                                              WORD32 qp_div, /* qpscaled / 6 */
    136                                              WORD32 qp_rem, /* qpscaled % 6 */
    137                                              WORD32 src_strd,
    138                                              WORD32 pred_strd,
    139                                              WORD32 dst_strd,
    140                                              WORD32 zero_cols,
    141                                              UWORD8 bit_depth);
    142 
    143 ihevc_iquant_recon_4x4_ttype1_ft ihevc_iquant_recon_4x4_ttype1;
    144 ihevc_hbd_iquant_recon_4x4_ttype1_ft ihevc_hbd_iquant_recon_4x4_ttype1;
    145 ihevc_iquant_recon_4x4_ft ihevc_iquant_recon_4x4;
    146 ihevc_hbd_iquant_recon_4x4_ft ihevc_hbd_iquant_recon_4x4;
    147 ihevc_iquant_recon_8x8_ft ihevc_iquant_recon_8x8;
    148 ihevc_hbd_iquant_recon_8x8_ft ihevc_hbd_iquant_recon_8x8;
    149 ihevc_iquant_recon_16x16_ft ihevc_iquant_recon_16x16;
    150 ihevc_hbd_iquant_recon_16x16_ft ihevc_hbd_iquant_recon_16x16;
    151 ihevc_iquant_recon_32x32_ft ihevc_iquant_recon_32x32;
    152 ihevc_hbd_iquant_recon_32x32_ft ihevc_hbd_iquant_recon_32x32;
    153 
    154 #endif /*_IHEVC_IQUANT_RECON_H_*/
    155