zstd/lib/compress
Yann Collet 32dfae6f98 fixed Multi-threaded compression
MT compression generates a single frame.
Multi-threading operates by breaking the frames into independent sections.
But from a decoder perspective, there is no difference :
it's just a suite of blocks.

Problem is, decoder preserves repCodes from previous block to start decoding next block.
This is also valid between sections, since they are no different than changing block.

Previous version would incorrectly initialize repcodes to their default value at the beginning of each section.
When using them, there was a mismatch between encoder (default values) and decoder (values from previous block).

This change ensures that repcodes won't be used at the beginning of a new section.
It works by setting them to 0.
This only works with regular (single segment) variants : extDict variants will fail !
Fortunately, sections beyond the 1st one belong to this category.

To be checked : btopt strategy.
This change was only validated from fast to btlazy2 strategies.
2017-01-19 10:32:55 -08:00
..
fse_compress.c replaced usage of FSE_buildCTable by FSE_buildCTable_wksp, using less stack space in the process 2016-12-01 16:24:04 -08:00
huf_compress.c introduced HUF_buildCTable_wksp(), to reduce stack memory usage 2016-12-01 17:47:30 -08:00
zstd_compress.c fixed Multi-threaded compression 2017-01-19 10:32:55 -08:00
zstd_opt.h fixed g++ warnings 2016-11-23 18:17:18 +01:00
zstdmt_compress.c fixed Multi-threaded compression 2017-01-19 10:32:55 -08:00
zstdmt_compress.h zstdmt : changed internal naming from frame to chunk 2017-01-12 01:25:46 +01:00