aboutsummaryrefslogtreecommitdiff
path: root/source/convert_from.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2016-10-26 11:12:17 -0700
committerFrank Barchard <fbarchard@google.com>2016-10-26 11:12:17 -0700
commit532f5708a95b02185db463a481c0315524742dd8 (patch)
treeabec3366300f458be77f6df7a5010f0716158dc2 /source/convert_from.cc
parent02ae8b60c54171bbd171d2518d12cd0e1f9be191 (diff)
downloadlibyuv-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.cc8
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);