Add "zopfli"-style backward reference search to brotli.

This commit adopts the backward reference search algorithm
from the zopfli project (see https://github.com/google/zopfli)
to brotli.

This slower backward reference search is run only in quality 11
and it runs two iterations of entropy cost modeling and
shortest path search.

As a result, the original backward reference search function can
be simplified a bit, since we can remove some heuristics that were
replaced with the zopfli-style search.
5 files changed
tree: dae7f929c88fc1ce3df4124dbc70ee466c18f86f
  1. dec/
  2. docs/
  3. enc/
  4. python/
  5. tests/
  6. tools/
  7. .gitignore
  8. LICENSE
  9. README.md
  10. setup.py
  11. 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