[FFmpeg-devel] [PATCH 1/2] checkasm/lpc: test compute_autocorr

Rémi Denis-Courmont remi at remlab.net
Thu Dec 14 18:56:59 EET 2023


Le torstaina 14. joulukuuta 2023, 18.41.24 EET Michael Niedermayer a écrit :
> SSE2:
>  - lpc.apply_welch_window_even [OK]
>  - lpc.apply_welch_window_odd  [OK]
> 0:  976.228035341704 -  976.998462662304 = -0.7704273206
>    autocorr_10_sse2 (lpc.c:81)
>  - lpc.compute_autocorr_10     [FAILED]
> 0:  966.946397975397 -  967.716825295995 = -0.770427320599
>    autocorr_30_sse2 (lpc.c:81)
>  - lpc.compute_autocorr_30     [FAILED]
> 0:  968.085384693526 -  968.855812014127 = -0.770427320601

Right, it seems that the SSE optimisations craps out on odd length. The RVV 
code seems to match the C code there, so I am not sure if this is exposing an 
existing bug in the SSE code, or if odd length are illegal.

On a related note, we should probably test for odd lag values, as the C code 
has special handling for them. But from a quick glance, it seems that the SSE 
code also fails to deal with that case.

>    autocorr_32_sse2 (lpc.c:81)
>  - lpc.compute_autocorr_32     [FAILED]
> AVX2:
>  - lpc.apply_welch_window_even [OK]
>  - lpc.apply_welch_window_odd  [OK]
> checkasm: 3 of 7 tests have failed
> $ ffmpeg/tests/checkasm/checkasm --test=lpc
> checkasm: using random seed 470640728
> SSE2:
>  - lpc.apply_welch_window_even [OK]
>  - lpc.apply_welch_window_odd  [OK]
>  - lpc.compute_autocorr_10     [OK]
>  - lpc.compute_autocorr_30     [OK]
>  - lpc.compute_autocorr_32     [OK]
> AVX2:
>  - lpc.apply_welch_window_even [OK]
>  - lpc.apply_welch_window_odd  [OK]
> checkasm: all 7 tests passed
> 
> 
> [...]


-- 
雷米‧德尼-库尔蒙
http://www.remlab.net/





More information about the ffmpeg-devel mailing list