Commit Graph

213 Commits

Author SHA1 Message Date
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
szabadka
762f9ba5a0 Merge pull request #95 from szabadka/master
Decoder optimizations for ARM architecture.
2015-05-07 17:13:06 +02:00
Zoltan Szabadka
5f39d607ef Decoder optimizations for ARM architecture. 2015-05-07 17:10:27 +02:00
szabadka
500c85acae Merge pull request #94 from szabadka/master
Speed and memory usage improvements for the decoder.
2015-05-07 17:00:58 +02:00
Zoltan Szabadka
83aa24dc86 Speed and memory usage improvements for the decoder.
* Change order of members of bit reader state structure.

* Remove unused includes for assert. Add BROTLI_DCHECK
  macros and use it instead of assert.

* Do not calculate nbits in common case of ReadSymbol.

* Introduce and use PREDICT_TRUE / PREDICT_FALSE macros.

* Allocate less memory in the brotli decoder if it knows
  the result size beforehand. Before this, the decoder
  would always allocate 16MB if the encoder annotated the
  window size as 22 bit (which is the default), even if the
  file is only a few KB uncompressed. Now, it'll only
  allocate a ringbuffer as large as needed for the result file.
  But only if it can know the filesize, it's not possible
  to know that if there are multiple metablocks or too large
  uncompressed metablock.
2015-05-07 16:53:43 +02:00
szabadka
47ea761869 Merge pull request #93 from szabadka/master
Don't do any block splitting for quality 1.
2015-04-28 10:14:55 +02:00
Zoltan Szabadka
0f726df1f1 Don't do any block splitting for quality 1. 2015-04-28 10:12:47 +02:00
szabadka
344ea8edb3 Merge pull request #92 from szabadka/master
Fix an error propagation bug in the decoder.
2015-04-28 10:08:52 +02:00
Zoltan Szabadka
fe14d7b32a Fix an error propagation bug in the decoder. 2015-04-28 10:07:12 +02:00
szabadka
4f902dccf4 Merge pull request #91 from szabadka/master
Fix the year on the copyright message.
2015-04-27 18:27:00 +02:00
Zoltan Szabadka
94bc27d87a Fix the year on the copyright message. 2015-04-27 18:25:59 +02:00
szabadka
5a1cf14116 Merge pull request #90 from szabadka/master
Change the expiration date and title of the -03 draft.
2015-04-27 18:12:55 +02:00
Zoltan Szabadka
fd4a048171 Change the expiration date and title of the -03 draft. 2015-04-27 18:12:09 +02:00
szabadka
29a72665c3 Merge pull request #89 from szabadka/master
Create -03 version of the internet draft.
2015-04-27 18:04:12 +02:00
Zoltan Szabadka
98bd88413a Create -03 version of the internet draft. 2015-04-27 17:52:21 +02:00
szabadka
f8bfe06821 Merge pull request #88 from szabadka/master
Remove the 'override' keyword from ~BrotliFileIn().
2015-04-23 16:44:35 +02:00
Zoltan Szabadka
99af4df8ea Remove the 'override' keyword from ~BrotliFileIn().
Apparently MSVS 2010 does not support this.
2015-04-23 16:43:38 +02:00
szabadka
977bec5159 Merge pull request #87 from szabadka/master
Remove quality parameter from bitstream writing functions.
2015-04-23 16:23:36 +02:00
Zoltan Szabadka
98539223f5 Remove quality parameter from bitstream writing functions.
Fix a few crashes related to some quality and param combinations.
2015-04-23 16:20:29 +02:00
szabadka
e94bddd013 Merge pull request #86 from szabadka/master
Add a static hash table based dictionary lookup to fast brotli.
2015-04-23 15:56:54 +02:00
Zoltan Szabadka
e91a4492c7 Add dictionary_hash.h to setup.py. 2015-04-23 15:55:43 +02:00
Zoltan Szabadka
fdfb19806b Add a static hash table based dictionary lookup to fast brotli. 2015-04-23 15:52:32 +02:00
szabadka
16a219bbc2 Merge pull request #85 from szabadka/master
Encoder support for new empty meta-block format.
2015-04-23 15:45:48 +02:00
Zoltan Szabadka
2fd80cdc9a Encoder support for new empty meta-block format.
Changed the parallel implementation to sync meta-blocks
to byte boundary by emitting empty meta-blocks.
2015-04-23 15:43:37 +02:00
szabadka
098c928864 Merge pull request #84 from szabadka/master
Fix entropy calculation.
2015-04-23 15:36:03 +02:00
Zoltan Szabadka
6d80610f03 Fix entropy calculation. 2015-04-23 15:35:16 +02:00
szabadka
5ea92475af Merge pull request #83 from szabadka/master
Encoder implementation using input/output classes.
2015-04-23 15:30:51 +02:00
Zoltan Szabadka
3dbe2e03e7 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.
2015-04-23 15:26:08 +02:00
szabadka
e42eaa097c Merge pull request #82 from szabadka/master
Add input and output classes for streaming compression.
2015-04-23 14:37:50 +02:00
Zoltan Szabadka
09aa9ca410 Add the streams.* files to Makefile and setup.py 2015-04-23 14:35:43 +02:00
Zoltan Szabadka
6a5303304e Add input and output classes for streaming compression. 2015-04-23 14:29:01 +02:00
szabadka
ec03509d6d Merge pull request #81 from szabadka/master
Add params to disable static dictionary and context modeling.
2015-04-23 13:55:38 +02:00