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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |