blob: 4079dd2cc5294a5e7b0f6db0beb1e84c43980ee7 [file] [log] [blame]
Hamsalekha S8d3d3032015-03-13 21:24:58 +05301/******************************************************************************
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
44typedef 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
51typedef void ih264_deblk_edge_bs4_ft(UWORD8 *pu1_src,
52 WORD32 src_strd,
53 WORD32 alpha,
54 WORD32 beta );
55
56typedef 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
66typedef 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
75ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4;
76ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4;
77ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff;
78
79
80ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp;
81ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp;
82ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp;
83
84
85ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4;
86ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4;
87ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff;
88
89
90ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp;
91ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp;
92ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp;
93
94ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4;
95ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4;
96ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff;
97ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff;
98
99ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4;
100ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4;
101ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff;
102ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff;
103
104
105/*A9*/
106ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_a9;
107ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_a9;
108ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_a9;
109
110
111ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_a9;
112ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_a9;
113ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_a9;
114
115
116ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_a9;
117ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_a9;
118ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_a9;
119
120
121ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_a9;
122ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_a9;
123ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_a9;
124
125ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_a9;
126ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_a9;
127ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_a9;
128ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_a9;
129
130ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_a9;
131ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_a9;
132ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_a9;
133ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_a9;
134
135/*AV8*/
136ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_av8;
137ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_av8;
138ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_av8;
139
140
141ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_av8;
142ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_av8;
143ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_av8;
144
145
146ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_av8;
147ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_av8;
148ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_av8;
149
150
151ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_av8;
152ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_av8;
153ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_av8;
154
155ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_av8;
156ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_av8;
157ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_av8;
158ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_av8;
159
160ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_av8;
161ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_av8;
162ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_av8;
163ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_av8;
164
165/*SSE3*/
166ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_ssse3;
167ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_ssse3;
168ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_ssse3;
169
170
171ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_ssse3;
172ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_ssse3;
173ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_ssse3;
174
175
176ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_ssse3;
177ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_ssse3;
178ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_ssse3;
179
180
181ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_ssse3;
182ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_ssse3;
183ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_ssse3;
184
185ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_ssse3;
186ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_ssse3;
187ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_ssse3;
188ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_ssse3;
189
190ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_ssse3;
191ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_ssse3;
192ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_ssse3;
193ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_ssse3;
194
195#endif /* IH264_DEBLK_H_ */