|
8a7201c6
|
2025-08-05T02:49:08
|
|
fix some includes
PiperOrigin-RevId: 791124445
|
|
12203bb5
|
2025-08-04T23:29:38
|
|
Extract Hash14/15 to hash_base
PiperOrigin-RevId: 791061237
|
|
93d0ac53
|
2025-05-27T09:47:01
|
|
Fix typos (#1242)
Co-authored-by: Eugene Kliuchnikov <eustas.ru@gmail.com>
|
|
aa548219
|
2024-08-27T14:25:33
|
|
Fix C4224 warnings when building with MSVC
|
|
fe754f34
|
2024-05-30T09:50:58
|
|
Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 638686412
|
|
04388304
|
2024-05-09T12:41:57
|
|
Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 632238409
|
|
bb809ac9
|
2024-05-08T17:59:09
|
|
Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 631982664
|
|
443af10a
|
2024-04-17T04:09:20
|
|
add (assumption) check
PiperOrigin-RevId: 625632989
|
|
c1c76e99
|
2024-04-14T06:35:19
|
|
Don't check `cur_ix_masked` against `ring_buffer_mask`.
`cur_ix_masked` isn't changing from iteration to iteration, and `max_length` ensures we never find a match long enough to walk off the ring buffer.
PiperOrigin-RevId: 624701948
|
|
709c4672
|
2024-04-12T09:15:22
|
|
Fix minor syntax issues.
Missing semicolons.
Move checks below variable declarations for c89.
PiperOrigin-RevId: 624199887
|
|
a76d96e7
|
2024-04-12T06:50:04
|
|
Don't check `cur_ix_masked` against `ring_buffer_mask`.
`cur_ix_masked` isn't changing from iteration to iteration, and `max_length` ensures we never find a match long enough to walk off the ring buffer.
PiperOrigin-RevId: 624162764
|
|
9351fa7f
|
2024-03-20T10:29:20
|
|
Compare 4 bytes when checking if a longer match is possible.
Loading and comparing 4 bytes is ~as fast as 1 byte, but allows us to avoid more full match length calculation.
PiperOrigin-RevId: 617556847
|
|
117b68b7
|
2023-08-02T03:04:52
|
|
speedup encoder on q5-9 / 1MB+ files
PiperOrigin-RevId: 553087469
|
|
a8f5813b
|
2022-11-17T13:03:09
|
|
Update
Documentation:
- add note that brotli is a "stream" format, not an archive-like
- regenerate .1 with Pandoc
Build:
- drop legacy "BROTLI_BUILD_PORTABLE" option
- drop "BROTLI_SANITIZED" definition
Code:
- c: comb includes
- c/enc: extract encoder state into separate header
- c/enc: drop designated q10 codepath
- c/enc: dealing better with flushing of empty stream
- fix MSVC compilation
API:
- py: use library version instead of one in version.h
- c: add plugable API to report consumed input / produced output
- c/java: support "lean" prepared dictionaries (without copy of source)
|
|
62662f87
|
2021-09-08T09:18:45
|
|
Strip "./" in includes (#925)
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
|
|
19d86fb9
|
2021-08-04T14:42:02
|
|
Merge-in SharedDictionary feature (#916)
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
|
|
630b5084
|
2021-07-29T22:29:43
|
|
Update (#914)
* slimmer stack frames in encoder
* fix MSAN problem in hasher_composite
(not dangerous, only in large_window mode)
* fix JNI decoder wrapper - power-of-two payloads fail to decode sometimes
* reformat polyfil.js and decode_test.js
|
|
5692e422
|
2021-01-18T10:56:39
|
|
Update (#852)
* Update
* comments and clarifications in block_splitter
* power-of-2 aligned allocations for Hasher
* refresh decode.js from Java sources
* disable JS build
|
|
78e7bbc3
|
2019-05-03T11:51:11
|
|
Update (#753)
* fix executable mode of decode.js
* explain clang-analyser about non-nullability
* fix "dead assignment"
* rename proguard.cfg -> proguard.pgcfg
|
|
4b2b2d4f
|
2019-04-12T13:57:42
|
|
Update (#749)
Update:
* Bazel: fix MSVC configuration
* C: common: extended documentation and helpers around distance codes
* C: common: enable BROTLI_DCHECK in "debug" builds
* C: common: fix implicit trailing zero in `kPrefixSuffix`
* C: dec: fix possible bit reader discharge for "large-window" mode
* C: dec: simplify distance decoding via lookup table
* C: dec: reuse decoder state members memory via union with lookup table
* C: dec: add decoder state diagram
* C: enc: clarify access to static dictionary
* C: enc: improve static dictionary hash
* C: enc: add "stream offset" parameter for parallel encoding
* C: enc: reorganize hasher; now Q2-Q3 require exactly 256KiB
to avoid global TCMalloc lock
* C: enc: fix rare access to uninitialized data in ring-buffer
* C: enc: reorganize logging / checks in `write_bits.h`
* Java: dec: add "large-window" support
* Java: dec: improve speed
* Java: dec: debug and 32-bit mode are now activated via system properties
* Java: dec: demystify some state variables (use better names)
* Dictionary generator: add single input mode
* Java: dec: modernize tests
* Bazel: js: pick working commit for closure rules
|
|
f7cbc97c
|
2018-10-16T16:46:54
|
|
Fix typo / minor formatting (#716)
* Fix typo / minor formatting / pull computable constant to the place of use.
|
|
eb12ec04
|
2018-06-20T15:14:10
|
|
Update (#688)
* add rolling-composite-hasher for large-window mode
* make API methods explicitly public
|
|
f5ed35d0
|
2018-05-03T11:16:21
|
|
Update (#664)
* Update
* fix ifdef style
* get back to fine-compiler-version-based-macros (use Hedley)
* fix q=0 histogram collection for very long copy/insert commands
|
|
35e69fc7
|
2018-02-26T09:04:36
|
|
New feature: "Large Window Brotli" (#640)
* New feature: "Large Window Brotli"
By setting special encoder/decoder flag it is now possible to extend
LZ-window up to 30 bits; though produced stream will not be RFC7932
compliant.
Added new dictionary generator - "DSH". It combines speed of "Sieve"
and quality of "DM". Plus utilities to prepare train corpora
(remove unique strings).
Improved compression ratio: now two sub-blocks could be stitched:
the last copy command could be extended to span the next sub-block.
Fixed compression ineffectiveness caused by floating numbers rounding and
wrong cost heuristic.
Other C changes:
- combined / moved `context.h` to `common`
- moved transforms to `common`
- unified some aspects of code formatting
- added an abstraction for encoder (static) dictionary
- moved default allocator/deallocator functions to `common`
brotli CLI:
- window size is auto-adjusted if not specified explicitly
Java:
- added "eager" decoding both to JNI wrapper and pure decoder
- huge speed-up of `DictionaryData` initialization
* Add dictionaryless compressed dictionary
* Fix `sources.lst`
* Fix `sources.lst` and add a note that `libtool` is also required.
* Update setup.py
* Fix `EagerStreamTest`
* Fix BUILD file
* Add missing `libdivsufsort` dependency
* Fix "unused parameter" warning.
|
|
da254cff
|
2017-12-12T14:33:12
|
|
Update (#630)
* merge {dec|enc}/port.h into common/platform.h
* fix one-shot q=10 1-byte input compression
* fix some unprefixed definitions
* make hashers host-endianness-independent
* extract enc/params.h from enc/quality.h
* fix API documentation / typos
* improve `BrotliEncoderMaxCompressedSize`
|
|
d63e8f75
|
2017-08-04T10:02:56
|
|
Update API, and more (#581)
Update API, and more:
* remove "custom dictionary" support
* c/encoder: fix #580: big-endian build
* Java: reduce jar size
* Java: speedup decoding
* Java: add 32-bit CPU support
* Java: make source code JS transpiler-ready
|
|
52441069
|
2017-07-21T10:07:24
|
|
Update (#574)
* Update
* decoder: better behavior after failure
* encoder: replace "len_x_code" with delta
* research: add experimental dictionary generator
* python: test combing
|
|
6ece1d87
|
2017-04-23T14:07:08
|
|
Move files & update paths (#541)
* Move files & update paths
* Rename build to scripts.
* Fix paths
* Fix script.
|