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

Side by Side Diff: source/convert_from_argb.cc

Issue 2520003004: Add MSA optimized ARGBToRGB565Row_MSA, ARGBToARGB1555Row_MSA, ARGBToARGB4444Row_MSA, ARGBToUV444Row… (Closed)
Patch Set: Clang format Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2012 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 } 61 }
62 #endif 62 #endif
63 #if defined(HAS_ARGBTOUV444ROW_NEON) 63 #if defined(HAS_ARGBTOUV444ROW_NEON)
64 if (TestCpuFlag(kCpuHasNEON)) { 64 if (TestCpuFlag(kCpuHasNEON)) {
65 ARGBToUV444Row = ARGBToUV444Row_Any_NEON; 65 ARGBToUV444Row = ARGBToUV444Row_Any_NEON;
66 if (IS_ALIGNED(width, 8)) { 66 if (IS_ALIGNED(width, 8)) {
67 ARGBToUV444Row = ARGBToUV444Row_NEON; 67 ARGBToUV444Row = ARGBToUV444Row_NEON;
68 } 68 }
69 } 69 }
70 #endif 70 #endif
71 #if defined(HAS_ARGBTOUV444ROW_MSA)
72 if (TestCpuFlag(kCpuHasMSA)) {
73 ARGBToUV444Row = ARGBToUV444Row_Any_MSA;
74 if (IS_ALIGNED(width, 16)) {
75 ARGBToUV444Row = ARGBToUV444Row_MSA;
76 }
77 }
78 #endif
71 #if defined(HAS_ARGBTOYROW_SSSE3) 79 #if defined(HAS_ARGBTOYROW_SSSE3)
72 if (TestCpuFlag(kCpuHasSSSE3)) { 80 if (TestCpuFlag(kCpuHasSSSE3)) {
73 ARGBToYRow = ARGBToYRow_Any_SSSE3; 81 ARGBToYRow = ARGBToYRow_Any_SSSE3;
74 if (IS_ALIGNED(width, 16)) { 82 if (IS_ALIGNED(width, 16)) {
75 ARGBToYRow = ARGBToYRow_SSSE3; 83 ARGBToYRow = ARGBToYRow_SSSE3;
76 } 84 }
77 } 85 }
78 #endif 86 #endif
79 #if defined(HAS_ARGBTOYROW_AVX2) 87 #if defined(HAS_ARGBTOYROW_AVX2)
80 if (TestCpuFlag(kCpuHasAVX2)) { 88 if (TestCpuFlag(kCpuHasAVX2)) {
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 } 1030 }
1023 #endif 1031 #endif
1024 #if defined(HAS_ARGBTORGB565ROW_NEON) 1032 #if defined(HAS_ARGBTORGB565ROW_NEON)
1025 if (TestCpuFlag(kCpuHasNEON)) { 1033 if (TestCpuFlag(kCpuHasNEON)) {
1026 ARGBToRGB565Row = ARGBToRGB565Row_Any_NEON; 1034 ARGBToRGB565Row = ARGBToRGB565Row_Any_NEON;
1027 if (IS_ALIGNED(width, 8)) { 1035 if (IS_ALIGNED(width, 8)) {
1028 ARGBToRGB565Row = ARGBToRGB565Row_NEON; 1036 ARGBToRGB565Row = ARGBToRGB565Row_NEON;
1029 } 1037 }
1030 } 1038 }
1031 #endif 1039 #endif
1040 #if defined(HAS_ARGBTORGB565ROW_MSA)
1041 if (TestCpuFlag(kCpuHasMSA)) {
1042 ARGBToRGB565Row = ARGBToRGB565Row_Any_MSA;
1043 if (IS_ALIGNED(width, 8)) {
1044 ARGBToRGB565Row = ARGBToRGB565Row_MSA;
1045 }
1046 }
1047 #endif
1032 1048
1033 for (y = 0; y < height; ++y) { 1049 for (y = 0; y < height; ++y) {
1034 ARGBToRGB565Row(src_argb, dst_rgb565, width); 1050 ARGBToRGB565Row(src_argb, dst_rgb565, width);
1035 src_argb += src_stride_argb; 1051 src_argb += src_stride_argb;
1036 dst_rgb565 += dst_stride_rgb565; 1052 dst_rgb565 += dst_stride_rgb565;
1037 } 1053 }
1038 return 0; 1054 return 0;
1039 } 1055 }
1040 1056
1041 // Convert ARGB To ARGB1555. 1057 // Convert ARGB To ARGB1555.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 } 1096 }
1081 #endif 1097 #endif
1082 #if defined(HAS_ARGBTOARGB1555ROW_NEON) 1098 #if defined(HAS_ARGBTOARGB1555ROW_NEON)
1083 if (TestCpuFlag(kCpuHasNEON)) { 1099 if (TestCpuFlag(kCpuHasNEON)) {
1084 ARGBToARGB1555Row = ARGBToARGB1555Row_Any_NEON; 1100 ARGBToARGB1555Row = ARGBToARGB1555Row_Any_NEON;
1085 if (IS_ALIGNED(width, 8)) { 1101 if (IS_ALIGNED(width, 8)) {
1086 ARGBToARGB1555Row = ARGBToARGB1555Row_NEON; 1102 ARGBToARGB1555Row = ARGBToARGB1555Row_NEON;
1087 } 1103 }
1088 } 1104 }
1089 #endif 1105 #endif
1106 #if defined(HAS_ARGBTOARGB1555ROW_MSA)
1107 if (TestCpuFlag(kCpuHasMSA)) {
1108 ARGBToARGB1555Row = ARGBToARGB1555Row_Any_MSA;
1109 if (IS_ALIGNED(width, 8)) {
1110 ARGBToARGB1555Row = ARGBToARGB1555Row_MSA;
1111 }
1112 }
1113 #endif
1090 1114
1091 for (y = 0; y < height; ++y) { 1115 for (y = 0; y < height; ++y) {
1092 ARGBToARGB1555Row(src_argb, dst_argb1555, width); 1116 ARGBToARGB1555Row(src_argb, dst_argb1555, width);
1093 src_argb += src_stride_argb; 1117 src_argb += src_stride_argb;
1094 dst_argb1555 += dst_stride_argb1555; 1118 dst_argb1555 += dst_stride_argb1555;
1095 } 1119 }
1096 return 0; 1120 return 0;
1097 } 1121 }
1098 1122
1099 // Convert ARGB To ARGB4444. 1123 // Convert ARGB To ARGB4444.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 } 1162 }
1139 #endif 1163 #endif
1140 #if defined(HAS_ARGBTOARGB4444ROW_NEON) 1164 #if defined(HAS_ARGBTOARGB4444ROW_NEON)
1141 if (TestCpuFlag(kCpuHasNEON)) { 1165 if (TestCpuFlag(kCpuHasNEON)) {
1142 ARGBToARGB4444Row = ARGBToARGB4444Row_Any_NEON; 1166 ARGBToARGB4444Row = ARGBToARGB4444Row_Any_NEON;
1143 if (IS_ALIGNED(width, 8)) { 1167 if (IS_ALIGNED(width, 8)) {
1144 ARGBToARGB4444Row = ARGBToARGB4444Row_NEON; 1168 ARGBToARGB4444Row = ARGBToARGB4444Row_NEON;
1145 } 1169 }
1146 } 1170 }
1147 #endif 1171 #endif
1172 #if defined(HAS_ARGBTOARGB4444ROW_MSA)
1173 if (TestCpuFlag(kCpuHasMSA)) {
1174 ARGBToARGB4444Row = ARGBToARGB4444Row_Any_MSA;
1175 if (IS_ALIGNED(width, 8)) {
1176 ARGBToARGB4444Row = ARGBToARGB4444Row_MSA;
1177 }
1178 }
1179 #endif
1148 1180
1149 for (y = 0; y < height; ++y) { 1181 for (y = 0; y < height; ++y) {
1150 ARGBToARGB4444Row(src_argb, dst_argb4444, width); 1182 ARGBToARGB4444Row(src_argb, dst_argb4444, width);
1151 src_argb += src_stride_argb; 1183 src_argb += src_stride_argb;
1152 dst_argb4444 += dst_stride_argb4444; 1184 dst_argb4444 += dst_stride_argb4444;
1153 } 1185 }
1154 return 0; 1186 return 0;
1155 } 1187 }
1156 1188
1157 // Convert ARGB to J420. (JPeg full range I420). 1189 // Convert ARGB to J420. (JPeg full range I420).
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 src_argb += src_stride_argb; 1397 src_argb += src_stride_argb;
1366 dst_yj += dst_stride_yj; 1398 dst_yj += dst_stride_yj;
1367 } 1399 }
1368 return 0; 1400 return 0;
1369 } 1401 }
1370 1402
1371 #ifdef __cplusplus 1403 #ifdef __cplusplus
1372 } // extern "C" 1404 } // extern "C"
1373 } // namespace libyuv 1405 } // namespace libyuv
1374 #endif 1406 #endif
OLDNEW
« no previous file with comments | « include/libyuv/row.h ('k') | source/row_any.cc » ('j') | source/row_msa.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698