Improve Huffman sorting algorithm

This commit is contained in:
senhuang42 2021-07-08 15:48:57 -04:00
parent 6ee70bae46
commit aa1957477b
3 changed files with 343 additions and 235 deletions

View File

@ -90,7 +90,7 @@ HUF_PUBLIC_API size_t HUF_compress2 (void* dst, size_t dstCapacity,
/** HUF_compress4X_wksp() :
* Same as HUF_compress2(), but uses externally allocated `workSpace`.
* `workspace` must be at least as large as HUF_WORKSPACE_SIZE */
#define HUF_WORKSPACE_SIZE ((8 << 10) + 256)
#define HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */)
#define HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64))
HUF_PUBLIC_API size_t HUF_compress4X_wksp (void* dst, size_t dstCapacity,
const void* src, size_t srcSize,

View File

@ -428,22 +428,122 @@ static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxNbBits)
}
typedef struct {
U32 base;
U32 curr;
U16 base;
U16 curr;
} rankPos;
typedef nodeElt huffNodeTable[HUF_CTABLE_WORKSPACE_SIZE_U32];
#define RANK_POSITION_TABLE_SIZE 32
/* Number of buckets available for HUF_sort() */
#define RANK_POSITION_TABLE_SIZE 128
typedef struct {
huffNodeTable huffNodeTbl;
rankPos rankPosition[RANK_POSITION_TABLE_SIZE];
} HUF_buildCTable_wksp_tables;
/* RANK_POSITION_DISTINCT_COUNT_CUTOFF == Cutoff point in HUF_sort() buckets for which we use log2 bucketing.
* Strategy is to use as many buckets as possible for representing distinct
* counts while using the remainder to represent all counts up to HUF_BLOCKSIZE_MAX
* using log2 bucketing.
*
* To satisfy this requirement for 128 buckets, we can do the following:
* Let buckets 0-114 represent distinct counts of [0, 114]
* Let buckets 115 to 126 represent counts of [115, HUF_BLOCKSIZE_MAX]. (the final bucket 127 must remain empty)
*
* Note that we don't actually need 17 buckets (assuming 2^17 maxcount) for log2 bucketing since
* the first few buckets in the log2 bucketing representation are already covered by the distinct count bucketing.
*/
#define RANK_POSITION_LOG_BUCKETS_BEGIN (RANK_POSITION_TABLE_SIZE - 1) - BIT_highbit32(HUF_BLOCKSIZE_MAX) - 1
#define RANK_POSITION_DISTINCT_COUNT_CUTOFF RANK_POSITION_LOG_BUCKETS_BEGIN + BIT_highbit32(RANK_POSITION_LOG_BUCKETS_BEGIN)
/* Return the appropriate bucket index for a given count. See definition of
* RANK_POSITION_DISTINCT_COUNT_CUTOFF for explanation of bucketing strategy.
*/
static U32 HUF_getIndex(U32 const count) {
return (count < RANK_POSITION_DISTINCT_COUNT_CUTOFF)
? count
: BIT_highbit32(count) + RANK_POSITION_LOG_BUCKETS_BEGIN;
}
/* Helper swap function for HUF_quickSortPartition() */
static void HUF_swapNodes(nodeElt* a, nodeElt* b) {
nodeElt tmp = *a;
*a = *b;
*b = tmp;
}
/* Returns 0 if the huffNode array is not sorted by descending count */
UNUSED_ATTR
static int HUF_isSorted(nodeElt huffNode[], U32 const maxSymbolValue1) {
U32 i;
for (i = 1; i < maxSymbolValue1; ++i) {
if (huffNode[i].count > huffNode[i-1].count) {
return 0;
}
}
return 1;
}
/* Insertion sort by descending order */
HINT_INLINE void HUF_insertionSort(nodeElt huffNode[], int const low, int const high) {
int i;
int const size = high-low+1;
huffNode += low;
for (i = 1; i < size; ++i) {
nodeElt const key = huffNode[i];
int j = i - 1;
while (j >= 0 && huffNode[j].count < key.count) {
huffNode[j + 1] = huffNode[j];
j--;
}
huffNode[j + 1] = key;
}
}
/* Pivot helper function for quicksort. */
static int HUF_quickSortPartition(nodeElt arr[], int const low, int const high) {
/* Simply select rightmost element as pivot. "Better" selectors like
* median-of-three don't experimentally appear to have any benefit.
*/
U32 const pivot = arr[high].count;
int i = low - 1;
int j = low;
for ( ; j < high; j++) {
if (arr[j].count > pivot) {
i++;
HUF_swapNodes(&arr[i], &arr[j]);
}
}
HUF_swapNodes(&arr[i + 1], &arr[high]);
return i + 1;
}
/* Classic quicksort by descending with partially iterative calls
* to reduce worst case callstack size.
*/
static void HUF_simpleQuickSort(nodeElt arr[], int low, int high) {
int const kInsertionSortThreshold = 8;
if (high - low < kInsertionSortThreshold) {
HUF_insertionSort(arr, low, high);
return;
}
while (low < high) {
int const idx = HUF_quickSortPartition(arr, low, high);
if (idx - low < high - idx) {
HUF_simpleQuickSort(arr, low, idx - 1);
low = idx + 1;
} else {
HUF_simpleQuickSort(arr, idx + 1, high);
high = idx - 1;
}
}
}
/**
* HUF_sort():
* Sorts the symbols [0, maxSymbolValue] by count[symbol] in decreasing order.
* This is a typical bucket sorting strategy that uses either quicksort or insertion sort to sort each bucket.
*
* @param[out] huffNode Sorted symbols by decreasing count. Only members `.count` and `.byte` are filled.
* Must have (maxSymbolValue + 1) entries.
@ -451,44 +551,52 @@ typedef struct {
* @param[in] maxSymbolValue Maximum symbol value.
* @param rankPosition This is a scratch workspace. Must have RANK_POSITION_TABLE_SIZE entries.
*/
static void HUF_sort(nodeElt* huffNode, const unsigned* count, U32 maxSymbolValue, rankPos* rankPosition)
{
int n;
int const maxSymbolValue1 = (int)maxSymbolValue + 1;
static void HUF_sort(nodeElt huffNode[], const unsigned count[], U32 const maxSymbolValue, rankPos rankPosition[]) {
U32 n;
U32 const maxSymbolValue1 = maxSymbolValue+1;
/* Compute base and set curr to base.
* For symbol s let lowerRank = BIT_highbit32(count[n]+1) and rank = lowerRank + 1.
* Then 2^lowerRank <= count[n]+1 <= 2^rank.
* For symbol s let lowerRank = HUF_getIndex(count[n]) and rank = lowerRank + 1.
* See HUF_getIndex to see bucketing strategy.
* We attribute each symbol to lowerRank's base value, because we want to know where
* each rank begins in the output, so for rank R we want to count ranks R+1 and above.
*/
ZSTD_memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE);
for (n = 0; n < maxSymbolValue1; ++n) {
U32 lowerRank = BIT_highbit32(count[n] + 1);
U32 lowerRank = HUF_getIndex(count[n]);
assert(lowerRank < RANK_POSITION_TABLE_SIZE - 1);
rankPosition[lowerRank].base++;
}
assert(rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0);
/* Set up the rankPosition table */
for (n = RANK_POSITION_TABLE_SIZE - 1; n > 0; --n) {
rankPosition[n-1].base += rankPosition[n].base;
rankPosition[n-1].curr = rankPosition[n-1].base;
}
/* Sort */
/* Insert each symbol into their appropriate bucket, setting up rankPosition table. */
for (n = 0; n < maxSymbolValue1; ++n) {
U32 const c = count[n];
U32 const r = BIT_highbit32(c+1) + 1;
U32 pos = rankPosition[r].curr++;
/* Insert into the correct position in the rank.
* We have at most 256 symbols, so this insertion should be fine.
*/
while ((pos > rankPosition[r].base) && (c > huffNode[pos-1].count)) {
huffNode[pos] = huffNode[pos-1];
pos--;
}
U32 const r = HUF_getIndex(c) + 1;
U32 const pos = rankPosition[r].curr++;
assert(pos < maxSymbolValue1);
huffNode[pos].count = c;
huffNode[pos].byte = (BYTE)n;
}
/* Sort each bucket. */
for (n = RANK_POSITION_DISTINCT_COUNT_CUTOFF; n < RANK_POSITION_TABLE_SIZE - 1; ++n) {
U32 const bucketSize = rankPosition[n].curr-rankPosition[n].base;
U32 const bucketStartIdx = rankPosition[n].base;
if (bucketSize > 1) {
assert(bucketStartIdx < maxSymbolValue1);
HUF_simpleQuickSort(huffNode + bucketStartIdx, 0, bucketSize-1);
}
}
assert(HUF_isSorted(huffNode, maxSymbolValue1));
}
/** HUF_buildCTable_wksp() :
* Same as HUF_buildCTable(), but using externally allocated scratch buffer.

View File

@ -2,19 +2,19 @@ Data, Config, Method,
silesia.tar, level -5, compress simple, 6738593
silesia.tar, level -3, compress simple, 6446372
silesia.tar, level -1, compress simple, 6186042
silesia.tar, level 0, compress simple, 4861425
silesia.tar, level 0, compress simple, 4861423
silesia.tar, level 1, compress simple, 5334885
silesia.tar, level 3, compress simple, 4861425
silesia.tar, level 4, compress simple, 4799630
silesia.tar, level 3, compress simple, 4861423
silesia.tar, level 4, compress simple, 4799632
silesia.tar, level 5, compress simple, 4719256
silesia.tar, level 6, compress simple, 4677721
silesia.tar, level 7, compress simple, 4613541
silesia.tar, level 6, compress simple, 4677724
silesia.tar, level 7, compress simple, 4613545
silesia.tar, level 9, compress simple, 4555426
silesia.tar, level 13, compress simple, 4491764
silesia.tar, level 13, compress simple, 4491768
silesia.tar, level 16, compress simple, 4356834
silesia.tar, level 19, compress simple, 4264392
silesia.tar, uncompressed literals, compress simple, 4861425
silesia.tar, uncompressed literals optimal, compress simple, 4264392
silesia.tar, level 19, compress simple, 4264388
silesia.tar, uncompressed literals, compress simple, 4861423
silesia.tar, uncompressed literals optimal, compress simple, 4264388
silesia.tar, huffman literals, compress simple, 6186042
github.tar, level -5, compress simple, 46856
github.tar, level -3, compress simple, 43754
@ -36,28 +36,28 @@ github.tar, huffman literals, compress
silesia, level -5, compress cctx, 6737607
silesia, level -3, compress cctx, 6444677
silesia, level -1, compress cctx, 6178460
silesia, level 0, compress cctx, 4849552
silesia, level 1, compress cctx, 5313204
silesia, level 3, compress cctx, 4849552
silesia, level 4, compress cctx, 4786970
silesia, level 5, compress cctx, 4707794
silesia, level 0, compress cctx, 4849551
silesia, level 1, compress cctx, 5313202
silesia, level 3, compress cctx, 4849551
silesia, level 4, compress cctx, 4786969
silesia, level 5, compress cctx, 4707790
silesia, level 6, compress cctx, 4666383
silesia, level 7, compress cctx, 4603381
silesia, level 9, compress cctx, 4546001
silesia, level 13, compress cctx, 4482135
silesia, level 9, compress cctx, 4546005
silesia, level 13, compress cctx, 4482131
silesia, level 16, compress cctx, 4360251
silesia, level 19, compress cctx, 4283237
silesia, long distance mode, compress cctx, 4849552
silesia, multithreaded, compress cctx, 4849552
silesia, multithreaded long distance mode, compress cctx, 4849552
silesia, level 19, compress cctx, 4283236
silesia, long distance mode, compress cctx, 4849551
silesia, multithreaded, compress cctx, 4849551
silesia, multithreaded long distance mode, compress cctx, 4849551
silesia, small window log, compress cctx, 7084179
silesia, small hash log, compress cctx, 6526141
silesia, small chain log, compress cctx, 4912197
silesia, explicit params, compress cctx, 4794479
silesia, uncompressed literals, compress cctx, 4849552
silesia, uncompressed literals optimal, compress cctx, 4283237
silesia, small chain log, compress cctx, 4912199
silesia, explicit params, compress cctx, 4794480
silesia, uncompressed literals, compress cctx, 4849551
silesia, uncompressed literals optimal, compress cctx, 4283236
silesia, huffman literals, compress cctx, 6178460
silesia, multithreaded with advanced params, compress cctx, 4849552
silesia, multithreaded with advanced params, compress cctx, 4849551
github, level -5, compress cctx, 205285
github, level -5 with dict, compress cctx, 47294
github, level -3, compress cctx, 190643
@ -100,50 +100,50 @@ github, multithreaded with advanced params, compress
silesia, level -5, zstdcli, 6737655
silesia, level -3, zstdcli, 6444725
silesia, level -1, zstdcli, 6178508
silesia, level 0, zstdcli, 4849600
silesia, level 1, zstdcli, 5313252
silesia, level 3, zstdcli, 4849600
silesia, level 4, zstdcli, 4787018
silesia, level 5, zstdcli, 4707842
silesia, level 0, zstdcli, 4849599
silesia, level 1, zstdcli, 5313250
silesia, level 3, zstdcli, 4849599
silesia, level 4, zstdcli, 4787017
silesia, level 5, zstdcli, 4707838
silesia, level 6, zstdcli, 4666431
silesia, level 7, zstdcli, 4603429
silesia, level 9, zstdcli, 4546049
silesia, level 13, zstdcli, 4482183
silesia, level 9, zstdcli, 4546053
silesia, level 13, zstdcli, 4482179
silesia, level 16, zstdcli, 4360299
silesia, level 19, zstdcli, 4283285
silesia, long distance mode, zstdcli, 4840806
silesia, multithreaded, zstdcli, 4849600
silesia, multithreaded long distance mode, zstdcli, 4840806
silesia, level 19, zstdcli, 4283284
silesia, long distance mode, zstdcli, 4840807
silesia, multithreaded, zstdcli, 4849599
silesia, multithreaded long distance mode, zstdcli, 4840807
silesia, small window log, zstdcli, 7095967
silesia, small hash log, zstdcli, 6526189
silesia, small chain log, zstdcli, 4912245
silesia, small chain log, zstdcli, 4912247
silesia, explicit params, zstdcli, 4795856
silesia, uncompressed literals, zstdcli, 5128030
silesia, uncompressed literals optimal, zstdcli, 4317944
silesia, huffman literals, zstdcli, 5326316
silesia, huffman literals, zstdcli, 5326317
silesia, multithreaded with advanced params, zstdcli, 5128030
silesia.tar, level -5, zstdcli, 6738934
silesia.tar, level -3, zstdcli, 6448419
silesia.tar, level -1, zstdcli, 6186912
silesia.tar, level 0, zstdcli, 4861512
silesia.tar, level 0, zstdcli, 4861511
silesia.tar, level 1, zstdcli, 5336318
silesia.tar, level 3, zstdcli, 4861512
silesia.tar, level 3, zstdcli, 4861511
silesia.tar, level 4, zstdcli, 4800529
silesia.tar, level 5, zstdcli, 4720121
silesia.tar, level 6, zstdcli, 4678661
silesia.tar, level 7, zstdcli, 4614424
silesia.tar, level 6, zstdcli, 4678663
silesia.tar, level 7, zstdcli, 4614426
silesia.tar, level 9, zstdcli, 4556062
silesia.tar, level 13, zstdcli, 4491768
silesia.tar, level 13, zstdcli, 4491772
silesia.tar, level 16, zstdcli, 4356838
silesia.tar, level 19, zstdcli, 4264396
silesia.tar, no source size, zstdcli, 4861508
silesia.tar, long distance mode, zstdcli, 4853226
silesia.tar, multithreaded, zstdcli, 4861512
silesia.tar, multithreaded long distance mode, zstdcli, 4853226
silesia.tar, level 19, zstdcli, 4264392
silesia.tar, no source size, zstdcli, 4861507
silesia.tar, long distance mode, zstdcli, 4853225
silesia.tar, multithreaded, zstdcli, 4861511
silesia.tar, multithreaded long distance mode, zstdcli, 4853225
silesia.tar, small window log, zstdcli, 7101576
silesia.tar, small hash log, zstdcli, 6529290
silesia.tar, small chain log, zstdcli, 4917022
silesia.tar, explicit params, zstdcli, 4821274
silesia.tar, small hash log, zstdcli, 6529286
silesia.tar, small chain log, zstdcli, 4917020
silesia.tar, explicit params, zstdcli, 4821277
silesia.tar, uncompressed literals, zstdcli, 5129559
silesia.tar, uncompressed literals optimal, zstdcli, 4307404
silesia.tar, huffman literals, zstdcli, 5347610
@ -231,63 +231,63 @@ github.tar, multithreaded with advanced params, zstdcli,
silesia, level -5, advanced one pass, 6737607
silesia, level -3, advanced one pass, 6444677
silesia, level -1, advanced one pass, 6178460
silesia, level 0, advanced one pass, 4849552
silesia, level 1, advanced one pass, 5313204
silesia, level 3, advanced one pass, 4849552
silesia, level 4, advanced one pass, 4786970
silesia, level 5 row 1, advanced one pass, 4710236
silesia, level 5 row 2, advanced one pass, 4707794
silesia, level 5, advanced one pass, 4707794
silesia, level 0, advanced one pass, 4849551
silesia, level 1, advanced one pass, 5313202
silesia, level 3, advanced one pass, 4849551
silesia, level 4, advanced one pass, 4786969
silesia, level 5 row 1, advanced one pass, 4710233
silesia, level 5 row 2, advanced one pass, 4707790
silesia, level 5, advanced one pass, 4707790
silesia, level 6, advanced one pass, 4666383
silesia, level 7 row 1, advanced one pass, 4596296
silesia, level 7 row 1, advanced one pass, 4596297
silesia, level 7 row 2, advanced one pass, 4603381
silesia, level 7, advanced one pass, 4603381
silesia, level 9, advanced one pass, 4546001
silesia, level 9, advanced one pass, 4546005
silesia, level 12 row 1, advanced one pass, 4519288
silesia, level 12 row 2, advanced one pass, 4521397
silesia, level 13, advanced one pass, 4482135
silesia, level 12 row 2, advanced one pass, 4521406
silesia, level 13, advanced one pass, 4482131
silesia, level 16, advanced one pass, 4360251
silesia, level 19, advanced one pass, 4283237
silesia, no source size, advanced one pass, 4849552
silesia, level 19, advanced one pass, 4283236
silesia, no source size, advanced one pass, 4849551
silesia, long distance mode, advanced one pass, 4840738
silesia, multithreaded, advanced one pass, 4849552
silesia, multithreaded long distance mode, advanced one pass, 4840758
silesia, multithreaded, advanced one pass, 4849551
silesia, multithreaded long distance mode, advanced one pass, 4840759
silesia, small window log, advanced one pass, 7095919
silesia, small hash log, advanced one pass, 6526141
silesia, small chain log, advanced one pass, 4912197
silesia, small chain log, advanced one pass, 4912199
silesia, explicit params, advanced one pass, 4795856
silesia, uncompressed literals, advanced one pass, 5127982
silesia, uncompressed literals optimal, advanced one pass, 4317896
silesia, huffman literals, advanced one pass, 5326268
silesia, huffman literals, advanced one pass, 5326269
silesia, multithreaded with advanced params, advanced one pass, 5127982
silesia.tar, level -5, advanced one pass, 6738593
silesia.tar, level -3, advanced one pass, 6446372
silesia.tar, level -1, advanced one pass, 6186042
silesia.tar, level 0, advanced one pass, 4861425
silesia.tar, level 0, advanced one pass, 4861423
silesia.tar, level 1, advanced one pass, 5334885
silesia.tar, level 3, advanced one pass, 4861425
silesia.tar, level 4, advanced one pass, 4799630
silesia.tar, level 3, advanced one pass, 4861423
silesia.tar, level 4, advanced one pass, 4799632
silesia.tar, level 5 row 1, advanced one pass, 4722324
silesia.tar, level 5 row 2, advanced one pass, 4719256
silesia.tar, level 5, advanced one pass, 4719256
silesia.tar, level 6, advanced one pass, 4677721
silesia.tar, level 7 row 1, advanced one pass, 4606715
silesia.tar, level 7 row 2, advanced one pass, 4613541
silesia.tar, level 7, advanced one pass, 4613541
silesia.tar, level 6, advanced one pass, 4677724
silesia.tar, level 7 row 1, advanced one pass, 4606716
silesia.tar, level 7 row 2, advanced one pass, 4613545
silesia.tar, level 7, advanced one pass, 4613545
silesia.tar, level 9, advanced one pass, 4555426
silesia.tar, level 12 row 1, advanced one pass, 4529459
silesia.tar, level 12 row 2, advanced one pass, 4530256
silesia.tar, level 13, advanced one pass, 4491764
silesia.tar, level 12 row 1, advanced one pass, 4529458
silesia.tar, level 12 row 2, advanced one pass, 4530257
silesia.tar, level 13, advanced one pass, 4491768
silesia.tar, level 16, advanced one pass, 4356834
silesia.tar, level 19, advanced one pass, 4264392
silesia.tar, no source size, advanced one pass, 4861425
silesia.tar, long distance mode, advanced one pass, 4847754
silesia.tar, multithreaded, advanced one pass, 4861508
silesia.tar, multithreaded long distance mode, advanced one pass, 4853222
silesia.tar, level 19, advanced one pass, 4264388
silesia.tar, no source size, advanced one pass, 4861423
silesia.tar, long distance mode, advanced one pass, 4847753
silesia.tar, multithreaded, advanced one pass, 4861507
silesia.tar, multithreaded long distance mode, advanced one pass, 4853221
silesia.tar, small window log, advanced one pass, 7101530
silesia.tar, small hash log, advanced one pass, 6529232
silesia.tar, small chain log, advanced one pass, 4917041
silesia.tar, explicit params, advanced one pass, 4807380
silesia.tar, small hash log, advanced one pass, 6529228
silesia.tar, small chain log, advanced one pass, 4917039
silesia.tar, explicit params, advanced one pass, 4807383
silesia.tar, uncompressed literals, advanced one pass, 5129458
silesia.tar, uncompressed literals optimal, advanced one pass, 4307400
silesia.tar, huffman literals, advanced one pass, 5347335
@ -525,63 +525,63 @@ github.tar, multithreaded with advanced params, advanced
silesia, level -5, advanced one pass small out, 6737607
silesia, level -3, advanced one pass small out, 6444677
silesia, level -1, advanced one pass small out, 6178460
silesia, level 0, advanced one pass small out, 4849552
silesia, level 1, advanced one pass small out, 5313204
silesia, level 3, advanced one pass small out, 4849552
silesia, level 4, advanced one pass small out, 4786970
silesia, level 5 row 1, advanced one pass small out, 4710236
silesia, level 5 row 2, advanced one pass small out, 4707794
silesia, level 5, advanced one pass small out, 4707794
silesia, level 0, advanced one pass small out, 4849551
silesia, level 1, advanced one pass small out, 5313202
silesia, level 3, advanced one pass small out, 4849551
silesia, level 4, advanced one pass small out, 4786969
silesia, level 5 row 1, advanced one pass small out, 4710233
silesia, level 5 row 2, advanced one pass small out, 4707790
silesia, level 5, advanced one pass small out, 4707790
silesia, level 6, advanced one pass small out, 4666383
silesia, level 7 row 1, advanced one pass small out, 4596296
silesia, level 7 row 1, advanced one pass small out, 4596297
silesia, level 7 row 2, advanced one pass small out, 4603381
silesia, level 7, advanced one pass small out, 4603381
silesia, level 9, advanced one pass small out, 4546001
silesia, level 9, advanced one pass small out, 4546005
silesia, level 12 row 1, advanced one pass small out, 4519288
silesia, level 12 row 2, advanced one pass small out, 4521397
silesia, level 13, advanced one pass small out, 4482135
silesia, level 12 row 2, advanced one pass small out, 4521406
silesia, level 13, advanced one pass small out, 4482131
silesia, level 16, advanced one pass small out, 4360251
silesia, level 19, advanced one pass small out, 4283237
silesia, no source size, advanced one pass small out, 4849552
silesia, level 19, advanced one pass small out, 4283236
silesia, no source size, advanced one pass small out, 4849551
silesia, long distance mode, advanced one pass small out, 4840738
silesia, multithreaded, advanced one pass small out, 4849552
silesia, multithreaded long distance mode, advanced one pass small out, 4840758
silesia, multithreaded, advanced one pass small out, 4849551
silesia, multithreaded long distance mode, advanced one pass small out, 4840759
silesia, small window log, advanced one pass small out, 7095919
silesia, small hash log, advanced one pass small out, 6526141
silesia, small chain log, advanced one pass small out, 4912197
silesia, small chain log, advanced one pass small out, 4912199
silesia, explicit params, advanced one pass small out, 4795856
silesia, uncompressed literals, advanced one pass small out, 5127982
silesia, uncompressed literals optimal, advanced one pass small out, 4317896
silesia, huffman literals, advanced one pass small out, 5326268
silesia, huffman literals, advanced one pass small out, 5326269
silesia, multithreaded with advanced params, advanced one pass small out, 5127982
silesia.tar, level -5, advanced one pass small out, 6738593
silesia.tar, level -3, advanced one pass small out, 6446372
silesia.tar, level -1, advanced one pass small out, 6186042
silesia.tar, level 0, advanced one pass small out, 4861425
silesia.tar, level 0, advanced one pass small out, 4861423
silesia.tar, level 1, advanced one pass small out, 5334885
silesia.tar, level 3, advanced one pass small out, 4861425
silesia.tar, level 4, advanced one pass small out, 4799630
silesia.tar, level 3, advanced one pass small out, 4861423
silesia.tar, level 4, advanced one pass small out, 4799632
silesia.tar, level 5 row 1, advanced one pass small out, 4722324
silesia.tar, level 5 row 2, advanced one pass small out, 4719256
silesia.tar, level 5, advanced one pass small out, 4719256
silesia.tar, level 6, advanced one pass small out, 4677721
silesia.tar, level 7 row 1, advanced one pass small out, 4606715
silesia.tar, level 7 row 2, advanced one pass small out, 4613541
silesia.tar, level 7, advanced one pass small out, 4613541
silesia.tar, level 6, advanced one pass small out, 4677724
silesia.tar, level 7 row 1, advanced one pass small out, 4606716
silesia.tar, level 7 row 2, advanced one pass small out, 4613545
silesia.tar, level 7, advanced one pass small out, 4613545
silesia.tar, level 9, advanced one pass small out, 4555426
silesia.tar, level 12 row 1, advanced one pass small out, 4529459
silesia.tar, level 12 row 2, advanced one pass small out, 4530256
silesia.tar, level 13, advanced one pass small out, 4491764
silesia.tar, level 12 row 1, advanced one pass small out, 4529458
silesia.tar, level 12 row 2, advanced one pass small out, 4530257
silesia.tar, level 13, advanced one pass small out, 4491768
silesia.tar, level 16, advanced one pass small out, 4356834
silesia.tar, level 19, advanced one pass small out, 4264392
silesia.tar, no source size, advanced one pass small out, 4861425
silesia.tar, long distance mode, advanced one pass small out, 4847754
silesia.tar, multithreaded, advanced one pass small out, 4861508
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4853222
silesia.tar, level 19, advanced one pass small out, 4264388
silesia.tar, no source size, advanced one pass small out, 4861423
silesia.tar, long distance mode, advanced one pass small out, 4847753
silesia.tar, multithreaded, advanced one pass small out, 4861507
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4853221
silesia.tar, small window log, advanced one pass small out, 7101530
silesia.tar, small hash log, advanced one pass small out, 6529232
silesia.tar, small chain log, advanced one pass small out, 4917041
silesia.tar, explicit params, advanced one pass small out, 4807380
silesia.tar, small hash log, advanced one pass small out, 6529228
silesia.tar, small chain log, advanced one pass small out, 4917039
silesia.tar, explicit params, advanced one pass small out, 4807383
silesia.tar, uncompressed literals, advanced one pass small out, 5129458
silesia.tar, uncompressed literals optimal, advanced one pass small out, 4307400
silesia.tar, huffman literals, advanced one pass small out, 5347335
@ -819,63 +819,63 @@ github.tar, multithreaded with advanced params, advanced
silesia, level -5, advanced streaming, 6882505
silesia, level -3, advanced streaming, 6568376
silesia, level -1, advanced streaming, 6183403
silesia, level 0, advanced streaming, 4849552
silesia, level 1, advanced streaming, 5314162
silesia, level 3, advanced streaming, 4849552
silesia, level 4, advanced streaming, 4786970
silesia, level 5 row 1, advanced streaming, 4710236
silesia, level 5 row 2, advanced streaming, 4707794
silesia, level 5, advanced streaming, 4707794
silesia, level 0, advanced streaming, 4849551
silesia, level 1, advanced streaming, 5314161
silesia, level 3, advanced streaming, 4849551
silesia, level 4, advanced streaming, 4786969
silesia, level 5 row 1, advanced streaming, 4710233
silesia, level 5 row 2, advanced streaming, 4707790
silesia, level 5, advanced streaming, 4707790
silesia, level 6, advanced streaming, 4666383
silesia, level 7 row 1, advanced streaming, 4596296
silesia, level 7 row 1, advanced streaming, 4596297
silesia, level 7 row 2, advanced streaming, 4603381
silesia, level 7, advanced streaming, 4603381
silesia, level 9, advanced streaming, 4546001
silesia, level 9, advanced streaming, 4546005
silesia, level 12 row 1, advanced streaming, 4519288
silesia, level 12 row 2, advanced streaming, 4521397
silesia, level 13, advanced streaming, 4482135
silesia, level 12 row 2, advanced streaming, 4521406
silesia, level 13, advanced streaming, 4482131
silesia, level 16, advanced streaming, 4360251
silesia, level 19, advanced streaming, 4283237
silesia, no source size, advanced streaming, 4849516
silesia, level 19, advanced streaming, 4283236
silesia, no source size, advanced streaming, 4849515
silesia, long distance mode, advanced streaming, 4840738
silesia, multithreaded, advanced streaming, 4849552
silesia, multithreaded long distance mode, advanced streaming, 4840758
silesia, multithreaded, advanced streaming, 4849551
silesia, multithreaded long distance mode, advanced streaming, 4840759
silesia, small window log, advanced streaming, 7112062
silesia, small hash log, advanced streaming, 6526141
silesia, small chain log, advanced streaming, 4912197
silesia, small chain log, advanced streaming, 4912199
silesia, explicit params, advanced streaming, 4795884
silesia, uncompressed literals, advanced streaming, 5127982
silesia, uncompressed literals optimal, advanced streaming, 4317896
silesia, huffman literals, advanced streaming, 5331168
silesia, huffman literals, advanced streaming, 5331171
silesia, multithreaded with advanced params, advanced streaming, 5127982
silesia.tar, level -5, advanced streaming, 6982759
silesia.tar, level -3, advanced streaming, 6641283
silesia.tar, level -1, advanced streaming, 6190795
silesia.tar, level 0, advanced streaming, 4861427
silesia.tar, level 1, advanced streaming, 5336939
silesia.tar, level 3, advanced streaming, 4861427
silesia.tar, level 4, advanced streaming, 4799630
silesia.tar, level 0, advanced streaming, 4861425
silesia.tar, level 1, advanced streaming, 5336941
silesia.tar, level 3, advanced streaming, 4861425
silesia.tar, level 4, advanced streaming, 4799632
silesia.tar, level 5 row 1, advanced streaming, 4722329
silesia.tar, level 5 row 2, advanced streaming, 4719261
silesia.tar, level 5, advanced streaming, 4719261
silesia.tar, level 6, advanced streaming, 4677729
silesia.tar, level 7 row 1, advanced streaming, 4606715
silesia.tar, level 7 row 2, advanced streaming, 4613544
silesia.tar, level 7, advanced streaming, 4613544
silesia.tar, level 6, advanced streaming, 4677732
silesia.tar, level 7 row 1, advanced streaming, 4606717
silesia.tar, level 7 row 2, advanced streaming, 4613548
silesia.tar, level 7, advanced streaming, 4613548
silesia.tar, level 9, advanced streaming, 4555432
silesia.tar, level 12 row 1, advanced streaming, 4529459
silesia.tar, level 12 row 2, advanced streaming, 4530258
silesia.tar, level 13, advanced streaming, 4491765
silesia.tar, level 12 row 1, advanced streaming, 4529458
silesia.tar, level 12 row 2, advanced streaming, 4530259
silesia.tar, level 13, advanced streaming, 4491769
silesia.tar, level 16, advanced streaming, 4356834
silesia.tar, level 19, advanced streaming, 4264392
silesia.tar, no source size, advanced streaming, 4861423
silesia.tar, long distance mode, advanced streaming, 4847754
silesia.tar, multithreaded, advanced streaming, 4861508
silesia.tar, multithreaded long distance mode, advanced streaming, 4853222
silesia.tar, level 19, advanced streaming, 4264388
silesia.tar, no source size, advanced streaming, 4861421
silesia.tar, long distance mode, advanced streaming, 4847753
silesia.tar, multithreaded, advanced streaming, 4861507
silesia.tar, multithreaded long distance mode, advanced streaming, 4853221
silesia.tar, small window log, advanced streaming, 7118769
silesia.tar, small hash log, advanced streaming, 6529235
silesia.tar, small chain log, advanced streaming, 4917021
silesia.tar, explicit params, advanced streaming, 4807399
silesia.tar, small hash log, advanced streaming, 6529231
silesia.tar, small chain log, advanced streaming, 4917019
silesia.tar, explicit params, advanced streaming, 4807403
silesia.tar, uncompressed literals, advanced streaming, 5129461
silesia.tar, uncompressed literals optimal, advanced streaming, 4307400
silesia.tar, huffman literals, advanced streaming, 5352360
@ -1113,38 +1113,38 @@ github.tar, multithreaded with advanced params, advanced
silesia, level -5, old streaming, 6882505
silesia, level -3, old streaming, 6568376
silesia, level -1, old streaming, 6183403
silesia, level 0, old streaming, 4849552
silesia, level 1, old streaming, 5314162
silesia, level 3, old streaming, 4849552
silesia, level 4, old streaming, 4786970
silesia, level 5, old streaming, 4707794
silesia, level 0, old streaming, 4849551
silesia, level 1, old streaming, 5314161
silesia, level 3, old streaming, 4849551
silesia, level 4, old streaming, 4786969
silesia, level 5, old streaming, 4707790
silesia, level 6, old streaming, 4666383
silesia, level 7, old streaming, 4603381
silesia, level 9, old streaming, 4546001
silesia, level 13, old streaming, 4482135
silesia, level 9, old streaming, 4546005
silesia, level 13, old streaming, 4482131
silesia, level 16, old streaming, 4360251
silesia, level 19, old streaming, 4283237
silesia, no source size, old streaming, 4849516
silesia, uncompressed literals, old streaming, 4849552
silesia, uncompressed literals optimal, old streaming, 4283237
silesia, level 19, old streaming, 4283236
silesia, no source size, old streaming, 4849515
silesia, uncompressed literals, old streaming, 4849551
silesia, uncompressed literals optimal, old streaming, 4283236
silesia, huffman literals, old streaming, 6183403
silesia.tar, level -5, old streaming, 6982759
silesia.tar, level -3, old streaming, 6641283
silesia.tar, level -1, old streaming, 6190795
silesia.tar, level 0, old streaming, 4861427
silesia.tar, level 1, old streaming, 5336939
silesia.tar, level 3, old streaming, 4861427
silesia.tar, level 4, old streaming, 4799630
silesia.tar, level 0, old streaming, 4861425
silesia.tar, level 1, old streaming, 5336941
silesia.tar, level 3, old streaming, 4861425
silesia.tar, level 4, old streaming, 4799632
silesia.tar, level 5, old streaming, 4719261
silesia.tar, level 6, old streaming, 4677729
silesia.tar, level 7, old streaming, 4613544
silesia.tar, level 6, old streaming, 4677732
silesia.tar, level 7, old streaming, 4613548
silesia.tar, level 9, old streaming, 4555432
silesia.tar, level 13, old streaming, 4491765
silesia.tar, level 13, old streaming, 4491769
silesia.tar, level 16, old streaming, 4356834
silesia.tar, level 19, old streaming, 4264392
silesia.tar, no source size, old streaming, 4861423
silesia.tar, uncompressed literals, old streaming, 4861427
silesia.tar, uncompressed literals optimal, old streaming, 4264392
silesia.tar, level 19, old streaming, 4264388
silesia.tar, no source size, old streaming, 4861421
silesia.tar, uncompressed literals, old streaming, 4861425
silesia.tar, uncompressed literals optimal, old streaming, 4264388
silesia.tar, huffman literals, old streaming, 6190795
github, level -5, old streaming, 205285
github, level -5 with dict, old streaming, 46718
@ -1215,55 +1215,55 @@ github.tar, huffman literals, old stre
silesia, level -5, old streaming advanced, 6882505
silesia, level -3, old streaming advanced, 6568376
silesia, level -1, old streaming advanced, 6183403
silesia, level 0, old streaming advanced, 4849552
silesia, level 1, old streaming advanced, 5314162
silesia, level 3, old streaming advanced, 4849552
silesia, level 4, old streaming advanced, 4786970
silesia, level 5, old streaming advanced, 4707794
silesia, level 0, old streaming advanced, 4849551
silesia, level 1, old streaming advanced, 5314161
silesia, level 3, old streaming advanced, 4849551
silesia, level 4, old streaming advanced, 4786969
silesia, level 5, old streaming advanced, 4707790
silesia, level 6, old streaming advanced, 4666383
silesia, level 7, old streaming advanced, 4603381
silesia, level 9, old streaming advanced, 4546001
silesia, level 13, old streaming advanced, 4482135
silesia, level 9, old streaming advanced, 4546005
silesia, level 13, old streaming advanced, 4482131
silesia, level 16, old streaming advanced, 4360251
silesia, level 19, old streaming advanced, 4283237
silesia, no source size, old streaming advanced, 4849516
silesia, long distance mode, old streaming advanced, 4849552
silesia, multithreaded, old streaming advanced, 4849552
silesia, multithreaded long distance mode, old streaming advanced, 4849552
silesia, level 19, old streaming advanced, 4283236
silesia, no source size, old streaming advanced, 4849515
silesia, long distance mode, old streaming advanced, 4849551
silesia, multithreaded, old streaming advanced, 4849551
silesia, multithreaded long distance mode, old streaming advanced, 4849551
silesia, small window log, old streaming advanced, 7112062
silesia, small hash log, old streaming advanced, 6526141
silesia, small chain log, old streaming advanced, 4912197
silesia, small chain log, old streaming advanced, 4912199
silesia, explicit params, old streaming advanced, 4795884
silesia, uncompressed literals, old streaming advanced, 4849552
silesia, uncompressed literals optimal, old streaming advanced, 4283237
silesia, uncompressed literals, old streaming advanced, 4849551
silesia, uncompressed literals optimal, old streaming advanced, 4283236
silesia, huffman literals, old streaming advanced, 6183403
silesia, multithreaded with advanced params, old streaming advanced, 4849552
silesia, multithreaded with advanced params, old streaming advanced, 4849551
silesia.tar, level -5, old streaming advanced, 6982759
silesia.tar, level -3, old streaming advanced, 6641283
silesia.tar, level -1, old streaming advanced, 6190795
silesia.tar, level 0, old streaming advanced, 4861427
silesia.tar, level 1, old streaming advanced, 5336939
silesia.tar, level 3, old streaming advanced, 4861427
silesia.tar, level 4, old streaming advanced, 4799630
silesia.tar, level 0, old streaming advanced, 4861425
silesia.tar, level 1, old streaming advanced, 5336941
silesia.tar, level 3, old streaming advanced, 4861425
silesia.tar, level 4, old streaming advanced, 4799632
silesia.tar, level 5, old streaming advanced, 4719261
silesia.tar, level 6, old streaming advanced, 4677729
silesia.tar, level 7, old streaming advanced, 4613544
silesia.tar, level 6, old streaming advanced, 4677732
silesia.tar, level 7, old streaming advanced, 4613548
silesia.tar, level 9, old streaming advanced, 4555432
silesia.tar, level 13, old streaming advanced, 4491765
silesia.tar, level 13, old streaming advanced, 4491769
silesia.tar, level 16, old streaming advanced, 4356834
silesia.tar, level 19, old streaming advanced, 4264392
silesia.tar, no source size, old streaming advanced, 4861423
silesia.tar, long distance mode, old streaming advanced, 4861427
silesia.tar, multithreaded, old streaming advanced, 4861427
silesia.tar, multithreaded long distance mode, old streaming advanced, 4861427
silesia.tar, level 19, old streaming advanced, 4264388
silesia.tar, no source size, old streaming advanced, 4861421
silesia.tar, long distance mode, old streaming advanced, 4861425
silesia.tar, multithreaded, old streaming advanced, 4861425
silesia.tar, multithreaded long distance mode, old streaming advanced, 4861425
silesia.tar, small window log, old streaming advanced, 7118772
silesia.tar, small hash log, old streaming advanced, 6529235
silesia.tar, small chain log, old streaming advanced, 4917021
silesia.tar, explicit params, old streaming advanced, 4807399
silesia.tar, uncompressed literals, old streaming advanced, 4861427
silesia.tar, uncompressed literals optimal, old streaming advanced, 4264392
silesia.tar, small hash log, old streaming advanced, 6529231
silesia.tar, small chain log, old streaming advanced, 4917019
silesia.tar, explicit params, old streaming advanced, 4807403
silesia.tar, uncompressed literals, old streaming advanced, 4861425
silesia.tar, uncompressed literals optimal, old streaming advanced, 4264388
silesia.tar, huffman literals, old streaming advanced, 6190795
silesia.tar, multithreaded with advanced params, old streaming advanced, 4861427
silesia.tar, multithreaded with advanced params, old streaming advanced, 4861425
github, level -5, old streaming advanced, 216734
github, level -5 with dict, old streaming advanced, 49562
github, level -3, old streaming advanced, 192160

1 Data Config Method Total compressed size
2 silesia.tar level -5 compress simple 6738593
3 silesia.tar level -3 compress simple 6446372
4 silesia.tar level -1 compress simple 6186042
5 silesia.tar level 0 compress simple 4861425 4861423
6 silesia.tar level 1 compress simple 5334885
7 silesia.tar level 3 compress simple 4861425 4861423
8 silesia.tar level 4 compress simple 4799630 4799632
9 silesia.tar level 5 compress simple 4719256
10 silesia.tar level 6 compress simple 4677721 4677724
11 silesia.tar level 7 compress simple 4613541 4613545
12 silesia.tar level 9 compress simple 4555426
13 silesia.tar level 13 compress simple 4491764 4491768
14 silesia.tar level 16 compress simple 4356834
15 silesia.tar level 19 compress simple 4264392 4264388
16 silesia.tar uncompressed literals compress simple 4861425 4861423
17 silesia.tar uncompressed literals optimal compress simple 4264392 4264388
18 silesia.tar huffman literals compress simple 6186042
19 github.tar level -5 compress simple 46856
20 github.tar level -3 compress simple 43754
36 silesia level -5 compress cctx 6737607
37 silesia level -3 compress cctx 6444677
38 silesia level -1 compress cctx 6178460
39 silesia level 0 compress cctx 4849552 4849551
40 silesia level 1 compress cctx 5313204 5313202
41 silesia level 3 compress cctx 4849552 4849551
42 silesia level 4 compress cctx 4786970 4786969
43 silesia level 5 compress cctx 4707794 4707790
44 silesia level 6 compress cctx 4666383
45 silesia level 7 compress cctx 4603381
46 silesia level 9 compress cctx 4546001 4546005
47 silesia level 13 compress cctx 4482135 4482131
48 silesia level 16 compress cctx 4360251
49 silesia level 19 compress cctx 4283237 4283236
50 silesia long distance mode compress cctx 4849552 4849551
51 silesia multithreaded compress cctx 4849552 4849551
52 silesia multithreaded long distance mode compress cctx 4849552 4849551
53 silesia small window log compress cctx 7084179
54 silesia small hash log compress cctx 6526141
55 silesia small chain log compress cctx 4912197 4912199
56 silesia explicit params compress cctx 4794479 4794480
57 silesia uncompressed literals compress cctx 4849552 4849551
58 silesia uncompressed literals optimal compress cctx 4283237 4283236
59 silesia huffman literals compress cctx 6178460
60 silesia multithreaded with advanced params compress cctx 4849552 4849551
61 github level -5 compress cctx 205285
62 github level -5 with dict compress cctx 47294
63 github level -3 compress cctx 190643
100 silesia level -5 zstdcli 6737655
101 silesia level -3 zstdcli 6444725
102 silesia level -1 zstdcli 6178508
103 silesia level 0 zstdcli 4849600 4849599
104 silesia level 1 zstdcli 5313252 5313250
105 silesia level 3 zstdcli 4849600 4849599
106 silesia level 4 zstdcli 4787018 4787017
107 silesia level 5 zstdcli 4707842 4707838
108 silesia level 6 zstdcli 4666431
109 silesia level 7 zstdcli 4603429
110 silesia level 9 zstdcli 4546049 4546053
111 silesia level 13 zstdcli 4482183 4482179
112 silesia level 16 zstdcli 4360299
113 silesia level 19 zstdcli 4283285 4283284
114 silesia long distance mode zstdcli 4840806 4840807
115 silesia multithreaded zstdcli 4849600 4849599
116 silesia multithreaded long distance mode zstdcli 4840806 4840807
117 silesia small window log zstdcli 7095967
118 silesia small hash log zstdcli 6526189
119 silesia small chain log zstdcli 4912245 4912247
120 silesia explicit params zstdcli 4795856
121 silesia uncompressed literals zstdcli 5128030
122 silesia uncompressed literals optimal zstdcli 4317944
123 silesia huffman literals zstdcli 5326316 5326317
124 silesia multithreaded with advanced params zstdcli 5128030
125 silesia.tar level -5 zstdcli 6738934
126 silesia.tar level -3 zstdcli 6448419
127 silesia.tar level -1 zstdcli 6186912
128 silesia.tar level 0 zstdcli 4861512 4861511
129 silesia.tar level 1 zstdcli 5336318
130 silesia.tar level 3 zstdcli 4861512 4861511
131 silesia.tar level 4 zstdcli 4800529
132 silesia.tar level 5 zstdcli 4720121
133 silesia.tar level 6 zstdcli 4678661 4678663
134 silesia.tar level 7 zstdcli 4614424 4614426
135 silesia.tar level 9 zstdcli 4556062
136 silesia.tar level 13 zstdcli 4491768 4491772
137 silesia.tar level 16 zstdcli 4356838
138 silesia.tar level 19 zstdcli 4264396 4264392
139 silesia.tar no source size zstdcli 4861508 4861507
140 silesia.tar long distance mode zstdcli 4853226 4853225
141 silesia.tar multithreaded zstdcli 4861512 4861511
142 silesia.tar multithreaded long distance mode zstdcli 4853226 4853225
143 silesia.tar small window log zstdcli 7101576
144 silesia.tar small hash log zstdcli 6529290 6529286
145 silesia.tar small chain log zstdcli 4917022 4917020
146 silesia.tar explicit params zstdcli 4821274 4821277
147 silesia.tar uncompressed literals zstdcli 5129559
148 silesia.tar uncompressed literals optimal zstdcli 4307404
149 silesia.tar huffman literals zstdcli 5347610
231 silesia level -5 advanced one pass 6737607
232 silesia level -3 advanced one pass 6444677
233 silesia level -1 advanced one pass 6178460
234 silesia level 0 advanced one pass 4849552 4849551
235 silesia level 1 advanced one pass 5313204 5313202
236 silesia level 3 advanced one pass 4849552 4849551
237 silesia level 4 advanced one pass 4786970 4786969
238 silesia level 5 row 1 advanced one pass 4710236 4710233
239 silesia level 5 row 2 advanced one pass 4707794 4707790
240 silesia level 5 advanced one pass 4707794 4707790
241 silesia level 6 advanced one pass 4666383
242 silesia level 7 row 1 advanced one pass 4596296 4596297
243 silesia level 7 row 2 advanced one pass 4603381
244 silesia level 7 advanced one pass 4603381
245 silesia level 9 advanced one pass 4546001 4546005
246 silesia level 12 row 1 advanced one pass 4519288
247 silesia level 12 row 2 advanced one pass 4521397 4521406
248 silesia level 13 advanced one pass 4482135 4482131
249 silesia level 16 advanced one pass 4360251
250 silesia level 19 advanced one pass 4283237 4283236
251 silesia no source size advanced one pass 4849552 4849551
252 silesia long distance mode advanced one pass 4840738
253 silesia multithreaded advanced one pass 4849552 4849551
254 silesia multithreaded long distance mode advanced one pass 4840758 4840759
255 silesia small window log advanced one pass 7095919
256 silesia small hash log advanced one pass 6526141
257 silesia small chain log advanced one pass 4912197 4912199
258 silesia explicit params advanced one pass 4795856
259 silesia uncompressed literals advanced one pass 5127982
260 silesia uncompressed literals optimal advanced one pass 4317896
261 silesia huffman literals advanced one pass 5326268 5326269
262 silesia multithreaded with advanced params advanced one pass 5127982
263 silesia.tar level -5 advanced one pass 6738593
264 silesia.tar level -3 advanced one pass 6446372
265 silesia.tar level -1 advanced one pass 6186042
266 silesia.tar level 0 advanced one pass 4861425 4861423
267 silesia.tar level 1 advanced one pass 5334885
268 silesia.tar level 3 advanced one pass 4861425 4861423
269 silesia.tar level 4 advanced one pass 4799630 4799632
270 silesia.tar level 5 row 1 advanced one pass 4722324
271 silesia.tar level 5 row 2 advanced one pass 4719256
272 silesia.tar level 5 advanced one pass 4719256
273 silesia.tar level 6 advanced one pass 4677721 4677724
274 silesia.tar level 7 row 1 advanced one pass 4606715 4606716
275 silesia.tar level 7 row 2 advanced one pass 4613541 4613545
276 silesia.tar level 7 advanced one pass 4613541 4613545
277 silesia.tar level 9 advanced one pass 4555426
278 silesia.tar level 12 row 1 advanced one pass 4529459 4529458
279 silesia.tar level 12 row 2 advanced one pass 4530256 4530257
280 silesia.tar level 13 advanced one pass 4491764 4491768
281 silesia.tar level 16 advanced one pass 4356834
282 silesia.tar level 19 advanced one pass 4264392 4264388
283 silesia.tar no source size advanced one pass 4861425 4861423
284 silesia.tar long distance mode advanced one pass 4847754 4847753
285 silesia.tar multithreaded advanced one pass 4861508 4861507
286 silesia.tar multithreaded long distance mode advanced one pass 4853222 4853221
287 silesia.tar small window log advanced one pass 7101530
288 silesia.tar small hash log advanced one pass 6529232 6529228
289 silesia.tar small chain log advanced one pass 4917041 4917039
290 silesia.tar explicit params advanced one pass 4807380 4807383
291 silesia.tar uncompressed literals advanced one pass 5129458
292 silesia.tar uncompressed literals optimal advanced one pass 4307400
293 silesia.tar huffman literals advanced one pass 5347335
525 silesia level -5 advanced one pass small out 6737607
526 silesia level -3 advanced one pass small out 6444677
527 silesia level -1 advanced one pass small out 6178460
528 silesia level 0 advanced one pass small out 4849552 4849551
529 silesia level 1 advanced one pass small out 5313204 5313202
530 silesia level 3 advanced one pass small out 4849552 4849551
531 silesia level 4 advanced one pass small out 4786970 4786969
532 silesia level 5 row 1 advanced one pass small out 4710236 4710233
533 silesia level 5 row 2 advanced one pass small out 4707794 4707790
534 silesia level 5 advanced one pass small out 4707794 4707790
535 silesia level 6 advanced one pass small out 4666383
536 silesia level 7 row 1 advanced one pass small out 4596296 4596297
537 silesia level 7 row 2 advanced one pass small out 4603381
538 silesia level 7 advanced one pass small out 4603381
539 silesia level 9 advanced one pass small out 4546001 4546005
540 silesia level 12 row 1 advanced one pass small out 4519288
541 silesia level 12 row 2 advanced one pass small out 4521397 4521406
542 silesia level 13 advanced one pass small out 4482135 4482131
543 silesia level 16 advanced one pass small out 4360251
544 silesia level 19 advanced one pass small out 4283237 4283236
545 silesia no source size advanced one pass small out 4849552 4849551
546 silesia long distance mode advanced one pass small out 4840738
547 silesia multithreaded advanced one pass small out 4849552 4849551
548 silesia multithreaded long distance mode advanced one pass small out 4840758 4840759
549 silesia small window log advanced one pass small out 7095919
550 silesia small hash log advanced one pass small out 6526141
551 silesia small chain log advanced one pass small out 4912197 4912199
552 silesia explicit params advanced one pass small out 4795856
553 silesia uncompressed literals advanced one pass small out 5127982
554 silesia uncompressed literals optimal advanced one pass small out 4317896
555 silesia huffman literals advanced one pass small out 5326268 5326269
556 silesia multithreaded with advanced params advanced one pass small out 5127982
557 silesia.tar level -5 advanced one pass small out 6738593
558 silesia.tar level -3 advanced one pass small out 6446372
559 silesia.tar level -1 advanced one pass small out 6186042
560 silesia.tar level 0 advanced one pass small out 4861425 4861423
561 silesia.tar level 1 advanced one pass small out 5334885
562 silesia.tar level 3 advanced one pass small out 4861425 4861423
563 silesia.tar level 4 advanced one pass small out 4799630 4799632
564 silesia.tar level 5 row 1 advanced one pass small out 4722324
565 silesia.tar level 5 row 2 advanced one pass small out 4719256
566 silesia.tar level 5 advanced one pass small out 4719256
567 silesia.tar level 6 advanced one pass small out 4677721 4677724
568 silesia.tar level 7 row 1 advanced one pass small out 4606715 4606716
569 silesia.tar level 7 row 2 advanced one pass small out 4613541 4613545
570 silesia.tar level 7 advanced one pass small out 4613541 4613545
571 silesia.tar level 9 advanced one pass small out 4555426
572 silesia.tar level 12 row 1 advanced one pass small out 4529459 4529458
573 silesia.tar level 12 row 2 advanced one pass small out 4530256 4530257
574 silesia.tar level 13 advanced one pass small out 4491764 4491768
575 silesia.tar level 16 advanced one pass small out 4356834
576 silesia.tar level 19 advanced one pass small out 4264392 4264388
577 silesia.tar no source size advanced one pass small out 4861425 4861423
578 silesia.tar long distance mode advanced one pass small out 4847754 4847753
579 silesia.tar multithreaded advanced one pass small out 4861508 4861507
580 silesia.tar multithreaded long distance mode advanced one pass small out 4853222 4853221
581 silesia.tar small window log advanced one pass small out 7101530
582 silesia.tar small hash log advanced one pass small out 6529232 6529228
583 silesia.tar small chain log advanced one pass small out 4917041 4917039
584 silesia.tar explicit params advanced one pass small out 4807380 4807383
585 silesia.tar uncompressed literals advanced one pass small out 5129458
586 silesia.tar uncompressed literals optimal advanced one pass small out 4307400
587 silesia.tar huffman literals advanced one pass small out 5347335
819 silesia level -5 advanced streaming 6882505
820 silesia level -3 advanced streaming 6568376
821 silesia level -1 advanced streaming 6183403
822 silesia level 0 advanced streaming 4849552 4849551
823 silesia level 1 advanced streaming 5314162 5314161
824 silesia level 3 advanced streaming 4849552 4849551
825 silesia level 4 advanced streaming 4786970 4786969
826 silesia level 5 row 1 advanced streaming 4710236 4710233
827 silesia level 5 row 2 advanced streaming 4707794 4707790
828 silesia level 5 advanced streaming 4707794 4707790
829 silesia level 6 advanced streaming 4666383
830 silesia level 7 row 1 advanced streaming 4596296 4596297
831 silesia level 7 row 2 advanced streaming 4603381
832 silesia level 7 advanced streaming 4603381
833 silesia level 9 advanced streaming 4546001 4546005
834 silesia level 12 row 1 advanced streaming 4519288
835 silesia level 12 row 2 advanced streaming 4521397 4521406
836 silesia level 13 advanced streaming 4482135 4482131
837 silesia level 16 advanced streaming 4360251
838 silesia level 19 advanced streaming 4283237 4283236
839 silesia no source size advanced streaming 4849516 4849515
840 silesia long distance mode advanced streaming 4840738
841 silesia multithreaded advanced streaming 4849552 4849551
842 silesia multithreaded long distance mode advanced streaming 4840758 4840759
843 silesia small window log advanced streaming 7112062
844 silesia small hash log advanced streaming 6526141
845 silesia small chain log advanced streaming 4912197 4912199
846 silesia explicit params advanced streaming 4795884
847 silesia uncompressed literals advanced streaming 5127982
848 silesia uncompressed literals optimal advanced streaming 4317896
849 silesia huffman literals advanced streaming 5331168 5331171
850 silesia multithreaded with advanced params advanced streaming 5127982
851 silesia.tar level -5 advanced streaming 6982759
852 silesia.tar level -3 advanced streaming 6641283
853 silesia.tar level -1 advanced streaming 6190795
854 silesia.tar level 0 advanced streaming 4861427 4861425
855 silesia.tar level 1 advanced streaming 5336939 5336941
856 silesia.tar level 3 advanced streaming 4861427 4861425
857 silesia.tar level 4 advanced streaming 4799630 4799632
858 silesia.tar level 5 row 1 advanced streaming 4722329
859 silesia.tar level 5 row 2 advanced streaming 4719261
860 silesia.tar level 5 advanced streaming 4719261
861 silesia.tar level 6 advanced streaming 4677729 4677732
862 silesia.tar level 7 row 1 advanced streaming 4606715 4606717
863 silesia.tar level 7 row 2 advanced streaming 4613544 4613548
864 silesia.tar level 7 advanced streaming 4613544 4613548
865 silesia.tar level 9 advanced streaming 4555432
866 silesia.tar level 12 row 1 advanced streaming 4529459 4529458
867 silesia.tar level 12 row 2 advanced streaming 4530258 4530259
868 silesia.tar level 13 advanced streaming 4491765 4491769
869 silesia.tar level 16 advanced streaming 4356834
870 silesia.tar level 19 advanced streaming 4264392 4264388
871 silesia.tar no source size advanced streaming 4861423 4861421
872 silesia.tar long distance mode advanced streaming 4847754 4847753
873 silesia.tar multithreaded advanced streaming 4861508 4861507
874 silesia.tar multithreaded long distance mode advanced streaming 4853222 4853221
875 silesia.tar small window log advanced streaming 7118769
876 silesia.tar small hash log advanced streaming 6529235 6529231
877 silesia.tar small chain log advanced streaming 4917021 4917019
878 silesia.tar explicit params advanced streaming 4807399 4807403
879 silesia.tar uncompressed literals advanced streaming 5129461
880 silesia.tar uncompressed literals optimal advanced streaming 4307400
881 silesia.tar huffman literals advanced streaming 5352360
1113 silesia level -5 old streaming 6882505
1114 silesia level -3 old streaming 6568376
1115 silesia level -1 old streaming 6183403
1116 silesia level 0 old streaming 4849552 4849551
1117 silesia level 1 old streaming 5314162 5314161
1118 silesia level 3 old streaming 4849552 4849551
1119 silesia level 4 old streaming 4786970 4786969
1120 silesia level 5 old streaming 4707794 4707790
1121 silesia level 6 old streaming 4666383
1122 silesia level 7 old streaming 4603381
1123 silesia level 9 old streaming 4546001 4546005
1124 silesia level 13 old streaming 4482135 4482131
1125 silesia level 16 old streaming 4360251
1126 silesia level 19 old streaming 4283237 4283236
1127 silesia no source size old streaming 4849516 4849515
1128 silesia uncompressed literals old streaming 4849552 4849551
1129 silesia uncompressed literals optimal old streaming 4283237 4283236
1130 silesia huffman literals old streaming 6183403
1131 silesia.tar level -5 old streaming 6982759
1132 silesia.tar level -3 old streaming 6641283
1133 silesia.tar level -1 old streaming 6190795
1134 silesia.tar level 0 old streaming 4861427 4861425
1135 silesia.tar level 1 old streaming 5336939 5336941
1136 silesia.tar level 3 old streaming 4861427 4861425
1137 silesia.tar level 4 old streaming 4799630 4799632
1138 silesia.tar level 5 old streaming 4719261
1139 silesia.tar level 6 old streaming 4677729 4677732
1140 silesia.tar level 7 old streaming 4613544 4613548
1141 silesia.tar level 9 old streaming 4555432
1142 silesia.tar level 13 old streaming 4491765 4491769
1143 silesia.tar level 16 old streaming 4356834
1144 silesia.tar level 19 old streaming 4264392 4264388
1145 silesia.tar no source size old streaming 4861423 4861421
1146 silesia.tar uncompressed literals old streaming 4861427 4861425
1147 silesia.tar uncompressed literals optimal old streaming 4264392 4264388
1148 silesia.tar huffman literals old streaming 6190795
1149 github level -5 old streaming 205285
1150 github level -5 with dict old streaming 46718
1215 silesia level -5 old streaming advanced 6882505
1216 silesia level -3 old streaming advanced 6568376
1217 silesia level -1 old streaming advanced 6183403
1218 silesia level 0 old streaming advanced 4849552 4849551
1219 silesia level 1 old streaming advanced 5314162 5314161
1220 silesia level 3 old streaming advanced 4849552 4849551
1221 silesia level 4 old streaming advanced 4786970 4786969
1222 silesia level 5 old streaming advanced 4707794 4707790
1223 silesia level 6 old streaming advanced 4666383
1224 silesia level 7 old streaming advanced 4603381
1225 silesia level 9 old streaming advanced 4546001 4546005
1226 silesia level 13 old streaming advanced 4482135 4482131
1227 silesia level 16 old streaming advanced 4360251
1228 silesia level 19 old streaming advanced 4283237 4283236
1229 silesia no source size old streaming advanced 4849516 4849515
1230 silesia long distance mode old streaming advanced 4849552 4849551
1231 silesia multithreaded old streaming advanced 4849552 4849551
1232 silesia multithreaded long distance mode old streaming advanced 4849552 4849551
1233 silesia small window log old streaming advanced 7112062
1234 silesia small hash log old streaming advanced 6526141
1235 silesia small chain log old streaming advanced 4912197 4912199
1236 silesia explicit params old streaming advanced 4795884
1237 silesia uncompressed literals old streaming advanced 4849552 4849551
1238 silesia uncompressed literals optimal old streaming advanced 4283237 4283236
1239 silesia huffman literals old streaming advanced 6183403
1240 silesia multithreaded with advanced params old streaming advanced 4849552 4849551
1241 silesia.tar level -5 old streaming advanced 6982759
1242 silesia.tar level -3 old streaming advanced 6641283
1243 silesia.tar level -1 old streaming advanced 6190795
1244 silesia.tar level 0 old streaming advanced 4861427 4861425
1245 silesia.tar level 1 old streaming advanced 5336939 5336941
1246 silesia.tar level 3 old streaming advanced 4861427 4861425
1247 silesia.tar level 4 old streaming advanced 4799630 4799632
1248 silesia.tar level 5 old streaming advanced 4719261
1249 silesia.tar level 6 old streaming advanced 4677729 4677732
1250 silesia.tar level 7 old streaming advanced 4613544 4613548
1251 silesia.tar level 9 old streaming advanced 4555432
1252 silesia.tar level 13 old streaming advanced 4491765 4491769
1253 silesia.tar level 16 old streaming advanced 4356834
1254 silesia.tar level 19 old streaming advanced 4264392 4264388
1255 silesia.tar no source size old streaming advanced 4861423 4861421
1256 silesia.tar long distance mode old streaming advanced 4861427 4861425
1257 silesia.tar multithreaded old streaming advanced 4861427 4861425
1258 silesia.tar multithreaded long distance mode old streaming advanced 4861427 4861425
1259 silesia.tar small window log old streaming advanced 7118772
1260 silesia.tar small hash log old streaming advanced 6529235 6529231
1261 silesia.tar small chain log old streaming advanced 4917021 4917019
1262 silesia.tar explicit params old streaming advanced 4807399 4807403
1263 silesia.tar uncompressed literals old streaming advanced 4861427 4861425
1264 silesia.tar uncompressed literals optimal old streaming advanced 4264392 4264388
1265 silesia.tar huffman literals old streaming advanced 6190795
1266 silesia.tar multithreaded with advanced params old streaming advanced 4861427 4861425
1267 github level -5 old streaming advanced 216734
1268 github level -5 with dict old streaming advanced 49562
1269 github level -3 old streaming advanced 192160