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_itrans_recon.h
     22 *
     23 * @brief
     24 *  Functions declarations for inverse quantization,  inverse transform and
     25 * reconstruction
     26 *
     27 * @author
     28 *  Ittiam
     29 *
     30 * @remarks
     31 *  None
     32 *
     33 *******************************************************************************
     34 */
     35 
     36 #ifndef _IHEVC_IQUANT_ITRANS_RECON_H_
     37 #define _IHEVC_IQUANT_ITRANS_RECON_H_
     38 
     39 typedef void ihevc_iquant_itrans_recon_4x4_ttype1_ft(WORD16 *pi2_src,
     40                                                      WORD16 *pi2_tmp,
     41                                                      UWORD8 *pu1_pred,
     42                                                      WORD16 *pi2_dequant_coeff,
     43                                                      UWORD8 *pu1_dst,
     44                                                      WORD32 qp_div, /* qpscaled / 6 */
     45                                                      WORD32 qp_rem, /* qpscaled % 6 */
     46                                                      WORD32 src_strd,
     47                                                      WORD32 pred_strd,
     48                                                      WORD32 dst_strd,
     49                                                      WORD32 zero_cols,
     50                                                      WORD32 zero_rows);
     51 
     52 typedef void ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft(WORD16 *pi2_src,
     53                                                          WORD16 *pi2_tmp,
     54                                                          UWORD16 *pu2_pred,
     55                                                          WORD16 *pi2_dequant_coeff,
     56                                                          UWORD16 *pu2_dst,
     57                                                          WORD32 qp_div, /* qpscaled / 6 */
     58                                                          WORD32 qp_rem, /* qpscaled % 6 */
     59                                                          WORD32 src_strd,
     60                                                          WORD32 pred_strd,
     61                                                          WORD32 dst_strd,
     62                                                          WORD32 zero_cols,
     63                                                          WORD32 zero_rows,
     64                                                          UWORD8 bit_depth);
     65 
     66 typedef void ihevc_iquant_itrans_recon_4x4_ft(WORD16 *pi2_src,
     67                                               WORD16 *pi2_tmp,
     68                                               UWORD8 *pu1_pred,
     69                                               WORD16 *pi2_dequant_coeff,
     70                                               UWORD8 *pu1_dst,
     71                                               WORD32 qp_div, /* qpscaled / 6 */
     72                                               WORD32 qp_rem, /* qpscaled % 6 */
     73                                               WORD32 src_strd,
     74                                               WORD32 pred_strd,
     75                                               WORD32 dst_strd,
     76                                               WORD32 zero_cols,
     77                                               WORD32 zero_rows);
     78 
     79 typedef void ihevc_hbd_iquant_itrans_recon_4x4_ft(WORD16 *pi2_src,
     80                                                   WORD16 *pi2_tmp,
     81                                                   UWORD16 *pu2_pred,
     82                                                   WORD16 *pi2_dequant_coeff,
     83                                                   UWORD16 *pu2_dst,
     84                                                   WORD32 qp_div, /* qpscaled / 6 */
     85                                                   WORD32 qp_rem, /* qpscaled % 6 */
     86                                                   WORD32 src_strd,
     87                                                   WORD32 pred_strd,
     88                                                   WORD32 dst_strd,
     89                                                   WORD32 zero_cols,
     90                                                   WORD32 zero_rows,
     91                                                   UWORD8 bit_depth);
     92 
     93 typedef void ihevc_iquant_itrans_recon_8x8_ft(WORD16 *pi2_src,
     94                                               WORD16 *pi2_tmp,
     95                                               UWORD8 *pu1_pred,
     96                                               WORD16 *pi2_dequant_coeff,
     97                                               UWORD8 *pu1_dst,
     98                                               WORD32 qp_div, /* qpscaled / 6 */
     99                                               WORD32 qp_rem, /* qpscaled % 6 */
    100                                               WORD32 src_strd,
    101                                               WORD32 pred_strd,
    102                                               WORD32 dst_strd,
    103                                               WORD32 zero_cols,
    104                                               WORD32 zero_rows);
    105 
    106 typedef void ihevc_hbd_iquant_itrans_recon_8x8_ft(WORD16 *pi2_src,
    107                                                   WORD16 *pi2_tmp,
    108                                                   UWORD16 *pu2_pred,
    109                                                   WORD16 *pi2_dequant_coeff,
    110                                                   UWORD16 *pu2_dst,
    111                                                   WORD32 qp_div, /* qpscaled / 6 */
    112                                                   WORD32 qp_rem, /* qpscaled % 6 */
    113                                                   WORD32 src_strd,
    114                                                   WORD32 pred_strd,
    115                                                   WORD32 dst_strd,
    116                                                   WORD32 zero_cols,
    117                                                   WORD32 zero_rows,
    118                                                   UWORD8 bit_depth);
    119 
    120 typedef void ihevc_iquant_itrans_recon_16x16_ft(WORD16 *pi2_src,
    121                                                 WORD16 *pi2_tmp,
    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                                                 WORD32 zero_rows);
    132 
    133 typedef void ihevc_hbd_iquant_itrans_recon_16x16_ft(WORD16 *pi2_src,
    134                                                     WORD16 *pi2_tmp,
    135                                                     UWORD16 *pu2_pred,
    136                                                     WORD16 *pi2_dequant_coeff,
    137                                                     UWORD16 *pu2_dst,
    138                                                     WORD32 qp_div, /* qpscaled / 6 */
    139                                                     WORD32 qp_rem, /* qpscaled % 6 */
    140                                                     WORD32 src_strd,
    141                                                     WORD32 pred_strd,
    142                                                     WORD32 dst_strd,
    143                                                     WORD32 zero_cols,
    144                                                     WORD32 zero_rows,
    145                                                     UWORD8 bit_depth);
    146 
    147 typedef void ihevc_iquant_itrans_recon_32x32_ft(WORD16 *pi2_src,
    148                                                 WORD16 *pi2_tmp,
    149                                                 UWORD8 *pu1_pred,
    150                                                 WORD16 *pi2_dequant_coeff,
    151                                                 UWORD8 *pu1_dst,
    152                                                 WORD32 qp_div, /* qpscaled / 6 */
    153                                                 WORD32 qp_rem, /* qpscaled % 6 */
    154                                                 WORD32 src_strd,
    155                                                 WORD32 pred_strd,
    156                                                 WORD32 dst_strd,
    157                                                 WORD32 zero_cols,
    158                                                 WORD32 zero_rows);
    159 
    160 typedef void ihevc_hbd_iquant_itrans_recon_32x32_ft(WORD16 *pi2_src,
    161                                                     WORD16 *pi2_tmp,
    162                                                     UWORD16 *pu2_pred,
    163                                                     WORD16 *pi2_dequant_coeff,
    164                                                     UWORD16 *pu2_dst,
    165                                                     WORD32 qp_div, /* qpscaled / 6 */
    166                                                     WORD32 qp_rem, /* qpscaled % 6 */
    167                                                     WORD32 src_strd,
    168                                                     WORD32 pred_strd,
    169                                                     WORD32 dst_strd,
    170                                                     WORD32 zero_cols,
    171                                                     WORD32 zero_rows,
    172                                                     UWORD8 bit_depth);
    173 
    174 ihevc_iquant_itrans_recon_4x4_ttype1_ft ihevc_iquant_itrans_recon_4x4_ttype1;
    175 ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft ihevc_hbd_iquant_itrans_recon_4x4_ttype1;
    176 ihevc_iquant_itrans_recon_4x4_ft ihevc_iquant_itrans_recon_4x4;
    177 ihevc_hbd_iquant_itrans_recon_4x4_ft ihevc_hbd_iquant_itrans_recon_4x4;
    178 ihevc_iquant_itrans_recon_8x8_ft ihevc_iquant_itrans_recon_8x8;
    179 ihevc_hbd_iquant_itrans_recon_8x8_ft ihevc_hbd_iquant_itrans_recon_8x8;
    180 ihevc_iquant_itrans_recon_16x16_ft ihevc_iquant_itrans_recon_16x16;
    181 ihevc_hbd_iquant_itrans_recon_16x16_ft ihevc_hbd_iquant_itrans_recon_16x16;
    182 ihevc_iquant_itrans_recon_32x32_ft ihevc_iquant_itrans_recon_32x32;
    183 ihevc_hbd_iquant_itrans_recon_32x32_ft ihevc_hbd_iquant_itrans_recon_32x32;
    184 
    185 ihevc_iquant_itrans_recon_4x4_ttype1_ft ihevc_iquant_itrans_recon_4x4_ttype1_sse42;
    186 ihevc_iquant_itrans_recon_4x4_ft ihevc_iquant_itrans_recon_4x4_sse42;
    187 ihevc_iquant_itrans_recon_8x8_ft ihevc_iquant_itrans_recon_8x8_sse42;
    188 ihevc_iquant_itrans_recon_16x16_ft ihevc_iquant_itrans_recon_16x16_sse42;
    189 ihevc_iquant_itrans_recon_32x32_ft ihevc_iquant_itrans_recon_32x32_sse42;
    190 
    191 ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft ihevc_hbd_iquant_itrans_recon_4x4_ttype1_sse42;
    192 ihevc_hbd_iquant_itrans_recon_4x4_ft ihevc_hbd_iquant_itrans_recon_4x4_sse42;
    193 ihevc_hbd_iquant_itrans_recon_8x8_ft ihevc_hbd_iquant_itrans_recon_8x8_sse42;
    194 ihevc_hbd_iquant_itrans_recon_16x16_ft ihevc_hbd_iquant_itrans_recon_16x16_sse42;
    195 ihevc_hbd_iquant_itrans_recon_32x32_ft ihevc_hbd_iquant_itrans_recon_32x32_sse42;
    196 #endif /*_IHEVC_IQUANT_ITRANS_RECON_H_*/
    197 
    198