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

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

Issue 1388273002: Reimplement NV21ToARGB to allow different color matrix. (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: include scale_row.h for scaling macros Created 5 years, 2 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 | « include/libyuv/planar_functions.h ('k') | include/libyuv/scale_row.h » ('j') | no next file with comments »
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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 #define HAS_J422TOARGBROW_SSSE3 119 #define HAS_J422TOARGBROW_SSSE3
120 #define HAS_J422TOABGRROW_SSSE3 120 #define HAS_J422TOABGRROW_SSSE3
121 #define HAS_H422TOARGBROW_SSSE3 121 #define HAS_H422TOARGBROW_SSSE3
122 #define HAS_H422TOABGRROW_SSSE3 122 #define HAS_H422TOABGRROW_SSSE3
123 #define HAS_MERGEUVROW_SSE2 123 #define HAS_MERGEUVROW_SSE2
124 #define HAS_MIRRORROW_SSSE3 124 #define HAS_MIRRORROW_SSSE3
125 #define HAS_MIRRORROW_UV_SSSE3 125 #define HAS_MIRRORROW_UV_SSSE3
126 #define HAS_MIRRORUVROW_SSSE3 126 #define HAS_MIRRORUVROW_SSSE3
127 #define HAS_NV12TOARGBROW_SSSE3 127 #define HAS_NV12TOARGBROW_SSSE3
128 #define HAS_NV12TORGB565ROW_SSSE3 128 #define HAS_NV12TORGB565ROW_SSSE3
129 #define HAS_NV21TOARGBROW_SSSE3
129 #define HAS_RAWTOARGBROW_SSSE3 130 #define HAS_RAWTOARGBROW_SSSE3
130 #define HAS_RAWTOYROW_SSSE3 131 #define HAS_RAWTOYROW_SSSE3
131 #define HAS_RGB24TOARGBROW_SSSE3 132 #define HAS_RGB24TOARGBROW_SSSE3
132 #define HAS_RGB24TOYROW_SSSE3 133 #define HAS_RGB24TOYROW_SSSE3
133 #define HAS_RGB565TOARGBROW_SSE2 134 #define HAS_RGB565TOARGBROW_SSE2
134 #define HAS_RGBATOUVROW_SSSE3 135 #define HAS_RGBATOUVROW_SSSE3
135 #define HAS_RGBATOYROW_SSSE3 136 #define HAS_RGBATOYROW_SSSE3
136 #define HAS_SETROW_ERMS 137 #define HAS_SETROW_ERMS
137 #define HAS_SETROW_X86 138 #define HAS_SETROW_X86
138 #define HAS_SPLITUVROW_SSE2 139 #define HAS_SPLITUVROW_SSE2
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 #define HAS_SPLITUVROW_AVX2 243 #define HAS_SPLITUVROW_AVX2
243 #define HAS_UYVYTOARGBROW_AVX2 244 #define HAS_UYVYTOARGBROW_AVX2
244 #define HAS_UYVYTOUV422ROW_AVX2 245 #define HAS_UYVYTOUV422ROW_AVX2
245 #define HAS_UYVYTOUVROW_AVX2 246 #define HAS_UYVYTOUVROW_AVX2
246 #define HAS_UYVYTOYROW_AVX2 247 #define HAS_UYVYTOYROW_AVX2
247 #define HAS_YUY2TOARGBROW_AVX2 248 #define HAS_YUY2TOARGBROW_AVX2
248 #define HAS_YUY2TOUV422ROW_AVX2 249 #define HAS_YUY2TOUV422ROW_AVX2
249 #define HAS_YUY2TOUVROW_AVX2 250 #define HAS_YUY2TOUVROW_AVX2
250 #define HAS_YUY2TOYROW_AVX2 251 #define HAS_YUY2TOYROW_AVX2
251 #define HAS_NV12TOARGBROW_AVX2 252 #define HAS_NV12TOARGBROW_AVX2
253 #define HAS_NV21TOARGBROW_AVX2
252 #define HAS_I422ALPHATOARGBROW_AVX2 254 #define HAS_I422ALPHATOARGBROW_AVX2
253 #define HAS_I422ALPHATOABGRROW_AVX2 255 #define HAS_I422ALPHATOABGRROW_AVX2
254 256
255 // Effects: 257 // Effects:
256 #define HAS_ARGBADDROW_AVX2 258 #define HAS_ARGBADDROW_AVX2
257 #define HAS_ARGBATTENUATEROW_AVX2 259 #define HAS_ARGBATTENUATEROW_AVX2
258 #define HAS_ARGBMULTIPLYROW_AVX2 260 #define HAS_ARGBMULTIPLYROW_AVX2
259 #define HAS_ARGBSUBTRACTROW_AVX2 261 #define HAS_ARGBSUBTRACTROW_AVX2
260 #define HAS_ARGBUNATTENUATEROW_AVX2 262 #define HAS_ARGBUNATTENUATEROW_AVX2
261 #endif 263 #endif
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 #define HAS_I422TORGB565ROW_NEON 307 #define HAS_I422TORGB565ROW_NEON
306 #define HAS_I422TORGBAROW_NEON 308 #define HAS_I422TORGBAROW_NEON
307 #define HAS_I422TOUYVYROW_NEON 309 #define HAS_I422TOUYVYROW_NEON
308 #define HAS_I422TOYUY2ROW_NEON 310 #define HAS_I422TOYUY2ROW_NEON
309 #define HAS_I444TOARGBROW_NEON 311 #define HAS_I444TOARGBROW_NEON
310 #define HAS_MERGEUVROW_NEON 312 #define HAS_MERGEUVROW_NEON
311 #define HAS_MIRRORROW_NEON 313 #define HAS_MIRRORROW_NEON
312 #define HAS_MIRRORUVROW_NEON 314 #define HAS_MIRRORUVROW_NEON
313 #define HAS_NV12TOARGBROW_NEON 315 #define HAS_NV12TOARGBROW_NEON
314 #define HAS_NV12TORGB565ROW_NEON 316 #define HAS_NV12TORGB565ROW_NEON
317 #define HAS_NV21TOARGBROW_NEON
315 #define HAS_RAWTOARGBROW_NEON 318 #define HAS_RAWTOARGBROW_NEON
316 #define HAS_RAWTOUVROW_NEON 319 #define HAS_RAWTOUVROW_NEON
317 #define HAS_RAWTOYROW_NEON 320 #define HAS_RAWTOYROW_NEON
318 #define HAS_RGB24TOARGBROW_NEON 321 #define HAS_RGB24TOARGBROW_NEON
319 #define HAS_RGB24TOUVROW_NEON 322 #define HAS_RGB24TOUVROW_NEON
320 #define HAS_RGB24TOYROW_NEON 323 #define HAS_RGB24TOYROW_NEON
321 #define HAS_RGB565TOARGBROW_NEON 324 #define HAS_RGB565TOARGBROW_NEON
322 #define HAS_RGB565TOUVROW_NEON 325 #define HAS_RGB565TOUVROW_NEON
323 #define HAS_RGB565TOYROW_NEON 326 #define HAS_RGB565TOYROW_NEON
324 #define HAS_RGBATOUVROW_NEON 327 #define HAS_RGBATOUVROW_NEON
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 void NV12ToARGBRow_NEON(const uint8* src_y, 628 void NV12ToARGBRow_NEON(const uint8* src_y,
626 const uint8* src_uv, 629 const uint8* src_uv,
627 uint8* dst_argb, 630 uint8* dst_argb,
628 struct YuvConstants* yuvconstants, 631 struct YuvConstants* yuvconstants,
629 int width); 632 int width);
630 void NV12ToRGB565Row_NEON(const uint8* src_y, 633 void NV12ToRGB565Row_NEON(const uint8* src_y,
631 const uint8* src_uv, 634 const uint8* src_uv,
632 uint8* dst_rgb565, 635 uint8* dst_rgb565,
633 struct YuvConstants* yuvconstants, 636 struct YuvConstants* yuvconstants,
634 int width); 637 int width);
638 void NV21ToARGBRow_NEON(const uint8* src_y,
639 const uint8* src_vu,
640 uint8* dst_argb,
641 struct YuvConstants* yuvconstants,
642 int width);
635 void YUY2ToARGBRow_NEON(const uint8* src_yuy2, 643 void YUY2ToARGBRow_NEON(const uint8* src_yuy2,
636 uint8* dst_argb, 644 uint8* dst_argb,
637 struct YuvConstants* yuvconstants, 645 struct YuvConstants* yuvconstants,
638 int width); 646 int width);
639 void UYVYToARGBRow_NEON(const uint8* src_uyvy, 647 void UYVYToARGBRow_NEON(const uint8* src_uyvy,
640 uint8* dst_argb, 648 uint8* dst_argb,
641 struct YuvConstants* yuvconstants, 649 struct YuvConstants* yuvconstants,
642 int width); 650 int width);
643 651
644 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); 652 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix);
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 void NV12ToARGBRow_C(const uint8* src_y, 1076 void NV12ToARGBRow_C(const uint8* src_y,
1069 const uint8* src_uv, 1077 const uint8* src_uv,
1070 uint8* dst_argb, 1078 uint8* dst_argb,
1071 struct YuvConstants* yuvconstants, 1079 struct YuvConstants* yuvconstants,
1072 int width); 1080 int width);
1073 void NV12ToRGB565Row_C(const uint8* src_y, 1081 void NV12ToRGB565Row_C(const uint8* src_y,
1074 const uint8* src_uv, 1082 const uint8* src_uv,
1075 uint8* dst_argb, 1083 uint8* dst_argb,
1076 struct YuvConstants* yuvconstants, 1084 struct YuvConstants* yuvconstants,
1077 int width); 1085 int width);
1086 void NV21ToARGBRow_C(const uint8* src_y,
1087 const uint8* src_uv,
1088 uint8* dst_argb,
1089 struct YuvConstants* yuvconstants,
1090 int width);
1078 void YUY2ToARGBRow_C(const uint8* src_yuy2, 1091 void YUY2ToARGBRow_C(const uint8* src_yuy2,
1079 uint8* dst_argb, 1092 uint8* dst_argb,
1080 struct YuvConstants* yuvconstants, 1093 struct YuvConstants* yuvconstants,
1081 int width); 1094 int width);
1082 void UYVYToARGBRow_C(const uint8* src_uyvy, 1095 void UYVYToARGBRow_C(const uint8* src_uyvy,
1083 uint8* dst_argb, 1096 uint8* dst_argb,
1084 struct YuvConstants* yuvconstants, 1097 struct YuvConstants* yuvconstants,
1085 int width); 1098 int width);
1086 void I422ToBGRARow_C(const uint8* src_y, 1099 void I422ToBGRARow_C(const uint8* src_y,
1087 const uint8* src_u, 1100 const uint8* src_u,
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1286 void NV12ToRGB565Row_SSSE3(const uint8* src_y, 1299 void NV12ToRGB565Row_SSSE3(const uint8* src_y,
1287 const uint8* src_uv, 1300 const uint8* src_uv,
1288 uint8* dst_argb, 1301 uint8* dst_argb,
1289 struct YuvConstants* yuvconstants, 1302 struct YuvConstants* yuvconstants,
1290 int width); 1303 int width);
1291 void NV12ToRGB565Row_AVX2(const uint8* src_y, 1304 void NV12ToRGB565Row_AVX2(const uint8* src_y,
1292 const uint8* src_uv, 1305 const uint8* src_uv,
1293 uint8* dst_argb, 1306 uint8* dst_argb,
1294 struct YuvConstants* yuvconstants, 1307 struct YuvConstants* yuvconstants,
1295 int width); 1308 int width);
1309 void NV21ToARGBRow_SSSE3(const uint8* src_y,
1310 const uint8* src_uv,
1311 uint8* dst_argb,
1312 struct YuvConstants* yuvconstants,
1313 int width);
1314 void NV21ToARGBRow_AVX2(const uint8* src_y,
1315 const uint8* src_uv,
1316 uint8* dst_argb,
1317 struct YuvConstants* yuvconstants,
1318 int width);
1296 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, 1319 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2,
1297 uint8* dst_argb, 1320 uint8* dst_argb,
1298 struct YuvConstants* yuvconstants, 1321 struct YuvConstants* yuvconstants,
1299 int width); 1322 int width);
1300 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, 1323 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy,
1301 uint8* dst_argb, 1324 uint8* dst_argb,
1302 struct YuvConstants* yuvconstants, 1325 struct YuvConstants* yuvconstants,
1303 int width); 1326 int width);
1304 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2, 1327 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2,
1305 uint8* dst_argb, 1328 uint8* dst_argb,
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1484 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, 1507 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y,
1485 const uint8* src_uv, 1508 const uint8* src_uv,
1486 uint8* dst_argb, 1509 uint8* dst_argb,
1487 struct YuvConstants* yuvconstants, 1510 struct YuvConstants* yuvconstants,
1488 int width); 1511 int width);
1489 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, 1512 void NV12ToARGBRow_Any_AVX2(const uint8* src_y,
1490 const uint8* src_uv, 1513 const uint8* src_uv,
1491 uint8* dst_argb, 1514 uint8* dst_argb,
1492 struct YuvConstants* yuvconstants, 1515 struct YuvConstants* yuvconstants,
1493 int width); 1516 int width);
1517 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y,
1518 const uint8* src_vu,
1519 uint8* dst_argb,
1520 struct YuvConstants* yuvconstants,
1521 int width);
1522 void NV21ToARGBRow_Any_AVX2(const uint8* src_y,
1523 const uint8* src_vu,
1524 uint8* dst_argb,
1525 struct YuvConstants* yuvconstants,
1526 int width);
1494 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, 1527 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y,
1495 const uint8* src_uv, 1528 const uint8* src_uv,
1496 uint8* dst_argb, 1529 uint8* dst_argb,
1497 struct YuvConstants* yuvconstants, 1530 struct YuvConstants* yuvconstants,
1498 int width); 1531 int width);
1499 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y, 1532 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y,
1500 const uint8* src_uv, 1533 const uint8* src_uv,
1501 uint8* dst_argb, 1534 uint8* dst_argb,
1502 struct YuvConstants* yuvconstants, 1535 struct YuvConstants* yuvconstants,
1503 int width); 1536 int width);
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1749 const uint8* src_u, 1782 const uint8* src_u,
1750 const uint8* src_v, 1783 const uint8* src_v,
1751 uint8* dst_argb, 1784 uint8* dst_argb,
1752 struct YuvConstants* yuvconstants, 1785 struct YuvConstants* yuvconstants,
1753 int width); 1786 int width);
1754 void NV12ToARGBRow_Any_NEON(const uint8* src_y, 1787 void NV12ToARGBRow_Any_NEON(const uint8* src_y,
1755 const uint8* src_uv, 1788 const uint8* src_uv,
1756 uint8* dst_argb, 1789 uint8* dst_argb,
1757 struct YuvConstants* yuvconstants, 1790 struct YuvConstants* yuvconstants,
1758 int width); 1791 int width);
1792 void NV21ToARGBRow_Any_NEON(const uint8* src_y,
1793 const uint8* src_vu,
1794 uint8* dst_argb,
1795 struct YuvConstants* yuvconstants,
1796 int width);
1759 void NV12ToRGB565Row_Any_NEON(const uint8* src_y, 1797 void NV12ToRGB565Row_Any_NEON(const uint8* src_y,
1760 const uint8* src_uv, 1798 const uint8* src_uv,
1761 uint8* dst_argb, 1799 uint8* dst_argb,
1762 struct YuvConstants* yuvconstants, 1800 struct YuvConstants* yuvconstants,
1763 int width); 1801 int width);
1764 void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2, 1802 void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2,
1765 uint8* dst_argb, 1803 uint8* dst_argb,
1766 struct YuvConstants* yuvconstants, 1804 struct YuvConstants* yuvconstants,
1767 int width); 1805 int width);
1768 void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy, 1806 void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy,
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 2137 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
2100 int width, 2138 int width,
2101 const uint8* luma, uint32 lumacoeff); 2139 const uint8* luma, uint32 lumacoeff);
2102 2140
2103 #ifdef __cplusplus 2141 #ifdef __cplusplus
2104 } // extern "C" 2142 } // extern "C"
2105 } // namespace libyuv 2143 } // namespace libyuv
2106 #endif 2144 #endif
2107 2145
2108 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 2146 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW
« no previous file with comments | « include/libyuv/planar_functions.h ('k') | include/libyuv/scale_row.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698