[flac-dev] Higher compression modes from Flake

Justin Ruggles justin.ruggles at gmx.com
Thu Mar 14 14:55:15 PDT 2013


Hi,

On 03/14/2013 03:31 PM, Martijn van Beurden wrote:
> On 14-03-13 20:16, Marko Uibo wrote:
>> One possibility is to broaden Flac subset. But I don't know is it good 
>> idea or not.
> 
> It's not a good idea, except when you want to ruin FLACs reputation. One 
> of the reasons FLAC is (alongside ALAC) one of the two most popular 
> lossless codecs is because of the well-defined subset. I've tried Flake 
> -9, -10, -11 and -12 on my portable years ago, and while -9 did 
> reasonable, anything higher would just choke the player.
> 
> If you want more compression, you can do it yourself. The -0 through -8 
> switches are just presets, you can use FLAC 1.0's -9 yourself with -l 32 
> -b 4608 -m -e -E -r 16 -p on FLAC 1.2.1, there's just no shortcut -9 
> anymore.
> 
> Changing things like the subset will get developers/hardware 
> manufacturers nervous (because no one can tell them one the next subset 
> change will be, which might render their device incompatible) so it 
> should *never* be changed, only in case of a complete format overhaul, 
> FLAC 2.0 or something, which is probably never going to happen.

Also there is variable block size, which does help compression in most
situations. Josh added the flag for this to the bitstream format years
ago, but the feature was never actually implemented in libFLAC. Flake
uses a fairly simple algorithm based on the absolute sum of fixed
2nd-order residual compared across small block sections (1/8 blocksize),
using a threshold to determine whether to merge each section to the
previous one.

Flake at level 9 and 10 use variable block size and are still
subset-compliant.

-Justin



More information about the flac-dev mailing list