multi_compress 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -3
- data/GET_STARTED.md +3 -3
- data/README.md +75 -66
- data/THIRD_PARTY_NOTICES.md +24 -0
- data/ext/multi_compress/brotli_dec_static_init.c +3 -0
- data/ext/multi_compress/brotli_enc_static_init.c +3 -0
- data/ext/multi_compress/extconf.rb +79 -3
- data/ext/multi_compress/multi_compress.c +199 -120
- data/ext/multi_compress/vendor/.vendored +2 -2
- data/ext/multi_compress/vendor/brotli/LICENSE +19 -0
- data/ext/multi_compress/vendor/brotli/c/common/constants.c +7 -7
- data/ext/multi_compress/vendor/brotli/c/common/constants.h +2 -5
- data/ext/multi_compress/vendor/brotli/c/common/context.c +2 -2
- data/ext/multi_compress/vendor/brotli/c/common/context.h +1 -2
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.c +4 -5856
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.h +1 -2
- data/ext/multi_compress/vendor/brotli/c/common/dictionary_inc.h +5847 -0
- data/ext/multi_compress/vendor/brotli/c/common/platform.c +0 -4
- data/ext/multi_compress/vendor/brotli/c/common/platform.h +182 -43
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary.c +3 -7
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary_internal.h +1 -1
- data/ext/multi_compress/vendor/brotli/c/common/static_init.h +56 -0
- data/ext/multi_compress/vendor/brotli/c/common/transform.c +6 -4
- data/ext/multi_compress/vendor/brotli/c/common/transform.h +1 -2
- data/ext/multi_compress/vendor/brotli/c/common/version.h +3 -3
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.c +2 -3
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.h +0 -4
- data/ext/multi_compress/vendor/brotli/c/dec/decode.c +128 -39
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.c +2 -5
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/dec/prefix.c +67 -0
- data/ext/multi_compress/vendor/brotli/c/dec/prefix.h +18 -708
- data/ext/multi_compress/vendor/brotli/c/dec/prefix_inc.h +707 -0
- data/ext/multi_compress/vendor/brotli/c/dec/state.c +18 -15
- data/ext/multi_compress/vendor/brotli/c/dec/state.h +2 -6
- data/ext/multi_compress/vendor/brotli/c/dec/static_init.c +53 -0
- data/ext/multi_compress/vendor/brotli/c/dec/static_init.h +30 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.c +32 -8
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.h +1 -5
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.c +15 -15
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.h +1 -5
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.c +28 -4
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.h +8 -40
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost_inc.h +1 -1
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.c +9 -12
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.h +0 -3
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter_inc.h +14 -8
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.c +10 -9
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.h +0 -6
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.c +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/command.c +1 -1
- data/ext/multi_compress/vendor/brotli/c/enc/command.h +8 -10
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.c +3 -5
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.h +1 -4
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.c +3 -13
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.c +5 -15
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.c +127 -1830
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.h +23 -3
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash_inc.h +1829 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encode.c +77 -52
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.c +9 -7
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.h +2 -4
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.c +3 -6
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.h +2 -4
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode_static.h +18 -12
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.c +1 -1
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.h +2 -3
- data/ext/multi_compress/vendor/brotli/c/enc/find_match_length.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/hash.h +38 -31
- data/ext/multi_compress/vendor/brotli/c/enc/hash_base.h +38 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +11 -1
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_inc.h +24 -7
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_simd_inc.h +304 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_inc.h +30 -11
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +4 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_simd_inc.h +278 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.c +1 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.h +0 -4
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.c +4 -6
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/matching_tag_mask.h +69 -0
- data/ext/multi_compress/vendor/brotli/c/enc/memory.c +0 -5
- data/ext/multi_compress/vendor/brotli/c/enc/memory.h +0 -4
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.c +7 -9
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.h +3 -3
- data/ext/multi_compress/vendor/brotli/c/enc/metablock_inc.h +4 -4
- data/ext/multi_compress/vendor/brotli/c/enc/params.h +0 -1
- data/ext/multi_compress/vendor/brotli/c/enc/prefix.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/quality.h +17 -10
- data/ext/multi_compress/vendor/brotli/c/enc/ringbuffer.h +1 -4
- data/ext/multi_compress/vendor/brotli/c/enc/state.h +2 -2
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.c +5 -11
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.h +1 -3
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.c +224 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.h +20 -5837
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut_inc.h +5830 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_init.c +59 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_init.h +30 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_init_lazy.cc +26 -0
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.c +1 -1
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/enc/write_bits.h +0 -2
- data/ext/multi_compress/vendor/brotli/c/include/brotli/decode.h +1 -1
- data/ext/multi_compress/vendor/brotli/c/include/brotli/encode.h +5 -1
- data/ext/multi_compress/vendor/brotli/c/include/brotli/port.h +4 -7
- data/ext/multi_compress/vendor/brotli/c/include/brotli/types.h +2 -2
- data/ext/multi_compress/vendor/lz4/LICENSE +12 -0
- data/ext/multi_compress/vendor/zstd/COPYING +339 -0
- data/ext/multi_compress/vendor/zstd/LICENSE +30 -0
- data/ext/multi_compress/vendor/zstd/lib/Makefile +67 -35
- data/ext/multi_compress/vendor/zstd/lib/README.md +33 -2
- data/ext/multi_compress/vendor/zstd/lib/common/allocations.h +55 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bits.h +205 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bitstream.h +84 -108
- data/ext/multi_compress/vendor/zstd/lib/common/compiler.h +170 -41
- data/ext/multi_compress/vendor/zstd/lib/common/cpu.h +37 -1
- data/ext/multi_compress/vendor/zstd/lib/common/debug.c +7 -1
- data/ext/multi_compress/vendor/zstd/lib/common/debug.h +21 -21
- data/ext/multi_compress/vendor/zstd/lib/common/entropy_common.c +12 -40
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.c +10 -2
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.h +46 -47
- data/ext/multi_compress/vendor/zstd/lib/common/fse.h +8 -100
- data/ext/multi_compress/vendor/zstd/lib/common/fse_decompress.c +28 -116
- data/ext/multi_compress/vendor/zstd/lib/common/huf.h +79 -166
- data/ext/multi_compress/vendor/zstd/lib/common/mem.h +46 -66
- data/ext/multi_compress/vendor/zstd/lib/common/pool.c +27 -11
- data/ext/multi_compress/vendor/zstd/lib/common/pool.h +8 -11
- data/ext/multi_compress/vendor/zstd/lib/common/portability_macros.h +45 -11
- data/ext/multi_compress/vendor/zstd/lib/common/threading.c +74 -14
- data/ext/multi_compress/vendor/zstd/lib/common/threading.h +5 -18
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.c +5 -11
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.h +2411 -1003
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_common.c +1 -36
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_deps.h +13 -1
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_internal.h +13 -182
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_trace.h +6 -13
- data/ext/multi_compress/vendor/zstd/lib/compress/clevels.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/compress/fse_compress.c +15 -131
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.c +11 -1
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.h +8 -1
- data/ext/multi_compress/vendor/zstd/lib/compress/huf_compress.c +283 -189
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress.c +2419 -903
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_internal.h +423 -245
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.c +116 -40
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.h +16 -8
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.c +10 -10
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.h +8 -7
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.c +254 -139
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_cwksp.h +184 -95
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.c +163 -81
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.h +18 -14
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.c +507 -197
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.h +7 -14
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.c +579 -484
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.h +133 -65
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.c +61 -40
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.h +7 -15
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm_geartab.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.c +352 -218
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.h +37 -21
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.c +239 -175
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.h +5 -16
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress.c +543 -488
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress_amd64.S +78 -61
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.c +4 -4
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress.c +295 -115
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.c +430 -293
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.h +7 -2
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_internal.h +11 -7
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_common.c +1 -1
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_compress.c +1 -1
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_decompress.c +3 -1
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.c +95 -46
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.h +3 -9
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.h +0 -10
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/fastcover.c +4 -4
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/zdict.c +25 -97
- data/ext/multi_compress/vendor/zstd/lib/dll/example/Makefile +1 -1
- data/ext/multi_compress/vendor/zstd/lib/dll/example/README.md +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_legacy.h +38 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.c +19 -50
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.c +27 -80
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.c +28 -83
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.c +25 -74
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.c +31 -76
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.c +44 -88
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.c +33 -84
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.h +1 -1
- data/ext/multi_compress/vendor/zstd/lib/libzstd.mk +65 -33
- data/ext/multi_compress/vendor/zstd/lib/libzstd.pc.in +5 -5
- data/ext/multi_compress/vendor/zstd/lib/module.modulemap +13 -3
- data/ext/multi_compress/vendor/zstd/lib/zdict.h +65 -36
- data/ext/multi_compress/vendor/zstd/lib/zstd.h +890 -267
- data/ext/multi_compress/vendor/zstd/lib/zstd_errors.h +28 -16
- data/lib/multi_compress/version.rb +1 -1
- data/lib/multi_compress.rb +80 -41
- metadata +29 -2
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
#ifndef BROTLI_ENC_COMMAND_H_
|
|
10
10
|
#define BROTLI_ENC_COMMAND_H_
|
|
11
11
|
|
|
12
|
-
#include <brotli/types.h>
|
|
13
|
-
|
|
14
12
|
#include "../common/constants.h"
|
|
15
13
|
#include "../common/platform.h"
|
|
16
14
|
#include "fast_log.h"
|
|
@@ -21,14 +19,14 @@
|
|
|
21
19
|
extern "C" {
|
|
22
20
|
#endif
|
|
23
21
|
|
|
24
|
-
BROTLI_INTERNAL extern const
|
|
25
|
-
|
|
26
|
-
BROTLI_INTERNAL extern const
|
|
27
|
-
|
|
28
|
-
BROTLI_INTERNAL extern const
|
|
29
|
-
|
|
30
|
-
BROTLI_INTERNAL extern const
|
|
31
|
-
|
|
22
|
+
BROTLI_INTERNAL extern const BROTLI_MODEL("small")
|
|
23
|
+
uint32_t kBrotliInsBase[BROTLI_NUM_INS_COPY_CODES];
|
|
24
|
+
BROTLI_INTERNAL extern const BROTLI_MODEL("small")
|
|
25
|
+
uint32_t kBrotliInsExtra[BROTLI_NUM_INS_COPY_CODES];
|
|
26
|
+
BROTLI_INTERNAL extern const BROTLI_MODEL("small")
|
|
27
|
+
uint32_t kBrotliCopyBase[BROTLI_NUM_INS_COPY_CODES];
|
|
28
|
+
BROTLI_INTERNAL extern const BROTLI_MODEL("small")
|
|
29
|
+
uint32_t kBrotliCopyExtra[BROTLI_NUM_INS_COPY_CODES];
|
|
32
30
|
|
|
33
31
|
static BROTLI_INLINE uint16_t GetInsertLengthCode(size_t insertlen) {
|
|
34
32
|
if (insertlen < 6) {
|
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
#include "compound_dictionary.h"
|
|
8
8
|
|
|
9
|
-
#include <brotli/types.h>
|
|
10
|
-
|
|
11
9
|
#include "../common/platform.h"
|
|
10
|
+
#include <brotli/shared_dictionary.h>
|
|
12
11
|
#include "memory.h"
|
|
13
|
-
#include "quality.h"
|
|
14
12
|
|
|
15
13
|
static PreparedDictionary* CreatePreparedDictionaryWithParams(MemoryManager* m,
|
|
16
14
|
const uint8_t* source, size_t source_size, uint32_t bucket_bits,
|
|
@@ -191,8 +189,8 @@ BROTLI_BOOL AttachPreparedDictionary(
|
|
|
191
189
|
compound->chunk_offsets[index + 1] = compound->total_size;
|
|
192
190
|
{
|
|
193
191
|
uint32_t* slot_offsets = (uint32_t*)(&dictionary[1]);
|
|
194
|
-
uint16_t* heads = (uint16_t*)(&slot_offsets[1u << dictionary->slot_bits]);
|
|
195
|
-
uint32_t* items = (uint32_t*)(&heads[1u << dictionary->bucket_bits]);
|
|
192
|
+
uint16_t* heads = (uint16_t*)(&slot_offsets[(size_t)1u << dictionary->slot_bits]);
|
|
193
|
+
uint32_t* items = (uint32_t*)(&heads[(size_t)1u << dictionary->bucket_bits]);
|
|
196
194
|
const void* tail = (void*)&items[dictionary->num_items];
|
|
197
195
|
if (dictionary->magic == kPreparedDictionaryMagic) {
|
|
198
196
|
compound->chunk_source[index] = (const uint8_t*)tail;
|
|
@@ -7,11 +7,8 @@
|
|
|
7
7
|
#ifndef BROTLI_ENC_PREPARED_DICTIONARY_H_
|
|
8
8
|
#define BROTLI_ENC_PREPARED_DICTIONARY_H_
|
|
9
9
|
|
|
10
|
-
#include <brotli/shared_dictionary.h>
|
|
11
|
-
#include <brotli/types.h>
|
|
12
|
-
|
|
13
10
|
#include "../common/platform.h"
|
|
14
|
-
#include
|
|
11
|
+
#include <brotli/shared_dictionary.h>
|
|
15
12
|
#include "memory.h"
|
|
16
13
|
|
|
17
14
|
/* "Fat" prepared dictionary, could be cooked outside of C implementation,
|
|
@@ -14,15 +14,13 @@
|
|
|
14
14
|
|
|
15
15
|
#include "compress_fragment.h"
|
|
16
16
|
|
|
17
|
-
#include
|
|
18
|
-
|
|
19
|
-
#include <brotli/types.h>
|
|
20
|
-
|
|
17
|
+
#include "../common/constants.h"
|
|
21
18
|
#include "../common/platform.h"
|
|
22
19
|
#include "brotli_bit_stream.h"
|
|
23
20
|
#include "entropy_encode.h"
|
|
24
21
|
#include "fast_log.h"
|
|
25
22
|
#include "find_match_length.h"
|
|
23
|
+
#include "hash_base.h"
|
|
26
24
|
#include "write_bits.h"
|
|
27
25
|
|
|
28
26
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
@@ -31,14 +29,6 @@ extern "C" {
|
|
|
31
29
|
|
|
32
30
|
#define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
|
|
33
31
|
|
|
34
|
-
/* kHashMul32 multiplier has these properties:
|
|
35
|
-
* The multiplier must be odd. Otherwise we may lose the highest bit.
|
|
36
|
-
* No long streaks of ones or zeros.
|
|
37
|
-
* There is no effort to ensure that it is a prime, the oddity is enough
|
|
38
|
-
for this use.
|
|
39
|
-
* The number has been tuned heuristically against compression benchmarks. */
|
|
40
|
-
static const uint32_t kHashMul32 = 0x1E35A7BD;
|
|
41
|
-
|
|
42
32
|
static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
|
|
43
33
|
const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(p) << 24) * kHashMul32;
|
|
44
34
|
return (uint32_t)(h >> shift);
|
|
@@ -417,7 +407,7 @@ static void EmitUncompressedMetaBlock(const uint8_t* begin, const uint8_t* end,
|
|
|
417
407
|
storage[*storage_ix >> 3] = 0;
|
|
418
408
|
}
|
|
419
409
|
|
|
420
|
-
static uint32_t kCmdHistoSeed[128] = {
|
|
410
|
+
static BROTLI_MODEL("small") uint32_t kCmdHistoSeed[128] = {
|
|
421
411
|
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
|
|
422
412
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
|
|
423
413
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
|
|
@@ -12,10 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
#include "compress_fragment_two_pass.h"
|
|
14
14
|
|
|
15
|
-
#include <string.h> /* memcmp, memcpy, memset */
|
|
16
|
-
|
|
17
|
-
#include <brotli/types.h>
|
|
18
|
-
|
|
19
15
|
#include "../common/constants.h"
|
|
20
16
|
#include "../common/platform.h"
|
|
21
17
|
#include "bit_cost.h"
|
|
@@ -23,6 +19,7 @@
|
|
|
23
19
|
#include "entropy_encode.h"
|
|
24
20
|
#include "fast_log.h"
|
|
25
21
|
#include "find_match_length.h"
|
|
22
|
+
#include "hash_base.h"
|
|
26
23
|
#include "write_bits.h"
|
|
27
24
|
|
|
28
25
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
@@ -31,14 +28,6 @@ extern "C" {
|
|
|
31
28
|
|
|
32
29
|
#define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
|
|
33
30
|
|
|
34
|
-
/* kHashMul32 multiplier has these properties:
|
|
35
|
-
* The multiplier must be odd. Otherwise we may lose the highest bit.
|
|
36
|
-
* No long streaks of ones or zeros.
|
|
37
|
-
* There is no effort to ensure that it is a prime, the oddity is enough
|
|
38
|
-
for this use.
|
|
39
|
-
* The number has been tuned heuristically against compression benchmarks. */
|
|
40
|
-
static const uint32_t kHashMul32 = 0x1E35A7BD;
|
|
41
|
-
|
|
42
31
|
static BROTLI_INLINE uint32_t Hash(const uint8_t* p,
|
|
43
32
|
size_t shift, size_t length) {
|
|
44
33
|
const uint64_t h =
|
|
@@ -470,7 +459,7 @@ static void StoreCommands(BrotliTwoPassArena* s,
|
|
|
470
459
|
const uint8_t* literals, const size_t num_literals,
|
|
471
460
|
const uint32_t* commands, const size_t num_commands,
|
|
472
461
|
size_t* storage_ix, uint8_t* storage) {
|
|
473
|
-
static const uint32_t kNumExtraBits[128] = {
|
|
462
|
+
static const BROTLI_MODEL("small") uint32_t kNumExtraBits[128] = {
|
|
474
463
|
0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
|
|
475
464
|
6, 7, 8, 9, 10, 12, 14, 24, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
476
465
|
1, 1, 2, 2, 3, 3, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
@@ -480,7 +469,7 @@ static void StoreCommands(BrotliTwoPassArena* s,
|
|
|
480
469
|
9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16,
|
|
481
470
|
17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24,
|
|
482
471
|
};
|
|
483
|
-
static const uint32_t kInsertOffset[24] = {
|
|
472
|
+
static const BROTLI_MODEL("small") uint32_t kInsertOffset[24] = {
|
|
484
473
|
0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26,
|
|
485
474
|
34, 50, 66, 98, 130, 194, 322, 578, 1090, 2114, 6210, 22594,
|
|
486
475
|
};
|
|
@@ -546,7 +535,8 @@ static BROTLI_BOOL ShouldCompress(BrotliTwoPassArena* s,
|
|
|
546
535
|
for (i = 0; i < input_size; i += SAMPLE_RATE) {
|
|
547
536
|
++s->lit_histo[input[i]];
|
|
548
537
|
}
|
|
549
|
-
return TO_BROTLI_BOOL(
|
|
538
|
+
return TO_BROTLI_BOOL(
|
|
539
|
+
BrotliBitsEntropy(s->lit_histo, 256) < max_total_bit_cost);
|
|
550
540
|
}
|
|
551
541
|
}
|
|
552
542
|
|