[FFmpeg-devel] [PATCH] swscale/aarch64/rgb24toyv12: skip early right shift by 2
Martin Storsjö
martin at martin.st
Mon Feb 17 10:51:06 EET 2025
On Tue, 11 Feb 2025, Krzysztof Pyrkosz via ffmpeg-devel wrote:
> It's a minor improvement that shaves off 5-8% from the execution time.
> Instead of shifting by 2 right away and by 7 soon after, shift by 9 one
> time.
>
> Times before and after:
>
> A78:
> rgb24toyv12_16_200_neon: 5366.8 ( 3.62x)
> rgb24toyv12_128_60_neon: 13574.0 ( 3.34x)
> rgb24toyv12_512_16_neon: 14463.8 ( 3.33x)
> rgb24toyv12_1920_4_neon: 13508.2 ( 3.34x)
> rgb24toyv12_1920_4_negstride_neon: 13525.0 ( 3.34x)
>
> rgb24toyv12_16_200_neon: 5293.8 ( 3.66x)
> rgb24toyv12_128_60_neon: 12955.0 ( 3.50x)
> rgb24toyv12_512_16_neon: 13784.0 ( 3.50x)
> rgb24toyv12_1920_4_neon: 12900.8 ( 3.49x)
> rgb24toyv12_1920_4_negstride_neon: 12902.8 ( 3.49x)
>
>
> A72:
> rgb24toyv12_16_200_neon: 9695.8 ( 2.50x)
> rgb24toyv12_128_60_neon: 20286.6 ( 2.70x)
> rgb24toyv12_512_16_neon: 22276.6 ( 2.57x)
> rgb24toyv12_1920_4_neon: 19154.1 ( 2.77x)
> rgb24toyv12_1920_4_negstride_neon: 19055.1 ( 2.78x)
>
> rgb24toyv12_16_200_neon: 9214.8 ( 2.65x)
> rgb24toyv12_128_60_neon: 20731.5 ( 2.65x)
> rgb24toyv12_512_16_neon: 21145.0 ( 2.70x)
> rgb24toyv12_1920_4_neon: 17586.5 ( 2.99x)
> rgb24toyv12_1920_4_negstride_neon: 17571.0 ( 2.98x)
>
>
> A53:
> rgb24toyv12_16_200_neon: 12880.4 ( 3.76x)
> rgb24toyv12_128_60_neon: 27776.3 ( 3.94x)
> rgb24toyv12_512_16_neon: 29411.3 ( 3.94x)
> rgb24toyv12_1920_4_neon: 27253.1 ( 3.98x)
> rgb24toyv12_1920_4_negstride_neon: 27474.3 ( 3.95x)
>
> rgb24toyv12_16_200_neon: 12196.3 ( 3.95x)
> rgb24toyv12_128_60_neon: 26943.1 ( 4.07x)
> rgb24toyv12_512_16_neon: 28642.3 ( 4.07x)
> rgb24toyv12_1920_4_neon: 26676.6 ( 4.08x)
> rgb24toyv12_1920_4_negstride_neon: 26713.8 ( 4.07x)
>
> ---
> libswscale/aarch64/rgb2rgb_neon.S | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
Thanks, applied.
// Martin
More information about the ffmpeg-devel
mailing list