Chromium Code Reviews

Side by Side Diff: include/libyuv/row.h

Issue 1363503002: yuvconstants for all YUV to RGB conversion functions. (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: mips dspr2 add constants parameter Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « no previous file | source/convert_argb.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 90 matching lines...)
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...)
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...)
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...)
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...)
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...)
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...)
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...)
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...)
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
OLDNEW
« no previous file with comments | « no previous file | source/convert_argb.cc » ('j') | no next file with comments »

Powered by Google App Engine