[FFmpeg-devel] [PATCH] wma encoder regtest fix

Benjamin Larsson banan
Fri Feb 13 13:49:12 CET 2009


V?ctor Paesa wrote:
> Hi,
> Robert Swain said:
>   
>> 2009/2/12 Benjamin Larsson <banan at ludd.ltu.se>:
>>     
>>> Diego Biurrun wrote:
>>>       
>>>> On Thu, Feb 12, 2009 at 01:26:12PM +0100, Diego Biurrun wrote:
>>>>
>>>>         
>>>>> On Thu, Feb 12, 2009 at 11:42:48AM +0100, Benjamin Larsson wrote:
>>>>>
>>>>>           
>>>>>> Benoit Fouet wrote:
>>>>>>
>>>>>>             
>>>>>>> On 02/12/2009 10:49 AM, Benjamin Larsson wrote:
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Hi, attached is a proposed fix to the elusive wmaencoder
>>>>>>>> regtests. I don't know if it works on all platforms so please
>>>>>>>> test and report back the checksums. Basically it rounds the sine
>>>>>>>> tables to 16-bit accuracy. It still uses sinf which could be a
>>>>>>>> source of error when the angle is small.
>>>>>>>>
>>>>>>>> I also posted this in another thread but I guess it got buried in
>>>>>>>> the massive mail flow.
>>>>>>>>
>>>>>>>>                 
>>>>>>> configuration: --enable-gpl --enable-libx264 --enable-libmp3lame
>>>>>>> --enable-swscale --enable-pthreads --enable-libamr-nb
>>>>>>> --enable-libamr-wb --enable-libopenjpeg --enable-nonfree
>>>>>>> --extra-cflags=-fno-inline gcc version 4.3.2 (Ubuntu
>>>>>>> 4.3.2-1ubuntu11)
>>>>>>> intel core2 quad Q6600
>>>>>>>
>>>>>>> with your patch applied, i get:
>>>>>>> --- /home/fouet/tools/ffmpeg/tests/ffmpeg.regression.ref
>>>>>>> 2009-02-02 17:06:54.000000000 +0100
>>>>>>> +++ tests/data/vsynth.regression    2009-02-12 10:57:45.000000000
>>>>>>> +0100 @@ -205,14 +205,14 @@
>>>>>>>  353368 ./tests/data/a-flac.flac
>>>>>>>  95e54b261530a1bcf6de6fe3b21dc5f6
>>>>>>> *./tests/data/flac.vsynth.out.wav stddev:    0.00 PSNR:999.99
>>>>>>> bytes:  1058444/  1058444
>>>>>>> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
>>>>>>> +7e640cdf8ae1873c37fd4a6fe208efa7 *./tests/data/a-wmav1.asf
>>>>>>>  106004 ./tests/data/a-wmav1.asf
>>>>>>> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
>>>>>>> -stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
>>>>>>> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
>>>>>>> +stddev:12251.32 PSNR: 14.56 bytes:  1056812/  1058444
>>>>>>> +stddev: 2105.95 PSNR: 29.85 bytes:  1048620/  1058444
>>>>>>> +36491e6aca4516616e6b0c600330070a *./tests/data/a-wmav2.asf
>>>>>>>  106044 ./tests/data/a-wmav2.asf
>>>>>>> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
>>>>>>> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
>>>>>>> +stddev:12255.59 PSNR: 14.55 bytes:  1056812/  1058444
>>>>>>> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>>>>>>>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>>>>>>> 529256 ./tests/data/a-pcm_alaw.wav
>>>>>>>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>>>>>>>
>>>>>>>               
>>>>>> I get the same values as Ben (myself?) when I run the same test on
>>>>>> Ubuntu x86 with the same compiler. Ie when using C routines
>>>>>> (--disable-mmx) I get the first set of crc's and when running with
>>>>>> simd I get the same set as Benoit. It would be good to get the
>>>>>> results from icc and ppc platforms also.
>>>>>>
>>>>>>             
>>>>> These are the results I get on PPC with AltiVec enabled:
>>>>>
>>>>> --- /tmp/ffmpeg/tests/ffmpeg.regression.ref     2009-02-12
>>>>> 12:39:04.000000000 +0100 +++ tests/data/vsynth.regression
>>>>> 2009-02-12 13:23:01.000000000 +0100 @@ -205,14 +205,14 @@
>>>>>  353368 ./tests/data/a-flac.flac
>>>>>  95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.vsynth.out.wav
>>>>> stddev:    0.00 PSNR:999.99 bytes:  1058444/  1058444
>>>>> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
>>>>> +4cd042a85c9c3f52124d6bcdba8cefdb *./tests/data/a-wmav1.asf
>>>>>  106004 ./tests/data/a-wmav1.asf
>>>>> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
>>>>> -stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
>>>>> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
>>>>> +stddev:12251.32 PSNR: 14.56 bytes:  1056812/  1058444
>>>>> +stddev: 2105.95 PSNR: 29.85 bytes:  1048620/  1058444
>>>>> +36491e6aca4516616e6b0c600330070a *./tests/data/a-wmav2.asf
>>>>>  106044 ./tests/data/a-wmav2.asf
>>>>> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
>>>>> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
>>>>> +stddev:12255.59 PSNR: 14.55 bytes:  1056812/  1058444
>>>>> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>>>>>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>>>>> 529256 ./tests/data/a-pcm_alaw.wav
>>>>>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>>>>> make: *** [codectest] Error 1
>>>>>
>>>>>           
>>>> Here are the results with AltiVec disabled:
>>>>
>>>> --- /tmp/ffmpeg/tests/ffmpeg.regression.ref     2009-02-12
>>>> 14:07:00.000000000 +0100 +++ tests/data/vsynth.regression
>>>> 2009-02-12 14:11:34.000000000 +0100 @@ -205,14 +205,14 @@
>>>>  353368 ./tests/data/a-flac.flac
>>>>  95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.vsynth.out.wav
>>>> stddev:    0.00 PSNR:999.99 bytes:  1058444/  1058444
>>>> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
>>>> +4cd042a85c9c3f52124d6bcdba8cefdb *./tests/data/a-wmav1.asf
>>>>  106004 ./tests/data/a-wmav1.asf
>>>> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
>>>> +stddev:12251.32 PSNR: 14.56 bytes:  1056812/  1058444
>>>>  stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
>>>> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
>>>> +36491e6aca4516616e6b0c600330070a *./tests/data/a-wmav2.asf
>>>>  106044 ./tests/data/a-wmav2.asf
>>>> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
>>>> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
>>>> +stddev:12255.59 PSNR: 14.55 bytes:  1056812/  1058444
>>>> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>>>>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>>>>  529256 ./tests/data/a-pcm_alaw.wav
>>>>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>>>> make: *** [codectest] Error 1
>>>>
>>>> Diego
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel at mplayerhq.hu
>>>> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>>>>
>>>>         
>>> Go this on amd geode and gcc 2.95, it should have used 3dnow code for
>>> mdct.
>>>
>>> +++ tests/data/vsynth.regression        2009-02-12 15:06:43.000000000
>>> +0000 @@ -205,14 +205,14 @@
>>>  353368 ./tests/data/a-flac.flac
>>>  95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.vsynth.out.wav
>>> stddev:    0.00 PSNR:999.99 bytes:  1058444/  1058444
>>> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
>>> +4cd042a85c9c3f52124d6bcdba8cefdb *./tests/data/a-wmav1.asf
>>>  106004 ./tests/data/a-wmav1.asf
>>> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
>>> -stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
>>> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
>>> +stddev:12251.32 PSNR: 14.56 bytes:  1056812/  1058444
>>> +stddev: 2105.95 PSNR: 29.85 bytes:  1048620/  1058444
>>> +36491e6aca4516616e6b0c600330070a *./tests/data/a-wmav2.asf
>>>  106044 ./tests/data/a-wmav2.asf
>>> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
>>> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
>>> +stddev:12255.59 PSNR: 14.55 bytes:  1056812/  1058444
>>> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>>>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>>>  529256 ./tests/data/a-pcm_alaw.wav
>>>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>>> make: *** [codectest] Error 1
>>>       
>> Core Duo 1.83GHz (so 32-bit x86) in Mac OS X using: --cc="gcc-4.2"
>> --enable-gpl --enable-swscale
>>
>> diff -u -w "/Users/rob/source/ffmpeg-dev"/tests/ffmpeg.regression.ref
>>  tests/data/vsynth.regression
>> --- /Users/rob/source/ffmpeg-dev/tests/ffmpeg.regression.ref	2009-02-02
>> 23:05:43.000000000 +0000
>> +++ tests/data/vsynth.regression	2009-02-12 15:43:43.000000000 +0000 @@
>> -205,14 +205,14 @@
>>  353368 ./tests/data/a-flac.flac
>>  95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.vsynth.out.wav
>> stddev:    0.00 PSNR:999.99 bytes:  1058444/  1058444
>> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
>> +4cd042a85c9c3f52124d6bcdba8cefdb *./tests/data/a-wmav1.asf
>>  106004 ./tests/data/a-wmav1.asf
>> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
>> -stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
>> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
>> +stddev:12251.32 PSNR: 14.56 bytes:  1056812/  1058444
>> +stddev: 2105.95 PSNR: 29.85 bytes:  1048620/  1058444
>> +36491e6aca4516616e6b0c600330070a *./tests/data/a-wmav2.asf
>>  106044 ./tests/data/a-wmav2.asf
>> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
>> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
>> +stddev:12255.59 PSNR: 14.55 bytes:  1056812/  1058444
>> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>>  529256 ./tests/data/a-pcm_alaw.wav
>>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>> make: *** [codectest] Error 1
>>     
>
> gcc 4.2.3, Pentium 930D and Cygwin 1.5.25 (it uses newlib instead of the
> more usual GNU C lib)
>
> ./configure --disable-debug --enable-gpl --enable-postproc \
> --enable-avfilter --enable-avfilter-lavf --enable-shared --enable-swscale \
> --extra-ldflags="-L /usr/local/lib" --extra-libs="-l llrint" \
> --extra-cflags="-I/usr/local/include -include llrint.h"
>
> +++ tests/data/vsynth.regression        2009-02-12 23:26:06.233595400 +0100
> @@ -205,14 +205,14 @@
>  353368 ./tests/data/a-flac.flac
>  95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.vsynth.out.wav
>  stddev:    0.00 PSNR:999.99 bytes:  1058444/  1058444
> -4435d87463cd6c5407bd88cca241ca56 *./tests/data/a-wmav1.asf
> +5afbb90d016bc1ad28fd113b4eeead1e *./tests/data/a-wmav1.asf
>  106004 ./tests/data/a-wmav1.asf
> -stddev:12251.38 PSNR: 14.56 bytes:  1056812/  1058444
> -stddev: 2105.96 PSNR: 29.85 bytes:  1048620/  1058444
> -24ae726aef89e5d17e315c64182f4c61 *./tests/data/a-wmav2.asf
> +stddev:12251.58 PSNR: 14.56 bytes:  1056812/  1058444
> +stddev: 2105.95 PSNR: 29.85 bytes:  1048620/  1058444
> +cab7ef58f14700c1d38bbea97a928ac7 *./tests/data/a-wmav2.asf
>  106044 ./tests/data/a-wmav2.asf
> -stddev:12255.80 PSNR: 14.55 bytes:  1056812/  1058444
> -stddev: 2099.27 PSNR: 29.88 bytes:  1048620/  1058444
> +stddev:12255.60 PSNR: 14.55 bytes:  1056812/  1058444
> +stddev: 2099.25 PSNR: 29.88 bytes:  1048620/  1058444
>  89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/a-pcm_alaw.wav
>  529256 ./tests/data/a-pcm_alaw.wav
>  0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.vsynth.out.wav
>
> Regards,
> V?ctor
>   

Ok, I'll try with replacing the fft and sin function with a fixed point one.

MvH
Benjamin Larsson






More information about the ffmpeg-devel mailing list