|
3cc6172f
|
2025-08-14T03:50:11
|
|
uninline ShannonEntropy/BitsEntropy
PiperOrigin-RevId: 794966726
|
|
103b25fb
|
2025-08-13T02:10:36
|
|
explicitly specify model for relocatable variables
PiperOrigin-RevId: 794473371
|
|
7b345944
|
2025-08-11T01:27:34
|
|
adjust BROTLI_TEST effects
PiperOrigin-RevId: 793535397
|
|
6a4c96b1
|
2025-08-07T01:30:51
|
|
more portable emergency exit
PiperOrigin-RevId: 792046166
|
|
29e040b8
|
2025-08-06T06:17:04
|
|
use static init to reduce encoder library size
PiperOrigin-RevId: 791661871
|
|
bf6231d6
|
2025-08-05T08:34:48
|
|
Introduce static init
PiperOrigin-RevId: 791228365
|
|
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
|
|
a47d7475
|
2025-07-11T07:38:19
|
|
Roll back:
Enable shared_dictionary for quality 3 and 4.
PiperOrigin-RevId: 781976993
|
|
42c5139b
|
2025-07-09T02:33:07
|
|
Enable shared_dictionary for quality 3 and 4.
PiperOrigin-RevId: 780946946
|
|
434b582d
|
2025-06-30T03:31:08
|
|
Fix compilation errors when `BROTLI_DEBUG` is defined.
PiperOrigin-RevId: 777494216
|
|
93d0ac53
|
2025-05-27T09:47:01
|
|
Fix typos (#1242)
Co-authored-by: Eugene Kliuchnikov <eustas.ru@gmail.com>
|
|
440e0364
|
2025-01-31T05:42:35
|
|
Another nullptr-arithmetics clamer
PiperOrigin-RevId: 721741817
|
|
2b6efcbd
|
2024-11-19T01:42:21
|
|
Merge pull request #1204 from heshpdx:master
PiperOrigin-RevId: 697922880
|
|
8c6d25f7
|
2024-11-15T10:39:15
|
|
Update c/enc/encode.c
Co-authored-by: Eugene Kliuchnikov <eustas@google.com>
|
|
782aadd0
|
2024-11-12T14:45:06
|
|
Apply suggestions from code review
Co-authored-by: Eugene Kliuchnikov <eustas@google.com>
|
|
1054ecc2
|
2024-11-12T16:25:30
|
|
Add static variables as per code review comments.
|
|
cec846f8
|
2024-10-05T10:46:27
|
|
Update c/enc/block_splitter_inc.h
Added a digit of precision
|
|
cefec3ce
|
2024-10-05T05:40:19
|
|
Reduce fdiv's into fmul's
Provides small speedup on microarchitectures where the floating
point divide is slower than the floating point multiply.
|
|
aa548219
|
2024-08-27T14:25:33
|
|
Fix C4224 warnings when building with MSVC
|
|
39bcecf4
|
2024-07-15T11:26:47
|
|
Fix hasher resolution for long windows.
PiperOrigin-RevId: 652545288
|
|
a528bce9
|
2024-05-31T09:10:52
|
|
Hoist the static bounds check out of the combined if check.
PiperOrigin-RevId: 639054702
|
|
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
|
|
d01a4caa
|
2024-04-22T02:06:42
|
|
Internal change
PiperOrigin-RevId: 626960053
|
|
1b3a5ccb
|
2024-04-18T19:59:28
|
|
Prefetch the backreference hashtable bucket.
Place the prefetch before the last distance checks, to give the prefetch enough time to work.
PiperOrigin-RevId: 626228820
|
|
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
|
|
a813a6a1
|
2024-04-11T11:23:08
|
|
Update the `H5` hasher to use the `H6`'s `FN(STORE)`.
PiperOrigin-RevId: 623885589
|
|
f964a1e8
|
2024-04-09T00:18:20
|
|
Internal change
PiperOrigin-RevId: 623073126
|
|
cdbe7fc7
|
2024-04-08T04:29:59
|
|
Internal change
PiperOrigin-RevId: 622802698
|
|
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
|
|
9717649c
|
2024-03-13T02:47:07
|
|
Use BROTLI_MAX_STATIC_CONTEXTS instead of magic constants in encode.c
PiperOrigin-RevId: 615341475
|
|
9b83be23
|
2023-10-26T02:02:51
|
|
fix wording
PiperOrigin-RevId: 576788685
|
|
e7313b0c
|
2023-08-28T07:20:13
|
|
tune memory manager for BROTLI_EXPERIMENTAL
PiperOrigin-RevId: 560703386
|
|
2a5a088b
|
2023-08-21T06:35:47
|
|
more tuning for BROTLI_EXPERIMENTAL + clean-on-oom
PiperOrigin-RevId: 558771745
|
|
3ebb2d30
|
2023-08-18T02:55:01
|
|
Move serialized dictionary feature behind the flag.
BROTLI_SHARED_DICTIONARY_SERIALIZED enum value is a part of API,
but it should not be used (will cause failures).
Changing how serialized dictionaries work won't be considered as an API change, until this feature is enabled.
Enabling this feature in the future will be considered as a "compatible" change.
PiperOrigin-RevId: 558091676
|
|
0f2157cc
|
2023-08-16T08:54:37
|
|
Update comment; fixes #1061
PiperOrigin-RevId: 557501089
|
|
a5600898
|
2023-08-03T04:58:16
|
|
speedup q5-9 on large files
PiperOrigin-RevId: 553440457
|
|
117b68b7
|
2023-08-02T03:04:52
|
|
speedup encoder on q5-9 / 1MB+ files
PiperOrigin-RevId: 553087469
|
|
779a49bf
|
2023-07-20T04:18:18
|
|
bake in runtime constant
PiperOrigin-RevId: 549590409
|
|
04f294b1
|
2023-01-29T14:16:20
|
|
Fix emitting 1-byte long metadata block
PiperOrigin-RevId: 505484299
|
|
1e61e972
|
2023-01-27T10:16:21
|
|
speed up encoding by ~5 %
PiperOrigin-RevId: 505061835
|
|
71fe6cac
|
2023-01-07T22:01:47
|
|
Fix BrotliEncoderEstimatePeakMemoryUsage (#1002)
Fixes https://github.com/google/brotli/issues/1001
|
|
0ea46038
|
2023-01-04T12:10:29
|
|
Fix MSVC warning (#998)
Fix #875
|
|
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)
|
|
4ec67035
|
2021-12-07T01:47:07
|
|
Merge pull request #929 from jbms/fix-vla-parameter
Fix -Werror=vla-parameter errors with GCC 11.2.0
|
|
8376f72e
|
2021-11-10T10:34:39
|
|
Prepare for copybara (#939)
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
|
|
27dd7265
|
2021-09-14T12:27:45
|
|
Fix -Werror=vla-parameter errors with GCC 11.2.0
|
|
62662f87
|
2021-09-08T09:18:45
|
|
Strip "./" in includes (#925)
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
|
|
68f1b90a
|
2021-08-18T19:15:07
|
|
Update (#918)
Prepare to use copybara worklow.
|
|
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
|
|
0a3944c8
|
2021-06-23T08:53:59
|
|
Fix VLA parameter warning (#893)
Make VLA buffer types consistent in declarations and definitions.
Resolves build crash when using -Werror due to "vla-parameter" warning.
Signed-off-by: Adrian Herrera <adr.her.arc.95@gmail.com>
|
|
bdcfb123
|
2021-06-23T16:42:28
|
|
Fix typo in hash_composite_inc.h (#903)
defered -> deferred
|
|
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
|
|
7e8e207c
|
2020-09-07T10:40:03
|
|
Fix clang-10 compilation issue (#839)
clang-10 throws the following error:
In file included from external/org_brotli/c/enc/bit_cost.c:9:
external/org_brotli/c/enc/./bit_cost.h:48:16: error: implicit conversion
from 'size_t' (aka 'unsigned long') to 'double' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
if (retval < sum) {
~ ^~~
1 error generated.
Make the conversion explicit.
|
|
223d80cf
|
2020-08-26T12:32:27
|
|
Update (#826)
* IMPORTANT: decoder: fix potential overflow when input chunk is >2GiB
* simplify max Huffman table size calculation
* eliminate symbol duplicates (static arrays in .h files)
* minor combing in research/ code
|
|
7f740f13
|
2020-05-15T11:06:21
|
|
Update (#807)
- fix formatting
- fix type conversion
- fix no-op arithmetic with null-pointer
- improve performance of hash_longest_match64
- go: detect read after close
- java decoder: support compound dictionary
- remove executable flag on non-scripts
|
|
924b2b2b
|
2020-03-19T03:57:56
|
|
Move TZCNT and BSR intrinsics to platform.h, add MSVC versions (#636)
|
|
f503cb70
|
2020-03-19T11:46:52
|
|
Add HAVE_LOG2 build macro (#783)
* Add HAVE_LOG2 build macro
Fixes #781
* Rename macro to BROTLI_HAVE_LOG2 and move comment for visibility
|
|
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
|
|
d0ffe60b
|
2018-10-24T16:06:09
|
|
Verbose CLI + start pulling "Shared-Brotli" (#722)
* Verbose CLI + start pulling "Shared-Brotli"
* vesbose CLI output; fix #666
* pull `SHIFT` transforms; currently this is semantically dead code;
later it will be used by "Shared-Brotli"
|
|
f7cbc97c
|
2018-10-16T16:46:54
|
|
Fix typo / minor formatting (#716)
* Fix typo / minor formatting / pull computable constant to the place of use.
|
|
2216a0dd
|
2018-09-13T08:09:32
|
|
Update (#706)
Update
* add ASAN/MSAN unaligned read specializations
* add "brotli" prefix to u_uint64 type
* increment version to 1.0.06
* fix CoverityScan "unused assignment" warning
* fix JDK 8<->9 incompatibility
* add encoder optimization for empty input
* regenerate JS decoder
* unbreak Travis builds
|
|
eb12ec04
|
2018-06-20T15:14:10
|
|
Update (#688)
* add rolling-composite-hasher for large-window mode
* make API methods explicitly public
|
|
8544ae85
|
2018-06-09T11:17:13
|
|
Update (#680)
* fix MSVC warnings
* cleanups
|
|
48a25b3f
|
2018-05-18T22:07:52
|
|
Fix #671 (#672)
|
|
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
|
|
60003961
|
2018-04-20T14:10:55
|
|
Remove unprefixed macros from public headers (#662)
|
|
68db5c02
|
2018-04-13T11:44:34
|
|
Update (#660)
* Update
* improve q=1 compression on small files
* fix "left shift before promotion"
* fix osx Travis builds
|
|
c6333e1e
|
2018-03-29T10:37:07
|
|
Fix MSVC compilation (#657)
* tell bazel not to pass strict options to a fancy compiler
* fix signed-unsigned comparison warning found by MSVC
|
|
0f3c84e7
|
2018-03-27T22:29:22
|
|
Update (#656)
* proper fix for the "fall through" warning"
* automatic NDIRECT/NPOSTFIX tuning (better compression)
* fix unaligned access for `aarch64`-cross-`armhf` build
* fix `aarch64` detection (10% decoder speedup)
* expose `large_window` CLI option
* make default window size 16MiB
* ramp up version to 1.0.4
|
|
631fe194
|
2018-03-20T17:37:41
|
|
Update (#651)
* fix `bazel` build (ignore switch case fall-through)
* add `NPOSTFIX` / `NDIRECT` encoder parameters
* fix source file lists (add `params.h`)
* fix bug in `durchschlag`
* print clarifying messages wheb CLI argument parsing fails
|
|
533843e3
|
2018-03-02T15:49:58
|
|
Update (#643)
Update
* make the zopflification aware of `NDIRECT`, `NPOSTFIX`
(better compression in `font` mode)
* add small and simple decoder tool
* fix typo
* Java: wrapper: make decoder channel more async-friendly
Ramp up version to 1.0.3 / 1.0.3
|
|
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`
|
|
0ad94eed
|
2017-11-28T15:37:28
|
|
Update (#620)
* add autotools build
* separate semantic and ABI version
* extract sources.lst (used by CMake and Automake)
* share pkgconfig templates (used by CMake and Automake)
* decoder: always set `total_out`
* encoder: fix `BROTLI_ENSURE_CAPACITY` macro (no-op after preprocessor)
* decoder/encoder: refine `free_func` contract
|
|
3e58ea5f
|
2017-10-13T14:50:51
|
|
Update (#617)
* remove `const` on `BrotliDictionary` members
* extend `ZofliNode` distance range to 128MiB
* add missing `port.h` include to `quality.h`
* fix typo in encoder API-doc
* regenerate `decode.min.js`
|
|
a0c7dafe
|
2017-10-10T11:24:13
|
|
Fix permissions of various files in project (#613)
Move from 755 to 644.
|
|
37fb83ec
|
2017-09-19T15:57:15
|
|
Update: (#600)
* encoder: relax backward references candidates asserts
* encoder: make RNG more platform-independent
* encoder: remove "unused" param (context mode)
* CLI: improve first-encounter experience
* Java: update SynthTest
* Java: refine proguard config
* Java/JNI: fix one-shot compression workflow
|
|
d7bce1e0
|
2017-09-07T20:27:49
|
|
Update (#593)
* Update:
* fix CLI error messages
* fix CLI console IO on Windows
|
|
a629289e
|
2017-08-28T11:31:29
|
|
Update (#590)
* add transpiled JS decoder
* make PY wrapper accept memview
* fix dictionary generator
* speedup compression of RLEish data
|
|
65354354
|
2017-08-24T13:29:48
|
|
Update (#589)
* cleanup
* fix `unbrotli` CLI
* Java retouch for faster JS decoder
|
|
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
|
|
00cacfdf
|
2017-06-17T13:22:07
|
|
Fix compilation issue with BROTLI_ALLOC macro using GCC 7 (-Wint-in-bool-context) (#562)
|
|
05d5f3d7
|
2017-06-13T12:52:56
|
|
Update (#560)
Update:
* add decoder API to avoid ringbuffer reallocation
* fix MSVC warnings
* remove dead code
|
|
6ece1d87
|
2017-04-23T14:07:08
|
|
Move files & update paths (#541)
* Move files & update paths
* Rename build to scripts.
* Fix paths
* Fix script.
|