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

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

Issue 2421843002: Add MSA optimized ARGB4444ToI420 and ARGB4444ToARGB functions (Closed)
Patch Set: Incorporated review comments Created 4 years, 2 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 | « no previous file | source/convert.cc » ('j') | source/row_msa.cc » ('J')
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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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_
OLDNEW
« no previous file with comments | « no previous file | source/convert.cc » ('j') | source/row_msa.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698