OLD | NEW |
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 90 matching lines...) Loading... |
101 #define HAS_BGRATOUVROW_SSSE3 | 101 #define HAS_BGRATOUVROW_SSSE3 |
102 #define HAS_BGRATOYROW_SSSE3 | 102 #define HAS_BGRATOYROW_SSSE3 |
103 #define HAS_COPYROW_ERMS | 103 #define HAS_COPYROW_ERMS |
104 #define HAS_COPYROW_SSE2 | 104 #define HAS_COPYROW_SSE2 |
105 #define HAS_I400TOARGBROW_SSE2 | 105 #define HAS_I400TOARGBROW_SSE2 |
106 #define HAS_I411TOARGBROW_SSSE3 | 106 #define HAS_I411TOARGBROW_SSSE3 |
107 #define HAS_I422TOABGRROW_SSSE3 | 107 #define HAS_I422TOABGRROW_SSSE3 |
108 #define HAS_I422TOARGB1555ROW_SSSE3 | 108 #define HAS_I422TOARGB1555ROW_SSSE3 |
109 #define HAS_I422TOARGB4444ROW_SSSE3 | 109 #define HAS_I422TOARGB4444ROW_SSSE3 |
110 #define HAS_I422TOARGBROW_SSSE3 | 110 #define HAS_I422TOARGBROW_SSSE3 |
111 #define HAS_I422TOARGBMATRIXROW_SSSE3 | |
112 #define HAS_I422TOABGRMATRIXROW_SSSE3 | |
113 #define HAS_I422TOBGRAROW_SSSE3 | 111 #define HAS_I422TOBGRAROW_SSSE3 |
114 #define HAS_I422TORAWROW_SSSE3 | 112 #define HAS_I422TORAWROW_SSSE3 |
115 #define HAS_I422TORGB24ROW_SSSE3 | 113 #define HAS_I422TORGB24ROW_SSSE3 |
116 #define HAS_I422TORGB565ROW_SSSE3 | 114 #define HAS_I422TORGB565ROW_SSSE3 |
117 #define HAS_I422TORGBAROW_SSSE3 | 115 #define HAS_I422TORGBAROW_SSSE3 |
118 #define HAS_I422TOUYVYROW_SSE2 | 116 #define HAS_I422TOUYVYROW_SSE2 |
119 #define HAS_I422TOYUY2ROW_SSE2 | 117 #define HAS_I422TOYUY2ROW_SSE2 |
120 #define HAS_J400TOARGBROW_SSE2 | 118 #define HAS_J400TOARGBROW_SSE2 |
121 #define HAS_J422TOARGBROW_SSSE3 | 119 #define HAS_J422TOARGBROW_SSSE3 |
122 #define HAS_J422TOABGRROW_SSSE3 | 120 #define HAS_J422TOABGRROW_SSSE3 |
(...skipping 21 matching lines...) Loading... |
144 #define HAS_UYVYTOARGBROW_SSSE3 | 142 #define HAS_UYVYTOARGBROW_SSSE3 |
145 #define HAS_UYVYTOUV422ROW_SSE2 | 143 #define HAS_UYVYTOUV422ROW_SSE2 |
146 #define HAS_UYVYTOUVROW_SSE2 | 144 #define HAS_UYVYTOUVROW_SSE2 |
147 #define HAS_UYVYTOYROW_SSE2 | 145 #define HAS_UYVYTOYROW_SSE2 |
148 #define HAS_YUY2TOARGBROW_SSSE3 | 146 #define HAS_YUY2TOARGBROW_SSSE3 |
149 #define HAS_YUY2TOUV422ROW_SSE2 | 147 #define HAS_YUY2TOUV422ROW_SSE2 |
150 #define HAS_YUY2TOUVROW_SSE2 | 148 #define HAS_YUY2TOUVROW_SSE2 |
151 #define HAS_YUY2TOYROW_SSE2 | 149 #define HAS_YUY2TOYROW_SSE2 |
152 #define HAS_I444TOARGBROW_SSSE3 | 150 #define HAS_I444TOARGBROW_SSSE3 |
153 #define HAS_I444TOABGRROW_SSSE3 | 151 #define HAS_I444TOABGRROW_SSSE3 |
154 #define HAS_I444TOARGBMATRIXROW_SSSE3 | |
155 #define HAS_I444TOABGRMATRIXROW_SSSE3 | |
156 | 152 |
157 // Effects: | 153 // Effects: |
158 #define HAS_ARGBADDROW_SSE2 | 154 #define HAS_ARGBADDROW_SSE2 |
159 #define HAS_ARGBAFFINEROW_SSE2 | 155 #define HAS_ARGBAFFINEROW_SSE2 |
160 #define HAS_ARGBATTENUATEROW_SSSE3 | 156 #define HAS_ARGBATTENUATEROW_SSSE3 |
161 #define HAS_ARGBBLENDROW_SSSE3 | 157 #define HAS_ARGBBLENDROW_SSSE3 |
162 #define HAS_ARGBCOLORMATRIXROW_SSSE3 | 158 #define HAS_ARGBCOLORMATRIXROW_SSSE3 |
163 #define HAS_ARGBCOLORTABLEROW_X86 | 159 #define HAS_ARGBCOLORTABLEROW_X86 |
164 #define HAS_ARGBCOPYALPHAROW_SSE2 | 160 #define HAS_ARGBCOPYALPHAROW_SSE2 |
165 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 | 161 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 |
(...skipping 18 matching lines...) Loading... |
184 #define HAS_SOBELXYROW_SSE2 | 180 #define HAS_SOBELXYROW_SSE2 |
185 #define HAS_SOBELYROW_SSE2 | 181 #define HAS_SOBELYROW_SSE2 |
186 #endif | 182 #endif |
187 | 183 |
188 // The following are available on x64 Visual C and clangcl. | 184 // The following are available on x64 Visual C and clangcl. |
189 // TODO(fbarchard): Port to gcc. | 185 // TODO(fbarchard): Port to gcc. |
190 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \ | 186 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \ |
191 (!defined(__clang__) || defined(__SSSE3__)) | 187 (!defined(__clang__) || defined(__SSSE3__)) |
192 #define HAS_I422TOARGBROW_SSSE3 | 188 #define HAS_I422TOARGBROW_SSSE3 |
193 #define HAS_I422TOABGRROW_SSSE3 | 189 #define HAS_I422TOABGRROW_SSSE3 |
194 #define HAS_I422TOARGBMATRIXROW_SSSE3 | |
195 #define HAS_I422TOABGRMATRIXROW_SSSE3 | |
196 #endif | 190 #endif |
197 | 191 |
198 // The following are available for AVX2 Visual C and clangcl 32 bit: | 192 // The following are available for AVX2 Visual C and clangcl 32 bit: |
199 // TODO(fbarchard): Port to gcc. | 193 // TODO(fbarchard): Port to gcc. |
200 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ | 194 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ |
201 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2)) | 195 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2)) |
202 #define HAS_ARGB1555TOARGBROW_AVX2 | 196 #define HAS_ARGB1555TOARGBROW_AVX2 |
203 #define HAS_ARGB4444TOARGBROW_AVX2 | 197 #define HAS_ARGB4444TOARGBROW_AVX2 |
204 #define HAS_ARGBTOARGB1555ROW_AVX2 | 198 #define HAS_ARGBTOARGB1555ROW_AVX2 |
205 #define HAS_ARGBTOARGB4444ROW_AVX2 | 199 #define HAS_ARGBTOARGB4444ROW_AVX2 |
206 #define HAS_ARGBTORGB565DITHERROW_AVX2 | 200 #define HAS_ARGBTORGB565DITHERROW_AVX2 |
207 #define HAS_ARGBTORGB565DITHERROW_SSE2 | 201 #define HAS_ARGBTORGB565DITHERROW_SSE2 |
208 #define HAS_ARGBTORGB565ROW_AVX2 | 202 #define HAS_ARGBTORGB565ROW_AVX2 |
209 #define HAS_I411TOARGBROW_AVX2 | 203 #define HAS_I411TOARGBROW_AVX2 |
210 #define HAS_I422TOARGB1555ROW_AVX2 | 204 #define HAS_I422TOARGB1555ROW_AVX2 |
211 #define HAS_I422TOARGB4444ROW_AVX2 | 205 #define HAS_I422TOARGB4444ROW_AVX2 |
212 #define HAS_I422TORGB565ROW_AVX2 | 206 #define HAS_I422TORGB565ROW_AVX2 |
213 #define HAS_I444TOARGBROW_AVX2 | 207 #define HAS_I444TOARGBROW_AVX2 |
214 #define HAS_I444TOABGRROW_AVX2 | 208 #define HAS_I444TOABGRROW_AVX2 |
215 #define HAS_J400TOARGBROW_AVX2 | 209 #define HAS_J400TOARGBROW_AVX2 |
216 #define HAS_NV12TOARGBROW_AVX2 | 210 #define HAS_NV12TOARGBROW_AVX2 |
217 #define HAS_NV12TORGB565ROW_AVX2 | 211 #define HAS_NV12TORGB565ROW_AVX2 |
218 #define HAS_NV21TOARGBROW_AVX2 | 212 #define HAS_NV21TOARGBROW_AVX2 |
219 #define HAS_NV21TORGB565ROW_AVX2 | 213 #define HAS_NV21TORGB565ROW_AVX2 |
220 #define HAS_RGB565TOARGBROW_AVX2 | 214 #define HAS_RGB565TOARGBROW_AVX2 |
221 #define HAS_I444TOARGBMATRIXROW_AVX2 | |
222 #define HAS_I444TOABGRMATRIXROW_AVX2 | |
223 #endif | 215 #endif |
224 | 216 |
225 // The following are available on all x86 platforms, but | 217 // The following are available on all x86 platforms, but |
226 // require VS2012, clang 3.4 or gcc 4.7. | 218 // require VS2012, clang 3.4 or gcc 4.7. |
227 // The code supports NaCL but requires a new compiler and validator. | 219 // The code supports NaCL but requires a new compiler and validator. |
228 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ | 220 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ |
229 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) | 221 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) |
230 #define HAS_ARGBCOPYALPHAROW_AVX2 | 222 #define HAS_ARGBCOPYALPHAROW_AVX2 |
231 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 | 223 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 |
232 #define HAS_ARGBMIRRORROW_AVX2 | 224 #define HAS_ARGBMIRRORROW_AVX2 |
233 #define HAS_ARGBPOLYNOMIALROW_AVX2 | 225 #define HAS_ARGBPOLYNOMIALROW_AVX2 |
234 #define HAS_ARGBSHUFFLEROW_AVX2 | 226 #define HAS_ARGBSHUFFLEROW_AVX2 |
235 #define HAS_ARGBTOUVROW_AVX2 | 227 #define HAS_ARGBTOUVROW_AVX2 |
236 #define HAS_ARGBTOYJROW_AVX2 | 228 #define HAS_ARGBTOYJROW_AVX2 |
237 #define HAS_ARGBTOYROW_AVX2 | 229 #define HAS_ARGBTOYROW_AVX2 |
238 #define HAS_COPYROW_AVX | 230 #define HAS_COPYROW_AVX |
239 #define HAS_I400TOARGBROW_AVX2 | 231 #define HAS_I400TOARGBROW_AVX2 |
240 #define HAS_I422TOABGRROW_AVX2 | 232 #define HAS_I422TOABGRROW_AVX2 |
241 #define HAS_I422TOARGBROW_AVX2 | 233 #define HAS_I422TOARGBROW_AVX2 |
242 #define HAS_I422TOARGBMATRIXROW_AVX2 | |
243 #define HAS_I422TOABGRMATRIXROW_AVX2 | |
244 #define HAS_I422TOBGRAROW_AVX2 | 234 #define HAS_I422TOBGRAROW_AVX2 |
245 #define HAS_I422TORAWROW_AVX2 | 235 #define HAS_I422TORAWROW_AVX2 |
246 #define HAS_I422TORGB24ROW_AVX2 | 236 #define HAS_I422TORGB24ROW_AVX2 |
247 #define HAS_I422TORGBAROW_AVX2 | 237 #define HAS_I422TORGBAROW_AVX2 |
248 #define HAS_INTERPOLATEROW_AVX2 | 238 #define HAS_INTERPOLATEROW_AVX2 |
249 #define HAS_J422TOARGBROW_AVX2 | 239 #define HAS_J422TOARGBROW_AVX2 |
250 #define HAS_J422TOABGRROW_AVX2 | 240 #define HAS_J422TOABGRROW_AVX2 |
251 #define HAS_H422TOARGBROW_AVX2 | 241 #define HAS_H422TOARGBROW_AVX2 |
252 #define HAS_H422TOABGRROW_AVX2 | 242 #define HAS_H422TOABGRROW_AVX2 |
253 #define HAS_MERGEUVROW_AVX2 | 243 #define HAS_MERGEUVROW_AVX2 |
(...skipping 52 matching lines...) Loading... |
306 #define HAS_BGRATOYROW_NEON | 296 #define HAS_BGRATOYROW_NEON |
307 #define HAS_COPYROW_NEON | 297 #define HAS_COPYROW_NEON |
308 #define HAS_J400TOARGBROW_NEON | 298 #define HAS_J400TOARGBROW_NEON |
309 #define HAS_I411TOARGBROW_NEON | 299 #define HAS_I411TOARGBROW_NEON |
310 #define HAS_I422TOARGBROW_NEON | 300 #define HAS_I422TOARGBROW_NEON |
311 #define HAS_I422TOABGRROW_NEON | 301 #define HAS_I422TOABGRROW_NEON |
312 #define HAS_I422TOARGB1555ROW_NEON | 302 #define HAS_I422TOARGB1555ROW_NEON |
313 #define HAS_I422TOARGB4444ROW_NEON | 303 #define HAS_I422TOARGB4444ROW_NEON |
314 // TODO(fbarchard): Implement aarch64 neon version | 304 // TODO(fbarchard): Implement aarch64 neon version |
315 #ifndef __aarch64__ | 305 #ifndef __aarch64__ |
316 #define HAS_I422TOARGBMATRIXROW_NEON | |
317 #define HAS_I422TOABGRMATRIXROW_NEON | |
318 #define HAS_J422TOARGBROW_NEON | 306 #define HAS_J422TOARGBROW_NEON |
319 #define HAS_J422TOABGRROW_NEON | 307 #define HAS_J422TOABGRROW_NEON |
320 #define HAS_H422TOARGBROW_NEON | 308 #define HAS_H422TOARGBROW_NEON |
321 #define HAS_H422TOABGRROW_NEON | 309 #define HAS_H422TOABGRROW_NEON |
322 #endif | 310 #endif |
323 #define HAS_I422TOBGRAROW_NEON | 311 #define HAS_I422TOBGRAROW_NEON |
324 #define HAS_I422TORAWROW_NEON | 312 #define HAS_I422TORAWROW_NEON |
325 #define HAS_I422TORGB24ROW_NEON | 313 #define HAS_I422TORGB24ROW_NEON |
326 #define HAS_I422TORGB565ROW_NEON | 314 #define HAS_I422TORGB565ROW_NEON |
327 #define HAS_I422TORGBAROW_NEON | 315 #define HAS_I422TORGBAROW_NEON |
(...skipping 109 matching lines...) Loading... |
437 typedef uint32 uvec32[4]; | 425 typedef uint32 uvec32[4]; |
438 typedef uint8 uvec8[16]; | 426 typedef uint8 uvec8[16]; |
439 typedef int16 lvec16[16]; | 427 typedef int16 lvec16[16]; |
440 typedef int32 lvec32[8]; | 428 typedef int32 lvec32[8]; |
441 typedef int8 lvec8[32]; | 429 typedef int8 lvec8[32]; |
442 typedef uint16 ulvec16[16]; | 430 typedef uint16 ulvec16[16]; |
443 typedef uint32 ulvec32[8]; | 431 typedef uint32 ulvec32[8]; |
444 typedef uint8 ulvec8[32]; | 432 typedef uint8 ulvec8[32]; |
445 #endif | 433 #endif |
446 | 434 |
| 435 #if defined(__arm__) || defined(__aarch64__) |
| 436 |
| 437 // This struct is for Arm color conversion. |
| 438 struct YuvConstants { |
| 439 uvec8 kUVToRB; |
| 440 uvec8 kUVToG; |
| 441 vec16 kUVBiasBGR; |
| 442 vec32 kYToRgb; |
| 443 }; |
| 444 |
| 445 #else |
| 446 |
447 // This struct is for Intel color conversion. | 447 // This struct is for Intel color conversion. |
448 // TODO(fnbarchard): Consider different struct for other platforms. | |
449 struct YuvConstants { | 448 struct YuvConstants { |
450 lvec8 kUVToB; | 449 lvec8 kUVToB; |
451 lvec8 kUVToG; | 450 lvec8 kUVToG; |
452 lvec8 kUVToR; | 451 lvec8 kUVToR; |
453 lvec16 kUVBiasB; | 452 lvec16 kUVBiasB; |
454 lvec16 kUVBiasG; | 453 lvec16 kUVBiasG; |
455 lvec16 kUVBiasR; | 454 lvec16 kUVBiasR; |
456 lvec16 kYToRgb; | 455 lvec16 kYToRgb; |
457 }; | 456 }; |
458 | 457 |
459 // Offsets into YuvConstants structure | 458 // Offsets into YuvConstants structure |
460 #define KUVTOB 0 | 459 #define KUVTOB 0 |
461 #define KUVTOG 32 | 460 #define KUVTOG 32 |
462 #define KUVTOR 64 | 461 #define KUVTOR 64 |
463 #define KUVBIASB 96 | 462 #define KUVBIASB 96 |
464 #define KUVBIASG 128 | 463 #define KUVBIASG 128 |
465 #define KUVBIASR 160 | 464 #define KUVBIASR 160 |
466 #define KYTORGB 192 | 465 #define KYTORGB 192 |
467 | 466 #endif |
468 struct YuvConstantsNEON { | |
469 uvec8 kUVToRB; | |
470 uvec8 kUVToG; | |
471 vec16 kUVBiasBGR; | |
472 vec32 kYToRgb; | |
473 }; | |
474 | 467 |
475 extern struct YuvConstants kYuvConstants; | 468 extern struct YuvConstants kYuvConstants; |
476 extern struct YuvConstants kYvuConstants; | 469 extern struct YuvConstants kYvuConstants; |
477 extern struct YuvConstants kYuvJConstants; | 470 extern struct YuvConstants kYuvJConstants; |
478 extern struct YuvConstants kYuvHConstants; | 471 extern struct YuvConstants kYuvHConstants; |
479 extern struct YuvConstantsNEON kYuvConstantsNEON; | |
480 extern struct YuvConstantsNEON kYuvJConstantsNEON; | |
481 extern struct YuvConstantsNEON kYuvHConstantsNEON; | |
482 | 472 |
483 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) | 473 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) |
484 #define OMITFP | 474 #define OMITFP |
485 #else | 475 #else |
486 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) | 476 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) |
487 #endif | 477 #endif |
488 | 478 |
489 // NaCL macros for GCC x86 and x64. | 479 // NaCL macros for GCC x86 and x64. |
490 #if defined(__native_client__) | 480 #if defined(__native_client__) |
491 #define LABELALIGN ".p2align 5\n" | 481 #define LABELALIGN ".p2align 5\n" |
(...skipping 70 matching lines...) Loading... |
562 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" | 552 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" |
563 #else | 553 #else |
564 #define MEMACCESS(base) | 554 #define MEMACCESS(base) |
565 #endif | 555 #endif |
566 #endif | 556 #endif |
567 | 557 |
568 void I444ToARGBRow_NEON(const uint8* src_y, | 558 void I444ToARGBRow_NEON(const uint8* src_y, |
569 const uint8* src_u, | 559 const uint8* src_u, |
570 const uint8* src_v, | 560 const uint8* src_v, |
571 uint8* dst_argb, | 561 uint8* dst_argb, |
| 562 struct YuvConstants* yuvconstants, |
572 int width); | 563 int width); |
573 void I422ToARGBRow_NEON(const uint8* src_y, | 564 void I422ToARGBRow_NEON(const uint8* src_y, |
574 const uint8* src_u, | 565 const uint8* src_u, |
575 const uint8* src_v, | 566 const uint8* src_v, |
576 uint8* dst_argb, | 567 uint8* dst_argb, |
| 568 struct YuvConstants* yuvconstants, |
577 int width); | 569 int width); |
578 void I422ToARGBMatrixRow_NEON(const uint8* src_y, | 570 void I422ToARGBRow_NEON(const uint8* src_y, |
579 const uint8* src_u, | 571 const uint8* src_u, |
580 const uint8* src_v, | 572 const uint8* src_v, |
581 uint8* dst_argb, | 573 uint8* dst_argb, |
582 struct YuvConstantsNEON* YuvConstants, | 574 struct YuvConstants* yuvconstants, |
583 int width); | 575 int width); |
584 void I422ToABGRMatrixRow_NEON(const uint8* src_y, | 576 void I422ToABGRRow_NEON(const uint8* src_y, |
585 const uint8* src_u, | 577 const uint8* src_u, |
586 const uint8* src_v, | 578 const uint8* src_v, |
587 uint8* dst_argb, | 579 uint8* dst_argb, |
588 struct YuvConstantsNEON* YuvConstants, | 580 struct YuvConstants* yuvconstants, |
589 int width); | 581 int width); |
590 void I411ToARGBRow_NEON(const uint8* src_y, | 582 void I411ToARGBRow_NEON(const uint8* src_y, |
591 const uint8* src_u, | 583 const uint8* src_u, |
592 const uint8* src_v, | 584 const uint8* src_v, |
593 uint8* dst_argb, | 585 uint8* dst_argb, |
| 586 struct YuvConstants* yuvconstants, |
594 int width); | 587 int width); |
595 void I422ToBGRARow_NEON(const uint8* src_y, | 588 void I422ToBGRARow_NEON(const uint8* src_y, |
596 const uint8* src_u, | 589 const uint8* src_u, |
597 const uint8* src_v, | 590 const uint8* src_v, |
598 uint8* dst_bgra, | 591 uint8* dst_bgra, |
| 592 struct YuvConstants* yuvconstants, |
599 int width); | 593 int width); |
600 void I422ToABGRRow_NEON(const uint8* src_y, | 594 void I422ToABGRRow_NEON(const uint8* src_y, |
601 const uint8* src_u, | 595 const uint8* src_u, |
602 const uint8* src_v, | 596 const uint8* src_v, |
603 uint8* dst_abgr, | 597 uint8* dst_abgr, |
| 598 struct YuvConstants* yuvconstants, |
604 int width); | 599 int width); |
605 void I422ToRGBARow_NEON(const uint8* src_y, | 600 void I422ToRGBARow_NEON(const uint8* src_y, |
606 const uint8* src_u, | 601 const uint8* src_u, |
607 const uint8* src_v, | 602 const uint8* src_v, |
608 uint8* dst_rgba, | 603 uint8* dst_rgba, |
| 604 struct YuvConstants* yuvconstants, |
609 int width); | 605 int width); |
610 void I422ToRGB24Row_NEON(const uint8* src_y, | 606 void I422ToRGB24Row_NEON(const uint8* src_y, |
611 const uint8* src_u, | 607 const uint8* src_u, |
612 const uint8* src_v, | 608 const uint8* src_v, |
613 uint8* dst_rgb24, | 609 uint8* dst_rgb24, |
| 610 struct YuvConstants* yuvconstants, |
614 int width); | 611 int width); |
615 void I422ToRAWRow_NEON(const uint8* src_y, | 612 void I422ToRAWRow_NEON(const uint8* src_y, |
616 const uint8* src_u, | 613 const uint8* src_u, |
617 const uint8* src_v, | 614 const uint8* src_v, |
618 uint8* dst_raw, | 615 uint8* dst_raw, |
| 616 struct YuvConstants* yuvconstants, |
619 int width); | 617 int width); |
620 void I422ToRGB565Row_NEON(const uint8* src_y, | 618 void I422ToRGB565Row_NEON(const uint8* src_y, |
621 const uint8* src_u, | 619 const uint8* src_u, |
622 const uint8* src_v, | 620 const uint8* src_v, |
623 uint8* dst_rgb565, | 621 uint8* dst_rgb565, |
| 622 struct YuvConstants* yuvconstants, |
624 int width); | 623 int width); |
625 void I422ToARGB1555Row_NEON(const uint8* src_y, | 624 void I422ToARGB1555Row_NEON(const uint8* src_y, |
626 const uint8* src_u, | 625 const uint8* src_u, |
627 const uint8* src_v, | 626 const uint8* src_v, |
628 uint8* dst_argb1555, | 627 uint8* dst_argb1555, |
| 628 struct YuvConstants* yuvconstants, |
629 int width); | 629 int width); |
630 void I422ToARGB4444Row_NEON(const uint8* src_y, | 630 void I422ToARGB4444Row_NEON(const uint8* src_y, |
631 const uint8* src_u, | 631 const uint8* src_u, |
632 const uint8* src_v, | 632 const uint8* src_v, |
633 uint8* dst_argb4444, | 633 uint8* dst_argb4444, |
| 634 struct YuvConstants* yuvconstants, |
634 int width); | 635 int width); |
635 void J422ToARGBRow_NEON(const uint8* src_y, | |
636 const uint8* src_u, | |
637 const uint8* src_v, | |
638 uint8* dst_argb, | |
639 int width); | |
640 void H422ToARGBRow_NEON(const uint8* src_y, | |
641 const uint8* src_u, | |
642 const uint8* src_v, | |
643 uint8* dst_argb, | |
644 int width); | |
645 void J422ToABGRRow_NEON(const uint8* src_y, | |
646 const uint8* src_u, | |
647 const uint8* src_v, | |
648 uint8* dst_abgr, | |
649 int width); | |
650 void H422ToABGRRow_NEON(const uint8* src_y, | |
651 const uint8* src_u, | |
652 const uint8* src_v, | |
653 uint8* dst_abgr, | |
654 int width); | |
655 void NV12ToARGBRow_NEON(const uint8* src_y, | 636 void NV12ToARGBRow_NEON(const uint8* src_y, |
656 const uint8* src_uv, | 637 const uint8* src_uv, |
657 uint8* dst_argb, | 638 uint8* dst_argb, |
658 int width); | 639 struct YuvConstants* yuvconstants, |
659 void NV21ToARGBRow_NEON(const uint8* src_y, | |
660 const uint8* src_vu, | |
661 uint8* dst_argb, | |
662 int width); | 640 int width); |
663 void NV12ToRGB565Row_NEON(const uint8* src_y, | 641 void NV12ToRGB565Row_NEON(const uint8* src_y, |
664 const uint8* src_uv, | 642 const uint8* src_uv, |
665 uint8* dst_rgb565, | 643 uint8* dst_rgb565, |
666 int width); | 644 struct YuvConstants* yuvconstants, |
667 void NV21ToRGB565Row_NEON(const uint8* src_y, | |
668 const uint8* src_vu, | |
669 uint8* dst_rgb565, | |
670 int width); | 645 int width); |
671 void YUY2ToARGBRow_NEON(const uint8* src_yuy2, | 646 void YUY2ToARGBRow_NEON(const uint8* src_yuy2, |
672 uint8* dst_argb, | 647 uint8* dst_argb, |
| 648 struct YuvConstants* yuvconstants, |
673 int width); | 649 int width); |
674 void UYVYToARGBRow_NEON(const uint8* src_uyvy, | 650 void UYVYToARGBRow_NEON(const uint8* src_uyvy, |
675 uint8* dst_argb, | 651 uint8* dst_argb, |
| 652 struct YuvConstants* yuvconstants, |
676 int width); | 653 int width); |
677 | 654 |
678 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 655 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
679 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 656 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
680 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 657 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |
681 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 658 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
682 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 659 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |
683 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 660 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |
684 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); | 661 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); |
685 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); | 662 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); |
(...skipping 361 matching lines...) Loading... |
1047 void J400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 1024 void J400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); |
1048 void J400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); | 1025 void J400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); |
1049 void J400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | 1026 void J400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |
1050 void J400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int pix); | 1027 void J400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int pix); |
1051 void J400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 1028 void J400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); |
1052 | 1029 |
1053 void I444ToARGBRow_C(const uint8* src_y, | 1030 void I444ToARGBRow_C(const uint8* src_y, |
1054 const uint8* src_u, | 1031 const uint8* src_u, |
1055 const uint8* src_v, | 1032 const uint8* src_v, |
1056 uint8* dst_argb, | 1033 uint8* dst_argb, |
| 1034 struct YuvConstants* yuvconstants, |
1057 int width); | 1035 int width); |
1058 void I444ToABGRRow_C(const uint8* src_y, | 1036 void I444ToABGRRow_C(const uint8* src_y, |
1059 const uint8* src_u, | 1037 const uint8* src_u, |
1060 const uint8* src_v, | 1038 const uint8* src_v, |
1061 uint8* dst_argb, | 1039 uint8* dst_argb, |
| 1040 struct YuvConstants* yuvconstants, |
1062 int width); | 1041 int width); |
1063 void I422ToARGBRow_C(const uint8* src_y, | 1042 void I422ToARGBRow_C(const uint8* src_y, |
1064 const uint8* src_u, | 1043 const uint8* src_u, |
1065 const uint8* src_v, | 1044 const uint8* src_v, |
1066 uint8* dst_argb, | 1045 uint8* dst_argb, |
1067 int width); | 1046 struct YuvConstants* yuvconstants, |
1068 void I422ToARGBMatrixRow_C(const uint8* src_y, | 1047 int width); |
1069 const uint8* src_u, | 1048 void I422ToARGBRow_C(const uint8* src_y, |
1070 const uint8* src_v, | 1049 const uint8* src_u, |
1071 uint8* dst_argb, | 1050 const uint8* src_v, |
1072 struct YuvConstants* YuvConstants, | 1051 uint8* dst_argb, |
1073 int width); | 1052 struct YuvConstants* yuvconstants, |
1074 void I422ToABGRMatrixRow_C(const uint8* src_y, | 1053 int width); |
1075 const uint8* src_u, | 1054 void I422ToABGRRow_C(const uint8* src_y, |
1076 const uint8* src_v, | 1055 const uint8* src_u, |
1077 uint8* dst_argb, | 1056 const uint8* src_v, |
1078 struct YuvConstants* YuvConstants, | 1057 uint8* dst_argb, |
1079 int width); | 1058 struct YuvConstants* yuvconstants, |
| 1059 int width); |
1080 void I411ToARGBRow_C(const uint8* src_y, | 1060 void I411ToARGBRow_C(const uint8* src_y, |
1081 const uint8* src_u, | 1061 const uint8* src_u, |
1082 const uint8* src_v, | 1062 const uint8* src_v, |
1083 uint8* dst_argb, | 1063 uint8* dst_argb, |
| 1064 struct YuvConstants* yuvconstants, |
1084 int width); | 1065 int width); |
1085 void NV12ToARGBRow_C(const uint8* src_y, | 1066 void NV12ToARGBRow_C(const uint8* src_y, |
1086 const uint8* src_uv, | 1067 const uint8* src_uv, |
1087 uint8* dst_argb, | 1068 uint8* dst_argb, |
| 1069 struct YuvConstants* yuvconstants, |
1088 int width); | 1070 int width); |
1089 void NV21ToRGB565Row_C(const uint8* src_y, | 1071 void NV21ToRGB565Row_C(const uint8* src_y, |
1090 const uint8* src_vu, | 1072 const uint8* src_vu, |
1091 uint8* dst_argb, | 1073 uint8* dst_argb, |
| 1074 struct YuvConstants* yuvconstants, |
1092 int width); | 1075 int width); |
1093 void NV12ToRGB565Row_C(const uint8* src_y, | 1076 void NV12ToRGB565Row_C(const uint8* src_y, |
1094 const uint8* src_uv, | 1077 const uint8* src_uv, |
1095 uint8* dst_argb, | 1078 uint8* dst_argb, |
| 1079 struct YuvConstants* yuvconstants, |
1096 int width); | 1080 int width); |
1097 void NV21ToARGBRow_C(const uint8* src_y, | |
1098 const uint8* src_vu, | |
1099 uint8* dst_argb, | |
1100 int width); | |
1101 void YUY2ToARGBRow_C(const uint8* src_yuy2, | 1081 void YUY2ToARGBRow_C(const uint8* src_yuy2, |
1102 uint8* dst_argb, | 1082 uint8* dst_argb, |
| 1083 struct YuvConstants* yuvconstants, |
1103 int width); | 1084 int width); |
1104 void UYVYToARGBRow_C(const uint8* src_uyvy, | 1085 void UYVYToARGBRow_C(const uint8* src_uyvy, |
1105 uint8* dst_argb, | 1086 uint8* dst_argb, |
1106 int width); | 1087 struct YuvConstants* yuvconstants, |
1107 void J422ToARGBRow_C(const uint8* src_y, | |
1108 const uint8* src_u, | |
1109 const uint8* src_v, | |
1110 uint8* dst_argb, | |
1111 int width); | |
1112 void J422ToABGRRow_C(const uint8* src_y, | |
1113 const uint8* src_u, | |
1114 const uint8* src_v, | |
1115 uint8* dst_argb, | |
1116 int width); | |
1117 void H422ToARGBRow_C(const uint8* src_y, | |
1118 const uint8* src_u, | |
1119 const uint8* src_v, | |
1120 uint8* dst_argb, | |
1121 int width); | |
1122 void H422ToABGRRow_C(const uint8* src_y, | |
1123 const uint8* src_u, | |
1124 const uint8* src_v, | |
1125 uint8* dst_argb, | |
1126 int width); | 1088 int width); |
1127 void I422ToBGRARow_C(const uint8* src_y, | 1089 void I422ToBGRARow_C(const uint8* src_y, |
1128 const uint8* src_u, | 1090 const uint8* src_u, |
1129 const uint8* src_v, | 1091 const uint8* src_v, |
1130 uint8* dst_bgra, | 1092 uint8* dst_bgra, |
| 1093 struct YuvConstants* yuvconstants, |
1131 int width); | 1094 int width); |
1132 void I422ToABGRRow_C(const uint8* src_y, | 1095 void I422ToABGRRow_C(const uint8* src_y, |
1133 const uint8* src_u, | 1096 const uint8* src_u, |
1134 const uint8* src_v, | 1097 const uint8* src_v, |
1135 uint8* dst_abgr, | 1098 uint8* dst_abgr, |
| 1099 struct YuvConstants* yuvconstants, |
1136 int width); | 1100 int width); |
1137 void I422ToRGBARow_C(const uint8* src_y, | 1101 void I422ToRGBARow_C(const uint8* src_y, |
1138 const uint8* src_u, | 1102 const uint8* src_u, |
1139 const uint8* src_v, | 1103 const uint8* src_v, |
1140 uint8* dst_rgba, | 1104 uint8* dst_rgba, |
| 1105 struct YuvConstants* yuvconstants, |
1141 int width); | 1106 int width); |
1142 void I422ToRGB24Row_C(const uint8* src_y, | 1107 void I422ToRGB24Row_C(const uint8* src_y, |
1143 const uint8* src_u, | 1108 const uint8* src_u, |
1144 const uint8* src_v, | 1109 const uint8* src_v, |
1145 uint8* dst_rgb24, | 1110 uint8* dst_rgb24, |
| 1111 struct YuvConstants* yuvconstants, |
1146 int width); | 1112 int width); |
1147 void I422ToRAWRow_C(const uint8* src_y, | 1113 void I422ToRAWRow_C(const uint8* src_y, |
1148 const uint8* src_u, | 1114 const uint8* src_u, |
1149 const uint8* src_v, | 1115 const uint8* src_v, |
1150 uint8* dst_raw, | 1116 uint8* dst_raw, |
| 1117 struct YuvConstants* yuvconstants, |
1151 int width); | 1118 int width); |
1152 void I422ToARGB4444Row_C(const uint8* src_y, | 1119 void I422ToARGB4444Row_C(const uint8* src_y, |
1153 const uint8* src_u, | 1120 const uint8* src_u, |
1154 const uint8* src_v, | 1121 const uint8* src_v, |
1155 uint8* dst_argb4444, | 1122 uint8* dst_argb4444, |
| 1123 struct YuvConstants* yuvconstants, |
1156 int width); | 1124 int width); |
1157 void I422ToARGB1555Row_C(const uint8* src_y, | 1125 void I422ToARGB1555Row_C(const uint8* src_y, |
1158 const uint8* src_u, | 1126 const uint8* src_u, |
1159 const uint8* src_v, | 1127 const uint8* src_v, |
1160 uint8* dst_argb4444, | 1128 uint8* dst_argb4444, |
| 1129 struct YuvConstants* yuvconstants, |
1161 int width); | 1130 int width); |
1162 void I422ToRGB565Row_C(const uint8* src_y, | 1131 void I422ToRGB565Row_C(const uint8* src_y, |
1163 const uint8* src_u, | 1132 const uint8* src_u, |
1164 const uint8* src_v, | 1133 const uint8* src_v, |
1165 uint8* dst_rgb565, | 1134 uint8* dst_rgb565, |
| 1135 struct YuvConstants* yuvconstants, |
1166 int width); | 1136 int width); |
1167 void I422ToARGBRow_AVX2(const uint8* src_y, | 1137 void I422ToARGBRow_AVX2(const uint8* src_y, |
1168 const uint8* src_u, | 1138 const uint8* src_u, |
1169 const uint8* src_v, | 1139 const uint8* src_v, |
1170 uint8* dst_argb, | 1140 uint8* dst_argb, |
1171 int width); | 1141 struct YuvConstants* yuvconstants, |
1172 void I422ToARGBMatrixRow_AVX2(const uint8* src_y, | 1142 int width); |
1173 const uint8* src_u, | 1143 void I422ToARGBRow_AVX2(const uint8* src_y, |
1174 const uint8* src_v, | 1144 const uint8* src_u, |
1175 uint8* dst_argb, | 1145 const uint8* src_v, |
1176 struct YuvConstants* YuvConstants, | 1146 uint8* dst_argb, |
1177 int width); | 1147 struct YuvConstants* yuvconstants, |
1178 void I422ToABGRMatrixRow_AVX2(const uint8* src_y, | 1148 int width); |
1179 const uint8* src_u, | 1149 void I422ToABGRRow_AVX2(const uint8* src_y, |
1180 const uint8* src_v, | 1150 const uint8* src_u, |
1181 uint8* dst_argb, | 1151 const uint8* src_v, |
1182 struct YuvConstants* YuvConstants, | 1152 uint8* dst_argb, |
1183 int width); | 1153 struct YuvConstants* yuvconstants, |
| 1154 int width); |
1184 void I422ToBGRARow_AVX2(const uint8* src_y, | 1155 void I422ToBGRARow_AVX2(const uint8* src_y, |
1185 const uint8* src_u, | 1156 const uint8* src_u, |
1186 const uint8* src_v, | 1157 const uint8* src_v, |
1187 uint8* dst_argb, | 1158 uint8* dst_argb, |
| 1159 struct YuvConstants* yuvconstants, |
1188 int width); | 1160 int width); |
1189 void I422ToRGBARow_AVX2(const uint8* src_y, | 1161 void I422ToRGBARow_AVX2(const uint8* src_y, |
1190 const uint8* src_u, | 1162 const uint8* src_u, |
1191 const uint8* src_v, | 1163 const uint8* src_v, |
1192 uint8* dst_argb, | 1164 uint8* dst_argb, |
| 1165 struct YuvConstants* yuvconstants, |
1193 int width); | 1166 int width); |
1194 void I422ToABGRRow_AVX2(const uint8* src_y, | 1167 void I422ToABGRRow_AVX2(const uint8* src_y, |
1195 const uint8* src_u, | 1168 const uint8* src_u, |
1196 const uint8* src_v, | 1169 const uint8* src_v, |
1197 uint8* dst_argb, | 1170 uint8* dst_argb, |
1198 int width); | 1171 struct YuvConstants* yuvconstants, |
1199 void I444ToARGBMatrixRow_SSSE3(const uint8* src_y, | 1172 int width); |
1200 const uint8* src_u, | |
1201 const uint8* src_v, | |
1202 uint8* dst_argb, | |
1203 struct YuvConstants* YuvConstants, | |
1204 int width); | |
1205 void I444ToARGBMatrixRow_AVX2(const uint8* src_y, | |
1206 const uint8* src_u, | |
1207 const uint8* src_v, | |
1208 uint8* dst_argb, | |
1209 struct YuvConstants* YuvConstants, | |
1210 int width); | |
1211 void I444ToARGBRow_SSSE3(const uint8* src_y, | 1173 void I444ToARGBRow_SSSE3(const uint8* src_y, |
1212 const uint8* src_u, | 1174 const uint8* src_u, |
1213 const uint8* src_v, | 1175 const uint8* src_v, |
1214 uint8* dst_argb, | 1176 uint8* dst_argb, |
| 1177 struct YuvConstants* yuvconstants, |
1215 int width); | 1178 int width); |
1216 void I444ToARGBRow_AVX2(const uint8* src_y, | 1179 void I444ToARGBRow_AVX2(const uint8* src_y, |
1217 const uint8* src_u, | 1180 const uint8* src_u, |
1218 const uint8* src_v, | 1181 const uint8* src_v, |
1219 uint8* dst_argb, | 1182 uint8* dst_argb, |
1220 int width); | 1183 struct YuvConstants* yuvconstants, |
1221 void I444ToABGRMatrixRow_SSSE3(const uint8* src_y, | 1184 int width); |
1222 const uint8* src_u, | 1185 void I444ToARGBRow_SSSE3(const uint8* src_y, |
1223 const uint8* src_v, | 1186 const uint8* src_u, |
1224 uint8* dst_abgr, | 1187 const uint8* src_v, |
1225 struct YuvConstants* YuvConstants, | 1188 uint8* dst_argb, |
1226 int width); | 1189 struct YuvConstants* yuvconstants, |
1227 void I444ToABGRMatrixRow_AVX2(const uint8* src_y, | 1190 int width); |
1228 const uint8* src_u, | 1191 void I444ToARGBRow_AVX2(const uint8* src_y, |
1229 const uint8* src_v, | 1192 const uint8* src_u, |
1230 uint8* dst_abgr, | 1193 const uint8* src_v, |
1231 struct YuvConstants* YuvConstants, | 1194 uint8* dst_argb, |
1232 int width); | 1195 struct YuvConstants* yuvconstants, |
| 1196 int width); |
1233 void I444ToABGRRow_SSSE3(const uint8* src_y, | 1197 void I444ToABGRRow_SSSE3(const uint8* src_y, |
1234 const uint8* src_u, | 1198 const uint8* src_u, |
1235 const uint8* src_v, | 1199 const uint8* src_v, |
1236 uint8* dst_abgr, | 1200 uint8* dst_abgr, |
| 1201 struct YuvConstants* yuvconstants, |
1237 int width); | 1202 int width); |
1238 void I444ToABGRRow_AVX2(const uint8* src_y, | 1203 void I444ToABGRRow_AVX2(const uint8* src_y, |
1239 const uint8* src_u, | 1204 const uint8* src_u, |
1240 const uint8* src_v, | 1205 const uint8* src_v, |
1241 uint8* dst_abgr, | 1206 uint8* dst_abgr, |
| 1207 struct YuvConstants* yuvconstants, |
| 1208 int width); |
| 1209 void I444ToABGRRow_SSSE3(const uint8* src_y, |
| 1210 const uint8* src_u, |
| 1211 const uint8* src_v, |
| 1212 uint8* dst_abgr, |
| 1213 struct YuvConstants* yuvconstants, |
| 1214 int width); |
| 1215 void I444ToABGRRow_AVX2(const uint8* src_y, |
| 1216 const uint8* src_u, |
| 1217 const uint8* src_v, |
| 1218 uint8* dst_abgr, |
| 1219 struct YuvConstants* yuvconstants, |
1242 int width); | 1220 int width); |
1243 void I422ToARGBRow_SSSE3(const uint8* src_y, | 1221 void I422ToARGBRow_SSSE3(const uint8* src_y, |
1244 const uint8* src_u, | 1222 const uint8* src_u, |
1245 const uint8* src_v, | 1223 const uint8* src_v, |
1246 uint8* dst_argb, | 1224 uint8* dst_argb, |
1247 int width); | 1225 struct YuvConstants* yuvconstants, |
1248 void I422ToARGBMatrixRow_SSSE3(const uint8* src_y, | 1226 int width); |
1249 const uint8* src_u, | 1227 void I422ToARGBRow_SSSE3(const uint8* src_y, |
1250 const uint8* src_v, | 1228 const uint8* src_u, |
1251 uint8* dst_argb, | 1229 const uint8* src_v, |
1252 struct YuvConstants* YuvConstants, | 1230 uint8* dst_argb, |
1253 int width); | 1231 struct YuvConstants* yuvconstants, |
1254 void I422ToABGRMatrixRow_SSSE3(const uint8* src_y, | 1232 int width); |
1255 const uint8* src_u, | 1233 void I422ToABGRRow_SSSE3(const uint8* src_y, |
1256 const uint8* src_v, | 1234 const uint8* src_u, |
1257 uint8* dst_argb, | 1235 const uint8* src_v, |
1258 struct YuvConstants* YuvConstants, | 1236 uint8* dst_argb, |
1259 int width); | 1237 struct YuvConstants* yuvconstants, |
| 1238 int width); |
1260 void I411ToARGBRow_SSSE3(const uint8* src_y, | 1239 void I411ToARGBRow_SSSE3(const uint8* src_y, |
1261 const uint8* src_u, | 1240 const uint8* src_u, |
1262 const uint8* src_v, | 1241 const uint8* src_v, |
1263 uint8* dst_argb, | 1242 uint8* dst_argb, |
| 1243 struct YuvConstants* yuvconstants, |
1264 int width); | 1244 int width); |
1265 void I411ToARGBRow_AVX2(const uint8* src_y, | 1245 void I411ToARGBRow_AVX2(const uint8* src_y, |
1266 const uint8* src_u, | 1246 const uint8* src_u, |
1267 const uint8* src_v, | 1247 const uint8* src_v, |
1268 uint8* dst_argb, | 1248 uint8* dst_argb, |
| 1249 struct YuvConstants* yuvconstants, |
1269 int width); | 1250 int width); |
1270 void NV12ToARGBRow_SSSE3(const uint8* src_y, | 1251 void NV12ToARGBRow_SSSE3(const uint8* src_y, |
1271 const uint8* src_uv, | 1252 const uint8* src_uv, |
1272 uint8* dst_argb, | 1253 uint8* dst_argb, |
1273 int width); | 1254 struct YuvConstants* yuvconstants, |
1274 void NV21ToARGBRow_SSSE3(const uint8* src_y, | |
1275 const uint8* src_vu, | |
1276 uint8* dst_argb, | |
1277 int width); | 1255 int width); |
1278 void NV12ToARGBRow_AVX2(const uint8* src_y, | 1256 void NV12ToARGBRow_AVX2(const uint8* src_y, |
1279 const uint8* src_uv, | 1257 const uint8* src_uv, |
1280 uint8* dst_argb, | 1258 uint8* dst_argb, |
1281 int width); | 1259 struct YuvConstants* yuvconstants, |
1282 void NV21ToARGBRow_AVX2(const uint8* src_y, | |
1283 const uint8* src_vu, | |
1284 uint8* dst_argb, | |
1285 int width); | 1260 int width); |
1286 void NV12ToRGB565Row_SSSE3(const uint8* src_y, | 1261 void NV12ToRGB565Row_SSSE3(const uint8* src_y, |
1287 const uint8* src_uv, | 1262 const uint8* src_uv, |
1288 uint8* dst_argb, | 1263 uint8* dst_argb, |
1289 int width); | 1264 struct YuvConstants* yuvconstants, |
1290 void NV21ToRGB565Row_SSSE3(const uint8* src_y, | |
1291 const uint8* src_vu, | |
1292 uint8* dst_argb, | |
1293 int width); | 1265 int width); |
1294 void NV12ToRGB565Row_AVX2(const uint8* src_y, | 1266 void NV12ToRGB565Row_AVX2(const uint8* src_y, |
1295 const uint8* src_uv, | 1267 const uint8* src_uv, |
1296 uint8* dst_argb, | 1268 uint8* dst_argb, |
1297 int width); | 1269 struct YuvConstants* yuvconstants, |
1298 void NV21ToRGB565Row_AVX2(const uint8* src_y, | |
1299 const uint8* src_vu, | |
1300 uint8* dst_argb, | |
1301 int width); | 1270 int width); |
1302 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, | 1271 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, |
1303 uint8* dst_argb, | 1272 uint8* dst_argb, |
| 1273 struct YuvConstants* yuvconstants, |
1304 int width); | 1274 int width); |
1305 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, | 1275 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, |
1306 uint8* dst_argb, | 1276 uint8* dst_argb, |
| 1277 struct YuvConstants* yuvconstants, |
1307 int width); | 1278 int width); |
1308 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2, | 1279 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2, |
1309 uint8* dst_argb, | 1280 uint8* dst_argb, |
| 1281 struct YuvConstants* yuvconstants, |
1310 int width); | 1282 int width); |
1311 void UYVYToARGBRow_AVX2(const uint8* src_uyvy, | 1283 void UYVYToARGBRow_AVX2(const uint8* src_uyvy, |
1312 uint8* dst_argb, | 1284 uint8* dst_argb, |
1313 int width); | 1285 struct YuvConstants* yuvconstants, |
1314 void J422ToARGBRow_SSSE3(const uint8* src_y, | |
1315 const uint8* src_u, | |
1316 const uint8* src_v, | |
1317 uint8* dst_argb, | |
1318 int width); | |
1319 void J422ToABGRRow_SSSE3(const uint8* src_y, | |
1320 const uint8* src_u, | |
1321 const uint8* src_v, | |
1322 uint8* dst_argb, | |
1323 int width); | |
1324 void J422ToARGBRow_AVX2(const uint8* src_y, | |
1325 const uint8* src_u, | |
1326 const uint8* src_v, | |
1327 uint8* dst_argb, | |
1328 int width); | |
1329 void J422ToABGRRow_AVX2(const uint8* src_y, | |
1330 const uint8* src_u, | |
1331 const uint8* src_v, | |
1332 uint8* dst_argb, | |
1333 int width); | |
1334 void H422ToARGBRow_SSSE3(const uint8* src_y, | |
1335 const uint8* src_u, | |
1336 const uint8* src_v, | |
1337 uint8* dst_argb, | |
1338 int width); | |
1339 void H422ToABGRRow_SSSE3(const uint8* src_y, | |
1340 const uint8* src_u, | |
1341 const uint8* src_v, | |
1342 uint8* dst_argb, | |
1343 int width); | |
1344 void H422ToARGBRow_AVX2(const uint8* src_y, | |
1345 const uint8* src_u, | |
1346 const uint8* src_v, | |
1347 uint8* dst_argb, | |
1348 int width); | |
1349 void H422ToABGRRow_AVX2(const uint8* src_y, | |
1350 const uint8* src_u, | |
1351 const uint8* src_v, | |
1352 uint8* dst_argb, | |
1353 int width); | 1286 int width); |
1354 void I422ToBGRARow_SSSE3(const uint8* src_y, | 1287 void I422ToBGRARow_SSSE3(const uint8* src_y, |
1355 const uint8* src_u, | 1288 const uint8* src_u, |
1356 const uint8* src_v, | 1289 const uint8* src_v, |
1357 uint8* dst_bgra, | 1290 uint8* dst_bgra, |
| 1291 struct YuvConstants* yuvconstants, |
1358 int width); | 1292 int width); |
1359 void I422ToABGRRow_SSSE3(const uint8* src_y, | 1293 void I422ToABGRRow_SSSE3(const uint8* src_y, |
1360 const uint8* src_u, | 1294 const uint8* src_u, |
1361 const uint8* src_v, | 1295 const uint8* src_v, |
1362 uint8* dst_abgr, | 1296 uint8* dst_abgr, |
| 1297 struct YuvConstants* yuvconstants, |
1363 int width); | 1298 int width); |
1364 void I422ToRGBARow_SSSE3(const uint8* src_y, | 1299 void I422ToRGBARow_SSSE3(const uint8* src_y, |
1365 const uint8* src_u, | 1300 const uint8* src_u, |
1366 const uint8* src_v, | 1301 const uint8* src_v, |
1367 uint8* dst_rgba, | 1302 uint8* dst_rgba, |
| 1303 struct YuvConstants* yuvconstants, |
1368 int width); | 1304 int width); |
1369 void I422ToARGB4444Row_SSSE3(const uint8* src_y, | 1305 void I422ToARGB4444Row_SSSE3(const uint8* src_y, |
1370 const uint8* src_u, | 1306 const uint8* src_u, |
1371 const uint8* src_v, | 1307 const uint8* src_v, |
1372 uint8* dst_argb, | 1308 uint8* dst_argb, |
| 1309 struct YuvConstants* yuvconstants, |
1373 int width); | 1310 int width); |
1374 void I422ToARGB4444Row_AVX2(const uint8* src_y, | 1311 void I422ToARGB4444Row_AVX2(const uint8* src_y, |
1375 const uint8* src_u, | 1312 const uint8* src_u, |
1376 const uint8* src_v, | 1313 const uint8* src_v, |
1377 uint8* dst_argb, | 1314 uint8* dst_argb, |
| 1315 struct YuvConstants* yuvconstants, |
1378 int width); | 1316 int width); |
1379 void I422ToARGB1555Row_SSSE3(const uint8* src_y, | 1317 void I422ToARGB1555Row_SSSE3(const uint8* src_y, |
1380 const uint8* src_u, | 1318 const uint8* src_u, |
1381 const uint8* src_v, | 1319 const uint8* src_v, |
1382 uint8* dst_argb, | 1320 uint8* dst_argb, |
| 1321 struct YuvConstants* yuvconstants, |
1383 int width); | 1322 int width); |
1384 void I422ToARGB1555Row_AVX2(const uint8* src_y, | 1323 void I422ToARGB1555Row_AVX2(const uint8* src_y, |
1385 const uint8* src_u, | 1324 const uint8* src_u, |
1386 const uint8* src_v, | 1325 const uint8* src_v, |
1387 uint8* dst_argb, | 1326 uint8* dst_argb, |
| 1327 struct YuvConstants* yuvconstants, |
1388 int width); | 1328 int width); |
1389 void I422ToRGB565Row_SSSE3(const uint8* src_y, | 1329 void I422ToRGB565Row_SSSE3(const uint8* src_y, |
1390 const uint8* src_u, | 1330 const uint8* src_u, |
1391 const uint8* src_v, | 1331 const uint8* src_v, |
1392 uint8* dst_argb, | 1332 uint8* dst_argb, |
| 1333 struct YuvConstants* yuvconstants, |
1393 int width); | 1334 int width); |
1394 void I422ToRGB565Row_AVX2(const uint8* src_y, | 1335 void I422ToRGB565Row_AVX2(const uint8* src_y, |
1395 const uint8* src_u, | 1336 const uint8* src_u, |
1396 const uint8* src_v, | 1337 const uint8* src_v, |
1397 uint8* dst_argb, | 1338 uint8* dst_argb, |
| 1339 struct YuvConstants* yuvconstants, |
1398 int width); | 1340 int width); |
1399 void I422ToRGB24Row_SSSE3(const uint8* src_y, | 1341 void I422ToRGB24Row_SSSE3(const uint8* src_y, |
1400 const uint8* src_u, | 1342 const uint8* src_u, |
1401 const uint8* src_v, | 1343 const uint8* src_v, |
1402 uint8* dst_rgb24, | 1344 uint8* dst_rgb24, |
| 1345 struct YuvConstants* yuvconstants, |
1403 int width); | 1346 int width); |
1404 void I422ToRGB24Row_AVX2(const uint8* src_y, | 1347 void I422ToRGB24Row_AVX2(const uint8* src_y, |
1405 const uint8* src_u, | 1348 const uint8* src_u, |
1406 const uint8* src_v, | 1349 const uint8* src_v, |
1407 uint8* dst_rgb24, | 1350 uint8* dst_rgb24, |
| 1351 struct YuvConstants* yuvconstants, |
1408 int width); | 1352 int width); |
1409 void I422ToRAWRow_SSSE3(const uint8* src_y, | 1353 void I422ToRAWRow_SSSE3(const uint8* src_y, |
1410 const uint8* src_u, | 1354 const uint8* src_u, |
1411 const uint8* src_v, | 1355 const uint8* src_v, |
1412 uint8* dst_raw, | 1356 uint8* dst_raw, |
| 1357 struct YuvConstants* yuvconstants, |
1413 int width); | 1358 int width); |
1414 void I422ToRAWRow_AVX2(const uint8* src_y, | 1359 void I422ToRAWRow_AVX2(const uint8* src_y, |
1415 const uint8* src_u, | 1360 const uint8* src_u, |
1416 const uint8* src_v, | 1361 const uint8* src_v, |
1417 uint8* dst_raw, | 1362 uint8* dst_raw, |
| 1363 struct YuvConstants* yuvconstants, |
1418 int width); | 1364 int width); |
1419 void I422ToARGBRow_Any_AVX2(const uint8* src_y, | 1365 void I422ToARGBRow_Any_AVX2(const uint8* src_y, |
1420 const uint8* src_u, | 1366 const uint8* src_u, |
1421 const uint8* src_v, | 1367 const uint8* src_v, |
1422 uint8* dst_argb, | 1368 uint8* dst_argb, |
| 1369 struct YuvConstants* yuvconstants, |
1423 int width); | 1370 int width); |
1424 void I422ToBGRARow_Any_AVX2(const uint8* src_y, | 1371 void I422ToBGRARow_Any_AVX2(const uint8* src_y, |
1425 const uint8* src_u, | 1372 const uint8* src_u, |
1426 const uint8* src_v, | 1373 const uint8* src_v, |
1427 uint8* dst_argb, | 1374 uint8* dst_argb, |
| 1375 struct YuvConstants* yuvconstants, |
1428 int width); | 1376 int width); |
1429 void I422ToRGBARow_Any_AVX2(const uint8* src_y, | 1377 void I422ToRGBARow_Any_AVX2(const uint8* src_y, |
1430 const uint8* src_u, | 1378 const uint8* src_u, |
1431 const uint8* src_v, | 1379 const uint8* src_v, |
1432 uint8* dst_argb, | 1380 uint8* dst_argb, |
| 1381 struct YuvConstants* yuvconstants, |
1433 int width); | 1382 int width); |
1434 void I422ToABGRRow_Any_AVX2(const uint8* src_y, | 1383 void I422ToABGRRow_Any_AVX2(const uint8* src_y, |
1435 const uint8* src_u, | 1384 const uint8* src_u, |
1436 const uint8* src_v, | 1385 const uint8* src_v, |
1437 uint8* dst_argb, | 1386 uint8* dst_argb, |
| 1387 struct YuvConstants* yuvconstants, |
1438 int width); | 1388 int width); |
1439 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, | 1389 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, |
1440 const uint8* src_u, | 1390 const uint8* src_u, |
1441 const uint8* src_v, | 1391 const uint8* src_v, |
1442 uint8* dst_argb, | 1392 uint8* dst_argb, |
| 1393 struct YuvConstants* yuvconstants, |
1443 int width); | 1394 int width); |
1444 void I444ToARGBRow_Any_AVX2(const uint8* src_y, | 1395 void I444ToARGBRow_Any_AVX2(const uint8* src_y, |
1445 const uint8* src_u, | 1396 const uint8* src_u, |
1446 const uint8* src_v, | 1397 const uint8* src_v, |
1447 uint8* dst_argb, | 1398 uint8* dst_argb, |
| 1399 struct YuvConstants* yuvconstants, |
1448 int width); | 1400 int width); |
1449 void I444ToABGRRow_Any_SSSE3(const uint8* src_y, | 1401 void I444ToABGRRow_Any_SSSE3(const uint8* src_y, |
1450 const uint8* src_u, | 1402 const uint8* src_u, |
1451 const uint8* src_v, | 1403 const uint8* src_v, |
1452 uint8* dst_abgr, | 1404 uint8* dst_abgr, |
| 1405 struct YuvConstants* yuvconstants, |
1453 int width); | 1406 int width); |
1454 void I444ToABGRRow_Any_AVX2(const uint8* src_y, | 1407 void I444ToABGRRow_Any_AVX2(const uint8* src_y, |
1455 const uint8* src_u, | 1408 const uint8* src_u, |
1456 const uint8* src_v, | 1409 const uint8* src_v, |
1457 uint8* dst_abgr, | 1410 uint8* dst_abgr, |
| 1411 struct YuvConstants* yuvconstants, |
1458 int width); | 1412 int width); |
1459 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, | 1413 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, |
1460 const uint8* src_u, | 1414 const uint8* src_u, |
1461 const uint8* src_v, | 1415 const uint8* src_v, |
1462 uint8* dst_argb, | 1416 uint8* dst_argb, |
| 1417 struct YuvConstants* yuvconstants, |
1463 int width); | 1418 int width); |
1464 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, | 1419 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, |
1465 const uint8* src_u, | 1420 const uint8* src_u, |
1466 const uint8* src_v, | 1421 const uint8* src_v, |
1467 uint8* dst_argb, | 1422 uint8* dst_argb, |
| 1423 struct YuvConstants* yuvconstants, |
1468 int width); | 1424 int width); |
1469 void I411ToARGBRow_Any_AVX2(const uint8* src_y, | 1425 void I411ToARGBRow_Any_AVX2(const uint8* src_y, |
1470 const uint8* src_u, | 1426 const uint8* src_u, |
1471 const uint8* src_v, | 1427 const uint8* src_v, |
1472 uint8* dst_argb, | 1428 uint8* dst_argb, |
| 1429 struct YuvConstants* yuvconstants, |
1473 int width); | 1430 int width); |
1474 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, | 1431 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, |
1475 const uint8* src_uv, | 1432 const uint8* src_uv, |
1476 uint8* dst_argb, | 1433 uint8* dst_argb, |
| 1434 struct YuvConstants* yuvconstants, |
1477 int width); | 1435 int width); |
1478 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, | 1436 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, |
1479 const uint8* src_vu, | 1437 const uint8* src_vu, |
1480 uint8* dst_argb, | 1438 uint8* dst_argb, |
| 1439 struct YuvConstants* yuvconstants, |
1481 int width); | 1440 int width); |
1482 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, | 1441 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, |
1483 const uint8* src_uv, | 1442 const uint8* src_uv, |
1484 uint8* dst_argb, | 1443 uint8* dst_argb, |
| 1444 struct YuvConstants* yuvconstants, |
1485 int width); | 1445 int width); |
1486 void NV21ToARGBRow_Any_AVX2(const uint8* src_y, | 1446 void NV21ToARGBRow_Any_AVX2(const uint8* src_y, |
1487 const uint8* src_vu, | 1447 const uint8* src_vu, |
1488 uint8* dst_argb, | 1448 uint8* dst_argb, |
| 1449 struct YuvConstants* yuvconstants, |
1489 int width); | 1450 int width); |
1490 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, | 1451 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, |
1491 const uint8* src_uv, | 1452 const uint8* src_uv, |
1492 uint8* dst_argb, | 1453 uint8* dst_argb, |
1493 int width); | 1454 struct YuvConstants* yuvconstants, |
1494 void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, | |
1495 const uint8* src_vu, | |
1496 uint8* dst_argb, | |
1497 int width); | 1455 int width); |
1498 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y, | 1456 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y, |
1499 const uint8* src_uv, | 1457 const uint8* src_uv, |
1500 uint8* dst_argb, | 1458 uint8* dst_argb, |
1501 int width); | 1459 struct YuvConstants* yuvconstants, |
1502 void NV21ToRGB565Row_Any_AVX2(const uint8* src_y, | |
1503 const uint8* src_vu, | |
1504 uint8* dst_argb, | |
1505 int width); | 1460 int width); |
1506 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, | 1461 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, |
1507 uint8* dst_argb, | 1462 uint8* dst_argb, |
| 1463 struct YuvConstants* yuvconstants, |
1508 int width); | 1464 int width); |
1509 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, | 1465 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, |
1510 uint8* dst_argb, | 1466 uint8* dst_argb, |
| 1467 struct YuvConstants* yuvconstants, |
1511 int width); | 1468 int width); |
1512 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2, | 1469 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2, |
1513 uint8* dst_argb, | 1470 uint8* dst_argb, |
| 1471 struct YuvConstants* yuvconstants, |
1514 int width); | 1472 int width); |
1515 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy, | 1473 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy, |
1516 uint8* dst_argb, | 1474 uint8* dst_argb, |
1517 int width); | 1475 struct YuvConstants* yuvconstants, |
1518 void J422ToARGBRow_Any_SSSE3(const uint8* src_y, | |
1519 const uint8* src_u, | |
1520 const uint8* src_v, | |
1521 uint8* dst_argb, | |
1522 int width); | |
1523 void J422ToABGRRow_Any_SSSE3(const uint8* src_y, | |
1524 const uint8* src_u, | |
1525 const uint8* src_v, | |
1526 uint8* dst_argb, | |
1527 int width); | |
1528 void J422ToARGBRow_Any_AVX2(const uint8* src_y, | |
1529 const uint8* src_u, | |
1530 const uint8* src_v, | |
1531 uint8* dst_argb, | |
1532 int width); | |
1533 void J422ToABGRRow_Any_AVX2(const uint8* src_y, | |
1534 const uint8* src_u, | |
1535 const uint8* src_v, | |
1536 uint8* dst_argb, | |
1537 int width); | |
1538 void H422ToARGBRow_Any_SSSE3(const uint8* src_y, | |
1539 const uint8* src_u, | |
1540 const uint8* src_v, | |
1541 uint8* dst_argb, | |
1542 int width); | |
1543 void H422ToABGRRow_Any_SSSE3(const uint8* src_y, | |
1544 const uint8* src_u, | |
1545 const uint8* src_v, | |
1546 uint8* dst_argb, | |
1547 int width); | |
1548 void H422ToARGBRow_Any_AVX2(const uint8* src_y, | |
1549 const uint8* src_u, | |
1550 const uint8* src_v, | |
1551 uint8* dst_argb, | |
1552 int width); | |
1553 void H422ToABGRRow_Any_AVX2(const uint8* src_y, | |
1554 const uint8* src_u, | |
1555 const uint8* src_v, | |
1556 uint8* dst_argb, | |
1557 int width); | 1476 int width); |
1558 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, | 1477 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, |
1559 const uint8* src_u, | 1478 const uint8* src_u, |
1560 const uint8* src_v, | 1479 const uint8* src_v, |
1561 uint8* dst_bgra, | 1480 uint8* dst_bgra, |
| 1481 struct YuvConstants* yuvconstants, |
1562 int width); | 1482 int width); |
1563 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, | 1483 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, |
1564 const uint8* src_u, | 1484 const uint8* src_u, |
1565 const uint8* src_v, | 1485 const uint8* src_v, |
1566 uint8* dst_abgr, | 1486 uint8* dst_abgr, |
| 1487 struct YuvConstants* yuvconstants, |
1567 int width); | 1488 int width); |
1568 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, | 1489 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, |
1569 const uint8* src_u, | 1490 const uint8* src_u, |
1570 const uint8* src_v, | 1491 const uint8* src_v, |
1571 uint8* dst_rgba, | 1492 uint8* dst_rgba, |
| 1493 struct YuvConstants* yuvconstants, |
1572 int width); | 1494 int width); |
1573 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, | 1495 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, |
1574 const uint8* src_u, | 1496 const uint8* src_u, |
1575 const uint8* src_v, | 1497 const uint8* src_v, |
1576 uint8* dst_rgba, | 1498 uint8* dst_rgba, |
| 1499 struct YuvConstants* yuvconstants, |
1577 int width); | 1500 int width); |
1578 void I422ToARGB4444Row_Any_AVX2(const uint8* src_y, | 1501 void I422ToARGB4444Row_Any_AVX2(const uint8* src_y, |
1579 const uint8* src_u, | 1502 const uint8* src_u, |
1580 const uint8* src_v, | 1503 const uint8* src_v, |
1581 uint8* dst_rgba, | 1504 uint8* dst_rgba, |
| 1505 struct YuvConstants* yuvconstants, |
1582 int width); | 1506 int width); |
1583 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, | 1507 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, |
1584 const uint8* src_u, | 1508 const uint8* src_u, |
1585 const uint8* src_v, | 1509 const uint8* src_v, |
1586 uint8* dst_rgba, | 1510 uint8* dst_rgba, |
| 1511 struct YuvConstants* yuvconstants, |
1587 int width); | 1512 int width); |
1588 void I422ToARGB1555Row_Any_AVX2(const uint8* src_y, | 1513 void I422ToARGB1555Row_Any_AVX2(const uint8* src_y, |
1589 const uint8* src_u, | 1514 const uint8* src_u, |
1590 const uint8* src_v, | 1515 const uint8* src_v, |
1591 uint8* dst_rgba, | 1516 uint8* dst_rgba, |
| 1517 struct YuvConstants* yuvconstants, |
1592 int width); | 1518 int width); |
1593 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, | 1519 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, |
1594 const uint8* src_u, | 1520 const uint8* src_u, |
1595 const uint8* src_v, | 1521 const uint8* src_v, |
1596 uint8* dst_rgba, | 1522 uint8* dst_rgba, |
| 1523 struct YuvConstants* yuvconstants, |
1597 int width); | 1524 int width); |
1598 void I422ToRGB565Row_Any_AVX2(const uint8* src_y, | 1525 void I422ToRGB565Row_Any_AVX2(const uint8* src_y, |
1599 const uint8* src_u, | 1526 const uint8* src_u, |
1600 const uint8* src_v, | 1527 const uint8* src_v, |
1601 uint8* dst_rgba, | 1528 uint8* dst_rgba, |
| 1529 struct YuvConstants* yuvconstants, |
1602 int width); | 1530 int width); |
1603 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, | 1531 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, |
1604 const uint8* src_u, | 1532 const uint8* src_u, |
1605 const uint8* src_v, | 1533 const uint8* src_v, |
1606 uint8* dst_argb, | 1534 uint8* dst_argb, |
| 1535 struct YuvConstants* yuvconstants, |
1607 int width); | 1536 int width); |
1608 void I422ToRGB24Row_Any_AVX2(const uint8* src_y, | 1537 void I422ToRGB24Row_Any_AVX2(const uint8* src_y, |
1609 const uint8* src_u, | 1538 const uint8* src_u, |
1610 const uint8* src_v, | 1539 const uint8* src_v, |
1611 uint8* dst_argb, | 1540 uint8* dst_argb, |
| 1541 struct YuvConstants* yuvconstants, |
1612 int width); | 1542 int width); |
1613 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, | 1543 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, |
1614 const uint8* src_u, | 1544 const uint8* src_u, |
1615 const uint8* src_v, | 1545 const uint8* src_v, |
1616 uint8* dst_argb, | 1546 uint8* dst_argb, |
| 1547 struct YuvConstants* yuvconstants, |
1617 int width); | 1548 int width); |
1618 void I422ToRAWRow_Any_AVX2(const uint8* src_y, | 1549 void I422ToRAWRow_Any_AVX2(const uint8* src_y, |
1619 const uint8* src_u, | 1550 const uint8* src_u, |
1620 const uint8* src_v, | 1551 const uint8* src_v, |
1621 uint8* dst_argb, | 1552 uint8* dst_argb, |
| 1553 struct YuvConstants* yuvconstants, |
1622 int width); | 1554 int width); |
1623 | 1555 |
1624 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width); | 1556 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width); |
1625 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); | 1557 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); |
1626 void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); | 1558 void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); |
1627 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width); | 1559 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width); |
1628 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width); | 1560 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width); |
1629 void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width); | 1561 void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width); |
1630 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width); | 1562 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width); |
1631 | 1563 |
(...skipping 77 matching lines...) Loading... |
1709 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1641 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
1710 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1642 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
1711 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 1643 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |
1712 void ARGBToRGB565DitherRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, | 1644 void ARGBToRGB565DitherRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, |
1713 const uint32 dither4, int width); | 1645 const uint32 dither4, int width); |
1714 | 1646 |
1715 void I444ToARGBRow_Any_NEON(const uint8* src_y, | 1647 void I444ToARGBRow_Any_NEON(const uint8* src_y, |
1716 const uint8* src_u, | 1648 const uint8* src_u, |
1717 const uint8* src_v, | 1649 const uint8* src_v, |
1718 uint8* dst_argb, | 1650 uint8* dst_argb, |
| 1651 struct YuvConstants* yuvconstants, |
1719 int width); | 1652 int width); |
1720 void I422ToARGBRow_Any_NEON(const uint8* src_y, | 1653 void I422ToARGBRow_Any_NEON(const uint8* src_y, |
1721 const uint8* src_u, | 1654 const uint8* src_u, |
1722 const uint8* src_v, | 1655 const uint8* src_v, |
1723 uint8* dst_argb, | 1656 uint8* dst_argb, |
| 1657 struct YuvConstants* yuvconstants, |
1724 int width); | 1658 int width); |
1725 void I411ToARGBRow_Any_NEON(const uint8* src_y, | 1659 void I411ToARGBRow_Any_NEON(const uint8* src_y, |
1726 const uint8* src_u, | 1660 const uint8* src_u, |
1727 const uint8* src_v, | 1661 const uint8* src_v, |
1728 uint8* dst_argb, | 1662 uint8* dst_argb, |
| 1663 struct YuvConstants* yuvconstants, |
1729 int width); | 1664 int width); |
1730 void I422ToBGRARow_Any_NEON(const uint8* src_y, | 1665 void I422ToBGRARow_Any_NEON(const uint8* src_y, |
1731 const uint8* src_u, | 1666 const uint8* src_u, |
1732 const uint8* src_v, | 1667 const uint8* src_v, |
1733 uint8* dst_argb, | 1668 uint8* dst_argb, |
| 1669 struct YuvConstants* yuvconstants, |
1734 int width); | 1670 int width); |
1735 void I422ToABGRRow_Any_NEON(const uint8* src_y, | 1671 void I422ToABGRRow_Any_NEON(const uint8* src_y, |
1736 const uint8* src_u, | 1672 const uint8* src_u, |
1737 const uint8* src_v, | 1673 const uint8* src_v, |
1738 uint8* dst_argb, | 1674 uint8* dst_argb, |
| 1675 struct YuvConstants* yuvconstants, |
1739 int width); | 1676 int width); |
1740 void I422ToRGBARow_Any_NEON(const uint8* src_y, | 1677 void I422ToRGBARow_Any_NEON(const uint8* src_y, |
1741 const uint8* src_u, | 1678 const uint8* src_u, |
1742 const uint8* src_v, | 1679 const uint8* src_v, |
1743 uint8* dst_argb, | 1680 uint8* dst_argb, |
| 1681 struct YuvConstants* yuvconstants, |
1744 int width); | 1682 int width); |
1745 void I422ToRGB24Row_Any_NEON(const uint8* src_y, | 1683 void I422ToRGB24Row_Any_NEON(const uint8* src_y, |
1746 const uint8* src_u, | 1684 const uint8* src_u, |
1747 const uint8* src_v, | 1685 const uint8* src_v, |
1748 uint8* dst_argb, | 1686 uint8* dst_argb, |
| 1687 struct YuvConstants* yuvconstants, |
1749 int width); | 1688 int width); |
1750 void I422ToRAWRow_Any_NEON(const uint8* src_y, | 1689 void I422ToRAWRow_Any_NEON(const uint8* src_y, |
1751 const uint8* src_u, | 1690 const uint8* src_u, |
1752 const uint8* src_v, | 1691 const uint8* src_v, |
1753 uint8* dst_argb, | 1692 uint8* dst_argb, |
| 1693 struct YuvConstants* yuvconstants, |
1754 int width); | 1694 int width); |
1755 void I422ToARGB4444Row_Any_NEON(const uint8* src_y, | 1695 void I422ToARGB4444Row_Any_NEON(const uint8* src_y, |
1756 const uint8* src_u, | 1696 const uint8* src_u, |
1757 const uint8* src_v, | 1697 const uint8* src_v, |
1758 uint8* dst_argb, | 1698 uint8* dst_argb, |
| 1699 struct YuvConstants* yuvconstants, |
1759 int width); | 1700 int width); |
1760 void I422ToARGB1555Row_Any_NEON(const uint8* src_y, | 1701 void I422ToARGB1555Row_Any_NEON(const uint8* src_y, |
1761 const uint8* src_u, | 1702 const uint8* src_u, |
1762 const uint8* src_v, | 1703 const uint8* src_v, |
1763 uint8* dst_argb, | 1704 uint8* dst_argb, |
| 1705 struct YuvConstants* yuvconstants, |
1764 int width); | 1706 int width); |
1765 void I422ToRGB565Row_Any_NEON(const uint8* src_y, | 1707 void I422ToRGB565Row_Any_NEON(const uint8* src_y, |
1766 const uint8* src_u, | 1708 const uint8* src_u, |
1767 const uint8* src_v, | 1709 const uint8* src_v, |
1768 uint8* dst_argb, | 1710 uint8* dst_argb, |
| 1711 struct YuvConstants* yuvconstants, |
1769 int width); | 1712 int width); |
1770 void J422ToARGBRow_Any_NEON(const uint8* src_y, | |
1771 const uint8* src_u, | |
1772 const uint8* src_v, | |
1773 uint8* dst_argb, | |
1774 int width); | |
1775 void H422ToARGBRow_Any_NEON(const uint8* src_y, | |
1776 const uint8* src_u, | |
1777 const uint8* src_v, | |
1778 uint8* dst_argb, | |
1779 int width); | |
1780 void J422ToABGRRow_Any_NEON(const uint8* src_y, | |
1781 const uint8* src_u, | |
1782 const uint8* src_v, | |
1783 uint8* dst_abgr, | |
1784 int width); | |
1785 void H422ToABGRRow_Any_NEON(const uint8* src_y, | |
1786 const uint8* src_u, | |
1787 const uint8* src_v, | |
1788 uint8* dst_abgr, | |
1789 int width); | |
1790 void NV12ToARGBRow_Any_NEON(const uint8* src_y, | 1713 void NV12ToARGBRow_Any_NEON(const uint8* src_y, |
1791 const uint8* src_uv, | 1714 const uint8* src_uv, |
1792 uint8* dst_argb, | 1715 uint8* dst_argb, |
1793 int width); | 1716 struct YuvConstants* yuvconstants, |
1794 void NV21ToARGBRow_Any_NEON(const uint8* src_y, | |
1795 const uint8* src_uv, | |
1796 uint8* dst_argb, | |
1797 int width); | 1717 int width); |
1798 void NV12ToRGB565Row_Any_NEON(const uint8* src_y, | 1718 void NV12ToRGB565Row_Any_NEON(const uint8* src_y, |
1799 const uint8* src_uv, | 1719 const uint8* src_uv, |
1800 uint8* dst_argb, | 1720 uint8* dst_argb, |
1801 int width); | 1721 struct YuvConstants* yuvconstants, |
1802 void NV21ToRGB565Row_Any_NEON(const uint8* src_y, | |
1803 const uint8* src_uv, | |
1804 uint8* dst_argb, | |
1805 int width); | 1722 int width); |
1806 void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2, | 1723 void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2, |
1807 uint8* dst_argb, | 1724 uint8* dst_argb, |
| 1725 struct YuvConstants* yuvconstants, |
1808 int width); | 1726 int width); |
1809 void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy, | 1727 void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy, |
1810 uint8* dst_argb, | 1728 uint8* dst_argb, |
| 1729 struct YuvConstants* yuvconstants, |
1811 int width); | 1730 int width); |
1812 void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, | 1731 void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, |
1813 const uint8* src_u, | 1732 const uint8* src_u, |
1814 const uint8* src_v, | 1733 const uint8* src_v, |
1815 uint8* dst_argb, | 1734 uint8* dst_argb, |
| 1735 struct YuvConstants* yuvconstants, |
1816 int width); | 1736 int width); |
1817 void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, | 1737 void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, |
1818 const uint8* src_u, | 1738 const uint8* src_u, |
1819 const uint8* src_v, | 1739 const uint8* src_v, |
1820 uint8* dst_argb, | 1740 uint8* dst_argb, |
| 1741 struct YuvConstants* yuvconstants, |
1821 int width); | 1742 int width); |
1822 void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, | 1743 void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, |
1823 const uint8* src_u, | 1744 const uint8* src_u, |
1824 const uint8* src_v, | 1745 const uint8* src_v, |
1825 uint8* dst_argb, | 1746 uint8* dst_argb, |
| 1747 struct YuvConstants* yuvconstants, |
1826 int width); | 1748 int width); |
1827 void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, | 1749 void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, |
1828 const uint8* src_u, | 1750 const uint8* src_u, |
1829 const uint8* src_v, | 1751 const uint8* src_v, |
1830 uint8* dst_argb, | 1752 uint8* dst_argb, |
| 1753 struct YuvConstants* yuvconstants, |
1831 int width); | 1754 int width); |
1832 void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, | 1755 void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, |
1833 const uint8* src_u, | 1756 const uint8* src_u, |
1834 const uint8* src_v, | 1757 const uint8* src_v, |
1835 uint8* dst_argb, | 1758 uint8* dst_argb, |
| 1759 struct YuvConstants* yuvconstants, |
1836 int width); | 1760 int width); |
1837 void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, | 1761 void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, |
1838 const uint8* src_u, | 1762 const uint8* src_u, |
1839 const uint8* src_v, | 1763 const uint8* src_v, |
1840 uint8* dst_argb, | 1764 uint8* dst_argb, |
| 1765 struct YuvConstants* yuvconstants, |
1841 int width); | 1766 int width); |
1842 | 1767 |
1843 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); | 1768 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); |
1844 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, | 1769 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, |
1845 uint8* dst_u, uint8* dst_v, int pix); | 1770 uint8* dst_u, uint8* dst_v, int pix); |
1846 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, | 1771 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, |
1847 uint8* dst_u, uint8* dst_v, int pix); | 1772 uint8* dst_u, uint8* dst_v, int pix); |
1848 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); | 1773 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); |
1849 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, | 1774 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, |
1850 uint8* dst_u, uint8* dst_v, int pix); | 1775 uint8* dst_u, uint8* dst_v, int pix); |
(...skipping 283 matching lines...) Loading... |
2134 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 2059 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
2135 int width, | 2060 int width, |
2136 const uint8* luma, uint32 lumacoeff); | 2061 const uint8* luma, uint32 lumacoeff); |
2137 | 2062 |
2138 #ifdef __cplusplus | 2063 #ifdef __cplusplus |
2139 } // extern "C" | 2064 } // extern "C" |
2140 } // namespace libyuv | 2065 } // namespace libyuv |
2141 #endif | 2066 #endif |
2142 | 2067 |
2143 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT | 2068 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT |
OLD | NEW |