]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
disable 2-passes strategy
authorYann Collet <cyan@fb.com>
Tue, 22 May 2018 22:06:36 +0000 (15:06 -0700)
committerYann Collet <cyan@fb.com>
Tue, 22 May 2018 22:06:36 +0000 (15:06 -0700)
lib/compress/zstd_ldm.c
lib/compress/zstd_opt.c

index 03348f177498fcf2ccc29d36e691a2495a840e36..423aedafd49447c79bc50bd7d0c93bb2a612d8b8 100644 (file)
@@ -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);
 }
index b72eea69ec249217afe214dcce65a214db290d59..4295ec1bc526a825de64ee5f266ba2bf6db8b276 100644 (file)
@@ -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*/);
 }