mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-09-22 22:36:38 +00:00
c07de58a72
checkasm benchmarks on 1.5 GHz Cortex-A72 are as follows. Note that the C version can still outperform the NEON version in specific cases. The balance between different code paths is stream-dependent, but in practice the best case happens about 5% of the time, the worst case happens about 40% of the time, and the complexity of the remaining cases fall somewhere in between. Therefore, taking the average of the best and worst case timings is probably a conservative estimate of the degree by which the NEON code improves performance. vc1dsp.vc1_h_loop_filter4_bestcase_c: 19.0 vc1dsp.vc1_h_loop_filter4_bestcase_neon: 48.5 vc1dsp.vc1_h_loop_filter4_worstcase_c: 144.7 vc1dsp.vc1_h_loop_filter4_worstcase_neon: 76.2 vc1dsp.vc1_h_loop_filter8_bestcase_c: 41.0 vc1dsp.vc1_h_loop_filter8_bestcase_neon: 75.0 vc1dsp.vc1_h_loop_filter8_worstcase_c: 294.0 vc1dsp.vc1_h_loop_filter8_worstcase_neon: 102.7 vc1dsp.vc1_h_loop_filter16_bestcase_c: 54.7 vc1dsp.vc1_h_loop_filter16_bestcase_neon: 130.0 vc1dsp.vc1_h_loop_filter16_worstcase_c: 569.7 vc1dsp.vc1_h_loop_filter16_worstcase_neon: 186.7 vc1dsp.vc1_v_loop_filter4_bestcase_c: 20.2 vc1dsp.vc1_v_loop_filter4_bestcase_neon: 47.2 vc1dsp.vc1_v_loop_filter4_worstcase_c: 164.2 vc1dsp.vc1_v_loop_filter4_worstcase_neon: 68.5 vc1dsp.vc1_v_loop_filter8_bestcase_c: 43.5 vc1dsp.vc1_v_loop_filter8_bestcase_neon: 55.2 vc1dsp.vc1_v_loop_filter8_worstcase_c: 316.2 vc1dsp.vc1_v_loop_filter8_worstcase_neon: 72.7 vc1dsp.vc1_v_loop_filter16_bestcase_c: 62.2 vc1dsp.vc1_v_loop_filter16_bestcase_neon: 103.7 vc1dsp.vc1_v_loop_filter16_worstcase_c: 646.5 vc1dsp.vc1_v_loop_filter16_worstcase_neon: 110.7 Signed-off-by: Ben Avison <bavison@riscosopen.org> Signed-off-by: Martin Storsjö <martin@martin.st> |
||
---|---|---|
.. | ||
aac.h | ||
aacpsdsp_init_arm.c | ||
aacpsdsp_neon.S | ||
ac3dsp_arm.S | ||
ac3dsp_armv6.S | ||
ac3dsp_init_arm.c | ||
ac3dsp_neon.S | ||
asm-offsets.h | ||
audiodsp_arm.h | ||
audiodsp_init_arm.c | ||
audiodsp_init_neon.c | ||
audiodsp_neon.S | ||
blockdsp_arm.h | ||
blockdsp_init_arm.c | ||
blockdsp_init_neon.c | ||
blockdsp_neon.S | ||
cabac.h | ||
dca.h | ||
fft_init_arm.c | ||
fft_neon.S | ||
fft_vfp.S | ||
flacdsp_arm.S | ||
flacdsp_init_arm.c | ||
fmtconvert_init_arm.c | ||
fmtconvert_neon.S | ||
fmtconvert_vfp.S | ||
g722dsp_init_arm.c | ||
g722dsp_neon.S | ||
h264chroma_init_arm.c | ||
h264cmc_neon.S | ||
h264dsp_init_arm.c | ||
h264dsp_neon.S | ||
h264idct_neon.S | ||
h264pred_init_arm.c | ||
h264pred_neon.S | ||
h264qpel_init_arm.c | ||
h264qpel_neon.S | ||
hevcdsp_arm.h | ||
hevcdsp_deblock_neon.S | ||
hevcdsp_idct_neon.S | ||
hevcdsp_init_arm.c | ||
hevcdsp_init_neon.c | ||
hevcdsp_qpel_neon.S | ||
hevcdsp_sao_neon.S | ||
hpeldsp_arm.h | ||
hpeldsp_arm.S | ||
hpeldsp_armv6.S | ||
hpeldsp_init_arm.c | ||
hpeldsp_init_armv6.c | ||
hpeldsp_init_neon.c | ||
hpeldsp_neon.S | ||
idct.h | ||
idctdsp_arm.h | ||
idctdsp_arm.S | ||
idctdsp_armv6.S | ||
idctdsp_init_arm.c | ||
idctdsp_init_armv5te.c | ||
idctdsp_init_armv6.c | ||
idctdsp_init_neon.c | ||
idctdsp_neon.S | ||
int_neon.S | ||
jrevdct_arm.S | ||
lossless_audiodsp_init_arm.c | ||
lossless_audiodsp_neon.S | ||
Makefile | ||
mathops.h | ||
mdct_neon.S | ||
mdct_vfp.S | ||
me_cmp_armv6.S | ||
me_cmp_init_arm.c | ||
mlpdsp_armv5te.S | ||
mlpdsp_armv6.S | ||
mlpdsp_init_arm.c | ||
mpegaudiodsp_fixed_armv6.S | ||
mpegaudiodsp_init_arm.c | ||
mpegvideo_arm.c | ||
mpegvideo_arm.h | ||
mpegvideo_armv5te_s.S | ||
mpegvideo_armv5te.c | ||
mpegvideo_neon.S | ||
mpegvideoencdsp_armv6.S | ||
mpegvideoencdsp_init_arm.c | ||
neon.S | ||
neontest.c | ||
pixblockdsp_armv6.S | ||
pixblockdsp_init_arm.c | ||
pixblockdsp_neon.S | ||
rdft_init_arm.c | ||
rdft_neon.S | ||
rv34dsp_init_arm.c | ||
rv34dsp_neon.S | ||
rv40dsp_init_arm.c | ||
rv40dsp_neon.S | ||
sbcdsp_armv6.S | ||
sbcdsp_init_arm.c | ||
sbcdsp_neon.S | ||
sbrdsp_init_arm.c | ||
sbrdsp_neon.S | ||
simple_idct_arm.S | ||
simple_idct_armv5te.S | ||
simple_idct_armv6.S | ||
simple_idct_neon.S | ||
startcode_armv6.S | ||
startcode.h | ||
synth_filter_init_arm.c | ||
synth_filter_neon.S | ||
synth_filter_vfp.S | ||
vc1dsp_init_arm.c | ||
vc1dsp_init_neon.c | ||
vc1dsp_neon.S | ||
vc1dsp.h | ||
videodsp_arm.h | ||
videodsp_armv5te.S | ||
videodsp_init_arm.c | ||
videodsp_init_armv5te.c | ||
vorbisdsp_init_arm.c | ||
vorbisdsp_neon.S | ||
vp3dsp_init_arm.c | ||
vp3dsp_neon.S | ||
vp6dsp_init_arm.c | ||
vp6dsp_neon.S | ||
vp8_armv6.S | ||
vp8.h | ||
vp8dsp_armv6.S | ||
vp8dsp_init_arm.c | ||
vp8dsp_init_armv6.c | ||
vp8dsp_init_neon.c | ||
vp8dsp_neon.S | ||
vp8dsp.h | ||
vp9dsp_init_10bpp_arm.c | ||
vp9dsp_init_12bpp_arm.c | ||
vp9dsp_init_16bpp_arm_template.c | ||
vp9dsp_init_arm.c | ||
vp9dsp_init.h | ||
vp9itxfm_16bpp_neon.S | ||
vp9itxfm_neon.S | ||
vp9lpf_16bpp_neon.S | ||
vp9lpf_neon.S | ||
vp9mc_16bpp_neon.S | ||
vp9mc_neon.S | ||
vp56_arith.h |