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 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 #define HAS_RGB24TOARGBROW_MSA | 421 #define HAS_RGB24TOARGBROW_MSA |
422 #define HAS_RAWTOARGBROW_MSA | 422 #define HAS_RAWTOARGBROW_MSA |
423 #define HAS_ARGB1555TOYROW_MSA | 423 #define HAS_ARGB1555TOYROW_MSA |
424 #define HAS_RGB565TOYROW_MSA | 424 #define HAS_RGB565TOYROW_MSA |
425 #define HAS_RGB24TOYROW_MSA | 425 #define HAS_RGB24TOYROW_MSA |
426 #define HAS_RAWTOYROW_MSA | 426 #define HAS_RAWTOYROW_MSA |
427 #define HAS_ARGB1555TOUVROW_MSA | 427 #define HAS_ARGB1555TOUVROW_MSA |
428 #define HAS_RGB565TOUVROW_MSA | 428 #define HAS_RGB565TOUVROW_MSA |
429 #define HAS_RGB24TOUVROW_MSA | 429 #define HAS_RGB24TOUVROW_MSA |
430 #define HAS_RAWTOUVROW_MSA | 430 #define HAS_RAWTOUVROW_MSA |
| 431 #define HAS_NV12TOARGBROW_MSA |
| 432 #define HAS_NV12TORGB565ROW_MSA |
| 433 #define HAS_NV21TOARGBROW_MSA |
| 434 #define HAS_SOBELROW_MSA |
| 435 #define HAS_SOBELTOPLANEROW_MSA |
| 436 #define HAS_SOBELXYROW_MSA |
431 #endif | 437 #endif |
432 | 438 |
433 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) | 439 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) |
434 #if defined(VISUALC_HAS_AVX2) | 440 #if defined(VISUALC_HAS_AVX2) |
435 #define SIMD_ALIGNED(var) __declspec(align(32)) var | 441 #define SIMD_ALIGNED(var) __declspec(align(32)) var |
436 #else | 442 #else |
437 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 443 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
438 #endif | 444 #endif |
439 typedef __declspec(align(16)) int16 vec16[8]; | 445 typedef __declspec(align(16)) int16 vec16[8]; |
440 typedef __declspec(align(16)) int32 vec32[4]; | 446 typedef __declspec(align(16)) int32 vec32[4]; |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 const uint8* src_v, | 755 const uint8* src_v, |
750 uint8* dst_argb4444, | 756 uint8* dst_argb4444, |
751 const struct YuvConstants* yuvconstants, | 757 const struct YuvConstants* yuvconstants, |
752 int width); | 758 int width); |
753 void I422ToARGB1555Row_MSA(const uint8* src_y, | 759 void I422ToARGB1555Row_MSA(const uint8* src_y, |
754 const uint8* src_u, | 760 const uint8* src_u, |
755 const uint8* src_v, | 761 const uint8* src_v, |
756 uint8* dst_argb1555, | 762 uint8* dst_argb1555, |
757 const struct YuvConstants* yuvconstants, | 763 const struct YuvConstants* yuvconstants, |
758 int width); | 764 int width); |
| 765 void NV12ToARGBRow_MSA(const uint8* src_y, |
| 766 const uint8* src_uv, |
| 767 uint8* dst_argb, |
| 768 const struct YuvConstants* yuvconstants, |
| 769 int width); |
| 770 void NV12ToRGB565Row_MSA(const uint8* src_y, |
| 771 const uint8* src_uv, |
| 772 uint8* dst_rgb565, |
| 773 const struct YuvConstants* yuvconstants, |
| 774 int width); |
| 775 void NV21ToARGBRow_MSA(const uint8* src_y, |
| 776 const uint8* src_vu, |
| 777 uint8* dst_argb, |
| 778 const struct YuvConstants* yuvconstants, |
| 779 int width); |
759 | 780 |
760 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 781 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
761 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 782 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
762 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); | 783 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); |
763 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 784 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
764 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); | 785 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); |
765 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); | 786 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); |
766 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); | 787 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); |
767 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); | 788 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); |
768 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); | 789 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); |
(...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2321 const uint8* src_v, | 2342 const uint8* src_v, |
2322 uint8* dst_argb4444, | 2343 uint8* dst_argb4444, |
2323 const struct YuvConstants* yuvconstants, | 2344 const struct YuvConstants* yuvconstants, |
2324 int width); | 2345 int width); |
2325 void I422ToARGB1555Row_Any_MSA(const uint8* src_y, | 2346 void I422ToARGB1555Row_Any_MSA(const uint8* src_y, |
2326 const uint8* src_u, | 2347 const uint8* src_u, |
2327 const uint8* src_v, | 2348 const uint8* src_v, |
2328 uint8* dst_argb1555, | 2349 uint8* dst_argb1555, |
2329 const struct YuvConstants* yuvconstants, | 2350 const struct YuvConstants* yuvconstants, |
2330 int width); | 2351 int width); |
| 2352 void NV12ToARGBRow_Any_MSA(const uint8* src_y, |
| 2353 const uint8* src_uv, |
| 2354 uint8* dst_argb, |
| 2355 const struct YuvConstants* yuvconstants, |
| 2356 int width); |
| 2357 void NV12ToRGB565Row_Any_MSA(const uint8* src_y, |
| 2358 const uint8* src_uv, |
| 2359 uint8* dst_argb, |
| 2360 const struct YuvConstants* yuvconstants, |
| 2361 int width); |
| 2362 void NV21ToARGBRow_Any_MSA(const uint8* src_y, |
| 2363 const uint8* src_vu, |
| 2364 uint8* dst_argb, |
| 2365 const struct YuvConstants* yuvconstants, |
| 2366 int width); |
2331 | 2367 |
2332 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); | 2368 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); |
2333 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, | 2369 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, |
2334 int stride_yuy2, | 2370 int stride_yuy2, |
2335 uint8* dst_u, | 2371 uint8* dst_u, |
2336 uint8* dst_v, | 2372 uint8* dst_v, |
2337 int width); | 2373 int width); |
2338 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, | 2374 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, |
2339 uint8* dst_u, | 2375 uint8* dst_u, |
2340 uint8* dst_v, | 2376 uint8* dst_v, |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2810 uint8* dst_argb, | 2846 uint8* dst_argb, |
2811 int width); | 2847 int width); |
2812 void SobelRow_SSE2(const uint8* src_sobelx, | 2848 void SobelRow_SSE2(const uint8* src_sobelx, |
2813 const uint8* src_sobely, | 2849 const uint8* src_sobely, |
2814 uint8* dst_argb, | 2850 uint8* dst_argb, |
2815 int width); | 2851 int width); |
2816 void SobelRow_NEON(const uint8* src_sobelx, | 2852 void SobelRow_NEON(const uint8* src_sobelx, |
2817 const uint8* src_sobely, | 2853 const uint8* src_sobely, |
2818 uint8* dst_argb, | 2854 uint8* dst_argb, |
2819 int width); | 2855 int width); |
| 2856 void SobelRow_MSA(const uint8* src_sobelx, |
| 2857 const uint8* src_sobely, |
| 2858 uint8* dst_argb, |
| 2859 int width); |
2820 void SobelToPlaneRow_C(const uint8* src_sobelx, | 2860 void SobelToPlaneRow_C(const uint8* src_sobelx, |
2821 const uint8* src_sobely, | 2861 const uint8* src_sobely, |
2822 uint8* dst_y, | 2862 uint8* dst_y, |
2823 int width); | 2863 int width); |
2824 void SobelToPlaneRow_SSE2(const uint8* src_sobelx, | 2864 void SobelToPlaneRow_SSE2(const uint8* src_sobelx, |
2825 const uint8* src_sobely, | 2865 const uint8* src_sobely, |
2826 uint8* dst_y, | 2866 uint8* dst_y, |
2827 int width); | 2867 int width); |
2828 void SobelToPlaneRow_NEON(const uint8* src_sobelx, | 2868 void SobelToPlaneRow_NEON(const uint8* src_sobelx, |
2829 const uint8* src_sobely, | 2869 const uint8* src_sobely, |
2830 uint8* dst_y, | 2870 uint8* dst_y, |
2831 int width); | 2871 int width); |
| 2872 void SobelToPlaneRow_MSA(const uint8* src_sobelx, |
| 2873 const uint8* src_sobely, |
| 2874 uint8* dst_y, |
| 2875 int width); |
2832 void SobelXYRow_C(const uint8* src_sobelx, | 2876 void SobelXYRow_C(const uint8* src_sobelx, |
2833 const uint8* src_sobely, | 2877 const uint8* src_sobely, |
2834 uint8* dst_argb, | 2878 uint8* dst_argb, |
2835 int width); | 2879 int width); |
2836 void SobelXYRow_SSE2(const uint8* src_sobelx, | 2880 void SobelXYRow_SSE2(const uint8* src_sobelx, |
2837 const uint8* src_sobely, | 2881 const uint8* src_sobely, |
2838 uint8* dst_argb, | 2882 uint8* dst_argb, |
2839 int width); | 2883 int width); |
2840 void SobelXYRow_NEON(const uint8* src_sobelx, | 2884 void SobelXYRow_NEON(const uint8* src_sobelx, |
2841 const uint8* src_sobely, | 2885 const uint8* src_sobely, |
2842 uint8* dst_argb, | 2886 uint8* dst_argb, |
2843 int width); | 2887 int width); |
| 2888 void SobelXYRow_MSA(const uint8* src_sobelx, |
| 2889 const uint8* src_sobely, |
| 2890 uint8* dst_argb, |
| 2891 int width); |
2844 void SobelRow_Any_SSE2(const uint8* src_sobelx, | 2892 void SobelRow_Any_SSE2(const uint8* src_sobelx, |
2845 const uint8* src_sobely, | 2893 const uint8* src_sobely, |
2846 uint8* dst_argb, | 2894 uint8* dst_argb, |
2847 int width); | 2895 int width); |
2848 void SobelRow_Any_NEON(const uint8* src_sobelx, | 2896 void SobelRow_Any_NEON(const uint8* src_sobelx, |
2849 const uint8* src_sobely, | 2897 const uint8* src_sobely, |
2850 uint8* dst_argb, | 2898 uint8* dst_argb, |
2851 int width); | 2899 int width); |
| 2900 void SobelRow_Any_MSA(const uint8* src_sobelx, |
| 2901 const uint8* src_sobely, |
| 2902 uint8* dst_argb, |
| 2903 int width); |
2852 void SobelToPlaneRow_Any_SSE2(const uint8* src_sobelx, | 2904 void SobelToPlaneRow_Any_SSE2(const uint8* src_sobelx, |
2853 const uint8* src_sobely, | 2905 const uint8* src_sobely, |
2854 uint8* dst_y, | 2906 uint8* dst_y, |
2855 int width); | 2907 int width); |
2856 void SobelToPlaneRow_Any_NEON(const uint8* src_sobelx, | 2908 void SobelToPlaneRow_Any_NEON(const uint8* src_sobelx, |
2857 const uint8* src_sobely, | 2909 const uint8* src_sobely, |
2858 uint8* dst_y, | 2910 uint8* dst_y, |
2859 int width); | 2911 int width); |
| 2912 void SobelToPlaneRow_Any_MSA(const uint8* src_sobelx, |
| 2913 const uint8* src_sobely, |
| 2914 uint8* dst_y, |
| 2915 int width); |
2860 void SobelXYRow_Any_SSE2(const uint8* src_sobelx, | 2916 void SobelXYRow_Any_SSE2(const uint8* src_sobelx, |
2861 const uint8* src_sobely, | 2917 const uint8* src_sobely, |
2862 uint8* dst_argb, | 2918 uint8* dst_argb, |
2863 int width); | 2919 int width); |
2864 void SobelXYRow_Any_NEON(const uint8* src_sobelx, | 2920 void SobelXYRow_Any_NEON(const uint8* src_sobelx, |
2865 const uint8* src_sobely, | 2921 const uint8* src_sobely, |
2866 uint8* dst_argb, | 2922 uint8* dst_argb, |
2867 int width); | 2923 int width); |
| 2924 void SobelXYRow_Any_MSA(const uint8* src_sobelx, |
| 2925 const uint8* src_sobely, |
| 2926 uint8* dst_argb, |
| 2927 int width); |
2868 | 2928 |
2869 void ARGBPolynomialRow_C(const uint8* src_argb, | 2929 void ARGBPolynomialRow_C(const uint8* src_argb, |
2870 uint8* dst_argb, | 2930 uint8* dst_argb, |
2871 const float* poly, | 2931 const float* poly, |
2872 int width); | 2932 int width); |
2873 void ARGBPolynomialRow_SSE2(const uint8* src_argb, | 2933 void ARGBPolynomialRow_SSE2(const uint8* src_argb, |
2874 uint8* dst_argb, | 2934 uint8* dst_argb, |
2875 const float* poly, | 2935 const float* poly, |
2876 int width); | 2936 int width); |
2877 void ARGBPolynomialRow_AVX2(const uint8* src_argb, | 2937 void ARGBPolynomialRow_AVX2(const uint8* src_argb, |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2922 int width, | 2982 int width, |
2923 const uint8* luma, | 2983 const uint8* luma, |
2924 uint32 lumacoeff); | 2984 uint32 lumacoeff); |
2925 | 2985 |
2926 #ifdef __cplusplus | 2986 #ifdef __cplusplus |
2927 } // extern "C" | 2987 } // extern "C" |
2928 } // namespace libyuv | 2988 } // namespace libyuv |
2929 #endif | 2989 #endif |
2930 | 2990 |
2931 #endif // INCLUDE_LIBYUV_ROW_H_ | 2991 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |