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

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

Issue 2430313005: Add MSA optimized I422ToARGBRow_MSA and I422ToRGBARow_MSA functions (Closed)
Patch Set: Created 4 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
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 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 #define HAS_I422TOYUY2ROW_MSA 375 #define HAS_I422TOYUY2ROW_MSA
376 #define HAS_MIRRORROW_MSA 376 #define HAS_MIRRORROW_MSA
377 #define HAS_UYVYTOUVROW_MSA 377 #define HAS_UYVYTOUVROW_MSA
378 #define HAS_UYVYTOYROW_MSA 378 #define HAS_UYVYTOYROW_MSA
379 #define HAS_YUY2TOUV422ROW_MSA 379 #define HAS_YUY2TOUV422ROW_MSA
380 #define HAS_YUY2TOUVROW_MSA 380 #define HAS_YUY2TOUVROW_MSA
381 #define HAS_YUY2TOYROW_MSA 381 #define HAS_YUY2TOYROW_MSA
382 #define HAS_ARGB4444TOARGBROW_MSA 382 #define HAS_ARGB4444TOARGBROW_MSA
383 #define HAS_ARGBTOYROW_MSA 383 #define HAS_ARGBTOYROW_MSA
384 #define HAS_ARGBTOUVROW_MSA 384 #define HAS_ARGBTOUVROW_MSA
385 385 #define HAS_I422TOARGBROW_MSA
386 #define HAS_I422TORGBAROW_MSA
386 #endif 387 #endif
387 388
388 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) 389 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
389 #if defined(VISUALC_HAS_AVX2) 390 #if defined(VISUALC_HAS_AVX2)
390 #define SIMD_ALIGNED(var) __declspec(align(32)) var 391 #define SIMD_ALIGNED(var) __declspec(align(32)) var
391 #else 392 #else
392 #define SIMD_ALIGNED(var) __declspec(align(16)) var 393 #define SIMD_ALIGNED(var) __declspec(align(16)) var
393 #endif 394 #endif
394 typedef __declspec(align(16)) int16 vec16[8]; 395 typedef __declspec(align(16)) int16 vec16[8];
395 typedef __declspec(align(16)) int32 vec32[4]; 396 typedef __declspec(align(16)) int32 vec32[4];
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 const struct YuvConstants* yuvconstants, 645 const struct YuvConstants* yuvconstants,
645 int width); 646 int width);
646 void YUY2ToARGBRow_NEON(const uint8* src_yuy2, 647 void YUY2ToARGBRow_NEON(const uint8* src_yuy2,
647 uint8* dst_argb, 648 uint8* dst_argb,
648 const struct YuvConstants* yuvconstants, 649 const struct YuvConstants* yuvconstants,
649 int width); 650 int width);
650 void UYVYToARGBRow_NEON(const uint8* src_uyvy, 651 void UYVYToARGBRow_NEON(const uint8* src_uyvy,
651 uint8* dst_argb, 652 uint8* dst_argb,
652 const struct YuvConstants* yuvconstants, 653 const struct YuvConstants* yuvconstants,
653 int width); 654 int width);
655 void I422ToARGBRow_MSA(const uint8* src_y,
656 const uint8* src_u,
657 const uint8* src_v,
658 uint8* dst_argb,
659 const struct YuvConstants* yuvconstants,
660 int width);
661 void I422ToRGBARow_MSA(const uint8* src_y,
662 const uint8* src_u,
663 const uint8* src_v,
664 uint8* dst_rgba,
665 const struct YuvConstants* yuvconstants,
666 int width);
654 667
655 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); 668 void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
656 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); 669 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
657 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); 670 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
658 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width); 671 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
659 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width); 672 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
660 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width); 673 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
661 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width); 674 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width);
662 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width); 675 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width);
663 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width); 676 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width);
(...skipping 958 matching lines...) Expand 10 before | Expand all | Expand 10 after
1622 const uint8* src_v, 1635 const uint8* src_v,
1623 uint8* dst_argb, 1636 uint8* dst_argb,
1624 const struct YuvConstants* yuvconstants, 1637 const struct YuvConstants* yuvconstants,
1625 int width); 1638 int width);
1626 void I422ToARGBRow_DSPR2(const uint8* src_y, 1639 void I422ToARGBRow_DSPR2(const uint8* src_y,
1627 const uint8* src_u, 1640 const uint8* src_u,
1628 const uint8* src_v, 1641 const uint8* src_v,
1629 uint8* dst_argb, 1642 uint8* dst_argb,
1630 const struct YuvConstants* yuvconstants, 1643 const struct YuvConstants* yuvconstants,
1631 int width); 1644 int width);
1645 void I422ToARGBRow_Any_MSA(const uint8* src_y,
1646 const uint8* src_u,
1647 const uint8* src_v,
1648 uint8* dst_argb,
1649 const struct YuvConstants* yuvconstants,
1650 int width);
1651 void I422ToRGBARow_Any_MSA(const uint8* src_y,
1652 const uint8* src_u,
1653 const uint8* src_v,
1654 uint8* dst_argb,
1655 const struct YuvConstants* yuvconstants,
1656 int width);
1632 1657
1633 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); 1658 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width);
1634 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, 1659 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2,
1635 uint8* dst_u, uint8* dst_v, int width); 1660 uint8* dst_u, uint8* dst_v, int width);
1636 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, 1661 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2,
1637 uint8* dst_u, uint8* dst_v, int width); 1662 uint8* dst_u, uint8* dst_v, int width);
1638 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); 1663 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width);
1639 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, 1664 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2,
1640 uint8* dst_u, uint8* dst_v, int width); 1665 uint8* dst_u, uint8* dst_v, int width);
1641 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, 1666 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2,
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
1968 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 1993 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
1969 int width, 1994 int width,
1970 const uint8* luma, uint32 lumacoeff); 1995 const uint8* luma, uint32 lumacoeff);
1971 1996
1972 #ifdef __cplusplus 1997 #ifdef __cplusplus
1973 } // extern "C" 1998 } // extern "C"
1974 } // namespace libyuv 1999 } // namespace libyuv
1975 #endif 2000 #endif
1976 2001
1977 #endif // INCLUDE_LIBYUV_ROW_H_ 2002 #endif // INCLUDE_LIBYUV_ROW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698