-
Notifications
You must be signed in to change notification settings - Fork 11
What we pass to BZIP3 Backend
lrzip-next
takes as input a BZIP3 block size code from 0 to 8, associated with lrzip-next
compression levels 1 to 9. These are converted to absolute block sizes Using the macro:
#define BZIP3_BLOCK_SIZE_FROM_PROP(p) (p == 8 ? 0x1FFFFFFF : (((u32)2 | ((p) & 1)) << ((p) / 2 + 24)))
which was adapted from lzma2 code.
lrzip-next level | BZIP3 bs code | BZIP3 Block Size |
---|---|---|
1 | 0 | 32MB |
2 | 1 | 48MB |
3 | 2 | 64MB |
4 | 3 | 96MB |
5 | 4 | 128MB |
6 | 5 | 196MB |
7 | 6 | 256MB |
8 | 7 | 384MB |
9 | 8 | 512MB-1 |
The BZIP3 Block Size is used to set up the state structure for compression/decompression.
struct bz3_state *state;
...
state = bz3_new(control->bzip3_block_size); // allocate bzip3 state
if (!state)
fatal("Failed to allocate %'"PRIu32" bytes bzip3 state.\n", control->bzip3_block_size);
Home
About
No More 7/9 Compression Level Limits
Threshold Limits
Using tar
with lrzip-next
Piping with lrzip-next
How to Maximize Compression
HOWTO Speed up Compiling
Feature added: Debugging
What we pass to LZMA
What we pass to ZPAQ
What we pass to BZIP3
What we pass to ZSTD
Computing Memory Overhead
Increasing Block Sizes to Compress
LZMA2 Dictionary Sizes NEW
Setting Cost Factor NEW