[Flac-dev] Not compressing 24 bit very well

Josh Green josh at resonance.org
Mon Aug 28 17:38:55 PDT 2006

Hello.  I just added 24 bit support to CRAM and noticed that 24 bit data
isn't compressing much, if at all.  I saw a recent thread on this list
concerning this same issue.


I ran some tests using the command line 'flac' program and also
experienced rather poor results.  When doing a 'flac -a' many of the
files have VERBATIM FLAC chunks in them, as the above thread mentions

Any ideas on what could be causing this?

One test I did was to take one file that performed rather poorly and
convert it to 16 bit and then back to 24 bit again (verified with a hex
editor that LSBytes were 0s).  Here were the results:

Original 24 bit:   192812 -> 197026 bytes = 102% (got bigger)
16 bit:            128556 ->  97725 bytes = 76%
24 -> 16 -> 24:    192812 -> 183695 bytes = 95.2%

An interesting note is that compressing the 16 MS bits and encoding the
LS 8 bits verbatim would be smaller.

Below are some results for files I compressed with flac at 24 bit and 16
bit (converted with ecasound).

I'll poke around in the FLAC code a bit to see if I can find anything,
but I thought I'd post here to see if anyone has a better idea of what
might be wrong.  Best regards,
	Josh Green

24 bit

options: -P 4096 -b 4608 -m -l 8 -q 0 -r 3,3
Bees1_clip01.wav: wrote 243159 bytes, ratio=0.945
Bees1_clip02.wav: wrote 319382 bytes, ratio=0.782
Bees2_clip01.wav: wrote 535266 bytes, ratio=1.007
Bees3_clip01.wav: wrote 538943 bytes, ratio=0.805
Bees3_clip02.wav: wrote 356050 bytes, ratio=0.865
Bees3_clip03.wav: wrote 202738 bytes, ratio=0.758
Bees3_clip04.wav: wrote 180798 bytes, ratio=0.774
Bees3_clip05.wav: wrote 348487 bytes, ratio=0.782
Bees3_clip06.wav: wrote 246837 bytes, ratio=0.833
Bees4_clip01.wav: wrote 397719 bytes, ratio=1.003
Bees4_clip02.wav: wrote 239811 bytes, ratio=0.908
Bees4_clip03.wav: wrote 367556 bytes, ratio=1.005
Cricket01.wav: wrote 243255 bytes, ratio=1.015
Cricket02.wav: wrote 197026 bytes, ratio=1.022
GrassHopper_clip01.wav: wrote 768673 bytes, ratio=1.001
GrassHopper_clip02.wav: wrote 638097 bytes, ratio=0.987
GrassHopper_clip03.wav: wrote 557699 bytes, ratio=0.997
GrassHopper_clip04.wav: wrote 568383 bytes, ratio=1.005
GrassHopper_clip05.wav: wrote 1459159 bytes, ratio=0.945
SeedPod1.wav: wrote 259027 bytes, ratio=1.005
SeedPod2.wav: wrote 289343 bytes, ratio=0.999
SeedPod3.wav: wrote 273867 bytes, ratio=0.985

16 bit

options: -P 4096 -b 4608 -m -l 8 -q 0 -r 3,3
Bees1_clip01_16.wav: wrote 116837 bytes, ratio=0.681
Bees1_clip02_16.wav: wrote 165013 bytes, ratio=0.606
Bees2_clip01_16.wav: wrote 261264 bytes, ratio=0.737
Bees3_clip01_16.wav: wrote 275022 bytes, ratio=0.616
Bees3_clip02_16.wav: wrote 176597 bytes, ratio=0.643
Bees3_clip03_16.wav: wrote 106485 bytes, ratio=0.597
Bees3_clip04_16.wav: wrote 94403 bytes, ratio=0.606
Bees3_clip05_16.wav: wrote 180244 bytes, ratio=0.607
Bees3_clip06_16.wav: wrote 125787 bytes, ratio=0.636
Bees4_clip01_16.wav: wrote 186186 bytes, ratio=0.705
Bees4_clip02_16.wav: wrote 117756 bytes, ratio=0.668
Bees4_clip03_16.wav: wrote 173618 bytes, ratio=0.712
Cricket01_16.wav: wrote 123631 bytes, ratio=0.774
Cricket02_16.wav: wrote 97725 bytes, ratio=0.760
GrassHopper_clip01_16.wav: wrote 414547 bytes, ratio=0.810
GrassHopper_clip02_16.wav: wrote 350511 bytes, ratio=0.813
GrassHopper_clip03_16.wav: wrote 311311 bytes, ratio=0.835
GrassHopper_clip04_16.wav: wrote 312618 bytes, ratio=0.829
GrassHopper_clip05_16.wav: wrote 739746 bytes, ratio=0.718
SeedPod1_16.wav: wrote 134188 bytes, ratio=0.781
SeedPod2_16.wav: wrote 149471 bytes, ratio=0.774
SeedPod3_16.wav: wrote 144464 bytes, ratio=0.779

More information about the Flac-dev mailing list