diff options
author | Frank Barchard <fbarchard@chromium.org> | 2018-03-07 16:06:27 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2018-03-08 02:38:21 +0000 |
commit | 1d509f2178748b22b7eed0b8b76377991646b20a (patch) | |
tree | b1d985213af564f27937c3be62f7833bad5c0fcb /source/row_common.cc | |
parent | 3009890c11340af704e6367af0ce6e1d2b65864c (diff) | |
download | libyuv-1d509f2178748b22b7eed0b8b76377991646b20a.tar.gz |
ARGBToRGB24_AVX2 version
AVX2 port of SSSE3 conversion to output 24 bit RGB
Bug: libyuv:778
Test: LibYUVConvertTest.NV21ToRGB24_Opt
Change-Id: I14f7815522d1b790ecd2bb39d9a3441e803b694a
Reviewed-on: https://chromium-review.googlesource.com/953303
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'source/row_common.cc')
-rw-r--r-- | source/row_common.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/row_common.cc b/source/row_common.cc index 7a3ca272..6ffaab72 100644 --- a/source/row_common.cc +++ b/source/row_common.cc @@ -3004,8 +3004,11 @@ void NV12ToRGB24Row_AVX2(const uint8_t* src_y, while (width > 0) { int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; NV12ToARGBRow_AVX2(src_y, src_uv, row, yuvconstants, twidth); - // TODO(fbarchard): ARGBToRGB24Row_AVX2 +#if defined(HAS_ARGBTORGB24ROW_AVX2) + ARGBToRGB24Row_AVX2(row, dst_rgb24, twidth); +#else ARGBToRGB24Row_SSSE3(row, dst_rgb24, twidth); +#endif src_y += twidth; src_uv += twidth; dst_rgb24 += twidth * 3; @@ -3025,8 +3028,11 @@ void NV21ToRGB24Row_AVX2(const uint8_t* src_y, while (width > 0) { int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; NV21ToARGBRow_AVX2(src_y, src_vu, row, yuvconstants, twidth); - // TODO(fbarchard): ARGBToRGB24Row_AVX2 +#if defined(HAS_ARGBTORGB24ROW_AVX2) + ARGBToRGB24Row_AVX2(row, dst_rgb24, twidth); +#else ARGBToRGB24Row_SSSE3(row, dst_rgb24, twidth); +#endif src_y += twidth; src_vu += twidth; dst_rgb24 += twidth * 3; @@ -3124,8 +3130,11 @@ void I422ToRGB24Row_AVX2(const uint8_t* src_y, while (width > 0) { int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth); - // TODO(fbarchard): ARGBToRGB24Row_AVX2 +#if defined(HAS_ARGBTORGB24ROW_AVX2) + ARGBToRGB24Row_AVX2(row, dst_rgb24, twidth); +#else ARGBToRGB24Row_SSSE3(row, dst_rgb24, twidth); +#endif src_y += twidth; src_u += twidth / 2; src_v += twidth / 2; |