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 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 #define HAS_ARGBTOUV444ROW_MSA | 392 #define HAS_ARGBTOUV444ROW_MSA |
393 #define HAS_ARGBMULTIPLYROW_MSA | 393 #define HAS_ARGBMULTIPLYROW_MSA |
394 #define HAS_ARGBADDROW_MSA | 394 #define HAS_ARGBADDROW_MSA |
395 #define HAS_ARGBSUBTRACTROW_MSA | 395 #define HAS_ARGBSUBTRACTROW_MSA |
396 #define HAS_ARGBATTENUATEROW_MSA | 396 #define HAS_ARGBATTENUATEROW_MSA |
397 #define HAS_ARGBTORGB565DITHERROW_MSA | 397 #define HAS_ARGBTORGB565DITHERROW_MSA |
398 #define HAS_ARGBSHUFFLEROW_MSA | 398 #define HAS_ARGBSHUFFLEROW_MSA |
399 #define HAS_ARGBSHADEROW_MSA | 399 #define HAS_ARGBSHADEROW_MSA |
400 #define HAS_ARGBGRAYROW_MSA | 400 #define HAS_ARGBGRAYROW_MSA |
401 #define HAS_ARGBSEPIAROW_MSA | 401 #define HAS_ARGBSEPIAROW_MSA |
| 402 #define HAS_ARGB1555TOARGBROW_MSA |
| 403 #define HAS_RGB565TOARGBROW_MSA |
| 404 #define HAS_RGB24TOARGBROW_MSA |
| 405 #define HAS_RAWTOARGBROW_MSA |
| 406 #define HAS_ARGB1555TOYROW_MSA |
| 407 #define HAS_RGB565TOYROW_MSA |
| 408 #define HAS_RGB24TOYROW_MSA |
| 409 #define HAS_RAWTOYROW_MSA |
| 410 #define HAS_ARGB1555TOUVROW_MSA |
| 411 #define HAS_RGB565TOUVROW_MSA |
| 412 #define HAS_RGB24TOUVROW_MSA |
| 413 #define HAS_RAWTOUVROW_MSA |
402 #endif | 414 #endif |
403 | 415 |
404 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) | 416 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) |
405 #if defined(VISUALC_HAS_AVX2) | 417 #if defined(VISUALC_HAS_AVX2) |
406 #define SIMD_ALIGNED(var) __declspec(align(32)) var | 418 #define SIMD_ALIGNED(var) __declspec(align(32)) var |
407 #else | 419 #else |
408 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 420 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
409 #endif | 421 #endif |
410 typedef __declspec(align(16)) int16 vec16[8]; | 422 typedef __declspec(align(16)) int16 vec16[8]; |
411 typedef __declspec(align(16)) int32 vec32[4]; | 423 typedef __declspec(align(16)) int32 vec32[4]; |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, | 786 void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, |
775 int src_stride_argb1555, | 787 int src_stride_argb1555, |
776 uint8* dst_u, | 788 uint8* dst_u, |
777 uint8* dst_v, | 789 uint8* dst_v, |
778 int width); | 790 int width); |
779 void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, | 791 void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, |
780 int src_stride_argb4444, | 792 int src_stride_argb4444, |
781 uint8* dst_u, | 793 uint8* dst_u, |
782 uint8* dst_v, | 794 uint8* dst_v, |
783 int width); | 795 int width); |
| 796 void RGB24ToUVRow_MSA(const uint8* src_rgb24, |
| 797 int src_stride_rgb24, |
| 798 uint8* dst_u, |
| 799 uint8* dst_v, |
| 800 int width); |
| 801 void RAWToUVRow_MSA(const uint8* src_raw, |
| 802 int src_stride_raw, |
| 803 uint8* dst_u, |
| 804 uint8* dst_v, |
| 805 int width); |
| 806 void RGB565ToUVRow_MSA(const uint8* src_rgb565, |
| 807 int src_stride_rgb565, |
| 808 uint8* dst_u, |
| 809 uint8* dst_v, |
| 810 int width); |
| 811 void ARGB1555ToUVRow_MSA(const uint8* src_argb1555, |
| 812 int src_stride_argb1555, |
| 813 uint8* dst_u, |
| 814 uint8* dst_v, |
| 815 int width); |
784 void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int width); | 816 void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int width); |
785 void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int width); | 817 void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int width); |
786 void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int width); | 818 void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int width); |
787 void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int width); | 819 void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int width); |
788 void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int width); | 820 void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int width); |
789 void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int width); | 821 void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int width); |
790 void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int width); | 822 void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int width); |
791 void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int width); | 823 void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int width); |
| 824 void RGB24ToYRow_MSA(const uint8* src_rgb24, uint8* dst_y, int width); |
| 825 void RAWToYRow_MSA(const uint8* src_raw, uint8* dst_y, int width); |
| 826 void RGB565ToYRow_MSA(const uint8* src_rgb565, uint8* dst_y, int width); |
| 827 void ARGB1555ToYRow_MSA(const uint8* src_argb1555, uint8* dst_y, int width); |
792 void ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int width); | 828 void ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int width); |
793 void ARGBToYJRow_C(const uint8* src_argb, uint8* dst_y, int width); | 829 void ARGBToYJRow_C(const uint8* src_argb, uint8* dst_y, int width); |
794 void BGRAToYRow_C(const uint8* src_bgra, uint8* dst_y, int width); | 830 void BGRAToYRow_C(const uint8* src_bgra, uint8* dst_y, int width); |
795 void ABGRToYRow_C(const uint8* src_abgr, uint8* dst_y, int width); | 831 void ABGRToYRow_C(const uint8* src_abgr, uint8* dst_y, int width); |
796 void RGBAToYRow_C(const uint8* src_rgba, uint8* dst_y, int width); | 832 void RGBAToYRow_C(const uint8* src_rgba, uint8* dst_y, int width); |
797 void RGB24ToYRow_C(const uint8* src_rgb24, uint8* dst_y, int width); | 833 void RGB24ToYRow_C(const uint8* src_rgb24, uint8* dst_y, int width); |
798 void RAWToYRow_C(const uint8* src_raw, uint8* dst_y, int width); | 834 void RAWToYRow_C(const uint8* src_raw, uint8* dst_y, int width); |
799 void RGB565ToYRow_C(const uint8* src_rgb565, uint8* dst_y, int width); | 835 void RGB565ToYRow_C(const uint8* src_rgb565, uint8* dst_y, int width); |
800 void ARGB1555ToYRow_C(const uint8* src_argb1555, uint8* dst_y, int width); | 836 void ARGB1555ToYRow_C(const uint8* src_argb1555, uint8* dst_y, int width); |
801 void ARGB4444ToYRow_C(const uint8* src_argb4444, uint8* dst_y, int width); | 837 void ARGB4444ToYRow_C(const uint8* src_argb4444, uint8* dst_y, int width); |
(...skipping 12 matching lines...) Expand all Loading... |
814 void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int width); | 850 void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int width); |
815 void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int width); | 851 void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int width); |
816 void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int width); | 852 void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int width); |
817 void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, | 853 void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, |
818 uint8* dst_y, | 854 uint8* dst_y, |
819 int width); | 855 int width); |
820 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, | 856 void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, |
821 uint8* dst_y, | 857 uint8* dst_y, |
822 int width); | 858 int width); |
823 void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width); | 859 void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width); |
| 860 void RGB24ToYRow_Any_MSA(const uint8* src_rgb24, uint8* dst_y, int width); |
| 861 void RAWToYRow_Any_MSA(const uint8* src_raw, uint8* dst_y, int width); |
| 862 void RGB565ToYRow_Any_MSA(const uint8* src_rgb565, uint8* dst_y, int width); |
| 863 void ARGB1555ToYRow_Any_MSA(const uint8* src_argb1555, uint8* dst_y, int width); |
824 | 864 |
825 void ARGBToUVRow_AVX2(const uint8* src_argb, | 865 void ARGBToUVRow_AVX2(const uint8* src_argb, |
826 int src_stride_argb, | 866 int src_stride_argb, |
827 uint8* dst_u, | 867 uint8* dst_u, |
828 uint8* dst_v, | 868 uint8* dst_v, |
829 int width); | 869 int width); |
830 void ARGBToUVJRow_AVX2(const uint8* src_argb, | 870 void ARGBToUVJRow_AVX2(const uint8* src_argb, |
831 int src_stride_argb, | 871 int src_stride_argb, |
832 uint8* dst_u, | 872 uint8* dst_u, |
833 uint8* dst_v, | 873 uint8* dst_v, |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, | 988 void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, |
949 int src_stride_argb1555, | 989 int src_stride_argb1555, |
950 uint8* dst_u, | 990 uint8* dst_u, |
951 uint8* dst_v, | 991 uint8* dst_v, |
952 int width); | 992 int width); |
953 void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, | 993 void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, |
954 int src_stride_argb4444, | 994 int src_stride_argb4444, |
955 uint8* dst_u, | 995 uint8* dst_u, |
956 uint8* dst_v, | 996 uint8* dst_v, |
957 int width); | 997 int width); |
| 998 void RGB24ToUVRow_Any_MSA(const uint8* src_rgb24, |
| 999 int src_stride_rgb24, |
| 1000 uint8* dst_u, |
| 1001 uint8* dst_v, |
| 1002 int width); |
| 1003 void RAWToUVRow_Any_MSA(const uint8* src_raw, |
| 1004 int src_stride_raw, |
| 1005 uint8* dst_u, |
| 1006 uint8* dst_v, |
| 1007 int width); |
| 1008 void RGB565ToUVRow_Any_MSA(const uint8* src_rgb565, |
| 1009 int src_stride_rgb565, |
| 1010 uint8* dst_u, |
| 1011 uint8* dst_v, |
| 1012 int width); |
| 1013 void ARGB1555ToUVRow_Any_MSA(const uint8* src_argb1555, |
| 1014 int src_stride_argb1555, |
| 1015 uint8* dst_u, |
| 1016 uint8* dst_v, |
| 1017 int width); |
958 void ARGBToUVRow_C(const uint8* src_argb, | 1018 void ARGBToUVRow_C(const uint8* src_argb, |
959 int src_stride_argb, | 1019 int src_stride_argb, |
960 uint8* dst_u, | 1020 uint8* dst_u, |
961 uint8* dst_v, | 1021 uint8* dst_v, |
962 int width); | 1022 int width); |
963 void ARGBToUVJRow_C(const uint8* src_argb, | 1023 void ARGBToUVJRow_C(const uint8* src_argb, |
964 int src_stride_argb, | 1024 int src_stride_argb, |
965 uint8* dst_u, | 1025 uint8* dst_u, |
966 uint8* dst_v, | 1026 uint8* dst_v, |
967 int width); | 1027 int width); |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1235 int width); | 1295 int width); |
1236 void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int width); | 1296 void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int width); |
1237 void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, | 1297 void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555, |
1238 uint8* dst_argb, | 1298 uint8* dst_argb, |
1239 int width); | 1299 int width); |
1240 void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, | 1300 void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444, |
1241 uint8* dst_argb, | 1301 uint8* dst_argb, |
1242 int width); | 1302 int width); |
1243 | 1303 |
1244 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); | 1304 void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width); |
| 1305 void RGB24ToARGBRow_MSA(const uint8* src_rgb24, uint8* dst_argb, int width); |
1245 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 1306 void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
| 1307 void RAWToARGBRow_MSA(const uint8* src_raw, uint8* dst_argb, int width); |
1246 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 1308 void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
1247 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); | 1309 void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width); |
| 1310 void RGB565ToARGBRow_MSA(const uint8* src_rgb565, uint8* dst_argb, int width); |
1248 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, | 1311 void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, |
1249 uint8* dst_argb, | 1312 uint8* dst_argb, |
1250 int width); | 1313 int width); |
| 1314 void ARGB1555ToARGBRow_MSA(const uint8* src_argb1555, |
| 1315 uint8* dst_argb, |
| 1316 int width); |
1251 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, | 1317 void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, |
1252 uint8* dst_argb, | 1318 uint8* dst_argb, |
1253 int width); | 1319 int width); |
1254 void ARGB4444ToARGBRow_MSA(const uint8* src_argb4444, | 1320 void ARGB4444ToARGBRow_MSA(const uint8* src_argb4444, |
1255 uint8* dst_argb, | 1321 uint8* dst_argb, |
1256 int width); | 1322 int width); |
1257 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int width); | 1323 void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int width); |
1258 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int width); | 1324 void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int width); |
1259 void RAWToRGB24Row_C(const uint8* src_raw, uint8* dst_rgb24, int width); | 1325 void RAWToRGB24Row_C(const uint8* src_raw, uint8* dst_rgb24, int width); |
1260 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int width); | 1326 void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int width); |
(...skipping 20 matching lines...) Expand all Loading... |
1281 void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, | 1347 void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555, |
1282 uint8* dst_argb, | 1348 uint8* dst_argb, |
1283 int width); | 1349 int width); |
1284 void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, | 1350 void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444, |
1285 uint8* dst_argb, | 1351 uint8* dst_argb, |
1286 int width); | 1352 int width); |
1287 | 1353 |
1288 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, | 1354 void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, |
1289 uint8* dst_argb, | 1355 uint8* dst_argb, |
1290 int width); | 1356 int width); |
| 1357 void RGB24ToARGBRow_Any_MSA(const uint8* src_rgb24, uint8* dst_argb, int width); |
1291 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); | 1358 void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width); |
| 1359 void RAWToARGBRow_Any_MSA(const uint8* src_raw, uint8* dst_argb, int width); |
1292 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); | 1360 void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width); |
1293 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, | 1361 void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, |
1294 uint8* dst_argb, | 1362 uint8* dst_argb, |
1295 int width); | 1363 int width); |
| 1364 void RGB565ToARGBRow_Any_MSA(const uint8* src_rgb565, |
| 1365 uint8* dst_argb, |
| 1366 int width); |
1296 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, | 1367 void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, |
1297 uint8* dst_argb, | 1368 uint8* dst_argb, |
1298 int width); | 1369 int width); |
| 1370 void ARGB1555ToARGBRow_Any_MSA(const uint8* src_argb1555, |
| 1371 uint8* dst_argb, |
| 1372 int width); |
1299 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, | 1373 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, |
1300 uint8* dst_argb, | 1374 uint8* dst_argb, |
1301 int width); | 1375 int width); |
1302 void ARGB4444ToARGBRow_Any_MSA(const uint8* src_argb4444, | 1376 void ARGB4444ToARGBRow_Any_MSA(const uint8* src_argb4444, |
1303 uint8* dst_argb, | 1377 uint8* dst_argb, |
1304 int width); | 1378 int width); |
1305 | 1379 |
1306 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); | 1380 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); |
1307 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); | 1381 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width); |
1308 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); | 1382 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width); |
(...skipping 1382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2691 int width, | 2765 int width, |
2692 const uint8* luma, | 2766 const uint8* luma, |
2693 uint32 lumacoeff); | 2767 uint32 lumacoeff); |
2694 | 2768 |
2695 #ifdef __cplusplus | 2769 #ifdef __cplusplus |
2696 } // extern "C" | 2770 } // extern "C" |
2697 } // namespace libyuv | 2771 } // namespace libyuv |
2698 #endif | 2772 #endif |
2699 | 2773 |
2700 #endif // INCLUDE_LIBYUV_ROW_H_ | 2774 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |