Imported Upstream version 1.4
[deb_x265.git] / source / common / x86 / intrapred.h
CommitLineData
72b9787e
JB
1/*****************************************************************************
2 * intrapred.h: Intra Prediction metrics
3 *****************************************************************************
4 * Copyright (C) 2003-2013 x264 project
5 *
6 * Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
21 *
22 * This program is also available under a commercial proprietary license.
23 * For more information, contact us at license @ x265.com.
24 *****************************************************************************/
25
26#ifndef X265_INTRAPRED_H
27#define X265_INTRAPRED_H
28
29void x265_intra_pred_dc4_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int filter);
30void x265_intra_pred_dc8_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int filter);
31void x265_intra_pred_dc16_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int filter);
32void x265_intra_pred_dc32_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int filter);
33
34void x265_intra_pred_planar4_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int);
35void x265_intra_pred_planar8_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int);
36void x265_intra_pred_planar16_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int);
37void x265_intra_pred_planar32_sse4(pixel* dst, intptr_t dstStride, pixel* above, pixel* left, int, int);
38
39#define DECL_ANG(bsize, mode, cpu) \
40 void x265_intra_pred_ang ## bsize ## _ ## mode ## _ ## cpu(pixel * dst, intptr_t dstStride, pixel * refLeft, pixel * refAbove, int dirMode, int bFilter);
41
42DECL_ANG(4, 2, ssse3);
43DECL_ANG(4, 3, sse4);
44DECL_ANG(4, 4, sse4);
45DECL_ANG(4, 5, sse4);
46DECL_ANG(4, 6, sse4);
47DECL_ANG(4, 7, sse4);
48DECL_ANG(4, 8, sse4);
49DECL_ANG(4, 9, sse4);
50DECL_ANG(4, 10, sse4);
51DECL_ANG(4, 11, sse4);
52DECL_ANG(4, 12, sse4);
53DECL_ANG(4, 13, sse4);
54DECL_ANG(4, 14, sse4);
55DECL_ANG(4, 15, sse4);
56DECL_ANG(4, 16, sse4);
57DECL_ANG(4, 17, sse4);
58DECL_ANG(4, 18, sse4);
59DECL_ANG(4, 26, sse4);
60DECL_ANG(8, 2, ssse3);
61DECL_ANG(8, 3, sse4);
62DECL_ANG(8, 4, sse4);
63DECL_ANG(8, 5, sse4);
64DECL_ANG(8, 6, sse4);
65DECL_ANG(8, 7, sse4);
66DECL_ANG(8, 8, sse4);
67DECL_ANG(8, 9, sse4);
68DECL_ANG(8, 10, sse4);
69DECL_ANG(8, 11, sse4);
70DECL_ANG(8, 12, sse4);
71DECL_ANG(8, 13, sse4);
72DECL_ANG(8, 14, sse4);
73DECL_ANG(8, 15, sse4);
74DECL_ANG(8, 16, sse4);
75DECL_ANG(8, 17, sse4);
76DECL_ANG(8, 18, sse4);
77DECL_ANG(8, 19, sse4);
78DECL_ANG(8, 20, sse4);
79DECL_ANG(8, 21, sse4);
80DECL_ANG(8, 22, sse4);
81DECL_ANG(8, 23, sse4);
82DECL_ANG(8, 24, sse4);
83DECL_ANG(8, 25, sse4);
84DECL_ANG(8, 26, sse4);
85DECL_ANG(8, 27, sse4);
86DECL_ANG(8, 28, sse4);
87DECL_ANG(8, 29, sse4);
88DECL_ANG(8, 30, sse4);
89DECL_ANG(8, 31, sse4);
90DECL_ANG(8, 32, sse4);
91DECL_ANG(8, 33, sse4);
92
93DECL_ANG(16, 2, ssse3);
94DECL_ANG(16, 3, sse4);
95DECL_ANG(16, 4, sse4);
96DECL_ANG(16, 5, sse4);
97DECL_ANG(16, 6, sse4);
98DECL_ANG(16, 7, sse4);
99DECL_ANG(16, 8, sse4);
100DECL_ANG(16, 9, sse4);
101DECL_ANG(16, 10, sse4);
102DECL_ANG(16, 11, sse4);
103DECL_ANG(16, 12, sse4);
104DECL_ANG(16, 13, sse4);
105DECL_ANG(16, 14, sse4);
106DECL_ANG(16, 15, sse4);
107DECL_ANG(16, 16, sse4);
108DECL_ANG(16, 17, sse4);
109DECL_ANG(16, 18, sse4);
110DECL_ANG(16, 19, sse4);
111DECL_ANG(16, 20, sse4);
112DECL_ANG(16, 21, sse4);
113DECL_ANG(16, 22, sse4);
114DECL_ANG(16, 23, sse4);
115DECL_ANG(16, 24, sse4);
116DECL_ANG(16, 25, sse4);
117DECL_ANG(16, 26, sse4);
118DECL_ANG(16, 27, sse4);
119DECL_ANG(16, 28, sse4);
120DECL_ANG(16, 29, sse4);
121DECL_ANG(16, 30, sse4);
122DECL_ANG(16, 31, sse4);
123DECL_ANG(16, 32, sse4);
124DECL_ANG(16, 33, sse4);
125
126DECL_ANG(32, 2, ssse3);
127DECL_ANG(32, 3, sse4);
128DECL_ANG(32, 4, sse4);
129DECL_ANG(32, 5, sse4);
130DECL_ANG(32, 6, sse4);
131DECL_ANG(32, 7, sse4);
132DECL_ANG(32, 8, sse4);
133DECL_ANG(32, 9, sse4);
134DECL_ANG(32, 10, sse4);
135DECL_ANG(32, 11, sse4);
136DECL_ANG(32, 12, sse4);
137DECL_ANG(32, 13, sse4);
138DECL_ANG(32, 14, sse4);
139DECL_ANG(32, 15, sse4);
140DECL_ANG(32, 16, sse4);
141DECL_ANG(32, 17, sse4);
142DECL_ANG(32, 18, sse4);
143DECL_ANG(32, 19, sse4);
144DECL_ANG(32, 20, sse4);
145DECL_ANG(32, 21, sse4);
146DECL_ANG(32, 22, sse4);
147DECL_ANG(32, 23, sse4);
148DECL_ANG(32, 24, sse4);
149DECL_ANG(32, 25, sse4);
150DECL_ANG(32, 26, sse4);
151DECL_ANG(32, 27, sse4);
152DECL_ANG(32, 28, sse4);
153DECL_ANG(32, 29, sse4);
154DECL_ANG(32, 30, sse4);
155DECL_ANG(32, 31, sse4);
156DECL_ANG(32, 32, sse4);
157DECL_ANG(32, 33, sse4);
158
159#undef DECL_ANG
160void x265_all_angs_pred_4x4_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
161void x265_all_angs_pred_8x8_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
162void x265_all_angs_pred_16x16_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
163void x265_all_angs_pred_32x32_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
164#endif // ifndef X265_INTRAPRED_H