Home | History | Annotate | Download | only in common
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2015 The Android Open Source Project
      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  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 */
     20 /**
     21  *******************************************************************************
     22  * @file
     23  *  ih264_deblk_edge_filters.h
     24  *
     25  * @brief
     26  *  This file contains declarations of functions used for deblocking
     27  *
     28  * @author
     29  *  Ittiam
     30  *
     31  * @remarks
     32  *  None
     33  *
     34  *******************************************************************************
     35  */
     36 
     37 #ifndef IH264_DEBLK_H_
     38 #define IH264_DEBLK_H_
     39 
     40 /*****************************************************************************/
     41 /* Extern Function Declarations                                              */
     42 /*****************************************************************************/
     43 
     44 typedef void ih264_deblk_edge_bslt4_ft(UWORD8 *pu1_src,
     45                                        WORD32 src_strd,
     46                                        WORD32 alpha,
     47                                        WORD32 beta,
     48                                        UWORD32 u4_bs,
     49                                        const UWORD8 *pu1_cliptab );
     50 
     51 typedef void ih264_deblk_edge_bs4_ft(UWORD8 *pu1_src,
     52                                      WORD32 src_strd,
     53                                      WORD32 alpha,
     54                                      WORD32 beta );
     55 
     56 typedef void ih264_deblk_chroma_edge_bslt4_ft(UWORD8 *pu1_src,
     57                                               WORD32 src_strd,
     58                                               WORD32 alpha_cb,
     59                                               WORD32 beta_cb,
     60                                               WORD32 alpha_cr,
     61                                               WORD32 beta_cr,
     62                                               UWORD32 u4_bs,
     63                                               const UWORD8 *pu1_cliptab_cb,
     64                                               const UWORD8 *pu1_cliptab_cr);
     65 
     66 typedef void ih264_deblk_chroma_edge_bs4_ft(UWORD8 *pu1_src,
     67                                             WORD32 src_strd,
     68                                             WORD32 alpha_cb,
     69                                             WORD32 beta_cb,
     70                                             WORD32 alpha_cr,
     71                                             WORD32 beta_cr);
     72 
     73 
     74 
     75 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4;
     76 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4;
     77 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff;
     78 
     79 
     80 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp;
     81 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp;
     82 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp;
     83 
     84 
     85 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4;
     86 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4;
     87 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff;
     88 
     89 
     90 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp;
     91 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp;
     92 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp;
     93 
     94 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4;
     95 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4;
     96 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff;
     97 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff;
     98 
     99 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4;
    100 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4;
    101 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff;
    102 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff;
    103 
    104 
    105 /*A9*/
    106 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_a9;
    107 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_a9;
    108 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_a9;
    109 
    110 
    111 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_a9;
    112 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_a9;
    113 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_a9;
    114 
    115 
    116 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_a9;
    117 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_a9;
    118 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_a9;
    119 
    120 
    121 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_a9;
    122 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_a9;
    123 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_a9;
    124 
    125 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_a9;
    126 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_a9;
    127 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_a9;
    128 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_a9;
    129 
    130 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_a9;
    131 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_a9;
    132 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_a9;
    133 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_a9;
    134 
    135 /*AV8*/
    136 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_av8;
    137 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_av8;
    138 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_av8;
    139 
    140 
    141 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_av8;
    142 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_av8;
    143 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_av8;
    144 
    145 
    146 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_av8;
    147 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_av8;
    148 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_av8;
    149 
    150 
    151 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_av8;
    152 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_av8;
    153 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_av8;
    154 
    155 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_av8;
    156 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_av8;
    157 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_av8;
    158 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_av8;
    159 
    160 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_av8;
    161 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_av8;
    162 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_av8;
    163 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_av8;
    164 
    165 /*SSE3*/
    166 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_ssse3;
    167 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_ssse3;
    168 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_ssse3;
    169 
    170 
    171 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_ssse3;
    172 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_ssse3;
    173 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_ssse3;
    174 
    175 
    176 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_ssse3;
    177 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_ssse3;
    178 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_ssse3;
    179 
    180 
    181 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_ssse3;
    182 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_ssse3;
    183 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_ssse3;
    184 
    185 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_ssse3;
    186 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_ssse3;
    187 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_ssse3;
    188 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_ssse3;
    189 
    190 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_ssse3;
    191 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_ssse3;
    192 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_ssse3;
    193 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_ssse3;
    194 
    195 #endif /* IH264_DEBLK_H_ */
    196