diff options
author | Hubert Mazur <hum@semihalf.com> | 2022-10-28 11:34:37 +0000 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2022-11-01 15:24:43 +0200 |
commit | 1e9cfa5bb0253784798029bda377823ab5d1a529 (patch) | |
tree | 4a2e3df1746a882819b45dfecaacffb2aa2493eb /libavfilter/vf_vif.c | |
parent | 16af424bf983409e00a84af1c98bbe7171ddd79f (diff) | |
download | ffmpeg-1e9cfa5bb0253784798029bda377823ab5d1a529.tar.gz |
sw_scale: Add specializations for hscale 8 to 19
Add arm64 neon implementations for hscale 8 to 19 with filter
sizes 4, 4X and 8. Both implementations are based on very similar ones
dedicated to hscale 8 to 15. The major changes refer to saving
the data - instead of writing the result as int16_t it is done
with int32_t.
These functions are heavily inspired on patches provided by J. Swinney
and M. Storsjö for hscale8to15 which were slightly adapted for
hscale8to19.
The tests and benchmarks run on AWS Graviton 2 instances. The results
from a checkasm tool shown below.
hscale_8_to_19__fs_4_dstW_512_c: 5663.2
hscale_8_to_19__fs_4_dstW_512_neon: 1259.7
hscale_8_to_19__fs_8_dstW_512_c: 9306.0
hscale_8_to_19__fs_8_dstW_512_neon: 2020.2
hscale_8_to_19__fs_12_dstW_512_c: 12932.7
hscale_8_to_19__fs_12_dstW_512_neon: 2462.5
hscale_8_to_19__fs_16_dstW_512_c: 16844.2
hscale_8_to_19__fs_16_dstW_512_neon: 4671.2
hscale_8_to_19__fs_32_dstW_512_c: 32803.7
hscale_8_to_19__fs_32_dstW_512_neon: 5474.2
hscale_8_to_19__fs_40_dstW_512_c: 40948.0
hscale_8_to_19__fs_40_dstW_512_neon: 6669.7
Signed-off-by: Hubert Mazur <hum@semihalf.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavfilter/vf_vif.c')
0 files changed, 0 insertions, 0 deletions