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

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

Issue 2454433003: Add MSA optimized I422AlphaToARGBRow_MSA and I422ToRGB24Row_MSA functions (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | source/convert_argb.cc » ('j') | source/convert_from.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 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 #define HAS_UYVYTOUVROW_MSA 376 #define HAS_UYVYTOUVROW_MSA
377 #define HAS_UYVYTOYROW_MSA 377 #define HAS_UYVYTOYROW_MSA
378 #define HAS_YUY2TOUV422ROW_MSA 378 #define HAS_YUY2TOUV422ROW_MSA
379 #define HAS_YUY2TOUVROW_MSA 379 #define HAS_YUY2TOUVROW_MSA
380 #define HAS_YUY2TOYROW_MSA 380 #define HAS_YUY2TOYROW_MSA
381 #define HAS_ARGB4444TOARGBROW_MSA 381 #define HAS_ARGB4444TOARGBROW_MSA
382 #define HAS_ARGBTOYROW_MSA 382 #define HAS_ARGBTOYROW_MSA
383 #define HAS_ARGBTOUVROW_MSA 383 #define HAS_ARGBTOUVROW_MSA
384 #define HAS_I422TOARGBROW_MSA 384 #define HAS_I422TOARGBROW_MSA
385 #define HAS_I422TORGBAROW_MSA 385 #define HAS_I422TORGBAROW_MSA
386 #define HAS_I422ALPHATOARGBROW_MSA
387 #define HAS_I422TORGB24ROW_MSA
386 #endif 388 #endif
387 389
388 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) 390 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
389 #if defined(VISUALC_HAS_AVX2) 391 #if defined(VISUALC_HAS_AVX2)
390 #define SIMD_ALIGNED(var) __declspec(align(32)) var 392 #define SIMD_ALIGNED(var) __declspec(align(32)) var
391 #else 393 #else
392 #define SIMD_ALIGNED(var) __declspec(align(16)) var 394 #define SIMD_ALIGNED(var) __declspec(align(16)) var
393 #endif 395 #endif
394 typedef __declspec(align(16)) int16 vec16[8]; 396 typedef __declspec(align(16)) int16 vec16[8];
395 typedef __declspec(align(16)) int32 vec32[4]; 397 typedef __declspec(align(16)) int32 vec32[4];
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 const uint8* src_v, 658 const uint8* src_v,
657 uint8* dst_argb, 659 uint8* dst_argb,
658 const struct YuvConstants* yuvconstants, 660 const struct YuvConstants* yuvconstants,
659 int width); 661 int width);
660 void I422ToRGBARow_MSA(const uint8* src_y, 662 void I422ToRGBARow_MSA(const uint8* src_y,
661 const uint8* src_u, 663 const uint8* src_u,
662 const uint8* src_v, 664 const uint8* src_v,
663 uint8* dst_rgba, 665 uint8* dst_rgba,
664 const struct YuvConstants* yuvconstants, 666 const struct YuvConstants* yuvconstants,
665 int width); 667 int width);
668 void I422AlphaToARGBRow_MSA(const uint8* y_buf,
669 const uint8* u_buf,
670 const uint8* v_buf,
671 const uint8* a_buf,
672 uint8* dst_argb,
673 const struct YuvConstants* yuvconstants,
674 int width);
675 void I422ToRGB24Row_MSA(const uint8* src_y,
676 const uint8* src_u,
677 const uint8* src_v,
678 uint8* dst_rgb24,
679 const struct YuvConstants* yuvconstants,
680 int width);
666 681
667 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); 682 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
668 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); 683 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
669 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); 684 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
670 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); 685 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
671 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); 686 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
672 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); 687 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
673 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); 688 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width);
674 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); 689 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width);
675 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); 690 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width);
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 const uint8* src_v, 1661 const uint8* src_v,
1647 uint8* dst_argb, 1662 uint8* dst_argb,
1648 const struct YuvConstants* yuvconstants, 1663 const struct YuvConstants* yuvconstants,
1649 int width); 1664 int width);
1650 void I422ToRGBARow_Any_MSA(const uint8* src_y, 1665 void I422ToRGBARow_Any_MSA(const uint8* src_y,
1651 const uint8* src_u, 1666 const uint8* src_u,
1652 const uint8* src_v, 1667 const uint8* src_v,
1653 uint8* dst_argb, 1668 uint8* dst_argb,
1654 const struct YuvConstants* yuvconstants, 1669 const struct YuvConstants* yuvconstants,
1655 int width); 1670 int width);
1671 void I422AlphaToARGBRow_Any_MSA(const uint8* src_y,
1672 const uint8* src_u,
1673 const uint8* src_v,
1674 const uint8* src_a,
1675 uint8* dst_argb,
1676 const struct YuvConstants* yuvconstants,
1677 int width);
1678 void I422ToRGB24Row_Any_MSA(const uint8* src_y,
1679 const uint8* src_u,
1680 const uint8* src_v,
1681 uint8* dst_rgb24,
1682 const struct YuvConstants* yuvconstants,
1683 int width);
1656 1684
1657 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); 1685 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width);
1658 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, 1686 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2,
1659 uint8* dst_u, uint8* dst_v, int width); 1687 uint8* dst_u, uint8* dst_v, int width);
1660 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, 1688 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2,
1661 uint8* dst_u, uint8* dst_v, int width); 1689 uint8* dst_u, uint8* dst_v, int width);
1662 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); 1690 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width);
1663 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, 1691 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2,
1664 uint8* dst_u, uint8* dst_v, int width); 1692 uint8* dst_u, uint8* dst_v, int width);
1665 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, 1693 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2,
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
1998 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 2026 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
1999 int width, 2027 int width,
2000 const uint8* luma, uint32 lumacoeff); 2028 const uint8* luma, uint32 lumacoeff);
2001 2029
2002 #ifdef __cplusplus 2030 #ifdef __cplusplus
2003 } // extern "C" 2031 } // extern "C"
2004 } // namespace libyuv 2032 } // namespace libyuv
2005 #endif 2033 #endif
2006 2034
2007 #endif // INCLUDE_LIBYUV_ROW_H_ 2035 #endif // INCLUDE_LIBYUV_ROW_H_
OLDNEW
« no previous file with comments | « no previous file | source/convert_argb.cc » ('j') | source/convert_from.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698