Clarify simple and complex prefix codes

* At the beginning of the simple prefix code section, telling us that "a value
of 1 indicates the number of leading zeros" is not very helpful. Instead, it
should indicate that it means a complex prefix code and point the reader to
the relevant section (which repeats this information in more detail)

* Clearly indicate that reusing a value is an error! This seems to be the
behavior of the of the reference implementation.

* Clarify what the termination conditions are while reading the prefix codes.
Also, indicate that it is an error if the prefix tree is over-subscribed or
under-subscribed.

* Clearly state what is the maximum number of individual symbols that may be
read. This ensures that it is forbidden to an stream that continually says that
the symbols have zero length.
1 file changed
tree: 4108626f00b905ff056e70817efe0c8109cf51ba
  1. appveyor/
  2. dec/
  3. docs/
  4. enc/
  5. python/
  6. tests/
  7. tools/
  8. .gitignore
  9. .gitmodules
  10. .travis.yml
  11. appveyor.yml
  12. CONTRIBUTING.md
  13. LICENSE
  14. README.md
  15. setup.py
  16. shared.mk
README.md

brotli

Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

The specification of the Brotli Compressed Data Format is defined in the following internet draft: http://www.ietf.org/id/draft-alakuijala-brotli

Brotli is open-sourced under the Apache License, Version 2.0, see the LICENSE file.

Brotli mailing list: https://groups.google.com/forum/#!forum/brotli