1*c83a76b0SSuyog Pawar /****************************************************************************** 2*c83a76b0SSuyog Pawar * 3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 4*c83a76b0SSuyog Pawar * 5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License"); 6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License. 7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at: 8*c83a76b0SSuyog Pawar * 9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0 10*c83a76b0SSuyog Pawar * 11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software 12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS, 13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and 15*c83a76b0SSuyog Pawar * limitations under the License. 16*c83a76b0SSuyog Pawar * 17*c83a76b0SSuyog Pawar ******************************************************************************/ 18*c83a76b0SSuyog Pawar /** 19*c83a76b0SSuyog Pawar ******************************************************************************* 20*c83a76b0SSuyog Pawar * @file 21*c83a76b0SSuyog Pawar * ihevc_iquant_itrans_recon.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * Functions declarations for inverse quantization, inverse transform and 25*c83a76b0SSuyog Pawar * reconstruction 26*c83a76b0SSuyog Pawar * 27*c83a76b0SSuyog Pawar * @author 28*c83a76b0SSuyog Pawar * Ittiam 29*c83a76b0SSuyog Pawar * 30*c83a76b0SSuyog Pawar * @remarks 31*c83a76b0SSuyog Pawar * None 32*c83a76b0SSuyog Pawar * 33*c83a76b0SSuyog Pawar ******************************************************************************* 34*c83a76b0SSuyog Pawar */ 35*c83a76b0SSuyog Pawar 36*c83a76b0SSuyog Pawar #ifndef _IHEVC_IQUANT_ITRANS_RECON_H_ 37*c83a76b0SSuyog Pawar #define _IHEVC_IQUANT_ITRANS_RECON_H_ 38*c83a76b0SSuyog Pawar 39*c83a76b0SSuyog Pawar typedef void ihevc_iquant_itrans_recon_4x4_ttype1_ft(WORD16 *pi2_src, 40*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 41*c83a76b0SSuyog Pawar UWORD8 *pu1_pred, 42*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 43*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 44*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 45*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 46*c83a76b0SSuyog Pawar WORD32 src_strd, 47*c83a76b0SSuyog Pawar WORD32 pred_strd, 48*c83a76b0SSuyog Pawar WORD32 dst_strd, 49*c83a76b0SSuyog Pawar WORD32 zero_cols, 50*c83a76b0SSuyog Pawar WORD32 zero_rows); 51*c83a76b0SSuyog Pawar 52*c83a76b0SSuyog Pawar typedef void ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft(WORD16 *pi2_src, 53*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 54*c83a76b0SSuyog Pawar UWORD16 *pu2_pred, 55*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 56*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 57*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 58*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 59*c83a76b0SSuyog Pawar WORD32 src_strd, 60*c83a76b0SSuyog Pawar WORD32 pred_strd, 61*c83a76b0SSuyog Pawar WORD32 dst_strd, 62*c83a76b0SSuyog Pawar WORD32 zero_cols, 63*c83a76b0SSuyog Pawar WORD32 zero_rows, 64*c83a76b0SSuyog Pawar UWORD8 bit_depth); 65*c83a76b0SSuyog Pawar 66*c83a76b0SSuyog Pawar typedef void ihevc_iquant_itrans_recon_4x4_ft(WORD16 *pi2_src, 67*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 68*c83a76b0SSuyog Pawar UWORD8 *pu1_pred, 69*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 70*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 71*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 72*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 73*c83a76b0SSuyog Pawar WORD32 src_strd, 74*c83a76b0SSuyog Pawar WORD32 pred_strd, 75*c83a76b0SSuyog Pawar WORD32 dst_strd, 76*c83a76b0SSuyog Pawar WORD32 zero_cols, 77*c83a76b0SSuyog Pawar WORD32 zero_rows); 78*c83a76b0SSuyog Pawar 79*c83a76b0SSuyog Pawar typedef void ihevc_hbd_iquant_itrans_recon_4x4_ft(WORD16 *pi2_src, 80*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 81*c83a76b0SSuyog Pawar UWORD16 *pu2_pred, 82*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 83*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 84*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 85*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 86*c83a76b0SSuyog Pawar WORD32 src_strd, 87*c83a76b0SSuyog Pawar WORD32 pred_strd, 88*c83a76b0SSuyog Pawar WORD32 dst_strd, 89*c83a76b0SSuyog Pawar WORD32 zero_cols, 90*c83a76b0SSuyog Pawar WORD32 zero_rows, 91*c83a76b0SSuyog Pawar UWORD8 bit_depth); 92*c83a76b0SSuyog Pawar 93*c83a76b0SSuyog Pawar typedef void ihevc_iquant_itrans_recon_8x8_ft(WORD16 *pi2_src, 94*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 95*c83a76b0SSuyog Pawar UWORD8 *pu1_pred, 96*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 97*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 98*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 99*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 100*c83a76b0SSuyog Pawar WORD32 src_strd, 101*c83a76b0SSuyog Pawar WORD32 pred_strd, 102*c83a76b0SSuyog Pawar WORD32 dst_strd, 103*c83a76b0SSuyog Pawar WORD32 zero_cols, 104*c83a76b0SSuyog Pawar WORD32 zero_rows); 105*c83a76b0SSuyog Pawar 106*c83a76b0SSuyog Pawar typedef void ihevc_hbd_iquant_itrans_recon_8x8_ft(WORD16 *pi2_src, 107*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 108*c83a76b0SSuyog Pawar UWORD16 *pu2_pred, 109*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 110*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 111*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 112*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 113*c83a76b0SSuyog Pawar WORD32 src_strd, 114*c83a76b0SSuyog Pawar WORD32 pred_strd, 115*c83a76b0SSuyog Pawar WORD32 dst_strd, 116*c83a76b0SSuyog Pawar WORD32 zero_cols, 117*c83a76b0SSuyog Pawar WORD32 zero_rows, 118*c83a76b0SSuyog Pawar UWORD8 bit_depth); 119*c83a76b0SSuyog Pawar 120*c83a76b0SSuyog Pawar typedef void ihevc_iquant_itrans_recon_16x16_ft(WORD16 *pi2_src, 121*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 122*c83a76b0SSuyog Pawar UWORD8 *pu1_pred, 123*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 124*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 125*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 126*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 127*c83a76b0SSuyog Pawar WORD32 src_strd, 128*c83a76b0SSuyog Pawar WORD32 pred_strd, 129*c83a76b0SSuyog Pawar WORD32 dst_strd, 130*c83a76b0SSuyog Pawar WORD32 zero_cols, 131*c83a76b0SSuyog Pawar WORD32 zero_rows); 132*c83a76b0SSuyog Pawar 133*c83a76b0SSuyog Pawar typedef void ihevc_hbd_iquant_itrans_recon_16x16_ft(WORD16 *pi2_src, 134*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 135*c83a76b0SSuyog Pawar UWORD16 *pu2_pred, 136*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 137*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 138*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 139*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 140*c83a76b0SSuyog Pawar WORD32 src_strd, 141*c83a76b0SSuyog Pawar WORD32 pred_strd, 142*c83a76b0SSuyog Pawar WORD32 dst_strd, 143*c83a76b0SSuyog Pawar WORD32 zero_cols, 144*c83a76b0SSuyog Pawar WORD32 zero_rows, 145*c83a76b0SSuyog Pawar UWORD8 bit_depth); 146*c83a76b0SSuyog Pawar 147*c83a76b0SSuyog Pawar typedef void ihevc_iquant_itrans_recon_32x32_ft(WORD16 *pi2_src, 148*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 149*c83a76b0SSuyog Pawar UWORD8 *pu1_pred, 150*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 151*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 152*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 153*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 154*c83a76b0SSuyog Pawar WORD32 src_strd, 155*c83a76b0SSuyog Pawar WORD32 pred_strd, 156*c83a76b0SSuyog Pawar WORD32 dst_strd, 157*c83a76b0SSuyog Pawar WORD32 zero_cols, 158*c83a76b0SSuyog Pawar WORD32 zero_rows); 159*c83a76b0SSuyog Pawar 160*c83a76b0SSuyog Pawar typedef void ihevc_hbd_iquant_itrans_recon_32x32_ft(WORD16 *pi2_src, 161*c83a76b0SSuyog Pawar WORD16 *pi2_tmp, 162*c83a76b0SSuyog Pawar UWORD16 *pu2_pred, 163*c83a76b0SSuyog Pawar WORD16 *pi2_dequant_coeff, 164*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 165*c83a76b0SSuyog Pawar WORD32 qp_div, /* qpscaled / 6 */ 166*c83a76b0SSuyog Pawar WORD32 qp_rem, /* qpscaled % 6 */ 167*c83a76b0SSuyog Pawar WORD32 src_strd, 168*c83a76b0SSuyog Pawar WORD32 pred_strd, 169*c83a76b0SSuyog Pawar WORD32 dst_strd, 170*c83a76b0SSuyog Pawar WORD32 zero_cols, 171*c83a76b0SSuyog Pawar WORD32 zero_rows, 172*c83a76b0SSuyog Pawar UWORD8 bit_depth); 173*c83a76b0SSuyog Pawar 174*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_4x4_ttype1_ft ihevc_iquant_itrans_recon_4x4_ttype1; 175*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft ihevc_hbd_iquant_itrans_recon_4x4_ttype1; 176*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_4x4_ft ihevc_iquant_itrans_recon_4x4; 177*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_4x4_ft ihevc_hbd_iquant_itrans_recon_4x4; 178*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_8x8_ft ihevc_iquant_itrans_recon_8x8; 179*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_8x8_ft ihevc_hbd_iquant_itrans_recon_8x8; 180*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_16x16_ft ihevc_iquant_itrans_recon_16x16; 181*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_16x16_ft ihevc_hbd_iquant_itrans_recon_16x16; 182*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_32x32_ft ihevc_iquant_itrans_recon_32x32; 183*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_32x32_ft ihevc_hbd_iquant_itrans_recon_32x32; 184*c83a76b0SSuyog Pawar 185*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_4x4_ttype1_ft ihevc_iquant_itrans_recon_4x4_ttype1_sse42; 186*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_4x4_ft ihevc_iquant_itrans_recon_4x4_sse42; 187*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_8x8_ft ihevc_iquant_itrans_recon_8x8_sse42; 188*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_16x16_ft ihevc_iquant_itrans_recon_16x16_sse42; 189*c83a76b0SSuyog Pawar ihevc_iquant_itrans_recon_32x32_ft ihevc_iquant_itrans_recon_32x32_sse42; 190*c83a76b0SSuyog Pawar 191*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_4x4_ttype1_ft ihevc_hbd_iquant_itrans_recon_4x4_ttype1_sse42; 192*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_4x4_ft ihevc_hbd_iquant_itrans_recon_4x4_sse42; 193*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_8x8_ft ihevc_hbd_iquant_itrans_recon_8x8_sse42; 194*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_16x16_ft ihevc_hbd_iquant_itrans_recon_16x16_sse42; 195*c83a76b0SSuyog Pawar ihevc_hbd_iquant_itrans_recon_32x32_ft ihevc_hbd_iquant_itrans_recon_32x32_sse42; 196*c83a76b0SSuyog Pawar #endif /*_IHEVC_IQUANT_ITRANS_RECON_H_*/ 197*c83a76b0SSuyog Pawar 198