commit | 3dbe2e03e77b3a0de5cb9068fcdcb6f194b3f8ae | [log] [tgz] |
---|---|---|
author | Zoltan Szabadka <szabadka@google.com> | Thu Apr 23 15:26:08 2015 +0200 |
committer | Zoltan Szabadka <szabadka@google.com> | Thu Apr 23 15:26:08 2015 +0200 |
tree | 270353f2553d6923914848bdb9adf73b59e1476b | |
parent | e42eaa097c23bd88937c4562366ef032b35e669e [diff] |
Encoder implementation using input/output classes. Add a BrotliCompress() method to the public encoder API that uses the BrotliIn and BrotliOut classes and use that in the 'bro' command-line tool. Use the streaming api in BrotliCompressBuffer() and BrotliCompressor::WriteMetaBlock(). Use the appropiate hashers for quality <= 9.
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.