commit | c613c3f1024d6d59b30f3816fc717a4f074b532e | [log] [tgz] |
---|---|---|
author | George Steed <george.steed@arm.com> | Thu Apr 25 14:51:56 2024 +0100 |
committer | Frank Barchard <fbarchard@chromium.org> | Sat Jul 06 22:40:15 2024 +0000 |
tree | af476b79f91a60c25a8dbd2bd4de136c536a90b9 | |
parent | d1ec694ad38f9c5f1cc07e8db7b4157a44a14ae8 [diff] |
[AArch64] Add SVE2 implementations for RAWTo{ARGB,RGBA}Row We can construct particular predicates to load only up to 3/4 of a full vector, allowing us to use TBL to shuffle elements into the correct place rather than needing to rely on more expensive LD3 or ST4 instructions. Reduction in runtimes observed compared to the existing Neon implementation: | RAWToARGBRow | RAWToRGBARow Cortex-A510 | -32.4% | -31.9% Cortex-A720 | -15.7% | -15.6% Cortex-X2 | -24.6% | -24.4% Bug: libyuv:973 Change-Id: I271c625d97bab3b0e08ac1e9d7fcf7d18f3d6894 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5631542 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Justin Green <greenjustin@google.com>
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.