Brotli compression format
Go to file
Zoltan Szabadka 5b80ef0fd1 Change the specification to be less strict in some cases.
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.
2015-04-22 12:08:16 +02:00
dec Update the previous two bytes when decoding an 2015-04-01 16:23:18 +02:00
docs Change the specification to be less strict in some cases. 2015-04-22 12:08:16 +02:00
enc Limit the max input meta-block size to 16MB. 2015-04-02 11:12:04 +02:00
python [python] fix unbuffered binary mode for I/O streams in Windows pypy 2015-04-16 12:41:40 +01:00
tests Add more test cases. 2015-01-13 16:42:35 +01:00
tools Add the current version of the brotli specification. 2015-04-07 16:58:07 +02:00
.gitignore Add .gitignore file 2014-11-22 17:00:36 +02:00
LICENSE Add brotli decompressor 2013-10-11 10:26:07 +02:00
README.md Add top-level README file. 2014-10-14 13:08:35 +02:00
setup.py [python] moved setup.py to the root of repository 2015-03-31 09:30:56 +01:00
shared.mk Add more test cases. 2015-01-13 16:42:35 +01:00

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.