commit | 8f659daffd820485a152c92a67c5ec961e31b281 | [log] [tgz] |
---|---|---|
author | George Steed <george.steed@arm.com> | Mon Sep 09 17:53:24 2024 +0100 |
committer | Frank Barchard <fbarchard@chromium.org> | Wed Dec 04 17:51:08 2024 +0000 |
tree | 8b136c968f1253f6e0e45237e61249c442991426 | |
parent | 233f859e3ccad205a0e2d585f5ac09a806ba0230 [diff] |
[AArch64] Add SVE2 implementations of NV{12,21}ToRGB24Row Now that we have the `_2X` versions of the macros we can use these to implement `ToRGB24` kernels. These cannot use the bottom/top approach previously used by other SVE kernels since there are three rather than two or four elements each. Reduction in runtimes observed compared to the existing Neon implementations: | NV12ToRGB24Row | NV21ToRGB24Row Cortex-A510 | -60.7% | -60.7% Cortex-A520 | -46.0% | -46.0% Cortex-A715 | -25.2% | -25.2% Cortex-A720 | -25.2% | -25.2% Cortex-X2 | -28.9% | -29.0% Cortex-X3 | -28.2% | -28.1% Cortex-X4 | -30.8% | -30.7% Cortex-X925 | -28.8% | -28.9% Change-Id: I39853d124bfdcac38584109870b398b8ecd5b632 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6067149 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.