From: Yann Collet Date: Tue, 22 May 2018 22:06:36 +0000 (-0700) Subject: disable 2-passes strategy X-Git-Tag: v1.3.5~3^2~41^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8ddf1d370fc1ff8e61f75225f756c81ec719c7e;p=thirdparty%2Fzstd.git disable 2-passes strategy --- diff --git a/lib/compress/zstd_ldm.c b/lib/compress/zstd_ldm.c index 03348f177..423aedafd 100644 --- a/lib/compress/zstd_ldm.c +++ b/lib/compress/zstd_ldm.c @@ -642,8 +642,6 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, ZSTD_ldm_limitTableUpdate(ms, ip); ZSTD_ldm_fillFastTables(ms, cParams, ip); /* Compress the last literals */ - { size_t const lastLiterals = blockCompressor(ms, seqStore, rep, cParams, - ip, iend - ip); - return lastLiterals; - } + return blockCompressor(ms, seqStore, rep, cParams, + ip, iend - ip); } diff --git a/lib/compress/zstd_opt.c b/lib/compress/zstd_opt.c index b72eea69e..4295ec1bc 100644 --- a/lib/compress/zstd_opt.c +++ b/lib/compress/zstd_opt.c @@ -1012,6 +1012,7 @@ size_t ZSTD_compressBlock_btopt( } +/* used in 2-pass strategy */ static U32 ZSTD_upscaleStat(U32* table, U32 lastEltIndex, int bonus) { U32 s, sum=0; @@ -1024,7 +1025,8 @@ static U32 ZSTD_upscaleStat(U32* table, U32 lastEltIndex, int bonus) return sum; } -static void ZSTD_upscaleStats(optState_t* optPtr) +/* used in 2-pass strategy */ +MEM_STATIC void ZSTD_upscaleStats(optState_t* optPtr) { optPtr->litSum = ZSTD_upscaleStat(optPtr->litFreq, MaxLit, 0); optPtr->litLengthSum = ZSTD_upscaleStat(optPtr->litLengthFreq, MaxLL, 1); @@ -1037,6 +1039,12 @@ size_t ZSTD_compressBlock_btultra( const ZSTD_compressionParameters* cParams, const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_compressBlock_btultra (srcSize=%zu)", srcSize); +#if 0 + /* 2-pass strategy (disabled) + * this strategy makes a first pass over first block to collect statistics + * and seed next round's statistics with it. + * The compression ratio gain is generally small (~0.5% on first block), + * the cost is 2x cpu time on first block. */ assert(srcSize <= ZSTD_BLOCKSIZE_MAX); if ( (ms->opt.litLengthSum==0) /* first block */ && (seqStore->sequences == seqStore->sequencesStart) /* no ldm */ @@ -1057,6 +1065,7 @@ size_t ZSTD_compressBlock_btultra( /* re-inforce weight of collected statistics */ ZSTD_upscaleStats(&ms->opt); } +#endif return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, cParams, src, srcSize, 2 /*optLevel*/, 0 /*extDict*/); }