[flac-dev] FLAC 1.2.0 backwards-compatibility break not in changelog?
Martijn van Beurden
mvanb1 at gmail.com
Sat May 4 05:17:28 PDT 2013
On 04-05-13 12:41, Erik de Castro Lopo wrote:
> Miroslav Lichvar wrote:
>
>> On Thu, May 02, 2013 at 09:31:25PM +0200, Martijn van Beurden wrote:
>>> I don't know why this isn't on the changelog, but it is probably still a
>>> good idea to add it. This only breaks compatibility for 24-bit streams.
>>> (So: decoders older than 1.2.0 might not be able to decode 24-bit FLAC
>>> files made by libFLAC 1.2.0 or newer)
>> Interesting, I remember there were some problems with 24-bit encoding,
>> but I wasn't sure if/how it was fixed. It seems the encoding support
>> was actually added later in 1.2.1, so there was a short time for
>> adoption of the new decoder. It should be added to the changelog.
> It's still a bit of a mystery to me what should be added. Clues?
In short: FLAC 1.2.0 added the RICE2 residual coding method
(http://flac.sourceforge.net/format.html#partitioned_rice2) to the
format and the decoder, but this wasn't in the changelog. This breaks
forward compatibility for 24-bit files
RICE2 was added because when trying to encode a 24-bit file the residual
wouldn't fit in the rice partition (sorry if I worded that wrong, I'm
not sure of my math there) and the encoder fell back to verbatim frames,
which wasn't very efficient. The new rice partition has one bit more for
encoding the rice parameter. It /seems/ this only affects 24-bit files,
as I haven't seen a RICE2 partition with 16-bit files (not even on noise
with --disable-verbatim-subframes) but I don't know whether this is hard
coded somewhere or by design.
Anyway, I would to the changelog under *1.2.0 -> FLAC format* the following
- Added a new residual coding method
(RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) to code 24-bit files more
efficiently
To *1.2.0 -> libraries* I would add
- Added support for decoding the new residual coding method
(RESIDUAL_CODING_METHOD_PARTITIONED_RICE2)
To *1.2.1 -> libraries* I would add
- Added support for encoding the residual coding method introduced in
libFLAC 1.2.1 (RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) which will
encode 24-bit files more efficiently
Hope that helps
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20130504/b24e11e1/attachment.htm
More information about the flac-dev
mailing list