[PR #640] New feature: "Large Window Brotli" #1291

Closed
opened 2026-01-29 20:53:21 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/google/brotli/pull/640

State: closed
Merged: Yes


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
**Original Pull Request:** https://github.com/google/brotli/pull/640 **State:** closed **Merged:** Yes --- 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
claunia added the pull-request label 2026-01-29 20:53:21 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/brotli#1291