kc3-lang/brotli/enc

Branch :


Log

Author Commit Date CI Message
801f5f37 2016-08-22 13:28:22 * rename macros with preceding underscore * add Brotli*TakeOutput methods * * flushing now doesn't require additional call * add Brotli*Version methods * moved public headers to 'public' directory * removed C++ API * do not assume STDC_VERSION is defined
e0af054d 2016-07-27 11:02:27 Fix ubsan warning.
058cd1ac 2016-07-26 14:51:51 cleanup
20481890 2016-07-26 14:41:59 Update encoder: * booleanification * integer BR scores, may improve performance if FPU is slow * condense speed-quality constants in quality.h * code massage to calm down CoverityScan * hashers refactoring * new hasher - improved speed, compression and reduced memory usage for q:5-9 w:10-16 * reduced static recources -> binary size
52ff8171 2016-06-24 15:32:51 Update build systems
6a078b17 2016-06-20 17:20:17 Update encoder * reorganize premake artifacts * remove deprecated methods/struct
378485b0 2016-06-16 10:52:57 Update build system. Now libraries are produced as build artifacts. There are currently 3 ways to build: * Easy: `./configure; make` * Simple: use Bazel * Portable: use premake5 to generate XCode / MSVS projects
629d01cc 2016-06-15 14:25:46 Restore C++ constants in "brotli" namespace. Signed-off-by: Piotr Sikora <piotrsikora@google.com>
e208eff3 2016-06-14 13:54:11 Fix: declare variables before code
986aa099 2016-06-14 13:42:47 Fix VS compilation warnings; cleanup API.
048b14c6 2016-06-13 16:46:25 Fix declaration / instruction mixture
999a3ce9 2016-06-13 16:44:52 Fix implicit 32->64 bit conversion
514941ad 2016-06-13 16:30:17 Fix implicit 32->64 bit conversion
7d928f47 2016-06-13 16:28:19 Fix implicit 32->64 bit conversion
3bb19efb 2016-06-13 15:54:57 Fix double constant literal
d7d59462 2016-06-13 15:50:15 Backport MSVC log2 fix
918ddd31 2016-06-13 15:40:45 Fix kInfinity definition INFINITY is legal only in C++11
3ccbf05d 2016-06-13 11:01:04 Convert encoder to plain C.
c2a9b2d2 2016-06-03 16:29:37 Step 3: change file extension C++ -> C This will break the build.
58a3023e 2016-06-03 11:19:23 Transform most of C++ comments to C-style.
f1c9ab29 2016-06-03 10:51:04 Extract common parts: constants, dictionary, etc.
e96b7db0 2016-06-14 13:54:11 Fix: declare variables before code
be1a53a6 2016-06-14 13:42:47 Fix VS compilation warnings; cleanup API.
48da49b0 2016-06-13 16:46:25 Fix declaration / instruction mixture
40101bb9 2016-06-13 16:44:52 Fix implicit 32->64 bit conversion
85712c66 2016-06-13 16:30:17 Fix implicit 32->64 bit conversion
a08c36bd 2016-06-13 16:28:19 Fix implicit 32->64 bit conversion
bc7f0f83 2016-06-13 15:54:57 Fix double constant literal
8d14bed2 2016-06-13 15:50:15 Backport MSVC log2 fix
18dc8eab 2016-06-13 15:40:45 Fix kInfinity definition INFINITY is legal only in C++11
b972c677 2016-06-13 11:01:04 Convert encoder to plain C.
582ecab3 2016-06-03 16:29:37 Step 3: change file extension C++ -> C This will break the build.
352b0b28 2016-06-03 11:19:23 Transform most of C++ comments to C-style.
02829186 2016-06-03 10:51:04 Extract common parts: constants, dictionary, etc.
a33fc249 2016-06-01 10:29:15 Fix
7fd82d46 2016-05-28 12:12:20 Fix an unitialized variable warning in encode.cc
f40caec7 2016-05-18 11:13:01 Fix C -> C++
8c5ab0f3 2016-05-18 11:04:50 Make encoder API more safe Track and use "last_block_emitted" state flag
226d21c4 2016-05-18 11:01:16 Make encoder API more safe Add flag to check if "last" block has been already processed
d9a268c6 2016-04-22 10:55:31 Fix compilation with VS2012
e7e38498 2016-04-19 16:29:10 Update decoder. Add encoder interface wrapper. * condense printf in port.h; use BROTLI_LOG everywhere * mark non-exported functions with BROTLI_INTERNAL * use BROTLI_DUMP instead of (void)(BROTLI_FAILURE()) * fix problems with CustomDictionary * make decode.h independent of state.h * fix "double-new-lines" * fix some strict compilation warnings * fix bro.cc compilation for MSVS * added compressor.h as a replacement for encode.h + streams.h
501cb861 2016-03-18 19:18:59 Fix build with -Wmissing-declarations. While there, add -Wmissing-prototypes and -Wmissing-declarations to shared.mk in order to catch similar errors in the future. Signed-off-by: Piotr Sikora <piotrsikora@google.com>
846575ff 2016-03-15 11:13:07 Fix TODO formatting.
b820c39b 2016-03-15 10:50:16 Reduce memory usage of brotli encoder at quality 10 and 11.
25e3796f 2016-02-29 14:41:24 Fix most of ()->(void) and some missing includes.
dbb53e64 2016-01-27 09:50:39 Use a hash-to-binary-tree data structure for quality 11 as suggested by Issue #180.
14d6ae74 2016-01-26 11:25:53 Reorder members of the Command struct plus fix some warnings. This may save 8 bytes of padding per Command (32 -> 24 bytes).
82c9e197 2016-01-12 14:45:35 Relax the prerequisites of WriteBrotliData(). Instead of returning false, if it is called with no new input for a non-last block, just check if it has any already processed data to flush, and if not, return true with empty output.
b4c223cf 2016-01-11 12:17:44 Add missing headers.
417107b3 2016-01-11 11:21:42 Add two more fast modes to the brotli compressor. The new modes process the input data in independent blocks, using backward references only from within an input block. The new modes can be used by specifying quality 0 or quality 1, the old quality 1 and quality 2 modes are renamed quality 2 and quality 3, respectively, and the old quality 3 mode is removed.
1bf1b0a5 2016-01-08 10:10:22 Faster entropy coding phase for quality 1. In quality 1, use static Huffman codes for distance and command histograms with <= 128 symbols and dynamic Huffman codes with static code length codes for the other histograms.
4dd9114c 2016-01-07 17:10:34 Partial Hasher initialization for small input data. This increases compression speed of very small files (< 1KB) for quality <= 3.
8844b7f0 2016-01-07 16:27:49 Fix more conversion warnings.
24ffa784 2015-12-11 11:11:51 Fix headers
bc5da25a 2015-12-09 16:25:06 Merge pull request #272 from eustas/master Upgrade license to MIT.
901cd82f 2015-12-04 16:09:40 Fix WriteMetadata (unaligned and out-of-bounds write).
771eb107 2015-11-27 11:27:11 Update license statement in source files.
bb26d191 2015-11-23 11:05:12 Fix sign-comparison warnings + add more debug runtime checks + minor cleanup
152e33c3 2015-11-17 13:45:41 Add more explicit type conversions. Remove dead code. Fix includes.
8d061836 2015-11-12 20:13:58 Fix assertion in 32-bit build.
ea48ce5a 2015-10-28 17:44:47 Fix --Wconversion and --pedantic-erros for the encoder.
a89b57b9 2015-10-26 17:08:57 Use uint32_t positions in the hasher and compute distances modulo 2^32.
d2e857d8 2015-10-23 11:19:04 Fix integer overflow and slowness in entropy estimation.
2a1a1f72 2015-10-21 19:54:35 Remove useless BrotliCompressor instantiation in BrotliCompressBuffer
512b9b8a 2015-10-11 13:03:51 Remove 'static' from kBitCostThreshold declaration.
2726b8a4 2015-10-06 11:23:44 Encoder fixes. * Remove default constructors. * Initialize bit_cost in histogram.Clear(). * Check fseek result in FileSize. * Replace malloc in BrotliFileIn constructor with "new". * Catch bad_alloc in bro tool.
66fa4ff4 2015-10-01 16:25:21 [types.h] make std ints types for _MSC_VER compatible with CFFI As defined in _cffi_include.h: https://bitbucket.org/cffi/cffi/src/21fef94ca0c88a16b007fb495806d0371b7f878d/cffi/_cffi_include.h?at=default&fileviewer=file-view-default#_cffi_include.h-15
b39eec88 2015-10-05 11:43:49 Remove C++11 vector::data() calls from encoder.
99aae450 2015-10-05 11:43:31 Initialize min_cost_cmd_ in constructor.
b6689b15 2015-10-05 11:42:45 Remove unnecessary branch from literal cost calculation.
0477473b 2015-10-02 13:22:15 Merge pull request #184 from IIoTeP9HuY/master Support large inputs/outputs in memory adaptors
754deaed 2015-10-01 17:08:59 Reduce command buffer memory usage.
4c37566f 2015-10-01 15:10:42 Move literal cost computation to where it's used. Move utf8 heuristics functions to their own file.
3b8bef70 2015-10-01 14:30:22 Add extern "C" linkage to the encoder and decoder dictionary definitions.
d4cc4f8f 2015-10-01 13:08:43 Define the encoder dictionary in the .cc file and link only once.
4a7024dc 2015-10-01 12:08:14 Make the brotli encoder C++98 compatible.
dfdf2dd4 2015-10-01 11:40:05 Encoder bug fixes. * Fix forward declaration mismatch. * Fix division by zero in 64X test. * Avoid shadowing of variables in encoder.
08e98d8d 2015-09-28 16:03:51 Support large inputs/outputs in memory adaptors
21ac39f7 2015-09-21 21:04:07 Fix typos.
b58317a6 2015-09-01 12:18:41 Fix bug in encoder.
6511d6b0 2015-08-28 16:09:23 update brotli encoder with latest improvements
7de70dbc 2015-08-11 11:09:04 Add missing <stdlib.h> to streams.cc
17ed2589 2015-08-10 13:13:58 msan bugfixes to the brotli encoder
29c26795 2015-07-30 17:42:02 Fix encoder bug. Under some circumstances CopyLiteralsToByteArray tried to read begind ringbuffer. In this patch we force it to read completely from range [0..mask]
95ddb48a 2015-06-29 14:20:25 Fix some VS compilation errors in the encoder. - Use std::numeric_limits<double>::infinity() instead of 1.0 / 0.0 - Use FastLog2() instead of log2() in cost model
bad0f4ed 2015-06-26 17:37:00 Brotli Bug Fixes
618287b3 2015-06-12 16:50:49 Deprecate greedy_block_split and enable_context_modeling brotli params. These affected only quality 11, and now it does not make sense to disable block splitting or context modeling because most of the time is spent in zopfli anyway. Now all speed vs size compromises are controlled by the quality param.
66098830 2015-06-12 16:45:17 Use a static hash table to look up dictionary words and transforms. This is used for quality 11, for qualities <= 9 we already have a simpler hash table. The static data size is 252 kB, and this removes the need to initialize a huge hash map at startup, which was the reason why transforms had to be disabled by default. In comparison, the static dictionary itself is 120 kB. This supports every transform, except the kOmitFirstN.
b3d3723f 2015-06-12 16:25:41 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.
835a7746 2015-06-12 16:14:06 Change the static dictionary hash table to take into account word frequency when there are hash collisions.
65f3fc55 2015-06-12 16:11:50 Bug fixes for the brotli encoder. * Fix an out-of-bounds access to depth_histo in the bit cost calculation function. * Change type of distance symbol to uint16_t in block splitter, because if all postfix bits are used, there can be 520 distance symbols. * Save the distance cache between meta-blocks at the correct place. This fixes a roundtrip failure that can occur when there is an uncompressed metablock between two compressed metablocks. * Fix a bug when setting lgwin to 24 in the encoder parameters It ended up making metablocks larger than 24 bits in size. * Fix out-of-bounds memory accesses in parallel encoder. CreateBackwardReferences can read up to 4 bytes past end of input if the end of input is before mask. * Add missing header for memcpy() in port.h
b43df8f6 2015-06-12 15:43:54 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.
667f70ad 2015-06-12 15:29:06 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.
6622355a 2015-05-11 14:11:07 Use the same hasher for text and font mode. We use 4-byte hashing in both and look for length 3 matches separately.
cc8d64df 2015-05-11 13:51:47 Fix broken quality 0, make it same as quality 1.
aa853f3c 2015-05-11 11:33:19 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.
54f69c9e 2015-05-07 17:44:33 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.
12eb9bfd 2015-05-07 17:40:00 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...)
7cde616c 2015-05-07 17:30:10 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.
945b0d02 2015-05-07 17:23:07 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.