mirror of https://github.com/google/brotli
![]() In the following three cases we allow more choices for the compressor, which can potentially lead to less compressed bits. (1) Allow brotli streams where the block counts do not count down to exactly zero at the end of the meta-block. This makes it possible for compressors to sometimes choose a block count which can be represented with less bits than the exact block count. (2) Remove the restriction that prefix code descriptions with exactly one non-zero length symbol in the code length alphabet must have 1 bit depth. This is because bit depth 1 requires the most bits to encode. (3) Allow any copy length value in the last command where the copy part is ignored. This makes it possible for a compressor to choose a copy length which can be represented with the least amount of bits. In addition to the changes above, this commit also has a wording clarification in the overview section where the use of the 'context ID' expression is changed to be consistent with the rest of the specification, i.e. that it is a function of the last two literals or the copy length. |
||
---|---|---|
dec | ||
docs | ||
enc | ||
python | ||
tests | ||
tools | ||
.gitignore | ||
LICENSE | ||
README.md | ||
setup.py | ||
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.