[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