Commit Graph

244 Commits

Author SHA1 Message Date
Zoltan Szabadka
b43df8f699 Brotli custom LZ77 dictionary support.
Adds functions to prepend such dictionary to the
encoder and decoder, and twiddles their internal
parameters to do as if that was a previous part of
the input. This dictionary is just a prefilled LZ77
window, it is not related to the built in transformable
brotli dictionary.
2015-06-12 15:43:54 +02:00
szabadka
631184d40c Merge pull request #113 from szabadka/master
Speedups to brotli quality 11.
2015-06-12 15:32:31 +02:00
Zoltan Szabadka
667f70adcb Speedups to brotli quality 11.
* Cluster at most 64 histograms at a time in the first
    round of clustering.

  * Use a faster histogram cost estimation function.

  * Don't compute the log2(total) multiple times in the
    block splitter.
2015-06-12 15:29:06 +02:00
szabadka
af09ee7344 Merge pull request #112 from szabadka/master
Speedups and fixes to the decoder.
2015-06-12 15:14:13 +02:00
Zoltan Szabadka
641bc15882 Speedups and fixes to the decoder.
* Read data by 4-byte runs.
    This resolves unaligned read (Bus error) on arm-android.

  * Get rid of malloc/free in BrotliBuildHuffmanTable.

  * Tweak order of instructions when reading Huffman codes.
2015-06-12 15:12:23 +02:00
lvandeve
e0510a828e Update README.md 2015-06-12 14:31:47 +02:00
szabadka
996ec28993 Merge pull request #111 from szabadka/master
Create -04 version of the internet draft.
2015-05-11 17:22:04 +02:00
Zoltan Szabadka
ea35936816 Change the expiration date and title of the -04 draft. 2015-05-11 17:04:13 +02:00
Zoltan Szabadka
14ea2b5805 Create -04 version of the draft. 2015-05-11 17:03:35 +02:00
szabadka
6ee61e78c8 Merge pull request #110 from anthrotype/test_quality
[roundtrip_test.py] repeat test at different quality (1, 6, 9, 11)
2015-05-11 15:15:55 +02:00
Cosimo Lupo
e356b9bc2f [roundtrip_test.py] repeat test at different quality (1, 6, 9, 11) 2015-05-11 14:12:37 +01:00
szabadka
682facef7b Merge pull request #109 from szabadka/master
Expose the quality parameter to the bro.cc tool.
2015-05-11 14:15:05 +02:00
Zoltan Szabadka
8d83839ac2 Expose the quality parameter to the bro.cc tool. 2015-05-11 14:14:05 +02:00
szabadka
463ceda563 Merge pull request #108 from szabadka/master
Use the same hasher for text and font mode.
2015-05-11 14:12:24 +02:00
Zoltan Szabadka
6622355a9a Use the same hasher for text and font mode.
We use 4-byte hashing in both and look for length 3
matches separately.
2015-05-11 14:11:07 +02:00
szabadka
6bb4316280 Merge pull request #107 from szabadka/master
Fix broken quality 0, make it same as quality 1.
2015-05-11 13:52:54 +02:00
Zoltan Szabadka
cc8d64dfec Fix broken quality 0, make it same as quality 1. 2015-05-11 13:51:47 +02:00
szabadka
cc211b92f1 Merge pull request #105 from anthrotype/newparams
[python] expose new encoder parameters as kwargs of brotli.compress
2015-05-11 13:36:43 +02:00
Cosimo Lupo
c93c0dab92 [bro.py] use brotli.MODE_GENERIC as default compression mode;
remove additional low-level parameters
2015-05-11 11:10:48 +01:00
Cosimo Lupo
aa6f7d8f0c [brotlimodule] add MODE_GENERIC constant 2015-05-11 11:09:36 +01:00
Cosimo Lupo
b7e8291788 [bro.py] remove debug print 2015-05-11 10:39:29 +01:00
Cosimo Lupo
4106a406d0 [bro.py] use new optional encoder parameters when compressing;
modified the help string to include the new parameters.
2015-05-11 10:39:28 +01:00
Cosimo Lupo
32c44ec87d [bro.py] use argparse instead of getopt 2015-05-11 10:39:26 +01:00
Cosimo Lupo
3351bb08e3 [brotlimodule] apply uniform docstring style 2015-05-11 10:39:24 +01:00
Cosimo Lupo
6d935db75c [brotlimodule] add quality, lgwin and lgblock parameters 2015-05-11 10:39:23 +01:00
Cosimo Lupo
dbcb32614a [brotlimodule] add enable_context_modeling parameter (defaults to True) 2015-05-11 10:39:21 +01:00
Cosimo Lupo
4c1d06931e [brotlimodule] add new keyword params docstring of brotli.compress 2015-05-11 10:39:20 +01:00
Cosimo Lupo
6264bea2e4 [brotlimodule] add greedy_block_split parameter (defaults to False);
renamed variables: transform -> enable_transforms, dictionary -> enable_dictionary
2015-05-11 10:39:18 +01:00
Cosimo Lupo
b2eba122c8 [brotlimodule] add enable_dictionary parameter (defautls to True) 2015-05-11 10:39:17 +01:00
Cosimo Lupo
89c74d6859 [brotlimodule] use keyword arguments for mode and enable_transforms;
update brotli.compress docstring accordingly
2015-05-11 10:39:15 +01:00
szabadka
621cd0cf04 Merge pull request #106 from szabadka/master
Add a MODE_GENERIC compression mode to the interface.
2015-05-11 11:34:39 +02:00
Zoltan Szabadka
aa853f3cbc Add a MODE_GENERIC compression mode to the interface.
With this the users can distinguish between not knowing
what the input is (ddefault) and knowing that it is text,
and thus can be relied on to force some UTF-8 specific settings.
2015-05-11 11:33:19 +02:00
szabadka
288f70d7ea Merge pull request #104 from anthrotype/py3split
[python] fix compatibility_test.py with Python 3
2015-05-08 11:11:22 +02:00
Cosimo Lupo
e6913b2e78 [python] use built-in split instead of 'string' module for py23
In python3, the 'string' module no longer has a 'split' function.
2015-05-08 10:06:18 +01:00
szabadka
4e94277e9d Merge pull request #103 from szabadka/master
Handle multiple compressed files per original in the test.
2015-05-07 20:46:40 +02:00
Zoltan Szabadka
10a2f3745a Handle multiple compressed files per original in the test.
Add some more test cases that decompress to the empty
file or a one byte long file. These test cases have
examples for the updated stream header and meta-block
header formats.
2015-05-07 20:43:01 +02:00
szabadka
7ee6449b83 Merge pull request #102 from szabadka/master
Restrict the ARM optimizations to little endian architectures.
2015-05-07 20:37:22 +02:00
Zoltan Szabadka
bef6938af7 Restrict the ARM optimizations to little endian architectures. 2015-05-07 20:36:35 +02:00
szabadka
14c571ca0b Merge pull request #101 from szabadka/master
Add an Acknowledgements section to the spec.
2015-05-07 20:11:15 +02:00
Zoltan Szabadka
78350a9135 Add an Acknowledgements section to the spec. 2015-05-07 20:10:22 +02:00
szabadka
f0500266c8 Merge pull request #100 from szabadka/master
Fix 32bit build.
2015-05-07 19:47:14 +02:00
Zoltan Szabadka
f3e71e441e Fix 32bit build. 2015-05-07 19:45:21 +02:00
szabadka
7c277c3ef7 Merge pull request #99 from szabadka/master
Support window bits 10 - 15 in the decoder.
2015-05-07 17:45:18 +02:00
Zoltan Szabadka
54f69c9ef7 Support window bits 10 - 15 in the decoder.
The previous window bit value 17 is used to
extend the range, since it has not been used
in any previous encoders.
2015-05-07 17:44:33 +02:00
szabadka
7bbfd5df95 Merge pull request #98 from szabadka/master
Align distance code meaning in the brotli encoder.
2015-05-07 17:41:11 +02:00
Zoltan Szabadka
12eb9bfd70 Align distance code meaning in the brotli encoder.
Two different definitions (offset by 1) were used in
command.h and hash.h. Now they have been made the same,
also consistent with the spec (e.g. 0 means use previous dist, etc...)
2015-05-07 17:40:00 +02:00
szabadka
fa2c6df4f5 Merge pull request #97 from szabadka/master
Faster encoding for low quality settings.
2015-05-07 17:36:37 +02:00
Zoltan Szabadka
7cde616c9e Faster encoding for low quality settings.
With this commit, the encoder will skip some
compression optimization steps for quality <= 4,
which results in faster compression but higher
compressed sizes.
2015-05-07 17:30:10 +02:00
szabadka
e4a309ac07 Merge pull request #96 from szabadka/master
Use a static context map with two buckets for UTF8 data.
2015-05-07 17:24:12 +02:00
Zoltan Szabadka
945b0d025f Use a static context map with two buckets for UTF8 data.
Enabled for quality >= 4, and if there are no obvious
UTF8 violations detected.
For each block, we gather two separate histograms, one
for continuation bytes and one for ASCII or lead bytes.
2015-05-07 17:23:07 +02:00