aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_vif.c
diff options
context:
space:
mode:
authorHubert Mazur <hum@semihalf.com>2022-10-28 11:34:37 +0000
committerMartin Storsjö <martin@martin.st>2022-11-01 15:24:43 +0200
commit1e9cfa5bb0253784798029bda377823ab5d1a529 (patch)
tree4a2e3df1746a882819b45dfecaacffb2aa2493eb /libavfilter/vf_vif.c
parent16af424bf983409e00a84af1c98bbe7171ddd79f (diff)
downloadffmpeg-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