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

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

Issue 2600713002: Add MSA optimized RAW/RGB/ARGB to ARGB/Y/UV row functions (Closed)
Patch Set: Created 3 years, 12 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 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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_
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