| commit | 61354d2671d9b5c73cc964415fe25bc76cea051a | [log] [tgz] |
|---|---|---|
| author | Frank Barchard <fbarchard@google.com> | Mon Feb 10 18:19:58 2025 -0800 |
| committer | libyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Feb 10 18:36:18 2025 -0800 |
| tree | c18dc0c674efd4f85cffa9dce3f7bfc19d593a3a | |
| parent | d32d19ccf2711d8bdf43a68dc5f8daedb7965c62 [diff] |
ARGBToUV Matrix for AVX2 and SSSE3
- Round before shifting to 8 bit to match NEON
- RAWToARGB use unaligned loads and port to AVX2
Was C/SSSE/AVX2
ARGBToI444_Opt (343 ms)
ARGBToJ444_Opt (677 ms)
RAWToI444_Opt (405 ms)
RAWToJ444_Opt (803 ms)
Now AVX2
ARGBToI444_Opt (283 ms)
ARGBToJ444_Opt (284 ms)
RAWToI444_Opt (316 ms)
RAWToJ444_Opt (339 ms)
Profile Now AVX2
38.31% ARGBToUVJ444Row_AVX2
32.31% RAWToARGBRow_AVX2
23.99% ARGBToYJRow_AVX2
Profile Was C/SSSE/AVX2
73.15% ARGBToUVJ444Row_C
15.74% RAWToARGBRow_SSSE3
8.87% ARGBToYJRow_AVX2
Bug: 381138208
Change-Id: I696b2d83435bc985aa38df831e01ff1a658da56e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6231592
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Ben Weiss <bweiss@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
libyuv is an open source project that includes YUV scaling and conversion functionality.
See Getting started for instructions on how to get started developing.
You can also browse the docs directory for more documentation.