diff options
author | Darren Hsieh <darren.hsieh@sifive.com> | 2023-07-13 00:23:11 -0700 |
---|---|---|
committer | libyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-07-24 17:07:01 +0000 |
commit | aed6dbef176815fb4186dddb73f6d753ef19073a (patch) | |
tree | 6e53841695923e1801b175d204fa239723dcbbfc /source/convert_argb.cc | |
parent | 9b6895ccd9eb065f30f3f23383a9b182a5f71e27 (diff) | |
download | libyuv-aed6dbef176815fb4186dddb73f6d753ef19073a.tar.gz |
[RVV] Enable NV{12,21}To{ARGB,RGB24}Row_RVV
* Run on SiFive internal FPGA(w/ -march=rv64gcv):
Test Case Speedup
NV12ToARGB_Opt 12.0
NV21ToARGB_Opt 12.1
NV12ToABGR_Opt 12.6
NV21ToABGR_Opt 12.0
NV12ToRGB24_Opt 12.5
NV21ToRGB24_Opt 11.7
NV12ToRAW_Opt 12.1
NV21ToRAW_Opt 11.4
Change-Id: Icae2bac2b4ebbd4c5a89e847fde9a74fe6481878
Signed-off-by: Darren Hsieh <darren.hsieh@sifive.com>
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4707804
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Diffstat (limited to 'source/convert_argb.cc')
-rw-r--r-- | source/convert_argb.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/convert_argb.cc b/source/convert_argb.cc index cc6560de..f3a1f913 100644 --- a/source/convert_argb.cc +++ b/source/convert_argb.cc @@ -3853,6 +3853,11 @@ int NV12ToARGBMatrix(const uint8_t* src_y, } } #endif +#if defined(HAS_NV12TOARGBROW_RVV) + if (TestCpuFlag(kCpuHasRVV)) { + NV12ToARGBRow = NV12ToARGBRow_RVV; + } +#endif for (y = 0; y < height; ++y) { NV12ToARGBRow(src_y, src_uv, dst_argb, yuvconstants, width); @@ -3938,6 +3943,11 @@ int NV21ToARGBMatrix(const uint8_t* src_y, } } #endif +#if defined(HAS_NV21TOARGBROW_RVV) + if (TestCpuFlag(kCpuHasRVV)) { + NV21ToARGBRow = NV21ToARGBRow_RVV; + } +#endif for (y = 0; y < height; ++y) { NV21ToARGBRow(src_y, src_vu, dst_argb, yuvconstants, width); @@ -4058,6 +4068,11 @@ int NV12ToRGB24Matrix(const uint8_t* src_y, } } #endif +#if defined(HAS_NV12TORGB24ROW_RVV) + if (TestCpuFlag(kCpuHasRVV)) { + NV12ToRGB24Row = NV12ToRGB24Row_RVV; + } +#endif for (y = 0; y < height; ++y) { NV12ToRGB24Row(src_y, src_uv, dst_rgb24, yuvconstants, width); @@ -4119,6 +4134,11 @@ int NV21ToRGB24Matrix(const uint8_t* src_y, } } #endif +#if defined(HAS_NV21TORGB24ROW_RVV) + if (TestCpuFlag(kCpuHasRVV)) { + NV21ToRGB24Row = NV21ToRGB24Row_RVV; + } +#endif for (y = 0; y < height; ++y) { NV21ToRGB24Row(src_y, src_vu, dst_rgb24, yuvconstants, width); |