[Ffmpeg-devel] FLAC encoder
Justin Ruggles
jruggle
Fri Jun 2 07:36:19 CEST 2006
Hello,
I wrote:
> Well, the FLAC encoder is getting better by the day. I'll post some
> results some time soon of my most recent version, which has marked
> improvement in compression.
Here are some current results. The latest version is here:
http://home.earthlink.net/~jruggle/flake/flake-02.tar.bz2
I still haven't integrated with FFmpeg...that's coming soon though. The
biggest improvement I have made is the application of a window function
before calculating the LPC coefficients. After testing several
different window types, I found that for most audio clips, either the
Hamming window or the Bartlett window was the best choice. So I changed
the encoder to calculate LPC coefficients using each of these windows.
Optimal LPC order estimation is done for each set, and the smaller order
of the 2 is used along with the corresponding coeffs. It's amazing how
such a simple thing can increase compression so much! I got the idea
from a general description of MPEG-4 ALS. It could be patented for all
I know...
If anyone wants to do tests with the clip I used for the test below:
http://home.earthlink.net/~jruggle/flake/answering_bell.flac
-Justin
Benchmark tests on K6-2 300MHz
------------------------------
30-sec test clip
"Answering Bell" by Ryan Adams
Original WAV file size: 5294636 bytes
flac:
standard options: -P 0
custom1 options: -P 0 -b 16384 -m -l 12 -e -q 0 -r 0,8
custom2 options: --lax -P 0 -b 32768 -m -l 11 -e -q 0 -r 0,8
level real time bytes ratio kbps
----- ----------- --------- ----- -------
0 0m3.416s 3253661 0.615 867.6
1 0m3.540s 3245248 0.613 865.4
2 0m4.474s 3229304 0.610 861.1
3 0m4.477s 2994149 0.566 798.4
4 0m5.458s 2950946 0.557 786.9
5 0m6.664s 2937031 0.555 783.2
6 0m7.484s 2934347 0.554 782.5
7 0m24.189s 2926650 0.553 780.4
8 0m31.143s 2913871 0.550 777.0
custom1 0m50.850s 2845706 0.537 758.9 * (Subset)
custom2 0m50.103s 2835670 0.536 756.2 * (non-Subset)
flake:
level real time bytes ratio kbps
----- ----------- --------- ----- -------
0 0m5.269s 3414019 0.645 910.4
1 0m7.220s 3209480 0.606 855.9
2 0m7.489s 3012291 0.569 803.3
3 0m7.767s 2854938 0.539 761.3
4 0m7.794s 2777988 0.525 740.8
5 0m8.877s 2786305 0.526 743.0
6 0m9.135s 2674994 0.505 713.3
7 0m10.938s 2618914 0.495 698.4
8 0m19.905s 2584319 0.488 689.2 *
1st posted flake version:
10 0m16.379s 2818070 0.532 751.5
2nd posted flake version:
8 0m13.796s 2812340 0.531 750.0
OTHER LOSSLESS CODECS (just for fun)
mp4als:
level real time bytes ratio kbps
----- ----------- --------- ----- -------
default 0m11.058s 2556653 0.483 681.4
7 9m31.726s 2300589 0.435 613.2 * <-- great but SLOW
wavpack:
level real time bytes ratio kbps
----- ----------- --------- ----- -------
f 0m4.948s 3143676 0.594 838.3
default 0m6.343s 2983470 0.563 795.6
h 0m11.596s 2612892 0.493 696.8 *
monkey's audio 3.99:
level real time bytes ratio kbps
----- ----------- --------- ----- -------
1000 0m4.730s 2902108 0.548 773.9
2000 0m8.484s 2554252 0.482 681.1
3000 0m14.281s 2534252 0.479 675.8
4000 0m43.360s 2392384 0.452 638.0 <-- wow.
5000 3m28.707s 2390972 0.452 637.6 *
More information about the ffmpeg-devel
mailing list