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

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

Issue 1337973002: neon yuv matrix function (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « README.chromium ('k') | include/libyuv/version.h » ('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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 #define HAS_BGRATOUVROW_NEON 297 #define HAS_BGRATOUVROW_NEON
298 #define HAS_BGRATOYROW_NEON 298 #define HAS_BGRATOYROW_NEON
299 #define HAS_COPYROW_NEON 299 #define HAS_COPYROW_NEON
300 #define HAS_J400TOARGBROW_NEON 300 #define HAS_J400TOARGBROW_NEON
301 #define HAS_I411TOARGBROW_NEON 301 #define HAS_I411TOARGBROW_NEON
302 #define HAS_I422TOABGRROW_NEON 302 #define HAS_I422TOABGRROW_NEON
303 #define HAS_I422TOARGB1555ROW_NEON 303 #define HAS_I422TOARGB1555ROW_NEON
304 #define HAS_I422TOARGB4444ROW_NEON 304 #define HAS_I422TOARGB4444ROW_NEON
305 #define HAS_I422TOARGBROW_NEON 305 #define HAS_I422TOARGBROW_NEON
306 // TODO(fbarchard): Implement NEON version 306 // TODO(fbarchard): Implement NEON version
307 // #define HAS_I422TOARGBMATRIXROW_NEON 307 #ifndef __aarch64__
308 #define HAS_I422TOARGBMATRIXROW_NEON
309 #endif
308 // #define HAS_I422TOABGRMATRIXROW_NEON 310 // #define HAS_I422TOABGRMATRIXROW_NEON
309 #define HAS_I422TOBGRAROW_NEON 311 #define HAS_I422TOBGRAROW_NEON
310 #define HAS_I422TORAWROW_NEON 312 #define HAS_I422TORAWROW_NEON
311 #define HAS_I422TORGB24ROW_NEON 313 #define HAS_I422TORGB24ROW_NEON
312 #define HAS_I422TORGB565ROW_NEON 314 #define HAS_I422TORGB565ROW_NEON
313 #define HAS_I422TORGBAROW_NEON 315 #define HAS_I422TORGBAROW_NEON
314 #define HAS_I422TOUYVYROW_NEON 316 #define HAS_I422TOUYVYROW_NEON
315 #define HAS_I422TOYUY2ROW_NEON 317 #define HAS_I422TOYUY2ROW_NEON
316 #define HAS_I444TOARGBROW_NEON 318 #define HAS_I444TOARGBROW_NEON
317 #define HAS_MERGEUVROW_NEON 319 #define HAS_MERGEUVROW_NEON
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 struct YuvConstants { 437 struct YuvConstants {
436 lvec8 kUVToB; 438 lvec8 kUVToB;
437 lvec8 kUVToG; 439 lvec8 kUVToG;
438 lvec8 kUVToR; 440 lvec8 kUVToR;
439 lvec16 kUVBiasB; 441 lvec16 kUVBiasB;
440 lvec16 kUVBiasG; 442 lvec16 kUVBiasG;
441 lvec16 kUVBiasR; 443 lvec16 kUVBiasR;
442 lvec16 kYToRgb; 444 lvec16 kYToRgb;
443 }; 445 };
444 446
447 struct YuvConstantsNEON {
448 uvec8 kUVToRB;
449 uvec8 kUVToG;
450 vec16 kUVBiasBGR;
451 vec32 kYToRgb;
452 };
453
445 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) 454 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__)
446 #define OMITFP 455 #define OMITFP
447 #else 456 #else
448 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) 457 #define OMITFP __attribute__((optimize("omit-frame-pointer")))
449 #endif 458 #endif
450 459
451 // NaCL macros for GCC x86 and x64. 460 // NaCL macros for GCC x86 and x64.
452 #if defined(__native_client__) 461 #if defined(__native_client__)
453 #define LABELALIGN ".p2align 5\n" 462 #define LABELALIGN ".p2align 5\n"
454 #else 463 #else
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 int width); 543 int width);
535 void I422ToARGBRow_NEON(const uint8* src_y, 544 void I422ToARGBRow_NEON(const uint8* src_y,
536 const uint8* src_u, 545 const uint8* src_u,
537 const uint8* src_v, 546 const uint8* src_v,
538 uint8* dst_argb, 547 uint8* dst_argb,
539 int width); 548 int width);
540 void I422ToARGBMatrixRow_NEON(const uint8* src_y, 549 void I422ToARGBMatrixRow_NEON(const uint8* src_y,
541 const uint8* src_u, 550 const uint8* src_u,
542 const uint8* src_v, 551 const uint8* src_v,
543 uint8* dst_argb, 552 uint8* dst_argb,
544 struct YuvConstants* YuvConstants, 553 struct YuvConstantsNEON* YuvConstants,
545 int width); 554 int width);
546 void I422ToABGRMatrixRow_NEON(const uint8* src_y, 555 void I422ToABGRMatrixRow_NEON(const uint8* src_y,
547 const uint8* src_u, 556 const uint8* src_u,
548 const uint8* src_v, 557 const uint8* src_v,
549 uint8* dst_argb, 558 uint8* dst_argb,
550 struct YuvConstants* YuvConstants, 559 struct YuvConstants* YuvConstants,
551 int width); 560 int width);
552 void I411ToARGBRow_NEON(const uint8* src_y, 561 void I411ToARGBRow_NEON(const uint8* src_y,
553 const uint8* src_u, 562 const uint8* src_u,
554 const uint8* src_v, 563 const uint8* src_v,
(...skipping 1452 matching lines...) Expand 10 before | Expand all | Expand 10 after
2007 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 2016 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
2008 int width, 2017 int width,
2009 const uint8* luma, uint32 lumacoeff); 2018 const uint8* luma, uint32 lumacoeff);
2010 2019
2011 #ifdef __cplusplus 2020 #ifdef __cplusplus
2012 } // extern "C" 2021 } // extern "C"
2013 } // namespace libyuv 2022 } // namespace libyuv
2014 #endif 2023 #endif
2015 2024
2016 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 2025 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW
« no previous file with comments | « README.chromium ('k') | include/libyuv/version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698