Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: source/libvpx/third_party/libyuv/include/libyuv/row.h

Issue 1302353004: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 19 matching lines...) Expand all
30 #else 30 #else
31 #define align_buffer_64(var, size) \ 31 #define align_buffer_64(var, size) \
32 uint8* var##_mem = (uint8*)(malloc((size) + 63)); /* NOLINT */ \ 32 uint8* var##_mem = (uint8*)(malloc((size) + 63)); /* NOLINT */ \
33 uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63) /* NOLINT */ 33 uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63) /* NOLINT */
34 #endif 34 #endif
35 35
36 #define free_aligned_buffer_64(var) \ 36 #define free_aligned_buffer_64(var) \
37 free(var##_mem); \ 37 free(var##_mem); \
38 var = 0 38 var = 0
39 39
40 #if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ 40 #if defined(__pnacl__) || defined(__CLR_VER) || \
41 defined(TARGET_IPHONE_SIMULATOR) || \ 41 (defined(__i386__) && !defined(__SSE2__))
42 (defined(__i386__) && !defined(__SSE2__)) || \
43 (defined(_MSC_VER) && defined(__clang__))
44 #define LIBYUV_DISABLE_X86 42 #define LIBYUV_DISABLE_X86
45 #endif 43 #endif
46 // True if compiling for SSSE3 as a requirement. 44 // True if compiling for SSSE3 as a requirement.
47 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) 45 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3))
48 #define LIBYUV_SSSE3_ONLY 46 #define LIBYUV_SSSE3_ONLY
49 #endif 47 #endif
50 48
49 #if defined(__native_client__)
50 #define LIBYUV_DISABLE_NEON
51 #endif
51 // clang >= 3.5.0 required for Arm64. 52 // clang >= 3.5.0 required for Arm64.
52 #if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON) 53 #if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON)
53 #if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5)) 54 #if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5))
54 #define LIBYUV_DISABLE_NEON 55 #define LIBYUV_DISABLE_NEON
55 #endif // clang >= 3.5 56 #endif // clang >= 3.5
56 #endif // __clang__ 57 #endif // __clang__
57 58
58 // The following are available on all x86 platforms: 59 // The following are available on all x86 platforms:
59 #if !defined(LIBYUV_DISABLE_X86) && \ 60 #if !defined(LIBYUV_DISABLE_X86) && \
60 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) 61 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
61 // Conversions: 62 // Conversions:
62 #define HAS_ABGRTOUVROW_SSSE3 63 #define HAS_ABGRTOUVROW_SSSE3
63 #define HAS_ABGRTOYROW_SSSE3 64 #define HAS_ABGRTOYROW_SSSE3
64 #define HAS_ARGB1555TOARGBROW_SSE2 65 #define HAS_ARGB1555TOARGBROW_SSE2
65 #define HAS_ARGB4444TOARGBROW_SSE2 66 #define HAS_ARGB4444TOARGBROW_SSE2
67 #define HAS_ARGBSETROW_X86
66 #define HAS_ARGBSHUFFLEROW_SSE2 68 #define HAS_ARGBSHUFFLEROW_SSE2
67 #define HAS_ARGBSHUFFLEROW_SSSE3 69 #define HAS_ARGBSHUFFLEROW_SSSE3
68 #define HAS_ARGBTOARGB1555ROW_SSE2 70 #define HAS_ARGBTOARGB1555ROW_SSE2
69 #define HAS_ARGBTOARGB4444ROW_SSE2 71 #define HAS_ARGBTOARGB4444ROW_SSE2
70 #define HAS_ARGBTOBAYERGGROW_SSE2
71 #define HAS_ARGBTORAWROW_SSSE3 72 #define HAS_ARGBTORAWROW_SSSE3
72 #define HAS_ARGBTORGB24ROW_SSSE3 73 #define HAS_ARGBTORGB24ROW_SSSE3
73 #define HAS_ARGBTORGB565ROW_SSE2 74 #define HAS_ARGBTORGB565ROW_SSE2
74 #define HAS_ARGBTOUV422ROW_SSSE3 75 #define HAS_ARGBTOUV422ROW_SSSE3
75 #define HAS_ARGBTOUV444ROW_SSSE3 76 #define HAS_ARGBTOUV444ROW_SSSE3
76 #define HAS_ARGBTOUVJROW_SSSE3 77 #define HAS_ARGBTOUVJROW_SSSE3
77 #define HAS_ARGBTOUVROW_SSSE3 78 #define HAS_ARGBTOUVROW_SSSE3
78 #define HAS_ARGBTOYJROW_SSSE3 79 #define HAS_ARGBTOYJROW_SSSE3
79 #define HAS_ARGBTOYROW_SSSE3 80 #define HAS_ARGBTOYROW_SSSE3
80 #define HAS_BGRATOUVROW_SSSE3 81 #define HAS_BGRATOUVROW_SSSE3
81 #define HAS_BGRATOYROW_SSSE3 82 #define HAS_BGRATOYROW_SSSE3
82 #define HAS_COPYROW_ERMS 83 #define HAS_COPYROW_ERMS
83 #define HAS_COPYROW_SSE2 84 #define HAS_COPYROW_SSE2
84 #define HAS_I400TOARGBROW_SSE2 85 #define HAS_I400TOARGBROW_SSE2
85 #define HAS_I411TOARGBROW_SSSE3 86 #define HAS_I411TOARGBROW_SSSE3
86 #define HAS_I422TOABGRROW_SSSE3 87 #define HAS_I422TOABGRROW_SSSE3
87 #define HAS_I422TOARGB1555ROW_SSSE3 88 #define HAS_I422TOARGB1555ROW_SSSE3
88 #define HAS_I422TOARGB4444ROW_SSSE3 89 #define HAS_I422TOARGB4444ROW_SSSE3
89 #define HAS_I422TOARGBROW_SSSE3 90 #define HAS_I422TOARGBROW_SSSE3
90 #define HAS_I422TOBGRAROW_SSSE3 91 #define HAS_I422TOBGRAROW_SSSE3
91 #define HAS_I422TORAWROW_SSSE3 92 #define HAS_I422TORAWROW_SSSE3
92 #define HAS_I422TORGB24ROW_SSSE3 93 #define HAS_I422TORGB24ROW_SSSE3
93 #define HAS_I422TORGB565ROW_SSSE3 94 #define HAS_I422TORGB565ROW_SSSE3
94 #define HAS_I422TORGBAROW_SSSE3 95 #define HAS_I422TORGBAROW_SSSE3
95 #define HAS_I422TOUYVYROW_SSE2 96 #define HAS_I422TOUYVYROW_SSE2
96 #define HAS_I422TOYUY2ROW_SSE2 97 #define HAS_I422TOYUY2ROW_SSE2
97 #define HAS_I444TOARGBROW_SSSE3 98 #define HAS_I444TOARGBROW_SSSE3
98 // #define HAS_J422TOARGBROW_SSSE3 99 #define HAS_J400TOARGBROW_SSE2
100 #define HAS_J422TOARGBROW_SSSE3
99 #define HAS_MERGEUVROW_SSE2 101 #define HAS_MERGEUVROW_SSE2
100 #define HAS_MIRRORROW_SSE2 102 #define HAS_MIRRORROW_SSE2
101 #define HAS_MIRRORROW_SSSE3 103 #define HAS_MIRRORROW_SSSE3
102 #define HAS_MIRRORROW_UV_SSSE3 104 #define HAS_MIRRORROW_UV_SSSE3
103 #define HAS_MIRRORUVROW_SSSE3 105 #define HAS_MIRRORUVROW_SSSE3
104 #define HAS_NV12TOARGBROW_SSSE3 106 #define HAS_NV12TOARGBROW_SSSE3
105 #define HAS_NV12TORGB565ROW_SSSE3 107 #define HAS_NV12TORGB565ROW_SSSE3
106 #define HAS_NV21TOARGBROW_SSSE3 108 #define HAS_NV21TOARGBROW_SSSE3
107 #define HAS_NV21TORGB565ROW_SSSE3 109 #define HAS_NV21TORGB565ROW_SSSE3
108 #define HAS_RAWTOARGBROW_SSSE3 110 #define HAS_RAWTOARGBROW_SSSE3
109 #define HAS_RAWTOYROW_SSSE3 111 #define HAS_RAWTOYROW_SSSE3
110 #define HAS_RGB24TOARGBROW_SSSE3 112 #define HAS_RGB24TOARGBROW_SSSE3
111 #define HAS_RGB24TOYROW_SSSE3 113 #define HAS_RGB24TOYROW_SSSE3
112 #define HAS_RGB565TOARGBROW_SSE2 114 #define HAS_RGB565TOARGBROW_SSE2
113 #define HAS_RGBATOUVROW_SSSE3 115 #define HAS_RGBATOUVROW_SSSE3
114 #define HAS_RGBATOYROW_SSSE3 116 #define HAS_RGBATOYROW_SSSE3
117 #define HAS_SETROW_ERMS
115 #define HAS_SETROW_X86 118 #define HAS_SETROW_X86
116 #define HAS_SETROW_ERMS
117 #define HAS_ARGBSETROW_X86
118 #define HAS_SPLITUVROW_SSE2 119 #define HAS_SPLITUVROW_SSE2
119 #define HAS_UYVYTOARGBROW_SSSE3 120 #define HAS_UYVYTOARGBROW_SSSE3
120 #define HAS_UYVYTOUV422ROW_SSE2 121 #define HAS_UYVYTOUV422ROW_SSE2
121 #define HAS_UYVYTOUVROW_SSE2 122 #define HAS_UYVYTOUVROW_SSE2
122 #define HAS_UYVYTOYROW_SSE2 123 #define HAS_UYVYTOYROW_SSE2
123 #define HAS_YTOARGBROW_SSE2
124 #define HAS_YUY2TOARGBROW_SSSE3 124 #define HAS_YUY2TOARGBROW_SSSE3
125 #define HAS_YUY2TOUV422ROW_SSE2 125 #define HAS_YUY2TOUV422ROW_SSE2
126 #define HAS_YUY2TOUVROW_SSE2 126 #define HAS_YUY2TOUVROW_SSE2
127 #define HAS_YUY2TOYROW_SSE2 127 #define HAS_YUY2TOYROW_SSE2
128 128
129 // Effects: 129 // Effects:
130 #define HAS_ARGBADDROW_SSE2 130 #define HAS_ARGBADDROW_SSE2
131 #define HAS_ARGBAFFINEROW_SSE2 131 #define HAS_ARGBAFFINEROW_SSE2
132 #define HAS_ARGBATTENUATEROW_SSSE3 132 #define HAS_ARGBATTENUATEROW_SSSE3
133 #define HAS_ARGBBLENDROW_SSSE3 133 #define HAS_ARGBBLENDROW_SSSE3
(...skipping 16 matching lines...) Expand all
150 #define HAS_INTERPOLATEROW_SSE2 150 #define HAS_INTERPOLATEROW_SSE2
151 #define HAS_INTERPOLATEROW_SSSE3 151 #define HAS_INTERPOLATEROW_SSSE3
152 #define HAS_RGBCOLORTABLEROW_X86 152 #define HAS_RGBCOLORTABLEROW_X86
153 #define HAS_SOBELROW_SSE2 153 #define HAS_SOBELROW_SSE2
154 #define HAS_SOBELTOPLANEROW_SSE2 154 #define HAS_SOBELTOPLANEROW_SSE2
155 #define HAS_SOBELXROW_SSE2 155 #define HAS_SOBELXROW_SSE2
156 #define HAS_SOBELXYROW_SSE2 156 #define HAS_SOBELXYROW_SSE2
157 #define HAS_SOBELYROW_SSE2 157 #define HAS_SOBELYROW_SSE2
158 #endif 158 #endif
159 159
160 // The following are available on x64 Visual C: 160 // The following are available on x64 Visual C and clangcl.
161 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) 161 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \
162 (!defined(__clang__) || defined(__SSSE3__))
162 #define HAS_I422TOARGBROW_SSSE3 163 #define HAS_I422TOARGBROW_SSSE3
163 #endif 164 #endif
164 165
165 // GCC >= 4.7.0 required for AVX2. 166 // GCC >= 4.7.0 required for AVX2.
166 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) 167 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
167 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) 168 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
168 #define GCC_HAS_AVX2 1 169 #define GCC_HAS_AVX2 1
169 #endif // GNUC >= 4.7 170 #endif // GNUC >= 4.7
170 #endif // __GNUC__ 171 #endif // __GNUC__
171 172
172 // clang >= 3.4.0 required for AVX2. 173 // clang >= 3.4.0 required for AVX2.
173 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) 174 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
174 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4)) 175 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
175 #define CLANG_HAS_AVX2 1 176 #define CLANG_HAS_AVX2 1
176 #endif // clang >= 3.4 177 #endif // clang >= 3.4
177 #endif // __clang__ 178 #endif // __clang__
178 179
179 // Visual C 2012 required for AVX2. 180 // Visual C 2012 required for AVX2.
180 #if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700 181 #if defined(_M_IX86) && !defined(__clang__) && \
182 defined(_MSC_VER) && _MSC_VER >= 1700
181 #define VISUALC_HAS_AVX2 1 183 #define VISUALC_HAS_AVX2 1
182 #endif // VisualStudio >= 2012 184 #endif // VisualStudio >= 2012
183 185
184 // The following are available require VS2012. Port to GCC. 186 // The following are available require VS2012. Port to GCC.
185 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) 187 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2)
186 // TODO(fbarchard): fix AVX2 versions of YUV conversion. bug=393 188 #define HAS_ARGB1555TOARGBROW_AVX2
187 #define HAS_I422TOABGRROW_AVX2 189 #define HAS_ARGB4444TOARGBROW_AVX2
188 #define HAS_I422TOARGBROW_AVX2
189 #define HAS_I422TOBGRAROW_AVX2
190 #define HAS_I422TORGBAROW_AVX2
191 #define HAS_NV12TOARGBROW_AVX2
192 #define HAS_NV21TOARGBROW_AVX2
193 #define HAS_ARGBTORGB565ROW_AVX2
194 #define HAS_ARGBTOARGB1555ROW_AVX2 190 #define HAS_ARGBTOARGB1555ROW_AVX2
195 #define HAS_ARGBTOARGB4444ROW_AVX2 191 #define HAS_ARGBTOARGB4444ROW_AVX2
196 #define HAS_NV12TORGB565ROW_AVX2 192 #define HAS_ARGBTORGB565DITHERROW_AVX2
197 #define HAS_NV21TORGB565ROW_AVX2 193 #define HAS_ARGBTORGB565DITHERROW_SSE2
198 #define HAS_I422TORGB565ROW_AVX2 194 #define HAS_ARGBTORGB565ROW_AVX2
195 #define HAS_I411TOARGBROW_AVX2
199 #define HAS_I422TOARGB1555ROW_AVX2 196 #define HAS_I422TOARGB1555ROW_AVX2
200 #define HAS_I422TOARGB4444ROW_AVX2 197 #define HAS_I422TOARGB4444ROW_AVX2
198 #define HAS_I422TORGB565ROW_AVX2
199 #define HAS_I444TOARGBROW_AVX2
200 #define HAS_J400TOARGBROW_AVX2
201 #define HAS_NV12TOARGBROW_AVX2
202 #define HAS_NV12TORGB565ROW_AVX2
203 #define HAS_NV21TOARGBROW_AVX2
204 #define HAS_NV21TORGB565ROW_AVX2
205 #define HAS_RGB565TOARGBROW_AVX2
201 #endif 206 #endif
202 207
203 // The following are available on all x86 platforms, but 208 // The following are available on all x86 platforms, but
204 // require VS2012, clang 3.4 or gcc 4.7. 209 // require VS2012, clang 3.4 or gcc 4.7.
205 // The code supports NaCL but requires a new compiler and validator. 210 // The code supports NaCL but requires a new compiler and validator.
206 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ 211 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \
207 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) 212 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2))
208 #define HAS_ARGBCOPYALPHAROW_AVX2 213 #define HAS_ARGBCOPYALPHAROW_AVX2
209 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 214 #define HAS_ARGBCOPYYTOALPHAROW_AVX2
210 #define HAS_ARGBMIRRORROW_AVX2 215 #define HAS_ARGBMIRRORROW_AVX2
211 #define HAS_ARGBPOLYNOMIALROW_AVX2 216 #define HAS_ARGBPOLYNOMIALROW_AVX2
212 #define HAS_ARGBSHUFFLEROW_AVX2 217 #define HAS_ARGBSHUFFLEROW_AVX2
213 #define HAS_ARGBTOUVROW_AVX2 218 #define HAS_ARGBTOUVROW_AVX2
214 #define HAS_ARGBTOYJROW_AVX2 219 #define HAS_ARGBTOYJROW_AVX2
215 #define HAS_ARGBTOYROW_AVX2 220 #define HAS_ARGBTOYROW_AVX2
216 #define HAS_COPYROW_AVX 221 #define HAS_COPYROW_AVX
222 #define HAS_I400TOARGBROW_AVX2
223 #define HAS_I422TOABGRROW_AVX2
224 #define HAS_I422TOARGBROW_AVX2
225 #define HAS_I422TOBGRAROW_AVX2
226 #define HAS_I422TORAWROW_AVX2
227 #define HAS_I422TORGB24ROW_AVX2
228 #define HAS_I422TORGBAROW_AVX2
217 #define HAS_INTERPOLATEROW_AVX2 229 #define HAS_INTERPOLATEROW_AVX2
230 #define HAS_J422TOARGBROW_AVX2
218 #define HAS_MERGEUVROW_AVX2 231 #define HAS_MERGEUVROW_AVX2
219 #define HAS_MIRRORROW_AVX2 232 #define HAS_MIRRORROW_AVX2
220 #define HAS_SPLITUVROW_AVX2 233 #define HAS_SPLITUVROW_AVX2
234 #define HAS_UYVYTOARGBROW_AVX2
221 #define HAS_UYVYTOUV422ROW_AVX2 235 #define HAS_UYVYTOUV422ROW_AVX2
222 #define HAS_UYVYTOUVROW_AVX2 236 #define HAS_UYVYTOUVROW_AVX2
223 #define HAS_UYVYTOYROW_AVX2 237 #define HAS_UYVYTOYROW_AVX2
224 #define HAS_YTOARGBROW_AVX2 238 #define HAS_YUY2TOARGBROW_AVX2
225 #define HAS_YUY2TOUV422ROW_AVX2 239 #define HAS_YUY2TOUV422ROW_AVX2
226 #define HAS_YUY2TOUVROW_AVX2 240 #define HAS_YUY2TOUVROW_AVX2
227 #define HAS_YUY2TOYROW_AVX2 241 #define HAS_YUY2TOYROW_AVX2
228 242
229 // The following require HAS_I422TOARGBROW_AVX2
230 #if defined(HAS_I422TOARGBROW_AVX2)
231 #define HAS_YUY2TOARGBROW_AVX2
232 #define HAS_UYVYTOARGBROW_AVX2
233 #endif
234
235 // Effects: 243 // Effects:
236 #define HAS_ARGBADDROW_AVX2 244 #define HAS_ARGBADDROW_AVX2
237 #define HAS_ARGBATTENUATEROW_AVX2 245 #define HAS_ARGBATTENUATEROW_AVX2
238 #define HAS_ARGBMULTIPLYROW_AVX2 246 #define HAS_ARGBMULTIPLYROW_AVX2
239 #define HAS_ARGBSUBTRACTROW_AVX2 247 #define HAS_ARGBSUBTRACTROW_AVX2
240 #define HAS_ARGBUNATTENUATEROW_AVX2 248 #define HAS_ARGBUNATTENUATEROW_AVX2
241 #endif 249 #endif
242 250
243
244 // The following are Yasm x86 only:
245 // TODO(fbarchard): Port AVX2 to inline.
246 #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM)
247 (defined(_M_IX86) || defined(_M_X64) || \
248 defined(__x86_64__) || defined(__i386__))
249 #define HAS_MERGEUVROW_AVX2
250 #define HAS_MERGEUVROW_MMX
251 #define HAS_SPLITUVROW_AVX2
252 #define HAS_SPLITUVROW_MMX
253 #define HAS_UYVYTOYROW_AVX2
254 #define HAS_UYVYTOYROW_MMX
255 #define HAS_YUY2TOYROW_AVX2
256 #define HAS_YUY2TOYROW_MMX
257 #endif
258
259 // The following are disabled when SSSE3 is available: 251 // The following are disabled when SSSE3 is available:
260 #if !defined(LIBYUV_DISABLE_X86) && \ 252 #if !defined(LIBYUV_DISABLE_X86) && \
261 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ 253 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \
262 !defined(LIBYUV_SSSE3_ONLY) 254 !defined(LIBYUV_SSSE3_ONLY)
263 #define HAS_ARGBATTENUATEROW_SSE2 255 #define HAS_ARGBATTENUATEROW_SSE2
264 #define HAS_ARGBBLENDROW_SSE2 256 #define HAS_ARGBBLENDROW_SSE2
265 #define HAS_MIRRORROW_SSE2 257 #define HAS_MIRRORROW_SSE2
266 #endif 258 #endif
267 259
268 // The following are available on Neon platforms: 260 // The following are available on Neon platforms:
269 #if !defined(LIBYUV_DISABLE_NEON) && \ 261 #if !defined(LIBYUV_DISABLE_NEON) && \
270 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON)) 262 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON))
271 #define HAS_ABGRTOUVROW_NEON 263 #define HAS_ABGRTOUVROW_NEON
272 #define HAS_ABGRTOYROW_NEON 264 #define HAS_ABGRTOYROW_NEON
273 #define HAS_ARGB1555TOARGBROW_NEON 265 #define HAS_ARGB1555TOARGBROW_NEON
274 #define HAS_ARGB1555TOUVROW_NEON 266 #define HAS_ARGB1555TOUVROW_NEON
275 #define HAS_ARGB1555TOYROW_NEON 267 #define HAS_ARGB1555TOYROW_NEON
276 #define HAS_ARGB4444TOARGBROW_NEON 268 #define HAS_ARGB4444TOARGBROW_NEON
277 #define HAS_ARGB4444TOUVROW_NEON 269 #define HAS_ARGB4444TOUVROW_NEON
278 #define HAS_ARGB4444TOYROW_NEON 270 #define HAS_ARGB4444TOYROW_NEON
279 #define HAS_ARGBTOARGB1555ROW_NEON 271 #define HAS_ARGBTOARGB1555ROW_NEON
280 #define HAS_ARGBTOARGB4444ROW_NEON 272 #define HAS_ARGBTOARGB4444ROW_NEON
281 #define HAS_ARGBTOBAYERGGROW_NEON
282 #define HAS_ARGBTORAWROW_NEON 273 #define HAS_ARGBTORAWROW_NEON
283 #define HAS_ARGBTORGB24ROW_NEON 274 #define HAS_ARGBTORGB24ROW_NEON
284 #define HAS_ARGBTORGB565ROW_NEON 275 #define HAS_ARGBTORGB565ROW_NEON
285 #define HAS_ARGBTOUV411ROW_NEON 276 #define HAS_ARGBTOUV411ROW_NEON
286 #define HAS_ARGBTOUV422ROW_NEON 277 #define HAS_ARGBTOUV422ROW_NEON
287 #define HAS_ARGBTOUV444ROW_NEON 278 #define HAS_ARGBTOUV444ROW_NEON
288 #define HAS_ARGBTOUVJROW_NEON 279 #define HAS_ARGBTOUVJROW_NEON
289 #define HAS_ARGBTOUVROW_NEON 280 #define HAS_ARGBTOUVROW_NEON
290 #define HAS_ARGBTOYJROW_NEON 281 #define HAS_ARGBTOYJROW_NEON
291 #define HAS_ARGBTOYROW_NEON 282 #define HAS_ARGBTOYROW_NEON
292 #define HAS_BGRATOUVROW_NEON 283 #define HAS_BGRATOUVROW_NEON
293 #define HAS_BGRATOYROW_NEON 284 #define HAS_BGRATOYROW_NEON
294 #define HAS_COPYROW_NEON 285 #define HAS_COPYROW_NEON
295 #define HAS_I400TOARGBROW_NEON 286 #define HAS_J400TOARGBROW_NEON
296 #define HAS_I411TOARGBROW_NEON 287 #define HAS_I411TOARGBROW_NEON
297 #define HAS_I422TOABGRROW_NEON 288 #define HAS_I422TOABGRROW_NEON
298 #define HAS_I422TOARGB1555ROW_NEON 289 #define HAS_I422TOARGB1555ROW_NEON
299 #define HAS_I422TOARGB4444ROW_NEON 290 #define HAS_I422TOARGB4444ROW_NEON
300 #define HAS_I422TOARGBROW_NEON 291 #define HAS_I422TOARGBROW_NEON
301 #define HAS_I422TOBGRAROW_NEON 292 #define HAS_I422TOBGRAROW_NEON
302 #define HAS_I422TORAWROW_NEON 293 #define HAS_I422TORAWROW_NEON
303 #define HAS_I422TORGB24ROW_NEON 294 #define HAS_I422TORGB24ROW_NEON
304 #define HAS_I422TORGB565ROW_NEON 295 #define HAS_I422TORGB565ROW_NEON
305 #define HAS_I422TORGBAROW_NEON 296 #define HAS_I422TORGBAROW_NEON
(...skipping 18 matching lines...) Expand all
324 #define HAS_RGB565TOYROW_NEON 315 #define HAS_RGB565TOYROW_NEON
325 #define HAS_RGBATOUVROW_NEON 316 #define HAS_RGBATOUVROW_NEON
326 #define HAS_RGBATOYROW_NEON 317 #define HAS_RGBATOYROW_NEON
327 #define HAS_SETROW_NEON 318 #define HAS_SETROW_NEON
328 #define HAS_ARGBSETROW_NEON 319 #define HAS_ARGBSETROW_NEON
329 #define HAS_SPLITUVROW_NEON 320 #define HAS_SPLITUVROW_NEON
330 #define HAS_UYVYTOARGBROW_NEON 321 #define HAS_UYVYTOARGBROW_NEON
331 #define HAS_UYVYTOUV422ROW_NEON 322 #define HAS_UYVYTOUV422ROW_NEON
332 #define HAS_UYVYTOUVROW_NEON 323 #define HAS_UYVYTOUVROW_NEON
333 #define HAS_UYVYTOYROW_NEON 324 #define HAS_UYVYTOYROW_NEON
334 #define HAS_YTOARGBROW_NEON 325 #define HAS_I400TOARGBROW_NEON
335 #define HAS_YUY2TOARGBROW_NEON 326 #define HAS_YUY2TOARGBROW_NEON
336 #define HAS_YUY2TOUV422ROW_NEON 327 #define HAS_YUY2TOUV422ROW_NEON
337 #define HAS_YUY2TOUVROW_NEON 328 #define HAS_YUY2TOUVROW_NEON
338 #define HAS_YUY2TOYROW_NEON 329 #define HAS_YUY2TOYROW_NEON
330 #define HAS_ARGBTORGB565DITHERROW_NEON
339 331
340 // Effects: 332 // Effects:
341 #define HAS_ARGBADDROW_NEON 333 #define HAS_ARGBADDROW_NEON
342 #define HAS_ARGBATTENUATEROW_NEON 334 #define HAS_ARGBATTENUATEROW_NEON
343 #define HAS_ARGBBLENDROW_NEON 335 #define HAS_ARGBBLENDROW_NEON
344 #define HAS_ARGBGRAYROW_NEON 336 #define HAS_ARGBGRAYROW_NEON
345 #define HAS_ARGBMIRRORROW_NEON 337 #define HAS_ARGBMIRRORROW_NEON
346 #define HAS_ARGBMULTIPLYROW_NEON 338 #define HAS_ARGBMULTIPLYROW_NEON
347 #define HAS_ARGBQUANTIZEROW_NEON 339 #define HAS_ARGBQUANTIZEROW_NEON
348 #define HAS_ARGBSEPIAROW_NEON 340 #define HAS_ARGBSEPIAROW_NEON
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 typedef __declspec(align(16)) int8 vec8[16]; 373 typedef __declspec(align(16)) int8 vec8[16];
382 typedef __declspec(align(16)) uint16 uvec16[8]; 374 typedef __declspec(align(16)) uint16 uvec16[8];
383 typedef __declspec(align(16)) uint32 uvec32[4]; 375 typedef __declspec(align(16)) uint32 uvec32[4];
384 typedef __declspec(align(16)) uint8 uvec8[16]; 376 typedef __declspec(align(16)) uint8 uvec8[16];
385 typedef __declspec(align(32)) int16 lvec16[16]; 377 typedef __declspec(align(32)) int16 lvec16[16];
386 typedef __declspec(align(32)) int32 lvec32[8]; 378 typedef __declspec(align(32)) int32 lvec32[8];
387 typedef __declspec(align(32)) int8 lvec8[32]; 379 typedef __declspec(align(32)) int8 lvec8[32];
388 typedef __declspec(align(32)) uint16 ulvec16[16]; 380 typedef __declspec(align(32)) uint16 ulvec16[16];
389 typedef __declspec(align(32)) uint32 ulvec32[8]; 381 typedef __declspec(align(32)) uint32 ulvec32[8];
390 typedef __declspec(align(32)) uint8 ulvec8[32]; 382 typedef __declspec(align(32)) uint8 ulvec8[32];
391
392 #elif defined(__GNUC__) 383 #elif defined(__GNUC__)
393 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. 384 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const.
394 #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) 385 #define SIMD_ALIGNED(var) var __attribute__((aligned(16)))
395 #define SIMD_ALIGNED32(var) var __attribute__((aligned(64))) 386 #define SIMD_ALIGNED32(var) var __attribute__((aligned(64)))
396 typedef int16 __attribute__((vector_size(16))) vec16; 387 typedef int16 __attribute__((vector_size(16))) vec16;
397 typedef int32 __attribute__((vector_size(16))) vec32; 388 typedef int32 __attribute__((vector_size(16))) vec32;
398 typedef int8 __attribute__((vector_size(16))) vec8; 389 typedef int8 __attribute__((vector_size(16))) vec8;
399 typedef uint16 __attribute__((vector_size(16))) uvec16; 390 typedef uint16 __attribute__((vector_size(16))) uvec16;
400 typedef uint32 __attribute__((vector_size(16))) uvec32; 391 typedef uint32 __attribute__((vector_size(16))) uvec32;
401 typedef uint8 __attribute__((vector_size(16))) uvec8; 392 typedef uint8 __attribute__((vector_size(16))) uvec8;
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, 853 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb,
863 const uint8* shuffler, int pix); 854 const uint8* shuffler, int pix);
864 855
865 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); 856 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix);
866 void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); 857 void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix);
867 void RGB565ToARGBRow_SSE2(const uint8* src_rgb565, uint8* dst_argb, int pix); 858 void RGB565ToARGBRow_SSE2(const uint8* src_rgb565, uint8* dst_argb, int pix);
868 void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555, uint8* dst_argb, 859 void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555, uint8* dst_argb,
869 int pix); 860 int pix);
870 void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444, uint8* dst_argb, 861 void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444, uint8* dst_argb,
871 int pix); 862 int pix);
863 void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int pix);
864 void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, uint8* dst_argb,
865 int pix);
866 void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, uint8* dst_argb,
867 int pix);
872 868
873 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); 869 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix);
874 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix); 870 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix);
875 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix); 871 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix);
876 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb, 872 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb,
877 int pix); 873 int pix);
878 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb, 874 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb,
879 int pix); 875 int pix);
880 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix); 876 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix);
881 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int pix); 877 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int pix);
882 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int pix); 878 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int pix);
883 void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); 879 void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix);
884 void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); 880 void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix);
885 void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); 881 void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix);
886 void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); 882 void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix);
883
887 void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565, uint8* dst_argb, 884 void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565, uint8* dst_argb,
888 int pix); 885 int pix);
889 void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555, uint8* dst_argb, 886 void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555, uint8* dst_argb,
890 int pix); 887 int pix);
891 void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444, uint8* dst_argb, 888 void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444, uint8* dst_argb,
892 int pix); 889 int pix);
890 void RGB565ToARGBRow_Any_AVX2(const uint8* src_rgb565, uint8* dst_argb,
891 int pix);
892 void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, uint8* dst_argb,
893 int pix);
894 void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, uint8* dst_argb,
895 int pix);
896
893 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); 897 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix);
894 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int pix); 898 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int pix);
895 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb, 899 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb,
896 int pix); 900 int pix);
897 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb, 901 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb,
898 int pix); 902 int pix);
899 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, 903 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb,
900 int pix); 904 int pix);
901 905
902 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 906 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix);
903 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 907 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix);
904 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 908 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
905 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 909 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
906 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 910 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
907 911
912 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb,
913 const uint32 dither4, int pix);
914 void ARGBToRGB565DitherRow_SSE2(const uint8* src_argb, uint8* dst_rgb,
915 const uint32 dither4, int pix);
916 void ARGBToRGB565DitherRow_AVX2(const uint8* src_argb, uint8* dst_rgb,
917 const uint32 dither4, int pix);
918
908 void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 919 void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
909 void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 920 void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
910 void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 921 void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
911 922
912 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 923 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
913 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 924 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
914 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 925 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
915 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 926 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
916 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 927 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
928 void ARGBToRGB565DitherRow_NEON(const uint8* src_argb, uint8* dst_rgb,
929 const uint32 dither4, int width);
917 930
918 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); 931 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix);
919 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 932 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
920 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); 933 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix);
921 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 934 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
922 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 935 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
923 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 936 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix);
924 937
925 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb, 938 void J400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
926 const uint8* dither8x8, int pix); 939 void J400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int pix);
927 940 void J400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix);
928 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); 941 void J400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix);
929 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); 942 void J400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix);
930 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); 943 void J400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int pix);
931 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); 944 void J400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix);
932 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix);
933 945
934 void I444ToARGBRow_C(const uint8* src_y, 946 void I444ToARGBRow_C(const uint8* src_y,
935 const uint8* src_u, 947 const uint8* src_u,
936 const uint8* src_v, 948 const uint8* src_v,
937 uint8* dst_argb, 949 uint8* dst_argb,
938 int width); 950 int width);
939 void I422ToARGBRow_C(const uint8* src_y, 951 void I422ToARGBRow_C(const uint8* src_y,
940 const uint8* src_u, 952 const uint8* src_u,
941 const uint8* src_v, 953 const uint8* src_v,
942 uint8* dst_argb, 954 uint8* dst_argb,
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 void I422ToABGRRow_AVX2(const uint8* src_y, 1043 void I422ToABGRRow_AVX2(const uint8* src_y,
1032 const uint8* src_u, 1044 const uint8* src_u,
1033 const uint8* src_v, 1045 const uint8* src_v,
1034 uint8* dst_argb, 1046 uint8* dst_argb,
1035 int width); 1047 int width);
1036 void I444ToARGBRow_SSSE3(const uint8* src_y, 1048 void I444ToARGBRow_SSSE3(const uint8* src_y,
1037 const uint8* src_u, 1049 const uint8* src_u,
1038 const uint8* src_v, 1050 const uint8* src_v,
1039 uint8* dst_argb, 1051 uint8* dst_argb,
1040 int width); 1052 int width);
1053 void I444ToARGBRow_AVX2(const uint8* src_y,
1054 const uint8* src_u,
1055 const uint8* src_v,
1056 uint8* dst_argb,
1057 int width);
1041 void I422ToARGBRow_SSSE3(const uint8* src_y, 1058 void I422ToARGBRow_SSSE3(const uint8* src_y,
1042 const uint8* src_u, 1059 const uint8* src_u,
1043 const uint8* src_v, 1060 const uint8* src_v,
1044 uint8* dst_argb, 1061 uint8* dst_argb,
1045 int width); 1062 int width);
1046 void I411ToARGBRow_SSSE3(const uint8* src_y, 1063 void I411ToARGBRow_SSSE3(const uint8* src_y,
1047 const uint8* src_u, 1064 const uint8* src_u,
1048 const uint8* src_v, 1065 const uint8* src_v,
1049 uint8* dst_argb, 1066 uint8* dst_argb,
1050 int width); 1067 int width);
1068 void I411ToARGBRow_AVX2(const uint8* src_y,
1069 const uint8* src_u,
1070 const uint8* src_v,
1071 uint8* dst_argb,
1072 int width);
1051 void NV12ToARGBRow_SSSE3(const uint8* src_y, 1073 void NV12ToARGBRow_SSSE3(const uint8* src_y,
1052 const uint8* src_uv, 1074 const uint8* src_uv,
1053 uint8* dst_argb, 1075 uint8* dst_argb,
1054 int width); 1076 int width);
1055 void NV21ToARGBRow_SSSE3(const uint8* src_y, 1077 void NV21ToARGBRow_SSSE3(const uint8* src_y,
1056 const uint8* src_vu, 1078 const uint8* src_vu,
1057 uint8* dst_argb, 1079 uint8* dst_argb,
1058 int width); 1080 int width);
1059 void NV12ToARGBRow_AVX2(const uint8* src_y, 1081 void NV12ToARGBRow_AVX2(const uint8* src_y,
1060 const uint8* src_uv, 1082 const uint8* src_uv,
(...skipping 29 matching lines...) Expand all
1090 uint8* dst_argb, 1112 uint8* dst_argb,
1091 int width); 1113 int width);
1092 void UYVYToARGBRow_AVX2(const uint8* src_uyvy, 1114 void UYVYToARGBRow_AVX2(const uint8* src_uyvy,
1093 uint8* dst_argb, 1115 uint8* dst_argb,
1094 int width); 1116 int width);
1095 void J422ToARGBRow_SSSE3(const uint8* src_y, 1117 void J422ToARGBRow_SSSE3(const uint8* src_y,
1096 const uint8* src_u, 1118 const uint8* src_u,
1097 const uint8* src_v, 1119 const uint8* src_v,
1098 uint8* dst_argb, 1120 uint8* dst_argb,
1099 int width); 1121 int width);
1122 void J422ToARGBRow_AVX2(const uint8* src_y,
1123 const uint8* src_u,
1124 const uint8* src_v,
1125 uint8* dst_argb,
1126 int width);
1100 void I422ToBGRARow_SSSE3(const uint8* src_y, 1127 void I422ToBGRARow_SSSE3(const uint8* src_y,
1101 const uint8* src_u, 1128 const uint8* src_u,
1102 const uint8* src_v, 1129 const uint8* src_v,
1103 uint8* dst_bgra, 1130 uint8* dst_bgra,
1104 int width); 1131 int width);
1105 void I422ToABGRRow_SSSE3(const uint8* src_y, 1132 void I422ToABGRRow_SSSE3(const uint8* src_y,
1106 const uint8* src_u, 1133 const uint8* src_u,
1107 const uint8* src_v, 1134 const uint8* src_v,
1108 uint8* dst_abgr, 1135 uint8* dst_abgr,
1109 int width); 1136 int width);
(...skipping 30 matching lines...) Expand all
1140 void I422ToRGB565Row_AVX2(const uint8* src_y, 1167 void I422ToRGB565Row_AVX2(const uint8* src_y,
1141 const uint8* src_u, 1168 const uint8* src_u,
1142 const uint8* src_v, 1169 const uint8* src_v,
1143 uint8* dst_argb, 1170 uint8* dst_argb,
1144 int width); 1171 int width);
1145 void I422ToRGB24Row_SSSE3(const uint8* src_y, 1172 void I422ToRGB24Row_SSSE3(const uint8* src_y,
1146 const uint8* src_u, 1173 const uint8* src_u,
1147 const uint8* src_v, 1174 const uint8* src_v,
1148 uint8* dst_rgb24, 1175 uint8* dst_rgb24,
1149 int width); 1176 int width);
1177 void I422ToRGB24Row_AVX2(const uint8* src_y,
1178 const uint8* src_u,
1179 const uint8* src_v,
1180 uint8* dst_rgb24,
1181 int width);
1150 void I422ToRAWRow_SSSE3(const uint8* src_y, 1182 void I422ToRAWRow_SSSE3(const uint8* src_y,
1151 const uint8* src_u, 1183 const uint8* src_u,
1152 const uint8* src_v, 1184 const uint8* src_v,
1153 uint8* dst_raw, 1185 uint8* dst_raw,
1154 int width); 1186 int width);
1187 void I422ToRAWRow_AVX2(const uint8* src_y,
1188 const uint8* src_u,
1189 const uint8* src_v,
1190 uint8* dst_raw,
1191 int width);
1155 void I422ToARGBRow_Any_AVX2(const uint8* src_y, 1192 void I422ToARGBRow_Any_AVX2(const uint8* src_y,
1156 const uint8* src_u, 1193 const uint8* src_u,
1157 const uint8* src_v, 1194 const uint8* src_v,
1158 uint8* dst_argb, 1195 uint8* dst_argb,
1159 int width); 1196 int width);
1160 void I422ToBGRARow_Any_AVX2(const uint8* src_y, 1197 void I422ToBGRARow_Any_AVX2(const uint8* src_y,
1161 const uint8* src_u, 1198 const uint8* src_u,
1162 const uint8* src_v, 1199 const uint8* src_v,
1163 uint8* dst_argb, 1200 uint8* dst_argb,
1164 int width); 1201 int width);
1165 void I422ToRGBARow_Any_AVX2(const uint8* src_y, 1202 void I422ToRGBARow_Any_AVX2(const uint8* src_y,
1166 const uint8* src_u, 1203 const uint8* src_u,
1167 const uint8* src_v, 1204 const uint8* src_v,
1168 uint8* dst_argb, 1205 uint8* dst_argb,
1169 int width); 1206 int width);
1170 void I422ToABGRRow_Any_AVX2(const uint8* src_y, 1207 void I422ToABGRRow_Any_AVX2(const uint8* src_y,
1171 const uint8* src_u, 1208 const uint8* src_u,
1172 const uint8* src_v, 1209 const uint8* src_v,
1173 uint8* dst_argb, 1210 uint8* dst_argb,
1174 int width); 1211 int width);
1175 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, 1212 void I444ToARGBRow_Any_SSSE3(const uint8* src_y,
1176 const uint8* src_u, 1213 const uint8* src_u,
1177 const uint8* src_v, 1214 const uint8* src_v,
1178 uint8* dst_argb, 1215 uint8* dst_argb,
1179 int width); 1216 int width);
1217 void I444ToARGBRow_Any_AVX2(const uint8* src_y,
1218 const uint8* src_u,
1219 const uint8* src_v,
1220 uint8* dst_argb,
1221 int width);
1180 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, 1222 void I422ToARGBRow_Any_SSSE3(const uint8* src_y,
1181 const uint8* src_u, 1223 const uint8* src_u,
1182 const uint8* src_v, 1224 const uint8* src_v,
1183 uint8* dst_argb, 1225 uint8* dst_argb,
1184 int width); 1226 int width);
1185 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, 1227 void I411ToARGBRow_Any_SSSE3(const uint8* src_y,
1186 const uint8* src_u, 1228 const uint8* src_u,
1187 const uint8* src_v, 1229 const uint8* src_v,
1188 uint8* dst_argb, 1230 uint8* dst_argb,
1189 int width); 1231 int width);
1232 void I411ToARGBRow_Any_AVX2(const uint8* src_y,
1233 const uint8* src_u,
1234 const uint8* src_v,
1235 uint8* dst_argb,
1236 int width);
1190 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, 1237 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y,
1191 const uint8* src_uv, 1238 const uint8* src_uv,
1192 uint8* dst_argb, 1239 uint8* dst_argb,
1193 int width); 1240 int width);
1194 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, 1241 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y,
1195 const uint8* src_vu, 1242 const uint8* src_vu,
1196 uint8* dst_argb, 1243 uint8* dst_argb,
1197 int width); 1244 int width);
1198 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, 1245 void NV12ToARGBRow_Any_AVX2(const uint8* src_y,
1199 const uint8* src_uv, 1246 const uint8* src_uv,
(...skipping 24 matching lines...) Expand all
1224 int width); 1271 int width);
1225 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, 1272 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy,
1226 uint8* dst_argb, 1273 uint8* dst_argb,
1227 int width); 1274 int width);
1228 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2, 1275 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2,
1229 uint8* dst_argb, 1276 uint8* dst_argb,
1230 int width); 1277 int width);
1231 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy, 1278 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy,
1232 uint8* dst_argb, 1279 uint8* dst_argb,
1233 int width); 1280 int width);
1281 void J422ToARGBRow_Any_SSSE3(const uint8* src_y,
1282 const uint8* src_u,
1283 const uint8* src_v,
1284 uint8* dst_argb,
1285 int width);
1286 void J422ToARGBRow_Any_AVX2(const uint8* src_y,
1287 const uint8* src_u,
1288 const uint8* src_v,
1289 uint8* dst_argb,
1290 int width);
1234 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, 1291 void I422ToBGRARow_Any_SSSE3(const uint8* src_y,
1235 const uint8* src_u, 1292 const uint8* src_u,
1236 const uint8* src_v, 1293 const uint8* src_v,
1237 uint8* dst_bgra, 1294 uint8* dst_bgra,
1238 int width); 1295 int width);
1239 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, 1296 void I422ToABGRRow_Any_SSSE3(const uint8* src_y,
1240 const uint8* src_u, 1297 const uint8* src_u,
1241 const uint8* src_v, 1298 const uint8* src_v,
1242 uint8* dst_abgr, 1299 uint8* dst_abgr,
1243 int width); 1300 int width);
(...skipping 30 matching lines...) Expand all
1274 void I422ToRGB565Row_Any_AVX2(const uint8* src_y, 1331 void I422ToRGB565Row_Any_AVX2(const uint8* src_y,
1275 const uint8* src_u, 1332 const uint8* src_u,
1276 const uint8* src_v, 1333 const uint8* src_v,
1277 uint8* dst_rgba, 1334 uint8* dst_rgba,
1278 int width); 1335 int width);
1279 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, 1336 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y,
1280 const uint8* src_u, 1337 const uint8* src_u,
1281 const uint8* src_v, 1338 const uint8* src_v,
1282 uint8* dst_argb, 1339 uint8* dst_argb,
1283 int width); 1340 int width);
1341 void I422ToRGB24Row_Any_AVX2(const uint8* src_y,
1342 const uint8* src_u,
1343 const uint8* src_v,
1344 uint8* dst_argb,
1345 int width);
1284 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, 1346 void I422ToRAWRow_Any_SSSE3(const uint8* src_y,
1285 const uint8* src_u, 1347 const uint8* src_u,
1286 const uint8* src_v, 1348 const uint8* src_v,
1287 uint8* dst_argb, 1349 uint8* dst_argb,
1288 int width); 1350 int width);
1351 void I422ToRAWRow_Any_AVX2(const uint8* src_y,
1352 const uint8* src_u,
1353 const uint8* src_v,
1354 uint8* dst_argb,
1355 int width);
1289 1356
1290 void YToARGBRow_C(const uint8* src_y, 1357 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width);
1291 uint8* dst_argb, 1358 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
1292 int width); 1359 void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
1293 void YToARGBRow_SSE2(const uint8* src_y, 1360 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width);
1294 uint8* dst_argb, 1361 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width);
1295 int width); 1362 void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width);
1296 void YToARGBRow_AVX2(const uint8* src_y, 1363 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width);
1297 uint8* dst_argb,
1298 int width);
1299 void YToARGBRow_NEON(const uint8* src_y,
1300 uint8* dst_argb,
1301 int width);
1302 void YToARGBRow_Any_SSE2(const uint8* src_y,
1303 uint8* dst_argb,
1304 int width);
1305 void YToARGBRow_Any_AVX2(const uint8* src_y,
1306 uint8* dst_argb,
1307 int width);
1308 void YToARGBRow_Any_NEON(const uint8* src_y,
1309 uint8* dst_argb,
1310 int width);
1311 1364
1312 // ARGB preattenuated alpha blend. 1365 // ARGB preattenuated alpha blend.
1313 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, 1366 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1,
1314 uint8* dst_argb, int width); 1367 uint8* dst_argb, int width);
1315 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, 1368 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1,
1316 uint8* dst_argb, int width); 1369 uint8* dst_argb, int width);
1317 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, 1370 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1,
1318 uint8* dst_argb, int width); 1371 uint8* dst_argb, int width);
1319 void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1, 1372 void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1,
1320 uint8* dst_argb, int width); 1373 uint8* dst_argb, int width);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 uint8* dst_argb, int width); 1421 uint8* dst_argb, int width);
1369 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, 1422 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1,
1370 uint8* dst_argb, int width); 1423 uint8* dst_argb, int width);
1371 1424
1372 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 1425 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix);
1373 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 1426 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix);
1374 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 1427 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
1375 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 1428 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
1376 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 1429 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix);
1377 1430
1431 void ARGBToRGB565DitherRow_Any_SSE2(const uint8* src_argb, uint8* dst_rgb,
1432 const uint32 dither4, int pix);
1433 void ARGBToRGB565DitherRow_Any_AVX2(const uint8* src_argb, uint8* dst_rgb,
1434 const uint32 dither4, int pix);
1435
1378 void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 1436 void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
1379 void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 1437 void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
1380 void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); 1438 void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix);
1381 1439
1382 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 1440 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
1383 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 1441 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
1384 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 1442 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
1385 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 1443 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
1386 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 1444 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix);
1445 void ARGBToRGB565DitherRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb,
1446 const uint32 dither4, int width);
1387 1447
1388 void I444ToARGBRow_Any_NEON(const uint8* src_y, 1448 void I444ToARGBRow_Any_NEON(const uint8* src_y,
1389 const uint8* src_u, 1449 const uint8* src_u,
1390 const uint8* src_v, 1450 const uint8* src_v,
1391 uint8* dst_argb, 1451 uint8* dst_argb,
1392 int width); 1452 int width);
1393 void I422ToARGBRow_Any_NEON(const uint8* src_y, 1453 void I422ToARGBRow_Any_NEON(const uint8* src_y,
1394 const uint8* src_u, 1454 const uint8* src_u,
1395 const uint8* src_v, 1455 const uint8* src_v,
1396 uint8* dst_argb, 1456 uint8* dst_argb,
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, 1623 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy,
1564 uint8* dst_u, uint8* dst_v, int pix); 1624 uint8* dst_u, uint8* dst_v, int pix);
1565 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, 1625 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy,
1566 uint8* dst_u, uint8* dst_v, int pix); 1626 uint8* dst_u, uint8* dst_v, int pix);
1567 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); 1627 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix);
1568 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, 1628 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy,
1569 uint8* dst_u, uint8* dst_v, int pix); 1629 uint8* dst_u, uint8* dst_v, int pix);
1570 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, 1630 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy,
1571 uint8* dst_u, uint8* dst_v, int pix); 1631 uint8* dst_u, uint8* dst_v, int pix);
1572 1632
1573 void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer,
1574 uint32 /* selector */, int pix);
1575 void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer,
1576 uint32 /* selector */, int pix);
1577 void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer,
1578 uint32 /* selector */, int pix);
1579 void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer,
1580 uint32 /* selector */, int pix);
1581 void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer,
1582 uint32 /* selector */, int pix);
1583
1584 void I422ToYUY2Row_C(const uint8* src_y, 1633 void I422ToYUY2Row_C(const uint8* src_y,
1585 const uint8* src_u, 1634 const uint8* src_u,
1586 const uint8* src_v, 1635 const uint8* src_v,
1587 uint8* dst_yuy2, int width); 1636 uint8* dst_yuy2, int width);
1588 void I422ToUYVYRow_C(const uint8* src_y, 1637 void I422ToUYVYRow_C(const uint8* src_y,
1589 const uint8* src_u, 1638 const uint8* src_u,
1590 const uint8* src_v, 1639 const uint8* src_v,
1591 uint8* dst_uyvy, int width); 1640 uint8* dst_uyvy, int width);
1592 void I422ToYUY2Row_SSE2(const uint8* src_y, 1641 void I422ToYUY2Row_SSE2(const uint8* src_y,
1593 const uint8* src_u, 1642 const uint8* src_u,
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1763 void SobelToPlaneRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, 1812 void SobelToPlaneRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
1764 uint8* dst_y, int width); 1813 uint8* dst_y, int width);
1765 void SobelToPlaneRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, 1814 void SobelToPlaneRow_NEON(const uint8* src_sobelx, const uint8* src_sobely,
1766 uint8* dst_y, int width); 1815 uint8* dst_y, int width);
1767 void SobelXYRow_C(const uint8* src_sobelx, const uint8* src_sobely, 1816 void SobelXYRow_C(const uint8* src_sobelx, const uint8* src_sobely,
1768 uint8* dst_argb, int width); 1817 uint8* dst_argb, int width);
1769 void SobelXYRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, 1818 void SobelXYRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
1770 uint8* dst_argb, int width); 1819 uint8* dst_argb, int width);
1771 void SobelXYRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, 1820 void SobelXYRow_NEON(const uint8* src_sobelx, const uint8* src_sobely,
1772 uint8* dst_argb, int width); 1821 uint8* dst_argb, int width);
1822 void SobelRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
1823 uint8* dst_argb, int width);
1824 void SobelRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
1825 uint8* dst_argb, int width);
1826 void SobelToPlaneRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
1827 uint8* dst_y, int width);
1828 void SobelToPlaneRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
1829 uint8* dst_y, int width);
1830 void SobelXYRow_Any_SSE2(const uint8* src_sobelx, const uint8* src_sobely,
1831 uint8* dst_argb, int width);
1832 void SobelXYRow_Any_NEON(const uint8* src_sobelx, const uint8* src_sobely,
1833 uint8* dst_argb, int width);
1773 1834
1774 void ARGBPolynomialRow_C(const uint8* src_argb, 1835 void ARGBPolynomialRow_C(const uint8* src_argb,
1775 uint8* dst_argb, const float* poly, 1836 uint8* dst_argb, const float* poly,
1776 int width); 1837 int width);
1777 void ARGBPolynomialRow_SSE2(const uint8* src_argb, 1838 void ARGBPolynomialRow_SSE2(const uint8* src_argb,
1778 uint8* dst_argb, const float* poly, 1839 uint8* dst_argb, const float* poly,
1779 int width); 1840 int width);
1780 void ARGBPolynomialRow_AVX2(const uint8* src_argb, 1841 void ARGBPolynomialRow_AVX2(const uint8* src_argb,
1781 uint8* dst_argb, const float* poly, 1842 uint8* dst_argb, const float* poly,
1782 int width); 1843 int width);
1783 1844
1784 void ARGBLumaColorTableRow_C(const uint8* src_argb, uint8* dst_argb, int width, 1845 void ARGBLumaColorTableRow_C(const uint8* src_argb, uint8* dst_argb, int width,
1785 const uint8* luma, uint32 lumacoeff); 1846 const uint8* luma, uint32 lumacoeff);
1786 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 1847 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
1787 int width, 1848 int width,
1788 const uint8* luma, uint32 lumacoeff); 1849 const uint8* luma, uint32 lumacoeff);
1789 1850
1790 #ifdef __cplusplus 1851 #ifdef __cplusplus
1791 } // extern "C" 1852 } // extern "C"
1792 } // namespace libyuv 1853 } // namespace libyuv
1793 #endif 1854 #endif
1794 1855
1795 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 1856 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698