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_itrans.h 22* 23* @brief 24* Functions declarations for inverse transform 25* 26* @author 27* Ittiam 28* 29* @remarks 30* None 31* 32******************************************************************************* 33*/ 34#ifndef _IHEVC_ITRANS_H_ 35#define _IHEVC_ITRANS_H_ 36 37typedef void ihevc_itrans_4x4_ttype1_ft(WORD16 *pi2_src, 38 WORD16 *pi2_dst, 39 WORD32 i4_src_strd, 40 WORD32 i4_dst_strd, 41 WORD32 i4_shift, 42 WORD32 i4_zero_cols); 43typedef void ihevc_itrans_4x4_ft(WORD16 *pi2_src, 44 WORD16 *pi2_dst, 45 WORD32 i4_src_strd, 46 WORD32 i4_dst_strd, 47 WORD32 i4_shift, 48 WORD32 i4_zero_cols); 49typedef void ihevc_itrans_8x8_ft(WORD16 *pi2_src, 50 WORD16 *pi2_dst, 51 WORD32 i4_src_strd, 52 WORD32 i4_dst_strd, 53 WORD32 i4_shift, 54 WORD32 i4_zero_cols); 55typedef void ihevc_itrans_16x16_ft(WORD16 *pi2_src, 56 WORD16 *pi2_dst, 57 WORD32 i4_src_strd, 58 WORD32 i4_dst_strd, 59 WORD32 i4_shift, 60 WORD32 i4_zero_cols); 61typedef void ihevc_itrans_32x32_ft(WORD16 *pi2_src, 62 WORD16 *pi2_dst, 63 WORD32 i4_src_strd, 64 WORD32 i4_dst_strd, 65 WORD32 i4_shift, 66 WORD32 i4_zero_cols); 67 68/* C function declarations */ 69ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1; 70ihevc_itrans_4x4_ft ihevc_itrans_4x4; 71ihevc_itrans_8x8_ft ihevc_itrans_8x8; 72ihevc_itrans_16x16_ft ihevc_itrans_16x16; 73ihevc_itrans_32x32_ft ihevc_itrans_32x32; 74 75/* A9 Q function declarations */ 76ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_a9q; 77ihevc_itrans_4x4_ft ihevc_itrans_4x4_a9q; 78ihevc_itrans_8x8_ft ihevc_itrans_8x8_a9q; 79ihevc_itrans_16x16_ft ihevc_itrans_16x16_a9q; 80ihevc_itrans_32x32_ft ihevc_itrans_32x32_a9q; 81 82/* A9 Q function declarations */ 83ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_neonintr; 84ihevc_itrans_4x4_ft ihevc_itrans_4x4_neonintr; 85ihevc_itrans_8x8_ft ihevc_itrans_8x8_neonintr; 86ihevc_itrans_16x16_ft ihevc_itrans_16x16_neonintr; 87ihevc_itrans_32x32_ft ihevc_itrans_32x32_neonintr; 88 89/* SSSE3 function declarations */ 90ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_ssse3; 91ihevc_itrans_4x4_ft ihevc_itrans_4x4_ssse3; 92ihevc_itrans_8x8_ft ihevc_itrans_8x8_ssse3; 93ihevc_itrans_16x16_ft ihevc_itrans_16x16_ssse3; 94ihevc_itrans_32x32_ft ihevc_itrans_32x32_ssse3; 95 96/* SSE4.2 function declarations */ 97ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_sse42; 98ihevc_itrans_4x4_ft ihevc_itrans_4x4_sse42; 99ihevc_itrans_8x8_ft ihevc_itrans_8x8_sse42; 100ihevc_itrans_16x16_ft ihevc_itrans_16x16_sse42; 101ihevc_itrans_32x32_ft ihevc_itrans_32x32_sse42; 102 103/* armv8 function declarations */ 104ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_av8; 105ihevc_itrans_4x4_ft ihevc_itrans_4x4_av8; 106ihevc_itrans_8x8_ft ihevc_itrans_8x8_av8; 107ihevc_itrans_16x16_ft ihevc_itrans_16x16_av8; 108ihevc_itrans_32x32_ft ihevc_itrans_32x32_av8; 109#endif /*_IHEVC_ITRANS_H_*/ 110