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