diff options
author | Felix Handte <w@felixhandte.com> | 2021-12-14 14:13:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-14 14:13:57 -0500 |
commit | 5e2fede604f28114bb9cb86db3247968bb01a060 (patch) | |
tree | 5979bc9c2e90d52b7a0aebb6a8c22ec793e50ba3 | |
parent | 3e2a70b6fb70ad2b7d122655f4324ee4735eafe6 (diff) | |
parent | 450fca97048349b18241a074c49641bab8de9331 (diff) | |
download | zstd-5e2fede604f28114bb9cb86db3247968bb01a060.tar.gz |
Merge pull request #2921 from felixhandte/neg-lvl-stagger-step
Stagger Stepping in Negative Levels
-rw-r--r-- | lib/compress/zstd_fast.c | 125 | ||||
-rw-r--r-- | tests/fuzzer.c | 2 | ||||
-rw-r--r-- | tests/regression/results.csv | 224 |
3 files changed, 190 insertions, 161 deletions
diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index 87de17f8..2bae2f70 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -93,13 +93,13 @@ FORCE_INLINE_TEMPLATE size_t ZSTD_compressBlock_fast_noDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize, - U32 const mls) + U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; U32 const hlog = cParams->hashLog; /* support stepSize of 0 */ - size_t const stepSize = cParams->targetLength + !(cParams->targetLength); + size_t const stepSize = hasStep ? (cParams->targetLength + !(cParams->targetLength) + 1) : 2; const BYTE* const base = ms->window.base; const BYTE* const istart = (const BYTE*)src; const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); @@ -128,6 +128,10 @@ ZSTD_compressBlock_fast_noDict_generic( const BYTE* match0; size_t mLength; + /* ip0 and ip1 are always adjacent. The targetLength skipping and + * uncompressibility acceleration is applied to every other position, + * matching the behavior of #1562. step therefore represents the gap + * between pairs of positions, from ip0 to ip2 or ip1 to ip3. */ size_t step; const BYTE* nextStep; const size_t kStepIncr = (1 << (kSearchStrength - 1)); @@ -148,9 +152,9 @@ _start: /* Requires: ip0 */ nextStep = ip0 + kStepIncr; /* calculate positions, ip0 - anchor == 0, so we skip step calc */ - ip1 = ip0 + stepSize; - ip2 = ip1 + stepSize; - ip3 = ip2 + stepSize; + ip1 = ip0 + 1; + ip2 = ip0 + step; + ip3 = ip2 + 1; if (ip3 >= ilimit) { goto _cleanup; @@ -230,19 +234,19 @@ _start: /* Requires: ip0 */ hash0 = hash1; hash1 = ZSTD_hashPtr(ip2, hlog, mls); + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip0 + step; + ip3 = ip1 + step; + /* calculate step */ if (ip2 >= nextStep) { + step++; PREFETCH_L1(ip1 + 64); PREFETCH_L1(ip1 + 128); - step++; nextStep += kStepIncr; } - - /* advance to next positions */ - ip0 = ip1; - ip1 = ip2; - ip2 = ip2 + step; - ip3 = ip2 + step; } while (ip3 < ilimit); _cleanup: @@ -310,18 +314,23 @@ _match: /* Requires: ip0, match0, offcode */ goto _start; } -#define ZSTD_GEN_FAST_FN(dictMode, mls) \ - static size_t ZSTD_compressBlock_fast_##dictMode##_##mls( \ +#define ZSTD_GEN_FAST_FN(dictMode, mls, step) \ + static size_t ZSTD_compressBlock_fast_##dictMode##_##mls##_##step( \ ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], \ void const* src, size_t srcSize) \ { \ - return ZSTD_compressBlock_fast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls); \ + return ZSTD_compressBlock_fast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls, step); \ } -ZSTD_GEN_FAST_FN(noDict, 4) -ZSTD_GEN_FAST_FN(noDict, 5) -ZSTD_GEN_FAST_FN(noDict, 6) -ZSTD_GEN_FAST_FN(noDict, 7) +ZSTD_GEN_FAST_FN(noDict, 4, 1) +ZSTD_GEN_FAST_FN(noDict, 5, 1) +ZSTD_GEN_FAST_FN(noDict, 6, 1) +ZSTD_GEN_FAST_FN(noDict, 7, 1) + +ZSTD_GEN_FAST_FN(noDict, 4, 0) +ZSTD_GEN_FAST_FN(noDict, 5, 0) +ZSTD_GEN_FAST_FN(noDict, 6, 0) +ZSTD_GEN_FAST_FN(noDict, 7, 0) size_t ZSTD_compressBlock_fast( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -329,24 +338,40 @@ size_t ZSTD_compressBlock_fast( { U32 const mls = ms->cParams.minMatch; assert(ms->dictMatchState == NULL); - switch(mls) - { - default: /* includes case 3 */ - case 4 : - return ZSTD_compressBlock_fast_noDict_4(ms, seqStore, rep, src, srcSize); - case 5 : - return ZSTD_compressBlock_fast_noDict_5(ms, seqStore, rep, src, srcSize); - case 6 : - return ZSTD_compressBlock_fast_noDict_6(ms, seqStore, rep, src, srcSize); - case 7 : - return ZSTD_compressBlock_fast_noDict_7(ms, seqStore, rep, src, srcSize); + if (ms->cParams.targetLength > 1) { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_1(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_1(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_1(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_1(ms, seqStore, rep, src, srcSize); + } + } else { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_0(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_0(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_0(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_0(ms, seqStore, rep, src, srcSize); + } + } } FORCE_INLINE_TEMPLATE size_t ZSTD_compressBlock_fast_dictMatchState_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], - void const* src, size_t srcSize, U32 const mls) + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; @@ -382,6 +407,8 @@ size_t ZSTD_compressBlock_fast_dictMatchState_generic( assert(endIndex - prefixStartIndex <= maxDistance); (void)maxDistance; (void)endIndex; /* these variables are not used when assert() is disabled */ + (void)hasStep; /* not currently specialized on whether it's accelerated */ + /* ensure there will be no underflow * when translating a dict index into a local index */ assert(prefixStartIndex >= (U32)(dictEnd - dictBase)); @@ -492,10 +519,10 @@ size_t ZSTD_compressBlock_fast_dictMatchState_generic( } -ZSTD_GEN_FAST_FN(dictMatchState, 4) -ZSTD_GEN_FAST_FN(dictMatchState, 5) -ZSTD_GEN_FAST_FN(dictMatchState, 6) -ZSTD_GEN_FAST_FN(dictMatchState, 7) +ZSTD_GEN_FAST_FN(dictMatchState, 4, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 5, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 6, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 7, 0) size_t ZSTD_compressBlock_fast_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -507,20 +534,20 @@ size_t ZSTD_compressBlock_fast_dictMatchState( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_fast_dictMatchState_4(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_dictMatchState_4_0(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_fast_dictMatchState_5(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_dictMatchState_5_0(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_fast_dictMatchState_6(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_dictMatchState_6_0(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_fast_dictMatchState_7(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_dictMatchState_7_0(ms, seqStore, rep, src, srcSize); } } static size_t ZSTD_compressBlock_fast_extDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], - void const* src, size_t srcSize, U32 const mls) + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; @@ -544,6 +571,8 @@ static size_t ZSTD_compressBlock_fast_extDict_generic( const BYTE* const ilimit = iend - 8; U32 offset_1=rep[0], offset_2=rep[1]; + (void)hasStep; /* not currently specialized on whether it's accelerated */ + DEBUGLOG(5, "ZSTD_compressBlock_fast_extDict_generic (offset_1=%u)", offset_1); /* switch to "regular" variant if extDict is invalidated due to maxDistance */ @@ -621,10 +650,10 @@ static size_t ZSTD_compressBlock_fast_extDict_generic( return (size_t)(iend - anchor); } -ZSTD_GEN_FAST_FN(extDict, 4) -ZSTD_GEN_FAST_FN(extDict, 5) -ZSTD_GEN_FAST_FN(extDict, 6) -ZSTD_GEN_FAST_FN(extDict, 7) +ZSTD_GEN_FAST_FN(extDict, 4, 0) +ZSTD_GEN_FAST_FN(extDict, 5, 0) +ZSTD_GEN_FAST_FN(extDict, 6, 0) +ZSTD_GEN_FAST_FN(extDict, 7, 0) size_t ZSTD_compressBlock_fast_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -635,12 +664,12 @@ size_t ZSTD_compressBlock_fast_extDict( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_fast_extDict_4(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_extDict_4_0(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_fast_extDict_5(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_extDict_5_0(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_fast_extDict_6(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_extDict_6_0(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_fast_extDict_7(ms, seqStore, rep, src, srcSize); + return ZSTD_compressBlock_fast_extDict_7_0(ms, seqStore, rep, src, srcSize); } } diff --git a/tests/fuzzer.c b/tests/fuzzer.c index 6d36c339..c35be8e2 100644 --- a/tests/fuzzer.c +++ b/tests/fuzzer.c @@ -1970,7 +1970,7 @@ static int basicUnitTests(U32 const seed, double compressibility) 3742, 3675, 3674, 3665, 3664, 3663, 3662, 3661, 3660, 3660, 3660, 3660, 3660 }; - size_t const target_wdict_cSize[22+1] = { 2830, 2896, 2890, 2820, 2940, + size_t const target_wdict_cSize[22+1] = { 2830, 2896, 2893, 2820, 2940, 2950, 2950, 2925, 2900, 2891, 2910, 2910, 2910, 2780, 2775, 2765, 2760, 2755, 2754, 2753, diff --git a/tests/regression/results.csv b/tests/regression/results.csv index 9a19d33c..f9b46bd6 100644 --- a/tests/regression/results.csv +++ b/tests/regression/results.csv @@ -1,9 +1,9 @@ Data, Config, Method, Total compressed size -silesia.tar, level -5, compress simple, 7359401 -silesia.tar, level -3, compress simple, 6901672 -silesia.tar, level -1, compress simple, 6182241 +silesia.tar, level -5, compress simple, 6853608 +silesia.tar, level -3, compress simple, 6505969 +silesia.tar, level -1, compress simple, 6179026 silesia.tar, level 0, compress simple, 4854086 -silesia.tar, level 1, compress simple, 5331946 +silesia.tar, level 1, compress simple, 5327373 silesia.tar, level 3, compress simple, 4854086 silesia.tar, level 4, compress simple, 4791503 silesia.tar, level 5, compress simple, 4649987 @@ -15,9 +15,9 @@ silesia.tar, level 16, compress silesia.tar, level 19, compress simple, 4267266 silesia.tar, uncompressed literals, compress simple, 4854086 silesia.tar, uncompressed literals optimal, compress simple, 4267266 -silesia.tar, huffman literals, compress simple, 6182241 -github.tar, level -5, compress simple, 66914 -github.tar, level -3, compress simple, 52127 +silesia.tar, huffman literals, compress simple, 6179026 +github.tar, level -5, compress simple, 52110 +github.tar, level -3, compress simple, 45678 github.tar, level -1, compress simple, 42560 github.tar, level 0, compress simple, 38831 github.tar, level 1, compress simple, 39200 @@ -33,11 +33,11 @@ github.tar, level 19, compress github.tar, uncompressed literals, compress simple, 38831 github.tar, uncompressed literals optimal, compress simple, 32134 github.tar, huffman literals, compress simple, 42560 -silesia, level -5, compress cctx, 7354675 -silesia, level -3, compress cctx, 6902374 -silesia, level -1, compress cctx, 6177565 +silesia, level -5, compress cctx, 6852424 +silesia, level -3, compress cctx, 6503413 +silesia, level -1, compress cctx, 6172178 silesia, level 0, compress cctx, 4842075 -silesia, level 1, compress cctx, 5309098 +silesia, level 1, compress cctx, 5306426 silesia, level 3, compress cctx, 4842075 silesia, level 4, compress cctx, 4779186 silesia, level 5, compress cctx, 4638691 @@ -56,11 +56,11 @@ silesia, small chain log, compress silesia, explicit params, compress cctx, 4794052 silesia, uncompressed literals, compress cctx, 4842075 silesia, uncompressed literals optimal, compress cctx, 4296880 -silesia, huffman literals, compress cctx, 6177565 +silesia, huffman literals, compress cctx, 6172178 silesia, multithreaded with advanced params, compress cctx, 4842075 -github, level -5, compress cctx, 232315 +github, level -5, compress cctx, 204411 github, level -5 with dict, compress cctx, 47294 -github, level -3, compress cctx, 220760 +github, level -3, compress cctx, 193253 github, level -3 with dict, compress cctx, 48047 github, level -1, compress cctx, 175468 github, level -1 with dict, compress cctx, 43527 @@ -97,11 +97,11 @@ github, uncompressed literals, compress github, uncompressed literals optimal, compress cctx, 134064 github, huffman literals, compress cctx, 175468 github, multithreaded with advanced params, compress cctx, 141069 -silesia, level -5, zstdcli, 7354723 -silesia, level -3, zstdcli, 6902422 -silesia, level -1, zstdcli, 6177613 +silesia, level -5, zstdcli, 6852472 +silesia, level -3, zstdcli, 6503461 +silesia, level -1, zstdcli, 6172226 silesia, level 0, zstdcli, 4842123 -silesia, level 1, zstdcli, 5309146 +silesia, level 1, zstdcli, 5306474 silesia, level 3, zstdcli, 4842123 silesia, level 4, zstdcli, 4779234 silesia, level 5, zstdcli, 4638739 @@ -120,13 +120,13 @@ silesia, small chain log, zstdcli, silesia, explicit params, zstdcli, 4795432 silesia, uncompressed literals, zstdcli, 5120614 silesia, uncompressed literals optimal, zstdcli, 4319566 -silesia, huffman literals, zstdcli, 5326394 +silesia, huffman literals, zstdcli, 5321394 silesia, multithreaded with advanced params, zstdcli, 5120614 -silesia.tar, level -5, zstdcli, 7363866 -silesia.tar, level -3, zstdcli, 6902158 -silesia.tar, level -1, zstdcli, 6182939 +silesia.tar, level -5, zstdcli, 6853994 +silesia.tar, level -3, zstdcli, 6506742 +silesia.tar, level -1, zstdcli, 6179765 silesia.tar, level 0, zstdcli, 4854164 -silesia.tar, level 1, zstdcli, 5333183 +silesia.tar, level 1, zstdcli, 5328534 silesia.tar, level 3, zstdcli, 4854164 silesia.tar, level 4, zstdcli, 4792352 silesia.tar, level 5, zstdcli, 4650946 @@ -146,11 +146,11 @@ silesia.tar, small chain log, zstdcli, silesia.tar, explicit params, zstdcli, 4820713 silesia.tar, uncompressed literals, zstdcli, 5122571 silesia.tar, uncompressed literals optimal, zstdcli, 4310145 -silesia.tar, huffman literals, zstdcli, 5344915 +silesia.tar, huffman literals, zstdcli, 5342054 silesia.tar, multithreaded with advanced params, zstdcli, 5122571 -github, level -5, zstdcli, 234315 +github, level -5, zstdcli, 206411 github, level -5 with dict, zstdcli, 48718 -github, level -3, zstdcli, 222760 +github, level -3, zstdcli, 195253 github, level -3 with dict, zstdcli, 47395 github, level -1, zstdcli, 177468 github, level -1 with dict, zstdcli, 45170 @@ -187,10 +187,10 @@ github, uncompressed literals, zstdcli, github, uncompressed literals optimal, zstdcli, 159227 github, huffman literals, zstdcli, 144365 github, multithreaded with advanced params, zstdcli, 167911 -github.tar, level -5, zstdcli, 66918 -github.tar, level -5 with dict, zstdcli, 51529 -github.tar, level -3, zstdcli, 52131 -github.tar, level -3 with dict, zstdcli, 44246 +github.tar, level -5, zstdcli, 52114 +github.tar, level -5 with dict, zstdcli, 46502 +github.tar, level -3, zstdcli, 45682 +github.tar, level -3 with dict, zstdcli, 42181 github.tar, level -1, zstdcli, 42564 github.tar, level -1 with dict, zstdcli, 41140 github.tar, level 0, zstdcli, 38835 @@ -228,11 +228,11 @@ github.tar, uncompressed literals, zstdcli, github.tar, uncompressed literals optimal, zstdcli, 35401 github.tar, huffman literals, zstdcli, 38857 github.tar, multithreaded with advanced params, zstdcli, 41529 -silesia, level -5, advanced one pass, 7354675 -silesia, level -3, advanced one pass, 6902374 -silesia, level -1, advanced one pass, 6177565 +silesia, level -5, advanced one pass, 6852424 +silesia, level -3, advanced one pass, 6503413 +silesia, level -1, advanced one pass, 6172178 silesia, level 0, advanced one pass, 4842075 -silesia, level 1, advanced one pass, 5309098 +silesia, level 1, advanced one pass, 5306426 silesia, level 3, advanced one pass, 4842075 silesia, level 4, advanced one pass, 4779186 silesia, level 5 row 1, advanced one pass, 4638691 @@ -260,13 +260,13 @@ silesia, small chain log, advanced silesia, explicit params, advanced one pass, 4795432 silesia, uncompressed literals, advanced one pass, 5120566 silesia, uncompressed literals optimal, advanced one pass, 4319518 -silesia, huffman literals, advanced one pass, 5326346 +silesia, huffman literals, advanced one pass, 5321346 silesia, multithreaded with advanced params, advanced one pass, 5120566 -silesia.tar, level -5, advanced one pass, 7359401 -silesia.tar, level -3, advanced one pass, 6901672 -silesia.tar, level -1, advanced one pass, 6182241 +silesia.tar, level -5, advanced one pass, 6853608 +silesia.tar, level -3, advanced one pass, 6505969 +silesia.tar, level -1, advanced one pass, 6179026 silesia.tar, level 0, advanced one pass, 4854086 -silesia.tar, level 1, advanced one pass, 5331946 +silesia.tar, level 1, advanced one pass, 5327373 silesia.tar, level 3, advanced one pass, 4854086 silesia.tar, level 4, advanced one pass, 4791503 silesia.tar, level 5 row 1, advanced one pass, 4649987 @@ -294,11 +294,11 @@ silesia.tar, small chain log, advanced silesia.tar, explicit params, advanced one pass, 4806855 silesia.tar, uncompressed literals, advanced one pass, 5122473 silesia.tar, uncompressed literals optimal, advanced one pass, 4310141 -silesia.tar, huffman literals, advanced one pass, 5344545 +silesia.tar, huffman literals, advanced one pass, 5341685 silesia.tar, multithreaded with advanced params, advanced one pass, 5122567 -github, level -5, advanced one pass, 232315 +github, level -5, advanced one pass, 204411 github, level -5 with dict, advanced one pass, 46718 -github, level -3, advanced one pass, 220760 +github, level -3, advanced one pass, 193253 github, level -3 with dict, advanced one pass, 45395 github, level -1, advanced one pass, 175468 github, level -1 with dict, advanced one pass, 43170 @@ -421,10 +421,10 @@ github, uncompressed literals, advanced github, uncompressed literals optimal, advanced one pass, 157227 github, huffman literals, advanced one pass, 142365 github, multithreaded with advanced params, advanced one pass, 165911 -github.tar, level -5, advanced one pass, 66914 -github.tar, level -5 with dict, advanced one pass, 51525 -github.tar, level -3, advanced one pass, 52127 -github.tar, level -3 with dict, advanced one pass, 44242 +github.tar, level -5, advanced one pass, 52110 +github.tar, level -5 with dict, advanced one pass, 46498 +github.tar, level -3, advanced one pass, 45678 +github.tar, level -3 with dict, advanced one pass, 42177 github.tar, level -1, advanced one pass, 42560 github.tar, level -1 with dict, advanced one pass, 41136 github.tar, level 0, advanced one pass, 38831 @@ -546,11 +546,11 @@ github.tar, uncompressed literals, advanced github.tar, uncompressed literals optimal, advanced one pass, 35397 github.tar, huffman literals, advanced one pass, 38853 github.tar, multithreaded with advanced params, advanced one pass, 41525 -silesia, level -5, advanced one pass small out, 7354675 -silesia, level -3, advanced one pass small out, 6902374 -silesia, level -1, advanced one pass small out, 6177565 +silesia, level -5, advanced one pass small out, 6852424 +silesia, level -3, advanced one pass small out, 6503413 +silesia, level -1, advanced one pass small out, 6172178 silesia, level 0, advanced one pass small out, 4842075 -silesia, level 1, advanced one pass small out, 5309098 +silesia, level 1, advanced one pass small out, 5306426 silesia, level 3, advanced one pass small out, 4842075 silesia, level 4, advanced one pass small out, 4779186 silesia, level 5 row 1, advanced one pass small out, 4638691 @@ -578,13 +578,13 @@ silesia, small chain log, advanced silesia, explicit params, advanced one pass small out, 4795432 silesia, uncompressed literals, advanced one pass small out, 5120566 silesia, uncompressed literals optimal, advanced one pass small out, 4319518 -silesia, huffman literals, advanced one pass small out, 5326346 +silesia, huffman literals, advanced one pass small out, 5321346 silesia, multithreaded with advanced params, advanced one pass small out, 5120566 -silesia.tar, level -5, advanced one pass small out, 7359401 -silesia.tar, level -3, advanced one pass small out, 6901672 -silesia.tar, level -1, advanced one pass small out, 6182241 +silesia.tar, level -5, advanced one pass small out, 6853608 +silesia.tar, level -3, advanced one pass small out, 6505969 +silesia.tar, level -1, advanced one pass small out, 6179026 silesia.tar, level 0, advanced one pass small out, 4854086 -silesia.tar, level 1, advanced one pass small out, 5331946 +silesia.tar, level 1, advanced one pass small out, 5327373 silesia.tar, level 3, advanced one pass small out, 4854086 silesia.tar, level 4, advanced one pass small out, 4791503 silesia.tar, level 5 row 1, advanced one pass small out, 4649987 @@ -612,11 +612,11 @@ silesia.tar, small chain log, advanced silesia.tar, explicit params, advanced one pass small out, 4806855 silesia.tar, uncompressed literals, advanced one pass small out, 5122473 silesia.tar, uncompressed literals optimal, advanced one pass small out, 4310141 -silesia.tar, huffman literals, advanced one pass small out, 5344545 +silesia.tar, huffman literals, advanced one pass small out, 5341685 silesia.tar, multithreaded with advanced params, advanced one pass small out, 5122567 -github, level -5, advanced one pass small out, 232315 +github, level -5, advanced one pass small out, 204411 github, level -5 with dict, advanced one pass small out, 46718 -github, level -3, advanced one pass small out, 220760 +github, level -3, advanced one pass small out, 193253 github, level -3 with dict, advanced one pass small out, 45395 github, level -1, advanced one pass small out, 175468 github, level -1 with dict, advanced one pass small out, 43170 @@ -739,10 +739,10 @@ github, uncompressed literals, advanced github, uncompressed literals optimal, advanced one pass small out, 157227 github, huffman literals, advanced one pass small out, 142365 github, multithreaded with advanced params, advanced one pass small out, 165911 -github.tar, level -5, advanced one pass small out, 66914 -github.tar, level -5 with dict, advanced one pass small out, 51525 -github.tar, level -3, advanced one pass small out, 52127 -github.tar, level -3 with dict, advanced one pass small out, 44242 +github.tar, level -5, advanced one pass small out, 52110 +github.tar, level -5 with dict, advanced one pass small out, 46498 +github.tar, level -3, advanced one pass small out, 45678 +github.tar, level -3 with dict, advanced one pass small out, 42177 github.tar, level -1, advanced one pass small out, 42560 github.tar, level -1 with dict, advanced one pass small out, 41136 github.tar, level 0, advanced one pass small out, 38831 @@ -864,11 +864,11 @@ github.tar, uncompressed literals, advanced github.tar, uncompressed literals optimal, advanced one pass small out, 35397 github.tar, huffman literals, advanced one pass small out, 38853 github.tar, multithreaded with advanced params, advanced one pass small out, 41525 -silesia, level -5, advanced streaming, 7292053 -silesia, level -3, advanced streaming, 6867875 -silesia, level -1, advanced streaming, 6183923 +silesia, level -5, advanced streaming, 6963781 +silesia, level -3, advanced streaming, 6610376 +silesia, level -1, advanced streaming, 6179294 silesia, level 0, advanced streaming, 4842075 -silesia, level 1, advanced streaming, 5312694 +silesia, level 1, advanced streaming, 5310178 silesia, level 3, advanced streaming, 4842075 silesia, level 4, advanced streaming, 4779186 silesia, level 5 row 1, advanced streaming, 4638691 @@ -896,13 +896,13 @@ silesia, small chain log, advanced silesia, explicit params, advanced streaming, 4795452 silesia, uncompressed literals, advanced streaming, 5120566 silesia, uncompressed literals optimal, advanced streaming, 4319518 -silesia, huffman literals, advanced streaming, 5332234 +silesia, huffman literals, advanced streaming, 5327881 silesia, multithreaded with advanced params, advanced streaming, 5120566 -silesia.tar, level -5, advanced streaming, 7260007 -silesia.tar, level -3, advanced streaming, 6845151 -silesia.tar, level -1, advanced streaming, 6187938 +silesia.tar, level -5, advanced streaming, 7043687 +silesia.tar, level -3, advanced streaming, 6671317 +silesia.tar, level -1, advanced streaming, 6187457 silesia.tar, level 0, advanced streaming, 4859271 -silesia.tar, level 1, advanced streaming, 5334890 +silesia.tar, level 1, advanced streaming, 5333896 silesia.tar, level 3, advanced streaming, 4859271 silesia.tar, level 4, advanced streaming, 4797470 silesia.tar, level 5 row 1, advanced streaming, 4649992 @@ -930,11 +930,11 @@ silesia.tar, small chain log, advanced silesia.tar, explicit params, advanced streaming, 4806873 silesia.tar, uncompressed literals, advanced streaming, 5127423 silesia.tar, uncompressed literals optimal, advanced streaming, 4310141 -silesia.tar, huffman literals, advanced streaming, 5350519 +silesia.tar, huffman literals, advanced streaming, 5349624 silesia.tar, multithreaded with advanced params, advanced streaming, 5122567 -github, level -5, advanced streaming, 232315 +github, level -5, advanced streaming, 204411 github, level -5 with dict, advanced streaming, 46718 -github, level -3, advanced streaming, 220760 +github, level -3, advanced streaming, 193253 github, level -3 with dict, advanced streaming, 45395 github, level -1, advanced streaming, 175468 github, level -1 with dict, advanced streaming, 43170 @@ -1057,10 +1057,10 @@ github, uncompressed literals, advanced github, uncompressed literals optimal, advanced streaming, 157227 github, huffman literals, advanced streaming, 142365 github, multithreaded with advanced params, advanced streaming, 165911 -github.tar, level -5, advanced streaming, 64132 -github.tar, level -5 with dict, advanced streaming, 48642 -github.tar, level -3, advanced streaming, 50964 -github.tar, level -3 with dict, advanced streaming, 42750 +github.tar, level -5, advanced streaming, 51420 +github.tar, level -5 with dict, advanced streaming, 45495 +github.tar, level -3, advanced streaming, 45077 +github.tar, level -3 with dict, advanced streaming, 41627 github.tar, level -1, advanced streaming, 42536 github.tar, level -1 with dict, advanced streaming, 41198 github.tar, level 0, advanced streaming, 38831 @@ -1182,11 +1182,11 @@ github.tar, uncompressed literals, advanced github.tar, uncompressed literals optimal, advanced streaming, 35397 github.tar, huffman literals, advanced streaming, 38874 github.tar, multithreaded with advanced params, advanced streaming, 41525 -silesia, level -5, old streaming, 7292053 -silesia, level -3, old streaming, 6867875 -silesia, level -1, old streaming, 6183923 +silesia, level -5, old streaming, 6963781 +silesia, level -3, old streaming, 6610376 +silesia, level -1, old streaming, 6179294 silesia, level 0, old streaming, 4842075 -silesia, level 1, old streaming, 5312694 +silesia, level 1, old streaming, 5310178 silesia, level 3, old streaming, 4842075 silesia, level 4, old streaming, 4779186 silesia, level 5, old streaming, 4638691 @@ -1199,12 +1199,12 @@ silesia, level 19, old stre silesia, no source size, old streaming, 4842039 silesia, uncompressed literals, old streaming, 4842075 silesia, uncompressed literals optimal, old streaming, 4296880 -silesia, huffman literals, old streaming, 6183923 -silesia.tar, level -5, old streaming, 7260007 -silesia.tar, level -3, old streaming, 6845151 -silesia.tar, level -1, old streaming, 6187938 +silesia, huffman literals, old streaming, 6179294 +silesia.tar, level -5, old streaming, 7043687 +silesia.tar, level -3, old streaming, 6671317 +silesia.tar, level -1, old streaming, 6187457 silesia.tar, level 0, old streaming, 4859271 -silesia.tar, level 1, old streaming, 5334890 +silesia.tar, level 1, old streaming, 5333896 silesia.tar, level 3, old streaming, 4859271 silesia.tar, level 4, old streaming, 4797470 silesia.tar, level 5, old streaming, 4649992 @@ -1217,10 +1217,10 @@ silesia.tar, level 19, old stre silesia.tar, no source size, old streaming, 4859267 silesia.tar, uncompressed literals, old streaming, 4859271 silesia.tar, uncompressed literals optimal, old streaming, 4267266 -silesia.tar, huffman literals, old streaming, 6187938 -github, level -5, old streaming, 232315 +silesia.tar, huffman literals, old streaming, 6187457 +github, level -5, old streaming, 204411 github, level -5 with dict, old streaming, 46718 -github, level -3, old streaming, 220760 +github, level -3, old streaming, 193253 github, level -3 with dict, old streaming, 45395 github, level -1, old streaming, 175468 github, level -1 with dict, old streaming, 43170 @@ -1251,10 +1251,10 @@ github, no source size with dict, old stre github, uncompressed literals, old streaming, 136332 github, uncompressed literals optimal, old streaming, 134064 github, huffman literals, old streaming, 175468 -github.tar, level -5, old streaming, 64132 -github.tar, level -5 with dict, old streaming, 48642 -github.tar, level -3, old streaming, 50964 -github.tar, level -3 with dict, old streaming, 42750 +github.tar, level -5, old streaming, 51420 +github.tar, level -5 with dict, old streaming, 45495 +github.tar, level -3, old streaming, 45077 +github.tar, level -3 with dict, old streaming, 41627 github.tar, level -1, old streaming, 42536 github.tar, level -1 with dict, old streaming, 41198 github.tar, level 0, old streaming, 38831 @@ -1284,11 +1284,11 @@ github.tar, no source size with dict, old stre github.tar, uncompressed literals, old streaming, 38831 github.tar, uncompressed literals optimal, old streaming, 32134 github.tar, huffman literals, old streaming, 42536 -silesia, level -5, old streaming advanced, 7292053 -silesia, level -3, old streaming advanced, 6867875 -silesia, level -1, old streaming advanced, 6183923 +silesia, level -5, old streaming advanced, 6963781 +silesia, level -3, old streaming advanced, 6610376 +silesia, level -1, old streaming advanced, 6179294 silesia, level 0, old streaming advanced, 4842075 -silesia, level 1, old streaming advanced, 5312694 +silesia, level 1, old streaming advanced, 5310178 silesia, level 3, old streaming advanced, 4842075 silesia, level 4, old streaming advanced, 4779186 silesia, level 5, old streaming advanced, 4638691 @@ -1308,13 +1308,13 @@ silesia, small chain log, old stre silesia, explicit params, old streaming advanced, 4795452 silesia, uncompressed literals, old streaming advanced, 4842075 silesia, uncompressed literals optimal, old streaming advanced, 4296880 -silesia, huffman literals, old streaming advanced, 6183923 +silesia, huffman literals, old streaming advanced, 6179294 silesia, multithreaded with advanced params, old streaming advanced, 4842075 -silesia.tar, level -5, old streaming advanced, 7260007 -silesia.tar, level -3, old streaming advanced, 6845151 -silesia.tar, level -1, old streaming advanced, 6187938 +silesia.tar, level -5, old streaming advanced, 7043687 +silesia.tar, level -3, old streaming advanced, 6671317 +silesia.tar, level -1, old streaming advanced, 6187457 silesia.tar, level 0, old streaming advanced, 4859271 -silesia.tar, level 1, old streaming advanced, 5334890 +silesia.tar, level 1, old streaming advanced, 5333896 silesia.tar, level 3, old streaming advanced, 4859271 silesia.tar, level 4, old streaming advanced, 4797470 silesia.tar, level 5, old streaming advanced, 4649992 @@ -1334,11 +1334,11 @@ silesia.tar, small chain log, old stre silesia.tar, explicit params, old streaming advanced, 4806873 silesia.tar, uncompressed literals, old streaming advanced, 4859271 silesia.tar, uncompressed literals optimal, old streaming advanced, 4267266 -silesia.tar, huffman literals, old streaming advanced, 6187938 +silesia.tar, huffman literals, old streaming advanced, 6187457 silesia.tar, multithreaded with advanced params, old streaming advanced, 4859271 -github, level -5, old streaming advanced, 241214 +github, level -5, old streaming advanced, 213265 github, level -5 with dict, old streaming advanced, 49562 -github, level -3, old streaming advanced, 222937 +github, level -3, old streaming advanced, 196126 github, level -3 with dict, old streaming advanced, 44956 github, level -1, old streaming advanced, 181107 github, level -1 with dict, old streaming advanced, 42383 @@ -1377,10 +1377,10 @@ github, uncompressed literals, old stre github, uncompressed literals optimal, old streaming advanced, 134064 github, huffman literals, old streaming advanced, 181107 github, multithreaded with advanced params, old streaming advanced, 141104 -github.tar, level -5, old streaming advanced, 64132 -github.tar, level -5 with dict, old streaming advanced, 48982 -github.tar, level -3, old streaming advanced, 50964 -github.tar, level -3 with dict, old streaming advanced, 43357 +github.tar, level -5, old streaming advanced, 51420 +github.tar, level -5 with dict, old streaming advanced, 46091 +github.tar, level -3, old streaming advanced, 45077 +github.tar, level -3 with dict, old streaming advanced, 42222 github.tar, level -1, old streaming advanced, 42536 github.tar, level -1 with dict, old streaming advanced, 41494 github.tar, level 0, old streaming advanced, 38831 @@ -1433,8 +1433,8 @@ github, level 13 with dict, old stre github, level 16 with dict, old streaming cdict, 37577 github, level 19 with dict, old streaming cdict, 37576 github, no source size with dict, old streaming cdict, 40654 -github.tar, level -5 with dict, old streaming cdict, 49146 -github.tar, level -3 with dict, old streaming cdict, 43468 +github.tar, level -5 with dict, old streaming cdict, 46276 +github.tar, level -3 with dict, old streaming cdict, 42354 github.tar, level -1 with dict, old streaming cdict, 41662 github.tar, level 0 with dict, old streaming cdict, 37956 github.tar, level 1 with dict, old streaming cdict, 38761 |