mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 09:14:58 -06:00
- allow to specify brotli window size - parameter -m0=brotli:long=n, BROTLI_MAX_WINDOW_BITS (24) used by default in brotli-mt, smaller == faster - note that :long can be set up to BROTLI_LARGE_MAX_WINDOW_BITS (30), whereas :wlog can be set up to BROTLI_MAX_WINDOW_BITS (24) only... - todo: check whether set of BROTLI_PARAM_LARGE_WINDOW to BROTLI_TRUE is needed if (lgwin > BROTLI_MAX_WINDOW_BITS) - implementation of single-threaded brotli compression / decompression for .br data Signed-off-by: Sergey G. Brester <info@sebres.de> Reviewed-by: Tino Reichardt <milky-7zip@mcmilk.de>
Multithreading Library for Brotli, Lizard, LZ4, LZ5 and Zstandard
Description
- works with skippables frame id 0x184D2A50 (12 bytes per compressed frame)
- brotli is supported the same way, it will encapsulate the real brotli stream within an 16 byte frame header
Generic skippable frame definition
| size | value | description |
|---|---|---|
| 4 bytes | 0x184D2A50U | magic for skippable frame |
| 4 bytes | 4 | size of skippable frame |
| 4 bytes | compressed size | size of the following frame (compressed data) |
Brotli frame definition
- the frame header for brotli is defined a bit different:
| size | value | description |
|---|---|---|
| 4 bytes | 0x184D2A50U | magic for skippable frame (like zstd) |
| 4 bytes | 8 | size of skippable frame |
| 4 bytes | compressed size | size of the following frame (compressed data) |
| 2 bytes | 0x5242U | magic for brotli "BR" |
| 2 bytes | uncompressed size | allocation hint for decompressor (64KB * this size) |
Usage of the Testutils
- see programs
Usage of the Library
- see lib
/TR 2017-05-24