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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) | 367 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) |
368 #define HAS_ARGBMIRRORROW_MSA | 368 #define HAS_ARGBMIRRORROW_MSA |
369 #define HAS_I422TOUYVYROW_MSA | 369 #define HAS_I422TOUYVYROW_MSA |
370 #define HAS_I422TOYUY2ROW_MSA | 370 #define HAS_I422TOYUY2ROW_MSA |
371 #define HAS_MIRRORROW_MSA | 371 #define HAS_MIRRORROW_MSA |
372 #define HAS_UYVYTOUVROW_MSA | 372 #define HAS_UYVYTOUVROW_MSA |
373 #define HAS_UYVYTOYROW_MSA | 373 #define HAS_UYVYTOYROW_MSA |
374 #define HAS_YUY2TOUV422ROW_MSA | 374 #define HAS_YUY2TOUV422ROW_MSA |
375 #define HAS_YUY2TOUVROW_MSA | 375 #define HAS_YUY2TOUVROW_MSA |
376 #define HAS_YUY2TOYROW_MSA | 376 #define HAS_YUY2TOYROW_MSA |
| 377 #define HAS_ARGB4444TOARGBROW_MSA |
| 378 #define HAS_ARGBTOYROW_MSA |
| 379 #define HAS_ARGBTOUVROW_MSA |
377 | 380 |
378 #endif | 381 #endif |
379 | 382 |
380 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) | 383 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) |
381 #if defined(VISUALC_HAS_AVX2) | 384 #if defined(VISUALC_HAS_AVX2) |
382 #define SIMD_ALIGNED(var) __declspec(align(32)) var | 385 #define SIMD_ALIGNED(var) __declspec(align(32)) var |
383 #else | 386 #else |
384 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 387 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
385 #endif | 388 #endif |
386 typedef __declspec(align(16)) int16 vec16[8]; | 389 typedef __declspec(align(16)) int16 vec16[8]; |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 653 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
651 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 654 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
652 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); | 655 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); |
653 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); | 656 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); |
654 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); | 657 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); |
655 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); | 658 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); |
656 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int width); | 659 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int width); |
657 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int width); | 660 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int width); |
658 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int width); | 661 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int width); |
659 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int width); | 662 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int width); |
| 663 void ARGBToYRow_MSA(const uint8* src_argb, uint8* dst_y, int width); |
660 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 664 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |
661 int width); | 665 int width); |
662 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, | 666 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, |
663 uint8* dst_u, uint8* dst_v, int width); | 667 uint8* dst_u, uint8* dst_v, int width); |
| 668 void ARGBToUVRow_MSA(const uint8* src_argb, int src_stride_argb, |
| 669 uint8* dst_u, uint8* dst_v, int width); |
664 void ARGBToUVJRow_NEON(const uint8* src_argb, int src_stride_argb, | 670 void ARGBToUVJRow_NEON(const uint8* src_argb, int src_stride_argb, |
665 uint8* dst_u, uint8* dst_v, int width); | 671 uint8* dst_u, uint8* dst_v, int width); |
666 void BGRAToUVRow_NEON(const uint8* src_bgra, int src_stride_bgra, | 672 void BGRAToUVRow_NEON(const uint8* src_bgra, int src_stride_bgra, |
667 uint8* dst_u, uint8* dst_v, int width); | 673 uint8* dst_u, uint8* dst_v, int width); |
668 void ABGRToUVRow_NEON(const uint8* src_abgr, int src_stride_abgr, | 674 void ABGRToUVRow_NEON(const uint8* src_abgr, int src_stride_abgr, |
669 uint8* dst_u, uint8* dst_v, int width); | 675 uint8* dst_u, uint8* dst_v, int width); |
670 void RGBAToUVRow_NEON(const uint8* src_rgba, int src_stride_rgba, | 676 void RGBAToUVRow_NEON(const uint8* src_rgba, int src_stride_rgba, |
671 uint8* dst_u, uint8* dst_v, int width); | 677 uint8* dst_u, uint8* dst_v, int width); |
672 void RGB24ToUVRow_NEON(const uint8* src_rgb24, int src_stride_rgb24, | 678 void RGB24ToUVRow_NEON(const uint8* src_rgb24, int src_stride_rgb24, |
673 uint8* dst_u, uint8* dst_v, int width); | 679 uint8* dst_u, uint8* dst_v, int width); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 void BGRAToYRow_Any_NEON(const uint8* src_bgra, uint8* dst_y, int width); | 715 void BGRAToYRow_Any_NEON(const uint8* src_bgra, uint8* dst_y, int width); |
710 void ABGRToYRow_Any_NEON(const uint8* src_abgr, uint8* dst_y, int width); | 716 void ABGRToYRow_Any_NEON(const uint8* src_abgr, uint8* dst_y, int width); |
711 void RGBAToYRow_Any_NEON(const uint8* src_rgba, uint8* dst_y, int width); | 717 void RGBAToYRow_Any_NEON(const uint8* src_rgba, uint8* dst_y, int width); |
712 void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int width); | 718 void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int width); |
713 void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int width); | 719 void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int width); |
714 void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int width); | 720 void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int width); |
715 void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, uint8* dst_y, | 721 void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, uint8* dst_y, |
716 int width); | 722 int width); |
717 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, uint8* dst_y, | 723 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, uint8* dst_y, |
718 int width); | 724 int width); |
| 725 void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width); |
719 | 726 |
720 void ARGBToUVRow_AVX2(const uint8* src_argb, int src_stride_argb, | 727 void ARGBToUVRow_AVX2(const uint8* src_argb, int src_stride_argb, |
721 uint8* dst_u, uint8* dst_v, int width); | 728 uint8* dst_u, uint8* dst_v, int width); |
722 void ARGBToUVJRow_AVX2(const uint8* src_argb, int src_stride_argb, | 729 void ARGBToUVJRow_AVX2(const uint8* src_argb, int src_stride_argb, |
723 uint8* dst_u, uint8* dst_v, int width); | 730 uint8* dst_u, uint8* dst_v, int width); |
724 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 731 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, |
725 uint8* dst_u, uint8* dst_v, int width); | 732 uint8* dst_u, uint8* dst_v, int width); |
726 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 733 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, |
727 uint8* dst_u, uint8* dst_v, int width); | 734 uint8* dst_u, uint8* dst_v, int width); |
728 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 735 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, |
(...skipping 13 matching lines...) Expand all Loading... |
742 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 749 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, |
743 uint8* dst_u, uint8* dst_v, int width); | 750 uint8* dst_u, uint8* dst_v, int width); |
744 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, | 751 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, |
745 uint8* dst_u, uint8* dst_v, int width); | 752 uint8* dst_u, uint8* dst_v, int width); |
746 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, | 753 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, |
747 uint8* dst_u, uint8* dst_v, int width); | 754 uint8* dst_u, uint8* dst_v, int width); |
748 void ARGBToUV444Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 755 void ARGBToUV444Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |
749 int width); | 756 int width); |
750 void ARGBToUVRow_Any_NEON(const uint8* src_argb, int src_stride_argb, | 757 void ARGBToUVRow_Any_NEON(const uint8* src_argb, int src_stride_argb, |
751 uint8* dst_u, uint8* dst_v, int width); | 758 uint8* dst_u, uint8* dst_v, int width); |
| 759 void ARGBToUVRow_Any_MSA(const uint8* src_argb, int src_stride_argb, |
| 760 uint8* dst_u, uint8* dst_v, int width); |
752 void ARGBToUVJRow_Any_NEON(const uint8* src_argb, int src_stride_argb, | 761 void ARGBToUVJRow_Any_NEON(const uint8* src_argb, int src_stride_argb, |
753 uint8* dst_u, uint8* dst_v, int width); | 762 uint8* dst_u, uint8* dst_v, int width); |
754 void BGRAToUVRow_Any_NEON(const uint8* src_bgra, int src_stride_bgra, | 763 void BGRAToUVRow_Any_NEON(const uint8* src_bgra, int src_stride_bgra, |
755 uint8* dst_u, uint8* dst_v, int width); | 764 uint8* dst_u, uint8* dst_v, int width); |
756 void ABGRToUVRow_Any_NEON(const uint8* src_abgr, int src_stride_abgr, | 765 void ABGRToUVRow_Any_NEON(const uint8* src_abgr, int src_stride_abgr, |
757 uint8* dst_u, uint8* dst_v, int width); | 766 uint8* dst_u, uint8* dst_v, int width); |
758 void RGBAToUVRow_Any_NEON(const uint8* src_rgba, int src_stride_rgba, | 767 void RGBAToUVRow_Any_NEON(const uint8* src_rgba, int src_stride_rgba, |
759 uint8* dst_u, uint8* dst_v, int width); | 768 uint8* dst_u, uint8* dst_v, int width); |
760 void RGB24ToUVRow_Any_NEON(const uint8* src_rgb24, int src_stride_rgb24, | 769 void RGB24ToUVRow_Any_NEON(const uint8* src_rgb24, int src_stride_rgb24, |
761 uint8* dst_u, uint8* dst_v, int width); | 770 uint8* dst_u, uint8* dst_v, int width); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 int width); | 956 int width); |
948 | 957 |
949 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); | 958 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); |
950 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 959 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
951 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 960 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
952 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); | 961 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); |
953 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb, | 962 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb, |
954 int width); | 963 int width); |
955 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb, | 964 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb, |
956 int width); | 965 int width); |
| 966 void ARGB4444ToARGBRow_MSA(const uint8* src_argb4444, uint8* dst_argb, |
| 967 int width); |
957 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int width); | 968 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int width); |
958 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int width); | 969 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int width); |
959 void RAWToRGB24Row_C(const uint8* src_raw, uint8* dst_rgb24, int width); | 970 void RAWToRGB24Row_C(const uint8* src_raw, uint8* dst_rgb24, int width); |
960 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int width); | 971 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int width); |
961 void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width); | 972 void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width); |
962 void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width); | 973 void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width); |
963 void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, | 974 void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, |
964 int width); | 975 int width); |
965 void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int width); | 976 void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int width); |
966 void RAWToRGB24Row_Any_SSSE3(const uint8* src_raw, uint8* dst_rgb24, int width); | 977 void RAWToRGB24Row_Any_SSSE3(const uint8* src_raw, uint8* dst_rgb24, int width); |
(...skipping 14 matching lines...) Expand all Loading... |
981 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, | 992 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, |
982 int width); | 993 int width); |
983 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 994 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
984 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 995 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
985 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb, | 996 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb, |
986 int width); | 997 int width); |
987 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb, | 998 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb, |
988 int width); | 999 int width); |
989 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, | 1000 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, |
990 int width); | 1001 int width); |
| 1002 void ARGB4444ToARGBRow_Any_MSA(const uint8* src_argb4444, uint8* dst_argb, |
| 1003 int width); |
991 | 1004 |
992 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); | 1005 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); |
993 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); | 1006 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); |
994 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); | 1007 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); |
995 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); | 1008 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); |
996 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); | 1009 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); |
997 | 1010 |
998 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb, | 1011 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb, |
999 const uint32 dither4, int width); | 1012 const uint32 dither4, int width); |
1000 void ARGBToRGB565DitherRow_SSE2(const uint8* src_argb, uint8* dst_rgb, | 1013 void ARGBToRGB565DitherRow_SSE2(const uint8* src_argb, uint8* dst_rgb, |
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1947 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 1960 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
1948 int width, | 1961 int width, |
1949 const uint8* luma, uint32 lumacoeff); | 1962 const uint8* luma, uint32 lumacoeff); |
1950 | 1963 |
1951 #ifdef __cplusplus | 1964 #ifdef __cplusplus |
1952 } // extern "C" | 1965 } // extern "C" |
1953 } // namespace libyuv | 1966 } // namespace libyuv |
1954 #endif | 1967 #endif |
1955 | 1968 |
1956 #endif // INCLUDE_LIBYUV_ROW_H_ | 1969 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |