[flac-dev] Supporting 32 bit data
cterasa at googlemail.com
Sun Sep 27 03:55:39 PDT 2015
On 9/26/2015 9:22 AM, Erik de Castro Lopo wrote:
> Hi all,
> I just noticed this:
> a request for support of 32 bit audio data. The request has been around
> since 2008.
> Had two inial impressions:
> * Would adding this break brackwards compatibility too badly? Obviously
> decoding of 32 bit encoded data would not work with older versions of
16bit/24 bit files encoded with the "new" encoder would be playable in
old decoders, right? So backwards compatibility is not really broken,
only for new 32 bit files, which will hopefully be rare.
How about implementing 32/64 bit support, but also creating a fork of
the project (FLAC32/64/etc.) at the same time? 32 bit files will get a
separate header/file extension, and will decode only with either the
"new" master branch decoder, or the "new" 32 bit decoder. Therefore it
will be crystal clear that this is a new "form" of FLAC, which is not
supported by the mainline decoder (at least not the old one). The 32 bit
decoder can be phased out later down the line when adoption of the "new"
mainline decoder has become ubiquitous. I know this is far from ideal,
but IMHO it's better than dealing with cases where projects/products
claim to have "FLAC support", but the user finds out he/she is unable to
play his 32 bit "FLAC" files. Like I said, usage will hopefully be rare,
especially as a delivery format.
On the other hand, nobody can expect FLAC to support everything that's
possible. I think it's perfectly fine to "stick" to 24 bits and lower.
> * This is nuts. 24 bits has a dynamic range of ~140dB which is roughly
> the difference between a quiet whisper in a quiet room, to the sound
> of a jet engine at 10 meters. Surely that is enough?
Professionals who want to use FLAC for archival might want to store the
data in the format they use in their DAW (though, arguably, if it's an
audio recording the data was not recorded with anything close to 32 bit,
not even 24 or 20 bit), so I see a "need" for that format. In reality
the data they store in the lower bits is pure noise. Ideally they set
the lower 12 bits to zero anyway, to make use of FLACs compression
efficiency (like, for example, lossyFLAC does), but I rather suspect
this results in badly compressible FLAC files, due to the fact that
they're mostly compressing noise.
More information about the flac-dev