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 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 #define HAS_ARGBTOUV444ROW_MSA | 409 #define HAS_ARGBTOUV444ROW_MSA |
410 #define HAS_ARGBMULTIPLYROW_MSA | 410 #define HAS_ARGBMULTIPLYROW_MSA |
411 #define HAS_ARGBADDROW_MSA | 411 #define HAS_ARGBADDROW_MSA |
412 #define HAS_ARGBSUBTRACTROW_MSA | 412 #define HAS_ARGBSUBTRACTROW_MSA |
413 #define HAS_ARGBATTENUATEROW_MSA | 413 #define HAS_ARGBATTENUATEROW_MSA |
414 #define HAS_ARGBTORGB565DITHERROW_MSA | 414 #define HAS_ARGBTORGB565DITHERROW_MSA |
415 #define HAS_ARGBSHUFFLEROW_MSA | 415 #define HAS_ARGBSHUFFLEROW_MSA |
416 #define HAS_ARGBSHADEROW_MSA | 416 #define HAS_ARGBSHADEROW_MSA |
417 #define HAS_ARGBGRAYROW_MSA | 417 #define HAS_ARGBGRAYROW_MSA |
418 #define HAS_ARGBSEPIAROW_MSA | 418 #define HAS_ARGBSEPIAROW_MSA |
| 419 #define HAS_ARGB1555TOARGBROW_MSA |
| 420 #define HAS_RGB565TOARGBROW_MSA |
| 421 #define HAS_RGB24TOARGBROW_MSA |
| 422 #define HAS_RAWTOARGBROW_MSA |
| 423 #define HAS_ARGB1555TOYROW_MSA |
| 424 #define HAS_RGB565TOYROW_MSA |
| 425 #define HAS_RGB24TOYROW_MSA |
| 426 #define HAS_RAWTOYROW_MSA |
| 427 #define HAS_ARGB1555TOUVROW_MSA |
| 428 #define HAS_RGB565TOUVROW_MSA |
| 429 #define HAS_RGB24TOUVROW_MSA |
| 430 #define HAS_RAWTOUVROW_MSA |
419 #endif | 431 #endif |
420 | 432 |
421 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) | 433 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) |
422 #if defined(VISUALC_HAS_AVX2) | 434 #if defined(VISUALC_HAS_AVX2) |
423 #define SIMD_ALIGNED(var) __declspec(align(32)) var | 435 #define SIMD_ALIGNED(var) __declspec(align(32)) var |
424 #else | 436 #else |
425 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 437 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
426 #endif | 438 #endif |
427 typedef __declspec(align(16)) int16 vec16[8]; | 439 typedef __declspec(align(16)) int16 vec16[8]; |
428 typedef __declspec(align(16)) int32 vec32[4]; | 440 typedef __declspec(align(16)) int32 vec32[4]; |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
815 void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, | 827 void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, |
816 int src_stride_argb1555, | 828 int src_stride_argb1555, |
817 uint8* dst_u, | 829 uint8* dst_u, |
818 uint8* dst_v, | 830 uint8* dst_v, |
819 int width); | 831 int width); |
820 void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, | 832 void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, |
821 int src_stride_argb4444, | 833 int src_stride_argb4444, |
822 uint8* dst_u, | 834 uint8* dst_u, |
823 uint8* dst_v, | 835 uint8* dst_v, |
824 int width); | 836 int width); |
| 837 void RGB24ToUVRow_MSA(const uint8* src_rgb24, |
| 838 int src_stride_rgb24, |
| 839 uint8* dst_u, |
| 840 uint8* dst_v, |
| 841 int width); |
| 842 void RAWToUVRow_MSA(const uint8* src_raw, |
| 843 int src_stride_raw, |
| 844 uint8* dst_u, |
| 845 uint8* dst_v, |
| 846 int width); |
| 847 void RGB565ToUVRow_MSA(const uint8* src_rgb565, |
| 848 int src_stride_rgb565, |
| 849 uint8* dst_u, |
| 850 uint8* dst_v, |
| 851 int width); |
| 852 void ARGB1555ToUVRow_MSA(const uint8* src_argb1555, |
| 853 int src_stride_argb1555, |
| 854 uint8* dst_u, |
| 855 uint8* dst_v, |
| 856 int width); |
825 void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int width); | 857 void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int width); |
826 void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int width); | 858 void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int width); |
827 void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int width); | 859 void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int width); |
828 void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int width); | 860 void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int width); |
829 void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int width); | 861 void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int width); |
830 void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int width); | 862 void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int width); |
831 void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int width); | 863 void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int width); |
832 void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int width); | 864 void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int width); |
| 865 void RGB24ToYRow_MSA(const uint8* src_rgb24, uint8* dst_y, int width); |
| 866 void RAWToYRow_MSA(const uint8* src_raw, uint8* dst_y, int width); |
| 867 void RGB565ToYRow_MSA(const uint8* src_rgb565, uint8* dst_y, int width); |
| 868 void ARGB1555ToYRow_MSA(const uint8* src_argb1555, uint8* dst_y, int width); |
833 void BGRAToUVRow_DSPR2(const uint8* src_bgra, | 869 void BGRAToUVRow_DSPR2(const uint8* src_bgra, |
834 int src_stride_bgra, | 870 int src_stride_bgra, |
835 uint8* dst_u, | 871 uint8* dst_u, |
836 uint8* dst_v, | 872 uint8* dst_v, |
837 int width); | 873 int width); |
838 void BGRAToYRow_DSPR2(const uint8* src_bgra, uint8* dst_y, int width); | 874 void BGRAToYRow_DSPR2(const uint8* src_bgra, uint8* dst_y, int width); |
839 void ABGRToUVRow_DSPR2(const uint8* src_abgr, | 875 void ABGRToUVRow_DSPR2(const uint8* src_abgr, |
840 int src_stride_abgr, | 876 int src_stride_abgr, |
841 uint8* dst_u, | 877 uint8* dst_u, |
842 uint8* dst_v, | 878 uint8* dst_v, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 uint8* dst_y, | 919 uint8* dst_y, |
884 int width); | 920 int width); |
885 void BGRAToYRow_Any_DSPR2(const uint8* src_bgra, uint8* dst_y, int width); | 921 void BGRAToYRow_Any_DSPR2(const uint8* src_bgra, uint8* dst_y, int width); |
886 void ARGBToYRow_Any_DSPR2(const uint8* src_argb, uint8* dst_y, int width); | 922 void ARGBToYRow_Any_DSPR2(const uint8* src_argb, uint8* dst_y, int width); |
887 void ABGRToYRow_Any_DSPR2(const uint8* src_abgr, uint8* dst_y, int width); | 923 void ABGRToYRow_Any_DSPR2(const uint8* src_abgr, uint8* dst_y, int width); |
888 void RGBAToYRow_Any_DSPR2(const uint8* src_rgba, uint8* dst_y, int width); | 924 void RGBAToYRow_Any_DSPR2(const uint8* src_rgba, uint8* dst_y, int width); |
889 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, | 925 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, |
890 uint8* dst_y, | 926 uint8* dst_y, |
891 int width); | 927 int width); |
892 void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width); | 928 void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width); |
| 929 void RGB24ToYRow_Any_MSA(const uint8* src_rgb24, uint8* dst_y, int width); |
| 930 void RAWToYRow_Any_MSA(const uint8* src_raw, uint8* dst_y, int width); |
| 931 void RGB565ToYRow_Any_MSA(const uint8* src_rgb565, uint8* dst_y, int width); |
| 932 void ARGB1555ToYRow_Any_MSA(const uint8* src_argb1555, uint8* dst_y, int width); |
893 | 933 |
894 void ARGBToUVRow_AVX2(const uint8* src_argb, | 934 void ARGBToUVRow_AVX2(const uint8* src_argb, |
895 int src_stride_argb, | 935 int src_stride_argb, |
896 uint8* dst_u, | 936 uint8* dst_u, |
897 uint8* dst_v, | 937 uint8* dst_v, |
898 int width); | 938 int width); |
899 void ARGBToUVJRow_AVX2(const uint8* src_argb, | 939 void ARGBToUVJRow_AVX2(const uint8* src_argb, |
900 int src_stride_argb, | 940 int src_stride_argb, |
901 uint8* dst_u, | 941 uint8* dst_u, |
902 uint8* dst_v, | 942 uint8* dst_v, |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, | 1057 void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, |
1018 int src_stride_argb1555, | 1058 int src_stride_argb1555, |
1019 uint8* dst_u, | 1059 uint8* dst_u, |
1020 uint8* dst_v, | 1060 uint8* dst_v, |
1021 int width); | 1061 int width); |
1022 void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, | 1062 void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, |
1023 int src_stride_argb4444, | 1063 int src_stride_argb4444, |
1024 uint8* dst_u, | 1064 uint8* dst_u, |
1025 uint8* dst_v, | 1065 uint8* dst_v, |
1026 int width); | 1066 int width); |
| 1067 void RGB24ToUVRow_Any_MSA(const uint8* src_rgb24, |
| 1068 int src_stride_rgb24, |
| 1069 uint8* dst_u, |
| 1070 uint8* dst_v, |
| 1071 int width); |
| 1072 void RAWToUVRow_Any_MSA(const uint8* src_raw, |
| 1073 int src_stride_raw, |
| 1074 uint8* dst_u, |
| 1075 uint8* dst_v, |
| 1076 int width); |
| 1077 void RGB565ToUVRow_Any_MSA(const uint8* src_rgb565, |
| 1078 int src_stride_rgb565, |
| 1079 uint8* dst_u, |
| 1080 uint8* dst_v, |
| 1081 int width); |
| 1082 void ARGB1555ToUVRow_Any_MSA(const uint8* src_argb1555, |
| 1083 int src_stride_argb1555, |
| 1084 uint8* dst_u, |
| 1085 uint8* dst_v, |
| 1086 int width); |
1027 void BGRAToUVRow_Any_DSPR2(const uint8* src_bgra, | 1087 void BGRAToUVRow_Any_DSPR2(const uint8* src_bgra, |
1028 int src_stride_bgra, | 1088 int src_stride_bgra, |
1029 uint8* dst_u, | 1089 uint8* dst_u, |
1030 uint8* dst_v, | 1090 uint8* dst_v, |
1031 int width); | 1091 int width); |
1032 void ABGRToUVRow_Any_DSPR2(const uint8* src_abgr, | 1092 void ABGRToUVRow_Any_DSPR2(const uint8* src_abgr, |
1033 int src_stride_abgr, | 1093 int src_stride_abgr, |
1034 uint8* dst_u, | 1094 uint8* dst_u, |
1035 uint8* dst_v, | 1095 uint8* dst_v, |
1036 int width); | 1096 int width); |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 int width); | 1394 int width); |
1335 void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int width); | 1395 void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int width); |
1336 void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, | 1396 void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, |
1337 uint8* dst_argb, | 1397 uint8* dst_argb, |
1338 int width); | 1398 int width); |
1339 void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, | 1399 void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, |
1340 uint8* dst_argb, | 1400 uint8* dst_argb, |
1341 int width); | 1401 int width); |
1342 | 1402 |
1343 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); | 1403 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); |
| 1404 void RGB24ToARGBRow_MSA(const uint8* src_rgb24, uint8* dst_argb, int width); |
1344 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 1405 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
| 1406 void RAWToARGBRow_MSA(const uint8* src_raw, uint8* dst_argb, int width); |
1345 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 1407 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
1346 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); | 1408 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); |
| 1409 void RGB565ToARGBRow_MSA(const uint8* src_rgb565, uint8* dst_argb, int width); |
1347 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, | 1410 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, |
1348 uint8* dst_argb, | 1411 uint8* dst_argb, |
1349 int width); | 1412 int width); |
| 1413 void ARGB1555ToARGBRow_MSA(const uint8* src_argb1555, |
| 1414 uint8* dst_argb, |
| 1415 int width); |
1350 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, | 1416 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, |
1351 uint8* dst_argb, | 1417 uint8* dst_argb, |
1352 int width); | 1418 int width); |
1353 void RGB24ToARGBRow_DSPR2(const uint8* src_rgb24, uint8* dst_argb, int width); | 1419 void RGB24ToARGBRow_DSPR2(const uint8* src_rgb24, uint8* dst_argb, int width); |
1354 void RAWToARGBRow_DSPR2(const uint8* src_raw, uint8* dst_argb, int width); | 1420 void RAWToARGBRow_DSPR2(const uint8* src_raw, uint8* dst_argb, int width); |
1355 void RGB565ToARGBRow_DSPR2(const uint8* src_rgb565, uint8* dst_argb, int width); | 1421 void RGB565ToARGBRow_DSPR2(const uint8* src_rgb565, uint8* dst_argb, int width); |
1356 void ARGB1555ToARGBRow_DSPR2(const uint8* src_argb1555, | 1422 void ARGB1555ToARGBRow_DSPR2(const uint8* src_argb1555, |
1357 uint8* dst_argb, | 1423 uint8* dst_argb, |
1358 int width); | 1424 int width); |
1359 void ARGB4444ToARGBRow_DSPR2(const uint8* src_argb4444, | 1425 void ARGB4444ToARGBRow_DSPR2(const uint8* src_argb4444, |
(...skipping 29 matching lines...) Expand all Loading... |
1389 void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, | 1455 void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, |
1390 uint8* dst_argb, | 1456 uint8* dst_argb, |
1391 int width); | 1457 int width); |
1392 void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, | 1458 void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, |
1393 uint8* dst_argb, | 1459 uint8* dst_argb, |
1394 int width); | 1460 int width); |
1395 | 1461 |
1396 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, | 1462 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, |
1397 uint8* dst_argb, | 1463 uint8* dst_argb, |
1398 int width); | 1464 int width); |
| 1465 void RGB24ToARGBRow_Any_MSA(const uint8* src_rgb24, uint8* dst_argb, int width); |
1399 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 1466 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
| 1467 void RAWToARGBRow_Any_MSA(const uint8* src_raw, uint8* dst_argb, int width); |
1400 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 1468 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
1401 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, | 1469 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, |
1402 uint8* dst_argb, | 1470 uint8* dst_argb, |
1403 int width); | 1471 int width); |
| 1472 void RGB565ToARGBRow_Any_MSA(const uint8* src_rgb565, |
| 1473 uint8* dst_argb, |
| 1474 int width); |
1404 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, | 1475 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, |
1405 uint8* dst_argb, | 1476 uint8* dst_argb, |
1406 int width); | 1477 int width); |
| 1478 void ARGB1555ToARGBRow_Any_MSA(const uint8* src_argb1555, |
| 1479 uint8* dst_argb, |
| 1480 int width); |
1407 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, | 1481 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, |
1408 uint8* dst_argb, | 1482 uint8* dst_argb, |
1409 int width); | 1483 int width); |
1410 void RGB24ToARGBRow_Any_DSPR2(const uint8* src_rgb24, | 1484 void RGB24ToARGBRow_Any_DSPR2(const uint8* src_rgb24, |
1411 uint8* dst_argb, | 1485 uint8* dst_argb, |
1412 int width); | 1486 int width); |
1413 void RAWToARGBRow_Any_DSPR2(const uint8* src_raw, uint8* dst_argb, int width); | 1487 void RAWToARGBRow_Any_DSPR2(const uint8* src_raw, uint8* dst_argb, int width); |
1414 void RGB565ToARGBRow_Any_DSPR2(const uint8* src_rgb565, | 1488 void RGB565ToARGBRow_Any_DSPR2(const uint8* src_rgb565, |
1415 uint8* dst_argb, | 1489 uint8* dst_argb, |
1416 int width); | 1490 int width); |
(...skipping 1431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2848 int width, | 2922 int width, |
2849 const uint8* luma, | 2923 const uint8* luma, |
2850 uint32 lumacoeff); | 2924 uint32 lumacoeff); |
2851 | 2925 |
2852 #ifdef __cplusplus | 2926 #ifdef __cplusplus |
2853 } // extern "C" | 2927 } // extern "C" |
2854 } // namespace libyuv | 2928 } // namespace libyuv |
2855 #endif | 2929 #endif |
2856 | 2930 |
2857 #endif // INCLUDE_LIBYUV_ROW_H_ | 2931 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |