diff options
author | Frank Barchard <fbarchard@google.com> | 2016-10-26 11:12:17 -0700 |
---|---|---|
committer | Frank Barchard <fbarchard@google.com> | 2016-10-26 11:12:17 -0700 |
commit | 532f5708a95b02185db463a481c0315524742dd8 (patch) | |
tree | abec3366300f458be77f6df7a5010f0716158dc2 /source/convert_from.cc | |
parent | 02ae8b60c54171bbd171d2518d12cd0e1f9be191 (diff) | |
download | libyuv-532f5708a95b02185db463a481c0315524742dd8.tar.gz |
Add MSA optimized I422AlphaToARGBRow_MSA and I422ToRGB24Row_MSA functions
R=fbarchard@google.com
BUG=libyuv:634
Performance Gain (vs C vectorized)
I422AlphaToARGBRow_MSA : ~1.4x
I422AlphaToARGBRow_Any_MSA : ~1.4x
I422ToRGB24Row_MSA : ~4.8x
I422ToRGB24Row_Any_MSA : ~4.8x
Performance Gain (vs C non-vectorized)
I422AlphaToARGBRow_MSA : ~7.0x
I422AlphaToARGBRow_Any_MSA : ~7.0x
I422ToRGB24Row_MSA : ~7.9x
I422ToRGB24Row_Any_MSA : ~7.7x
Review URL: https://codereview.chromium.org/2454433003 .
Diffstat (limited to 'source/convert_from.cc')
-rw-r--r-- | source/convert_from.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/convert_from.cc b/source/convert_from.cc index 7847622c..9859f5f3 100644 --- a/source/convert_from.cc +++ b/source/convert_from.cc @@ -558,6 +558,14 @@ static int I420ToRGB24Matrix(const uint8* src_y, int src_stride_y, } } #endif +#if defined(HAS_I422TORGB24ROW_MSA) + if (TestCpuFlag(kCpuHasMSA)) { + I422ToRGB24Row = I422ToRGB24Row_Any_MSA; + if (IS_ALIGNED(width, 16)) { + I422ToRGB24Row = I422ToRGB24Row_MSA; + } + } +#endif for (y = 0; y < height; ++y) { I422ToRGB24Row(src_y, src_u, src_v, dst_rgb24, yuvconstants, width); |