[FFmpeg-devel] [PATCH v3 4/4] swscale/aarch64: Add rgb24 to yuv implementation

Martin Storsjö martin at martin.st
Mon Jun 10 14:59:15 EEST 2024


On Fri, 7 Jun 2024, Zhao Zhili wrote:

> From: Zhao Zhili <zhilizhao at tencent.com>
>
> Test on Apple M1:
>
> rgb24_to_uv_8_c: 0.0
> rgb24_to_uv_8_neon: 0.2
> rgb24_to_uv_128_c: 1.0
> rgb24_to_uv_128_neon: 0.5
> rgb24_to_uv_1080_c: 7.0
> rgb24_to_uv_1080_neon: 5.7
> rgb24_to_uv_1920_c: 12.5
> rgb24_to_uv_1920_neon: 9.5
> rgb24_to_uv_half_8_c: 0.2
> rgb24_to_uv_half_8_neon: 0.2
> rgb24_to_uv_half_128_c: 1.0
> rgb24_to_uv_half_128_neon: 0.5
> rgb24_to_uv_half_1080_c: 6.2
> rgb24_to_uv_half_1080_neon: 3.0
> rgb24_to_uv_half_1920_c: 11.2
> rgb24_to_uv_half_1920_neon: 5.2
> rgb24_to_y_8_c: 0.2
> rgb24_to_y_8_neon: 0.0
> rgb24_to_y_128_c: 0.5
> rgb24_to_y_128_neon: 0.5
> rgb24_to_y_1080_c: 4.7
> rgb24_to_y_1080_neon: 3.2
> rgb24_to_y_1920_c: 8.0
> rgb24_to_y_1920_neon: 5.7
>
> On Pixel 6:
>
> rgb24_to_uv_8_c: 30.7
> rgb24_to_uv_8_neon: 56.9
> rgb24_to_uv_128_c: 213.9
> rgb24_to_uv_128_neon: 173.2
> rgb24_to_uv_1080_c: 1649.9
> rgb24_to_uv_1080_neon: 1424.4
> rgb24_to_uv_1920_c: 2907.9
> rgb24_to_uv_1920_neon: 2480.7
> rgb24_to_uv_half_8_c: 36.2
> rgb24_to_uv_half_8_neon: 33.4
> rgb24_to_uv_half_128_c: 167.9
> rgb24_to_uv_half_128_neon: 99.4
> rgb24_to_uv_half_1080_c: 1293.9
> rgb24_to_uv_half_1080_neon: 778.7
> rgb24_to_uv_half_1920_c: 2292.7
> rgb24_to_uv_half_1920_neon: 1328.7
> rgb24_to_y_8_c: 19.7
> rgb24_to_y_8_neon: 27.7
> rgb24_to_y_128_c: 129.9
> rgb24_to_y_128_neon: 96.7
> rgb24_to_y_1080_c: 995.4
> rgb24_to_y_1080_neon: 767.7
> rgb24_to_y_1920_c: 1747.4
> rgb24_to_y_1920_neon: 1337.2
>
> Note both tests use clang as compiler, which has vectorization
> enabled by default with -O3.
>
> Signed-off-by: Zhao Zhili <zhilizhao at tencent.com>
> ---
> v3: Fix comments.
>
> libswscale/aarch64/Makefile  |   1 +
> libswscale/aarch64/input.S   | 202 +++++++++++++++++++++++++++++++++++
> libswscale/aarch64/swscale.c |  25 +++++
> 3 files changed, 228 insertions(+)
> create mode 100644 libswscale/aarch64/input.S

No further comments from me, on this patchset. (Rémi had a comment on 2/4 
though - I don't have a strong opinion on that matter either way.)

// Martin


More information about the ffmpeg-devel mailing list