mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-06 16:56:55 +08:00
BGRAToI420 use SSSE3 for Y but C for UV when LIBYUV_BIT_EXACT enabled
- Previously was C for both Y and UV. Was BGRAToI420_Opt (17780 ms) Now BGRAToI420_Opt (9546 ms) Bug: b/253491233 Change-Id: Id103d8d5ba0fed0f7a427dd5955e1830275eff6b Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3953131 Reviewed-by: Wan-Teh Chang <wtc@google.com>
This commit is contained in:
parent
01925b40bc
commit
cb35d5f90e
@ -1,6 +1,6 @@
|
|||||||
Name: libyuv
|
Name: libyuv
|
||||||
URL: http://code.google.com/p/libyuv/
|
URL: http://code.google.com/p/libyuv/
|
||||||
Version: 1845
|
Version: 1846
|
||||||
License: BSD
|
License: BSD
|
||||||
License File: LICENSE
|
License File: LICENSE
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,6 @@
|
|||||||
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
||||||
#define INCLUDE_LIBYUV_VERSION_H_
|
#define INCLUDE_LIBYUV_VERSION_H_
|
||||||
|
|
||||||
#define LIBYUV_VERSION 1845
|
#define LIBYUV_VERSION 1846
|
||||||
|
|
||||||
#endif // INCLUDE_LIBYUV_VERSION_H_
|
#endif // INCLUDE_LIBYUV_VERSION_H_
|
||||||
|
|||||||
@ -1647,16 +1647,6 @@ int BGRAToI420(const uint8_t* src_bgra,
|
|||||||
src_bgra = src_bgra + (height - 1) * src_stride_bgra;
|
src_bgra = src_bgra + (height - 1) * src_stride_bgra;
|
||||||
src_stride_bgra = -src_stride_bgra;
|
src_stride_bgra = -src_stride_bgra;
|
||||||
}
|
}
|
||||||
#if defined(HAS_BGRATOYROW_SSSE3) && defined(HAS_BGRATOUVROW_SSSE3)
|
|
||||||
if (TestCpuFlag(kCpuHasSSSE3)) {
|
|
||||||
BGRAToUVRow = BGRAToUVRow_Any_SSSE3;
|
|
||||||
BGRAToYRow = BGRAToYRow_Any_SSSE3;
|
|
||||||
if (IS_ALIGNED(width, 16)) {
|
|
||||||
BGRAToUVRow = BGRAToUVRow_SSSE3;
|
|
||||||
BGRAToYRow = BGRAToYRow_SSSE3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if defined(HAS_BGRATOYROW_NEON)
|
#if defined(HAS_BGRATOYROW_NEON)
|
||||||
if (TestCpuFlag(kCpuHasNEON)) {
|
if (TestCpuFlag(kCpuHasNEON)) {
|
||||||
BGRAToYRow = BGRAToYRow_Any_NEON;
|
BGRAToYRow = BGRAToYRow_Any_NEON;
|
||||||
@ -1673,23 +1663,57 @@ int BGRAToI420(const uint8_t* src_bgra,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(HAS_BGRATOYROW_SSSE3)
|
||||||
|
if (TestCpuFlag(kCpuHasSSSE3)) {
|
||||||
|
BGRAToYRow = BGRAToYRow_Any_SSSE3;
|
||||||
|
if (IS_ALIGNED(width, 16)) {
|
||||||
|
BGRAToYRow = BGRAToYRow_SSSE3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(HAS_BGRATOUVROW_SSSE3)
|
||||||
|
if (TestCpuFlag(kCpuHasSSSE3)) {
|
||||||
|
BGRAToUVRow = BGRAToUVRow_Any_SSSE3;
|
||||||
|
if (IS_ALIGNED(width, 16)) {
|
||||||
|
BGRAToUVRow = BGRAToUVRow_SSSE3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(HAS_BGRATOYROW_AVX2)
|
||||||
|
if (TestCpuFlag(kCpuHasAVX2)) {
|
||||||
|
BGRAToYRow = BGRAToYRow_Any_AVX2;
|
||||||
|
if (IS_ALIGNED(width, 32)) {
|
||||||
|
BGRAToYRow = BGRAToYRow_AVX2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(HAS_BGRATOUVROW_AVX2)
|
||||||
|
if (TestCpuFlag(kCpuHasAVX2)) {
|
||||||
|
BGRAToUVRow = BGRAToUVRow_Any_AVX2;
|
||||||
|
if (IS_ALIGNED(width, 32)) {
|
||||||
|
BGRAToUVRow = BGRAToUVRow_AVX2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#if defined(HAS_BGRATOYROW_MSA) && defined(HAS_BGRATOUVROW_MSA)
|
#if defined(HAS_BGRATOYROW_MSA) && defined(HAS_BGRATOUVROW_MSA)
|
||||||
if (TestCpuFlag(kCpuHasMSA)) {
|
if (TestCpuFlag(kCpuHasMSA)) {
|
||||||
BGRAToYRow = BGRAToYRow_Any_MSA;
|
BGRAToYRow = BGRAToYRow_Any_MSA;
|
||||||
BGRAToUVRow = BGRAToUVRow_Any_MSA;
|
BGRAToUVRow = BGRAToUVRow_Any_MSA;
|
||||||
if (IS_ALIGNED(width, 16)) {
|
if (IS_ALIGNED(width, 16)) {
|
||||||
BGRAToYRow = BGRAToYRow_MSA;
|
BGRAToYRow = BGRAToYRow_MSA;
|
||||||
|
}
|
||||||
|
if (IS_ALIGNED(width, 32)) {
|
||||||
BGRAToUVRow = BGRAToUVRow_MSA;
|
BGRAToUVRow = BGRAToUVRow_MSA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAS_BGRATOYROW_LSX) && defined(HAS_BGRATOUVROW_LSX)
|
#if defined(HAS_BGRATOYROW_LASX) && defined(HAS_BGRATOUVROW_LASX)
|
||||||
if (TestCpuFlag(kCpuHasLSX)) {
|
if (TestCpuFlag(kCpuHasLASX)) {
|
||||||
BGRAToYRow = BGRAToYRow_Any_LSX;
|
BGRAToYRow = BGRAToYRow_Any_LASX;
|
||||||
BGRAToUVRow = BGRAToUVRow_Any_LSX;
|
BGRAToUVRow = BGRAToUVRow_Any_LASX;
|
||||||
if (IS_ALIGNED(width, 16)) {
|
if (IS_ALIGNED(width, 32)) {
|
||||||
BGRAToYRow = BGRAToYRow_LSX;
|
BGRAToYRow = BGRAToYRow_LASX;
|
||||||
BGRAToUVRow = BGRAToUVRow_LSX;
|
BGRAToUVRow = BGRAToUVRow_LASX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user