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_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 
     37 typedef 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);
     43 typedef 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);
     49 typedef 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);
     55 typedef 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);
     61 typedef 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 */
     69 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1;
     70 ihevc_itrans_4x4_ft ihevc_itrans_4x4;
     71 ihevc_itrans_8x8_ft ihevc_itrans_8x8;
     72 ihevc_itrans_16x16_ft ihevc_itrans_16x16;
     73 ihevc_itrans_32x32_ft ihevc_itrans_32x32;
     74 
     75 /* A9 Q function declarations */
     76 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_a9q;
     77 ihevc_itrans_4x4_ft ihevc_itrans_4x4_a9q;
     78 ihevc_itrans_8x8_ft ihevc_itrans_8x8_a9q;
     79 ihevc_itrans_16x16_ft ihevc_itrans_16x16_a9q;
     80 ihevc_itrans_32x32_ft ihevc_itrans_32x32_a9q;
     81 
     82 /* A9 Q function declarations */
     83 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_neonintr;
     84 ihevc_itrans_4x4_ft ihevc_itrans_4x4_neonintr;
     85 ihevc_itrans_8x8_ft ihevc_itrans_8x8_neonintr;
     86 ihevc_itrans_16x16_ft ihevc_itrans_16x16_neonintr;
     87 ihevc_itrans_32x32_ft ihevc_itrans_32x32_neonintr;
     88 
     89 /* SSSE3 function declarations */
     90 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_ssse3;
     91 ihevc_itrans_4x4_ft ihevc_itrans_4x4_ssse3;
     92 ihevc_itrans_8x8_ft ihevc_itrans_8x8_ssse3;
     93 ihevc_itrans_16x16_ft ihevc_itrans_16x16_ssse3;
     94 ihevc_itrans_32x32_ft ihevc_itrans_32x32_ssse3;
     95 
     96 /* SSE4.2 function declarations */
     97 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_sse42;
     98 ihevc_itrans_4x4_ft ihevc_itrans_4x4_sse42;
     99 ihevc_itrans_8x8_ft ihevc_itrans_8x8_sse42;
    100 ihevc_itrans_16x16_ft ihevc_itrans_16x16_sse42;
    101 ihevc_itrans_32x32_ft ihevc_itrans_32x32_sse42;
    102 
    103 /* armv8 function declarations */
    104 ihevc_itrans_4x4_ttype1_ft ihevc_itrans_4x4_ttype1_av8;
    105 ihevc_itrans_4x4_ft ihevc_itrans_4x4_av8;
    106 ihevc_itrans_8x8_ft ihevc_itrans_8x8_av8;
    107 ihevc_itrans_16x16_ft ihevc_itrans_16x16_av8;
    108 ihevc_itrans_32x32_ft ihevc_itrans_32x32_av8;
    109 #endif /*_IHEVC_ITRANS_H_*/
    110