OLD | NEW |
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 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 #define HAS_MIRRORUVROW_DSPR2 | 365 #define HAS_MIRRORUVROW_DSPR2 |
366 #define HAS_SPLITUVROW_DSPR2 | 366 #define HAS_SPLITUVROW_DSPR2 |
367 #endif | 367 #endif |
368 #endif | 368 #endif |
369 | 369 |
370 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) | 370 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) |
371 #define HAS_MIRRORROW_MSA | 371 #define HAS_MIRRORROW_MSA |
372 #define HAS_ARGBMIRRORROW_MSA | 372 #define HAS_ARGBMIRRORROW_MSA |
373 #define HAS_I422TOYUY2ROW_MSA | 373 #define HAS_I422TOYUY2ROW_MSA |
374 #define HAS_I422TOUYVYROW_MSA | 374 #define HAS_I422TOUYVYROW_MSA |
| 375 #define HAS_YUY2TOYROW_MSA |
| 376 #define HAS_YUY2TOUVROW_MSA |
| 377 #define HAS_YUY2TOUV422ROW_MSA |
| 378 #define HAS_UYVYTOYROW_MSA |
| 379 #define HAS_UYVYTOUVROW_MSA |
| 380 |
375 #endif | 381 #endif |
376 | 382 |
377 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) | 383 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) |
378 #if defined(VISUALC_HAS_AVX2) | 384 #if defined(VISUALC_HAS_AVX2) |
379 #define SIMD_ALIGNED(var) __declspec(align(32)) var | 385 #define SIMD_ALIGNED(var) __declspec(align(32)) var |
380 #else | 386 #else |
381 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 387 #define SIMD_ALIGNED(var) __declspec(align(16)) var |
382 #endif | 388 #endif |
383 typedef __declspec(align(16)) int16 vec16[8]; | 389 typedef __declspec(align(16)) int16 vec16[8]; |
384 typedef __declspec(align(16)) int32 vec32[4]; | 390 typedef __declspec(align(16)) int32 vec32[4]; |
(...skipping 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); | 1668 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); |
1663 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, | 1669 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, |
1664 uint8* dst_u, uint8* dst_v, int width); | 1670 uint8* dst_u, uint8* dst_v, int width); |
1665 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, | 1671 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, |
1666 uint8* dst_u, uint8* dst_v, int width); | 1672 uint8* dst_u, uint8* dst_v, int width); |
1667 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int width); | 1673 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int width); |
1668 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, | 1674 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, |
1669 uint8* dst_u, uint8* dst_v, int width); | 1675 uint8* dst_u, uint8* dst_v, int width); |
1670 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, | 1676 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, |
1671 uint8* dst_u, uint8* dst_v, int width); | 1677 uint8* dst_u, uint8* dst_v, int width); |
| 1678 void YUY2ToYRow_MSA(const uint8* src_yuy2, uint8* dst_y, int width); |
| 1679 void YUY2ToUVRow_MSA(const uint8* src_yuy2, int stride_yuy2, |
| 1680 uint8* dst_u, uint8* dst_v, int width); |
| 1681 void YUY2ToUV422Row_MSA(const uint8* src_yuy2, |
| 1682 uint8* dst_u, uint8* dst_v, int width); |
1672 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int width); | 1683 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int width); |
1673 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, | 1684 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, |
1674 uint8* dst_u, uint8* dst_v, int width); | 1685 uint8* dst_u, uint8* dst_v, int width); |
1675 void YUY2ToUV422Row_C(const uint8* src_yuy2, | 1686 void YUY2ToUV422Row_C(const uint8* src_yuy2, |
1676 uint8* dst_u, uint8* dst_v, int width); | 1687 uint8* dst_u, uint8* dst_v, int width); |
1677 void YUY2ToYRow_Any_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); | 1688 void YUY2ToYRow_Any_AVX2(const uint8* src_yuy2, uint8* dst_y, int width); |
1678 void YUY2ToUVRow_Any_AVX2(const uint8* src_yuy2, int stride_yuy2, | 1689 void YUY2ToUVRow_Any_AVX2(const uint8* src_yuy2, int stride_yuy2, |
1679 uint8* dst_u, uint8* dst_v, int width); | 1690 uint8* dst_u, uint8* dst_v, int width); |
1680 void YUY2ToUV422Row_Any_AVX2(const uint8* src_yuy2, | 1691 void YUY2ToUV422Row_Any_AVX2(const uint8* src_yuy2, |
1681 uint8* dst_u, uint8* dst_v, int width); | 1692 uint8* dst_u, uint8* dst_v, int width); |
1682 void YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); | 1693 void YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int width); |
1683 void YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2, int stride_yuy2, | 1694 void YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2, int stride_yuy2, |
1684 uint8* dst_u, uint8* dst_v, int width); | 1695 uint8* dst_u, uint8* dst_v, int width); |
1685 void YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2, | 1696 void YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2, |
1686 uint8* dst_u, uint8* dst_v, int width); | 1697 uint8* dst_u, uint8* dst_v, int width); |
1687 void YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int width); | 1698 void YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int width); |
1688 void YUY2ToUVRow_Any_NEON(const uint8* src_yuy2, int stride_yuy2, | 1699 void YUY2ToUVRow_Any_NEON(const uint8* src_yuy2, int stride_yuy2, |
1689 uint8* dst_u, uint8* dst_v, int width); | 1700 uint8* dst_u, uint8* dst_v, int width); |
1690 void YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2, | 1701 void YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2, |
1691 uint8* dst_u, uint8* dst_v, int width); | 1702 uint8* dst_u, uint8* dst_v, int width); |
| 1703 void YUY2ToYRow_Any_MSA(const uint8* src_yuy2, uint8* dst_y, int width); |
| 1704 void YUY2ToUVRow_Any_MSA(const uint8* src_yuy2, int stride_yuy2, |
| 1705 uint8* dst_u, uint8* dst_v, int width); |
| 1706 void YUY2ToUV422Row_Any_MSA(const uint8* src_yuy2, |
| 1707 uint8* dst_u, uint8* dst_v, int width); |
1692 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); | 1708 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); |
1693 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 1709 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |
1694 uint8* dst_u, uint8* dst_v, int width); | 1710 uint8* dst_u, uint8* dst_v, int width); |
1695 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 1711 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |
1696 uint8* dst_u, uint8* dst_v, int width); | 1712 uint8* dst_u, uint8* dst_v, int width); |
1697 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int width); | 1713 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int width); |
1698 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, | 1714 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, |
1699 uint8* dst_u, uint8* dst_v, int width); | 1715 uint8* dst_u, uint8* dst_v, int width); |
1700 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, | 1716 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, |
1701 uint8* dst_u, uint8* dst_v, int width); | 1717 uint8* dst_u, uint8* dst_v, int width); |
1702 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); | 1718 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); |
1703 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 1719 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |
1704 uint8* dst_u, uint8* dst_v, int width); | 1720 uint8* dst_u, uint8* dst_v, int width); |
1705 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 1721 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |
1706 uint8* dst_u, uint8* dst_v, int width); | 1722 uint8* dst_u, uint8* dst_v, int width); |
1707 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int width); | 1723 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int width); |
1708 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, | 1724 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, |
1709 uint8* dst_u, uint8* dst_v, int width); | 1725 uint8* dst_u, uint8* dst_v, int width); |
1710 void UYVYToUV422Row_NEON(const uint8* src_uyvy, | 1726 void UYVYToUV422Row_NEON(const uint8* src_uyvy, |
1711 uint8* dst_u, uint8* dst_v, int width); | 1727 uint8* dst_u, uint8* dst_v, int width); |
| 1728 void UYVYToYRow_MSA(const uint8* src_uyvy, uint8* dst_y, int width); |
| 1729 void UYVYToUVRow_MSA(const uint8* src_uyvy, int stride_uyvy, |
| 1730 uint8* dst_u, uint8* dst_v, int width); |
| 1731 void UYVYToUV422Row_MSA(const uint8* src_uyvy, |
| 1732 uint8* dst_u, uint8* dst_v, int width); |
1712 | 1733 |
1713 void UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int width); | 1734 void UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int width); |
1714 void UYVYToUVRow_C(const uint8* src_uyvy, int stride_uyvy, | 1735 void UYVYToUVRow_C(const uint8* src_uyvy, int stride_uyvy, |
1715 uint8* dst_u, uint8* dst_v, int width); | 1736 uint8* dst_u, uint8* dst_v, int width); |
1716 void UYVYToUV422Row_C(const uint8* src_uyvy, | 1737 void UYVYToUV422Row_C(const uint8* src_uyvy, |
1717 uint8* dst_u, uint8* dst_v, int width); | 1738 uint8* dst_u, uint8* dst_v, int width); |
1718 void UYVYToYRow_Any_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); | 1739 void UYVYToYRow_Any_AVX2(const uint8* src_uyvy, uint8* dst_y, int width); |
1719 void UYVYToUVRow_Any_AVX2(const uint8* src_uyvy, int stride_uyvy, | 1740 void UYVYToUVRow_Any_AVX2(const uint8* src_uyvy, int stride_uyvy, |
1720 uint8* dst_u, uint8* dst_v, int width); | 1741 uint8* dst_u, uint8* dst_v, int width); |
1721 void UYVYToUV422Row_Any_AVX2(const uint8* src_uyvy, | 1742 void UYVYToUV422Row_Any_AVX2(const uint8* src_uyvy, |
1722 uint8* dst_u, uint8* dst_v, int width); | 1743 uint8* dst_u, uint8* dst_v, int width); |
1723 void UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int width); | 1744 void UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int width); |
1724 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, | 1745 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, |
1725 uint8* dst_u, uint8* dst_v, int width); | 1746 uint8* dst_u, uint8* dst_v, int width); |
1726 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, | 1747 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, |
1727 uint8* dst_u, uint8* dst_v, int width); | 1748 uint8* dst_u, uint8* dst_v, int width); |
1728 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int width); | 1749 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int width); |
1729 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, | 1750 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, |
1730 uint8* dst_u, uint8* dst_v, int width); | 1751 uint8* dst_u, uint8* dst_v, int width); |
1731 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, | 1752 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, |
1732 uint8* dst_u, uint8* dst_v, int width); | 1753 uint8* dst_u, uint8* dst_v, int width); |
| 1754 void UYVYToYRow_Any_MSA(const uint8* src_uyvy, uint8* dst_y, int width); |
| 1755 void UYVYToUVRow_Any_MSA(const uint8* src_uyvy, int stride_uyvy, |
| 1756 uint8* dst_u, uint8* dst_v, int width); |
| 1757 void UYVYToUV422Row_Any_MSA(const uint8* src_uyvy, |
| 1758 uint8* dst_u, uint8* dst_v, int width); |
1733 | 1759 |
1734 void I422ToYUY2Row_C(const uint8* src_y, | 1760 void I422ToYUY2Row_C(const uint8* src_y, |
1735 const uint8* src_u, | 1761 const uint8* src_u, |
1736 const uint8* src_v, | 1762 const uint8* src_v, |
1737 uint8* dst_yuy2, int width); | 1763 uint8* dst_yuy2, int width); |
1738 void I422ToUYVYRow_C(const uint8* src_y, | 1764 void I422ToUYVYRow_C(const uint8* src_y, |
1739 const uint8* src_u, | 1765 const uint8* src_u, |
1740 const uint8* src_v, | 1766 const uint8* src_v, |
1741 uint8* dst_uyvy, int width); | 1767 uint8* dst_uyvy, int width); |
1742 void I422ToYUY2Row_SSE2(const uint8* src_y, | 1768 void I422ToYUY2Row_SSE2(const uint8* src_y, |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1966 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 1992 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
1967 int width, | 1993 int width, |
1968 const uint8* luma, uint32 lumacoeff); | 1994 const uint8* luma, uint32 lumacoeff); |
1969 | 1995 |
1970 #ifdef __cplusplus | 1996 #ifdef __cplusplus |
1971 } // extern "C" | 1997 } // extern "C" |
1972 } // namespace libyuv | 1998 } // namespace libyuv |
1973 #endif | 1999 #endif |
1974 | 2000 |
1975 #endif // INCLUDE_LIBYUV_ROW_H_ | 2001 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |