[FFmpeg-devel] [PATCH] swscale/aarch64/hscale.S Refactor hscale_16_to_15__fs_4
Martin Storsjö
martin at martin.st
Sun Mar 2 01:03:44 EET 2025
On Sat, 1 Mar 2025, Krzysztof Pyrkosz via ffmpeg-devel wrote:
> Before/after:
>
> A78
> hscale_16_to_15__fs_4_dstW_8_neon: 86.8 ( 1.72x)
> hscale_16_to_15__fs_4_dstW_24_neon: 147.5 ( 2.73x)
> hscale_16_to_15__fs_4_dstW_128_neon: 614.0 ( 3.14x)
> hscale_16_to_15__fs_4_dstW_144_neon: 680.5 ( 3.18x)
> hscale_16_to_15__fs_4_dstW_256_neon: 1193.2 ( 3.19x)
> hscale_16_to_15__fs_4_dstW_512_neon: 2305.0 ( 3.27x)
>
> hscale_16_to_15__fs_4_dstW_8_neon: 86.0 ( 1.74x)
> hscale_16_to_15__fs_4_dstW_24_neon: 106.8 ( 3.78x)
> hscale_16_to_15__fs_4_dstW_128_neon: 404.0 ( 4.81x)
> hscale_16_to_15__fs_4_dstW_144_neon: 451.8 ( 4.80x)
> hscale_16_to_15__fs_4_dstW_256_neon: 760.5 ( 5.06x)
> hscale_16_to_15__fs_4_dstW_512_neon: 1520.0 ( 5.01x)
>
> A72
> hscale_16_to_15__fs_4_dstW_8_neon: 156.8 ( 1.52x)
> hscale_16_to_15__fs_4_dstW_24_neon: 217.8 ( 2.52x)
> hscale_16_to_15__fs_4_dstW_128_neon: 906.8 ( 2.90x)
> hscale_16_to_15__fs_4_dstW_144_neon: 1014.5 ( 2.91x)
> hscale_16_to_15__fs_4_dstW_256_neon: 1751.5 ( 2.96x)
> hscale_16_to_15__fs_4_dstW_512_neon: 3469.3 ( 2.97x)
>
> hscale_16_to_15__fs_4_dstW_8_neon: 151.2 ( 1.54x)
> hscale_16_to_15__fs_4_dstW_24_neon: 173.4 ( 3.15x)
> hscale_16_to_15__fs_4_dstW_128_neon: 660.0 ( 3.98x)
> hscale_16_to_15__fs_4_dstW_144_neon: 735.7 ( 4.00x)
> hscale_16_to_15__fs_4_dstW_256_neon: 1273.5 ( 4.09x)
> hscale_16_to_15__fs_4_dstW_512_neon: 2488.2 ( 4.16x)
> ---
>
> This patch removes the use of stack for temporary state and replaces
> interleaved ld4 loads with ld1.
> I'm aware the component is being deprecated, however in my use case
> (screen recording) the total time spent in this function is roughly 15%,
> the improvement is significant and worth sharing.
The patch looks good. I didn't follow it in exact detail, but it overall
looks reasonable, and looks much better than the previous form. This
description of what the patch does and why also is worth keeping in the
final commit message, but as there's no need to repost the patch, I could
just adjust the message myself before pushing it.
// Martin
More information about the ffmpeg-devel
mailing list