Commit Graph

76 Commits

Author SHA1 Message Date
Zoltan Szabadka
fab601e81f Fix encoder compilation error on MSVS 2010.
As reported by @anthrotype, log2() is missing from MSVS 2010.
This patch uses log() and a multiplication in FastLog2()
for _MSV_VER <= 1600 and uses FastLog2() in literal_cost.cc
instead of log2().
2015-02-27 16:04:43 +01:00
szabadka
e60b7b846a Merge pull request #30 from szabadka/master
Implement a 32-bit bitstream decoder + visual studio support
2015-02-25 18:40:17 +01:00
Zoltan Szabadka
f0b88cbcdb Fixes to the encoder to support visual studio.
Changes suggested by @r-lyeh and @anthrotype.

 - Use a portable simple PRNG instead of rand_r()
 - add missing <assert.h> include
 - disambiguate log2() argument type
 - remove endian.h include from write_bits.h
2015-02-25 18:19:51 +01:00
Zoltan Szabadka
6da0c5c992 Implement a 32-bit bitstream decoder.
The 64-bit bitstream decoder seems to have portability problems
with emscripten/asm.js as it does not compile into working code.
2015-02-25 13:32:17 +01:00
szabadka
ff218b18b4 Merge pull request #29 from szabadka/master
Fully qualify std::max_element, std::push_heap and std::pop_heap names.
2015-02-25 10:31:52 +01:00
Zoltan Szabadka
5bc56a17ee Fully qualify std::max_element, std::push_heap and std::pop_heap names. 2015-02-25 10:29:24 +01:00
szabadka
c0d7498031 Merge pull request #28 from szabadka/master
Speed up FindMatchLength for non-x86 64-bit targets.
2015-02-25 10:27:14 +01:00
Zoltan Szabadka
e643328a7a Speed up FindMatchLength for non-x86 64-bit targets.
This CL enables 64-bit optimization for non-x86 target.
2015-02-25 10:24:13 +01:00
szabadka
c7b9821f37 Merge pull request #26 from szabadka/master
Fix a sign-conversion warning in the decoder.
2015-02-24 11:35:01 +01:00
Zoltan Szabadka
68d63f5966 Fix a sign-conversion warning in the decoder. 2015-02-24 11:22:29 +01:00
szabadka
35cd3db9c1 Merge pull request #25 from irori/sign-compare
Make decoder code warning-free
2015-02-24 10:41:41 +01:00
Kunihiko Sakamoto
65d655dad5 Compile decoder with -Wall flag
This also fixes two "comparison between signed and unsigned" warnings.
2015-02-24 17:48:26 +09:00
szabadka
cb0ca3a3c6 Merge pull request #17 from khaledhosny/master
Add Python bindings
2015-01-28 10:18:34 +01:00
Khaled Hosny
11306237f4 Add Python bindings 2015-01-24 11:56:43 +02:00
szabadka
93049d96e7 Merge pull request #23 from szabadka/master
Add more test cases.
2015-01-13 16:44:13 +01:00
Zoltan Szabadka
1d76397891 Add more test cases. 2015-01-13 16:42:35 +01:00
szabadka
7e350cd4a7 Merge pull request #21 from szabadka/master
Fix undefined behavior in decoder.
2014-11-26 12:12:20 +01:00
Zoltan Szabadka
4278934e82 Fix undefined behavior in decoder.
Use memmove() for copying overlapping buffers.
2014-11-26 10:37:33 +01:00
szabadka
50b4f4e6b3 Merge pull request #20 from szabadka/master
Remove unneeded malloc.h header.
2014-11-24 16:21:58 +01:00
Zoltan Szabadka
66f6b66c88 Remove unneeded malloc.h header. 2014-11-24 16:20:22 +01:00
szabadka
88c073594f Merge pull request #18 from khaledhosny/gitignore
Add .gitignore file
2014-11-24 10:20:04 +01:00
Khaled Hosny
9efdff7f70 Add .gitignore file 2014-11-22 17:00:36 +02:00
szabadka
94000f6490 Merge pull request #16 from szabadka/master
Add command-line tool and tests.
2014-11-17 15:40:22 +01:00
Zoltan Szabadka
ac455c50f4 Improvements to the command-line tool.
- Don't read the whole input to memory.
- Support reading from stdin and writing to stdout.
2014-11-17 15:31:00 +01:00
Zoltan Szabadka
e1739826c0 Add command-line tool and tests. 2014-10-30 13:59:37 +01:00
szabadka
6b9ce4dfab Merge pull request #15 from szabadka/master
Disable transforms in the encoder by default.
2014-10-29 17:09:47 +01:00
Zoltan Szabadka
96d04e53d7 Disable transforms in the encoder by default.
This change reduces the startup-time of the encoder considerably.
2014-10-29 15:39:35 +01:00
szabadka
6e9e963972 Merge pull request #14 from szabadka/master
Allow use of inline keyword in c++/c99 mode.
2014-10-28 14:44:24 +01:00
Zoltan Szabadka
dd6237b0e8 Allow use of inline keyword in c++/c99 mode. 2014-10-28 14:43:15 +01:00
szabadka
37aa5e05c0 Merge pull request #13 from szabadka/master
Fix potential output buffer overflow in encoder.
2014-10-28 14:06:46 +01:00
Zoltan Szabadka
485ad82e94 Fix potential output buffer overflow in encoder. 2014-10-28 14:05:53 +01:00
szabadka
2f35ffd77a Merge pull request #12 from szabadka/master
Decoder code cleanup.
2014-10-28 14:02:06 +01:00
Zoltan Szabadka
460dda1b50 Decoder code cleanup.
1) Use a tighter upper bound on the Huffman table size.
2) Remove unused argument len in ToUpperCase.
3) Remove unused no-op assignment in BrotliDecompress.
4) Fix include guard name.
2014-10-28 13:57:46 +01:00
szabadka
43a8d591f0 Merge pull request #11 from szabadka/master
Move the context map encoding function to the brotli_bit_stream library.
2014-10-28 13:49:32 +01:00
Zoltan Szabadka
0428f2d1bd Move the context map encoding function to the brotli_bit_stream library. 2014-10-28 13:47:21 +01:00
szabadka
d0d6f1bda4 Merge pull request #10 from szabadka/master
Make the histogram clustering function more generic.
2014-10-28 13:38:14 +01:00
Zoltan Szabadka
f321ba1964 Make the histogram clustering function more generic.
Change the template parameter to be the histogram class
instead of the alphabet size of the histogram.
2014-10-28 13:36:21 +01:00
szabadka
c6c08e492e Merge pull request #9 from szabadka/master
New version of the backward reference search code.
2014-10-28 13:33:33 +01:00
Zoltan Szabadka
b4f39bf540 New version of the backward reference search code.
The new	interface of the backward reference search
function makes it possible to use it in	a streaming
manner.

Using the advanced cost model and static dictionary
can be turned on/off by	template parameters.

The distance short codes are now computed as part of
the backward reference search.

Added a	faster version of the Hasher.
2014-10-28 13:25:22 +01:00
szabadka
f580616386 Merge pull request #8 from szabadka/master
Minor tuning of encoder heuristics.
2014-10-28 12:54:47 +01:00
Zoltan Szabadka
03b20347e1 Minor tuning of encoder heuristics. 2014-10-28 12:50:33 +01:00
szabadka
8102921a7c Merge pull request #7 from szabadka/master
Fix storing of the meta-block header for last empty meta-block.
2014-10-28 12:10:55 +01:00
Zoltan Szabadka
ca8c2890aa Fix storing of the meta-block header for last empty meta-block. 2014-10-28 12:09:18 +01:00
szabadka
618ea06821 Merge pull request #6 from szabadka/master
Move the block switch storing functions to the brotli_bit_stream library...
2014-10-28 12:03:34 +01:00
Zoltan Szabadka
467e6eef80 Move the block switch stroing functions to the brotli_bit_stream library. 2014-10-28 11:53:52 +01:00
szabadka
fd64d1f35a Merge pull request #3 from szabadka/encoder
Factor out serialization functions into their own file.
2014-10-28 11:19:18 +01:00
szabadka
c62fa2116f Merge pull request #2 from szabadka/decoder
Fix BrotliDecompressedSize() to work for an uncompressed plus an empty meta-block.
2014-10-27 17:36:07 +01:00
Zoltan Szabadka
39cde017e6 Fix TODO markups. 2014-10-15 14:14:34 +02:00
Zoltan Szabadka
d6d9fc60e1 Factor out serialization functions into their own file.
Create a brotli_bit_stream library that is responsible for writing
various structures (headers, Huffman codes, etc.) directly into the
bit-stream.
2014-10-15 14:01:36 +02:00
Zoltan Szabadka
79d2b89d2d Fix BrotliDecompressedSize() to work for an uncompressed plus an empty meta-block. 2014-10-15 13:41:00 +02:00