Skip to content

What we pass to ZSTD Backend

Peter Hyman edited this page Nov 9, 2023 · 1 revision

ZSTD gets a level and a strategy

When the -Z|--zstd option is selected, zstd is assigned both a compression level, which is 1-22, and a strategy, which is 1-9. The following settings will be used per compression level -L#.

lrzip-next compression level zstd compression level zstd strategy
1 2 ZSTD_fast (1)
2 4 ZSTD_dfast (2)
3 5 ZSTD_greedy (3)
4 7 ZSTD_lazy (4)
5 12 ZSTD_lazy2 (5)
6 15 ZSTD_btlazy2 (6)
7 17 ZSTD_btopt (7)
8 18 ZSTD_btultra (8)
9 22 ZSTD_btultra2 (9)

ZSTD level can be set independently

There is an option --zstd_level which can be used to independently set the zstd level. The zstd strategy is set according to the above mapping automatically. When --zstd_level is used, the -R (for rzip level) option can be set independently for pre-processing. If not, the rzip compression level will be equal to the zstd strategy (1-9).

zstd level zstd strategy rzip level
1,2 ZSTD_fast (1) 1
3,4 ZSTD_dfast (2) 2
5 ZSTD_greedy (3) 3
6,7 ZSTD_lazy (4) 4
8-12 ZSTD_lazy2 (5) 5
13-15 ZSTD_btlazy2 (6) 6
16,17 ZSTD_btopt (7) 7
18 ZSTD_btultra (8) 8
19-22 ZSTD_btultra2 (9) 9