OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |