While preparing for working on old APE versions support I finally got courage to try and trace all changes for different versions. So here’s the list of internal versions and the changes they introduced:
- 0000 â€” the reference version for all prehistoric version. Before version 0000 it was fine, then it all got worse IMO.
- 3320 â€” changes in the filters
- 3600 â€” changes in the filters
- 3700 â€” changes in the filters
- 3800 â€” blocks per frame changed for extra high compression level; changes in the filters (yawn)
- 3810 â€” frame start at byte boundaries now
- 3820 â€” special codes extension (signalled by top bit of CRC set to one)
- 3830 â€” filter lengths and some implementation details changed
- 3840 â€” CRC calculation algorithm changed a bit
- 3870 â€” significant changes in residue coding
- 3890 â€” small changes in residue coding
- 3900 â€” residue coding format has changed seriously.
- 3910 â€” small change in the residue coding (more than 16 bit values can be coded now)
- 3930 â€” significantly changed format introduced (both filtering and coding scheme were changed)
- 3950 â€” filter format changed a bit (and insane compression mode is added somewhere after that), blocks per frame is changed too
- 3960 â€” some small and compatible change in the bitstream (consuming two last bytes or not)
- 3980 â€” file format is changed a bit; filtering process has changed a bit too.
- 3990 â€” the latest (known) format. Residue coding has changed.
Do you still wonder why I strongly dislike this format?