1 /*****************************************************************************
2 * intrapred.h: Intra Prediction metrics
3 *****************************************************************************
4 * Copyright (C) 2003-2013 x264 project
6 * Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com>
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.
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.
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.
22 * This program is also available under a commercial proprietary license.
23 * For more information, contact us at license @ x265.com.
24 *****************************************************************************/
26 #ifndef X265_INTRAPRED_H
27 #define X265_INTRAPRED_H
29 void x265_intra_pred_dc4_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int filter
);
30 void x265_intra_pred_dc8_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int filter
);
31 void x265_intra_pred_dc16_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int filter
);
32 void x265_intra_pred_dc32_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int filter
);
34 void x265_intra_pred_planar4_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int);
35 void x265_intra_pred_planar8_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int);
36 void x265_intra_pred_planar16_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int);
37 void x265_intra_pred_planar32_sse4(pixel
* dst
, intptr_t dstStride
, pixel
* above
, pixel
* left
, int, int);
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);
42 DECL_ANG(4, 2, ssse3
);
50 DECL_ANG(4, 10, sse4
);
51 DECL_ANG(4, 11, sse4
);
52 DECL_ANG(4, 12, sse4
);
53 DECL_ANG(4, 13, sse4
);
54 DECL_ANG(4, 14, sse4
);
55 DECL_ANG(4, 15, sse4
);
56 DECL_ANG(4, 16, sse4
);
57 DECL_ANG(4, 17, sse4
);
58 DECL_ANG(4, 18, sse4
);
59 DECL_ANG(4, 26, sse4
);
60 DECL_ANG(8, 2, ssse3
);
68 DECL_ANG(8, 10, sse4
);
69 DECL_ANG(8, 11, sse4
);
70 DECL_ANG(8, 12, sse4
);
71 DECL_ANG(8, 13, sse4
);
72 DECL_ANG(8, 14, sse4
);
73 DECL_ANG(8, 15, sse4
);
74 DECL_ANG(8, 16, sse4
);
75 DECL_ANG(8, 17, sse4
);
76 DECL_ANG(8, 18, sse4
);
77 DECL_ANG(8, 19, sse4
);
78 DECL_ANG(8, 20, sse4
);
79 DECL_ANG(8, 21, sse4
);
80 DECL_ANG(8, 22, sse4
);
81 DECL_ANG(8, 23, sse4
);
82 DECL_ANG(8, 24, sse4
);
83 DECL_ANG(8, 25, sse4
);
84 DECL_ANG(8, 26, sse4
);
85 DECL_ANG(8, 27, sse4
);
86 DECL_ANG(8, 28, sse4
);
87 DECL_ANG(8, 29, sse4
);
88 DECL_ANG(8, 30, sse4
);
89 DECL_ANG(8, 31, sse4
);
90 DECL_ANG(8, 32, sse4
);
91 DECL_ANG(8, 33, sse4
);
93 DECL_ANG(16, 2, ssse3
);
94 DECL_ANG(16, 3, sse4
);
95 DECL_ANG(16, 4, sse4
);
96 DECL_ANG(16, 5, sse4
);
97 DECL_ANG(16, 6, sse4
);
98 DECL_ANG(16, 7, sse4
);
99 DECL_ANG(16, 8, sse4
);
100 DECL_ANG(16, 9, sse4
);
101 DECL_ANG(16, 10, sse4
);
102 DECL_ANG(16, 11, sse4
);
103 DECL_ANG(16, 12, sse4
);
104 DECL_ANG(16, 13, sse4
);
105 DECL_ANG(16, 14, sse4
);
106 DECL_ANG(16, 15, sse4
);
107 DECL_ANG(16, 16, sse4
);
108 DECL_ANG(16, 17, sse4
);
109 DECL_ANG(16, 18, sse4
);
110 DECL_ANG(16, 19, sse4
);
111 DECL_ANG(16, 20, sse4
);
112 DECL_ANG(16, 21, sse4
);
113 DECL_ANG(16, 22, sse4
);
114 DECL_ANG(16, 23, sse4
);
115 DECL_ANG(16, 24, sse4
);
116 DECL_ANG(16, 25, sse4
);
117 DECL_ANG(16, 26, sse4
);
118 DECL_ANG(16, 27, sse4
);
119 DECL_ANG(16, 28, sse4
);
120 DECL_ANG(16, 29, sse4
);
121 DECL_ANG(16, 30, sse4
);
122 DECL_ANG(16, 31, sse4
);
123 DECL_ANG(16, 32, sse4
);
124 DECL_ANG(16, 33, sse4
);
126 DECL_ANG(32, 2, ssse3
);
127 DECL_ANG(32, 3, sse4
);
128 DECL_ANG(32, 4, sse4
);
129 DECL_ANG(32, 5, sse4
);
130 DECL_ANG(32, 6, sse4
);
131 DECL_ANG(32, 7, sse4
);
132 DECL_ANG(32, 8, sse4
);
133 DECL_ANG(32, 9, sse4
);
134 DECL_ANG(32, 10, sse4
);
135 DECL_ANG(32, 11, sse4
);
136 DECL_ANG(32, 12, sse4
);
137 DECL_ANG(32, 13, sse4
);
138 DECL_ANG(32, 14, sse4
);
139 DECL_ANG(32, 15, sse4
);
140 DECL_ANG(32, 16, sse4
);
141 DECL_ANG(32, 17, sse4
);
142 DECL_ANG(32, 18, sse4
);
143 DECL_ANG(32, 19, sse4
);
144 DECL_ANG(32, 20, sse4
);
145 DECL_ANG(32, 21, sse4
);
146 DECL_ANG(32, 22, sse4
);
147 DECL_ANG(32, 23, sse4
);
148 DECL_ANG(32, 24, sse4
);
149 DECL_ANG(32, 25, sse4
);
150 DECL_ANG(32, 26, sse4
);
151 DECL_ANG(32, 27, sse4
);
152 DECL_ANG(32, 28, sse4
);
153 DECL_ANG(32, 29, sse4
);
154 DECL_ANG(32, 30, sse4
);
155 DECL_ANG(32, 31, sse4
);
156 DECL_ANG(32, 32, sse4
);
157 DECL_ANG(32, 33, sse4
);
160 void x265_all_angs_pred_4x4_sse4(pixel
*dest
, pixel
*above0
, pixel
*left0
, pixel
*above1
, pixel
*left1
, int bLuma
);
161 void x265_all_angs_pred_8x8_sse4(pixel
*dest
, pixel
*above0
, pixel
*left0
, pixel
*above1
, pixel
*left1
, int bLuma
);
162 void x265_all_angs_pred_16x16_sse4(pixel
*dest
, pixel
*above0
, pixel
*left0
, pixel
*above1
, pixel
*left1
, int bLuma
);
163 void x265_all_angs_pred_32x32_sse4(pixel
*dest
, pixel
*above0
, pixel
*left0
, pixel
*above1
, pixel
*left1
, int bLuma
);
164 #endif // ifndef X265_INTRAPRED_H