commit | 11ff6067a52bf24e284f47ffbe4b8c8202e3428f | [log] [tgz] |
---|---|---|
author | George Steed <george.steed@arm.com> | Thu Apr 25 21:18:19 2024 +0100 |
committer | Frank Barchard <fbarchard@chromium.org> | Mon Jul 08 15:55:14 2024 +0000 |
tree | 36c7d20ad6a7b0056e0c707faa85efeefafafb0a | |
parent | c613c3f1024d6d59b30f3816fc717a4f074b532e [diff] |
[AArch64] Add SVE2 implementation of RAWToRGB24Row There is no nice way of forming the TBL permute indices here since we are operating on sets of three bytes at a time, so instead load the appropriate indices from a static array. We can make use of SVE predication to ensure we are operating on a multiple of three bytes for the load/store instructions rather than needing to make use of more expensive LD3 or ST3 instructions. Reduction in runtime observed compared to the existing Neon implementation: Cortex-A510: -39.2% Cortex-A720: -34.5% Cortex-X2: -31.0% Bug: libyuv:973 Change-Id: I68560bde7a529e5cec150b0e9d3ffe4341038fb8 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5631543 Reviewed-by: Justin Green <greenjustin@google.com> Reviewed-by: 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.