[flac-dev] 64-bit residuals

Martijn van Beurden mvanb1 at gmail.com
Wed Mar 30 14:02:11 UTC 2022


Op wo 30 mrt. 2022 om 11:03 schreef Miroslav Lichvar <mlichvar at redhat.com>:
> I think that should apply only to <=24 bits. If I understand it
> correctly, with 32 bits it would be a real limitation, not hit only
> with specifically crafted encodings.
>
> [...]
>
> No, that doesn't seem acceptable to me.
>

One added advantage of setting both limits for 32-bit encodings (not
allowing stereo decorrelation and limiting residuals to 32-bit) is
that libFLAC from 1.2.1 onwards and ffmpeg since May 2015 are
"forward-compatible". ffmpeg actually needs limiting the residual to
31-bits for that to work. A working patch for the ffmpeg FLAC encoder
can be found here:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220108142437.756529-1-mvanb1@gmail.com/
In fact, the files generated with this patch play on a few hardware
devices I tested them with that use a libFLAC-derived decoder.

Granted, it won't provide the best possible compression, but 32-bit
PCM is itself already an extremely inefficient format. So I think the
choice here is between slightly better compression and a simpler
encoder versus backward compatibility with a lot of decoders and no
added decoder complexity.

> The intended status of the current FLAC draft is informational, so
> there doesn't have to be any existing implementation that supports all
> bit depths, right?

Actually, the intended status was indeed information in the last few
drafts, but this will be changed back to standards track, as it was in
the first few drafts.


More information about the flac-dev mailing list