Use new paramSwitch enum for LCM, row matchfinder, and block splitter
This commit is contained in:
parent
51b123d5f7
commit
b5c35d7ea3
@ -84,10 +84,10 @@ struct ZSTD_CDict_s {
|
|||||||
ZSTD_customMem customMem;
|
ZSTD_customMem customMem;
|
||||||
U32 dictID;
|
U32 dictID;
|
||||||
int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */
|
int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */
|
||||||
ZSTD_useRowMatchFinderMode_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use
|
ZSTD_paramSwitch_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use
|
||||||
* row-based matchfinder. Unless the cdict is reloaded, we will use
|
* row-based matchfinder. Unless the cdict is reloaded, we will use
|
||||||
* the same greedy/lazy matchfinder at compression time.
|
* the same greedy/lazy matchfinder at compression time.
|
||||||
*/
|
*/
|
||||||
}; /* typedef'd to ZSTD_CDict within "zstd.h" */
|
}; /* typedef'd to ZSTD_CDict within "zstd.h" */
|
||||||
|
|
||||||
ZSTD_CCtx* ZSTD_createCCtx(void)
|
ZSTD_CCtx* ZSTD_createCCtx(void)
|
||||||
@ -226,35 +226,42 @@ static int ZSTD_rowMatchFinderSupported(const ZSTD_strategy strategy) {
|
|||||||
/* Returns true if the strategy and useRowMatchFinder mode indicate that we will use the row based matchfinder
|
/* Returns true if the strategy and useRowMatchFinder mode indicate that we will use the row based matchfinder
|
||||||
* for this compression.
|
* for this compression.
|
||||||
*/
|
*/
|
||||||
static int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_useRowMatchFinderMode_e mode) {
|
static int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_paramSwitch_e mode) {
|
||||||
assert(mode != ZSTD_urm_auto);
|
assert(mode != ZSTD_ps_auto);
|
||||||
return ZSTD_rowMatchFinderSupported(strategy) && (mode == ZSTD_urm_enableRowMatchFinder);
|
return ZSTD_rowMatchFinderSupported(strategy) && (mode == ZSTD_ps_enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns row matchfinder usage enum given an initial mode and cParams */
|
/* Returns row matchfinder usage given an initial mode and cParams */
|
||||||
static ZSTD_useRowMatchFinderMode_e ZSTD_resolveRowMatchFinderMode(ZSTD_useRowMatchFinderMode_e mode,
|
static ZSTD_paramSwitch_e ZSTD_resolveRowMatchFinderMode(ZSTD_paramSwitch_e mode,
|
||||||
const ZSTD_compressionParameters* const cParams) {
|
const ZSTD_compressionParameters* const cParams) {
|
||||||
#if defined(ZSTD_ARCH_X86_SSE2) || defined(ZSTD_ARCH_ARM_NEON)
|
#if defined(ZSTD_ARCH_X86_SSE2) || defined(ZSTD_ARCH_ARM_NEON)
|
||||||
int const kHasSIMD128 = 1;
|
int const kHasSIMD128 = 1;
|
||||||
#else
|
#else
|
||||||
int const kHasSIMD128 = 0;
|
int const kHasSIMD128 = 0;
|
||||||
#endif
|
#endif
|
||||||
if (mode != ZSTD_urm_auto) return mode; /* if requested enabled, but no SIMD, we still will use row matchfinder */
|
if (mode != ZSTD_ps_auto) return mode; /* if requested enabled, but no SIMD, we still will use row matchfinder */
|
||||||
mode = ZSTD_urm_disableRowMatchFinder;
|
mode = ZSTD_ps_disable;
|
||||||
if (!ZSTD_rowMatchFinderSupported(cParams->strategy)) return mode;
|
if (!ZSTD_rowMatchFinderSupported(cParams->strategy)) return mode;
|
||||||
if (kHasSIMD128) {
|
if (kHasSIMD128) {
|
||||||
if (cParams->windowLog > 14) mode = ZSTD_urm_enableRowMatchFinder;
|
if (cParams->windowLog > 14) mode = ZSTD_ps_enable;
|
||||||
} else {
|
} else {
|
||||||
if (cParams->windowLog > 17) mode = ZSTD_urm_enableRowMatchFinder;
|
if (cParams->windowLog > 17) mode = ZSTD_ps_enable;
|
||||||
}
|
}
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns block splitter usage (generally speaking, when using slower/stronger compression modes) */
|
||||||
|
static ZSTD_paramSwitch_e ZSTD_resolveBlockSplitterMode(ZSTD_paramSwitch_e mode,
|
||||||
|
const ZSTD_compressionParameters* const cParams) {
|
||||||
|
if (mode != ZSTD_ps_auto) return mode;
|
||||||
|
return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 17) ? ZSTD_ps_enable : ZSTD_ps_disable;
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns 1 if the arguments indicate that we should allocate a chainTable, 0 otherwise */
|
/* Returns 1 if the arguments indicate that we should allocate a chainTable, 0 otherwise */
|
||||||
static int ZSTD_allocateChainTable(const ZSTD_strategy strategy,
|
static int ZSTD_allocateChainTable(const ZSTD_strategy strategy,
|
||||||
const ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
const ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
const U32 forDDSDict) {
|
const U32 forDDSDict) {
|
||||||
assert(useRowMatchFinder != ZSTD_urm_auto);
|
assert(useRowMatchFinder != ZSTD_ps_auto);
|
||||||
/* We always should allocate a chaintable if we are allocating a matchstate for a DDS dictionary matchstate.
|
/* We always should allocate a chaintable if we are allocating a matchstate for a DDS dictionary matchstate.
|
||||||
* We do not allocate a chaintable if we are using ZSTD_fast, or are using the row-based matchfinder.
|
* We do not allocate a chaintable if we are using ZSTD_fast, or are using the row-based matchfinder.
|
||||||
*/
|
*/
|
||||||
@ -269,14 +276,6 @@ static U32 ZSTD_CParams_shouldEnableLdm(const ZSTD_compressionParameters* const
|
|||||||
return cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27;
|
return cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns 1 if compression parameters are such that we should
|
|
||||||
* enable blockSplitter (wlog >= 17, strategy >= btopt).
|
|
||||||
* Returns 0 otherwise.
|
|
||||||
*/
|
|
||||||
static U32 ZSTD_CParams_useBlockSplitter(const ZSTD_compressionParameters* const cParams) {
|
|
||||||
return cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 17;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams(
|
static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams(
|
||||||
ZSTD_compressionParameters cParams)
|
ZSTD_compressionParameters cParams)
|
||||||
{
|
{
|
||||||
@ -295,11 +294,7 @@ static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams(
|
|||||||
assert(cctxParams.ldmParams.hashRateLog < 32);
|
assert(cctxParams.ldmParams.hashRateLog < 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ZSTD_CParams_useBlockSplitter(&cParams)) {
|
cctxParams.useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams.useBlockSplitter, &cParams);
|
||||||
DEBUGLOG(4, "ZSTD_makeCCtxParamsFromCParams(): Including block splitting into cctx params");
|
|
||||||
cctxParams.splitBlocks = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams);
|
cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams);
|
||||||
assert(!ZSTD_checkCParams(cParams));
|
assert(!ZSTD_checkCParams(cParams));
|
||||||
return cctxParams;
|
return cctxParams;
|
||||||
@ -360,18 +355,14 @@ static void ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams, ZSTD_par
|
|||||||
*/
|
*/
|
||||||
cctxParams->compressionLevel = compressionLevel;
|
cctxParams->compressionLevel = compressionLevel;
|
||||||
cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams);
|
cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams);
|
||||||
DEBUGLOG(4, "ZSTD_CCtxParams_init_internal: useRowMatchFinder=%d", cctxParams->useRowMatchFinder);
|
cctxParams->useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams->useBlockSplitter, ¶ms->cParams);
|
||||||
|
DEBUGLOG(4, "ZSTD_CCtxParams_init_internal: useRowMatchFinder=%d, useBlockSplitter=%d", cctxParams->useRowMatchFinder, cctxParams->useBlockSplitter);
|
||||||
|
|
||||||
if (ZSTD_CParams_shouldEnableLdm(¶ms->cParams)) {
|
if (ZSTD_CParams_shouldEnableLdm(¶ms->cParams)) {
|
||||||
/* Enable LDM by default for optimal parser and window size >= 128MB */
|
/* Enable LDM by default for optimal parser and window size >= 128MB */
|
||||||
DEBUGLOG(4, "LDM enabled by default (window size >= 128MB, strategy >= btopt)");
|
DEBUGLOG(4, "LDM enabled by default (window size >= 128MB, strategy >= btopt)");
|
||||||
cctxParams->ldmParams.enableLdm = 1;
|
cctxParams->ldmParams.enableLdm = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ZSTD_CParams_useBlockSplitter(¶ms->cParams)) {
|
|
||||||
DEBUGLOG(4, "Block splitter enabled by default (window size >= 128K, strategy >= btopt)");
|
|
||||||
cctxParams->splitBlocks = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
||||||
@ -541,9 +532,9 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param)
|
|||||||
return bounds;
|
return bounds;
|
||||||
|
|
||||||
case ZSTD_c_literalCompressionMode:
|
case ZSTD_c_literalCompressionMode:
|
||||||
ZSTD_STATIC_ASSERT(ZSTD_lcm_auto < ZSTD_lcm_huffman && ZSTD_lcm_huffman < ZSTD_lcm_uncompressed);
|
ZSTD_STATIC_ASSERT(ZSTD_ps_auto < ZSTD_ps_enable && ZSTD_ps_enable < ZSTD_ps_disable);
|
||||||
bounds.lowerBound = ZSTD_lcm_auto;
|
bounds.lowerBound = (int)ZSTD_ps_auto;
|
||||||
bounds.upperBound = ZSTD_lcm_uncompressed;
|
bounds.upperBound = (int)ZSTD_ps_disable;
|
||||||
return bounds;
|
return bounds;
|
||||||
|
|
||||||
case ZSTD_c_targetCBlockSize:
|
case ZSTD_c_targetCBlockSize:
|
||||||
@ -572,14 +563,14 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param)
|
|||||||
bounds.upperBound = 1;
|
bounds.upperBound = 1;
|
||||||
return bounds;
|
return bounds;
|
||||||
|
|
||||||
case ZSTD_c_splitBlocks:
|
case ZSTD_c_useBlockSplitter:
|
||||||
bounds.lowerBound = 0;
|
bounds.lowerBound = (int)ZSTD_ps_auto;
|
||||||
bounds.upperBound = 1;
|
bounds.upperBound = (int)ZSTD_ps_disable;
|
||||||
return bounds;
|
return bounds;
|
||||||
|
|
||||||
case ZSTD_c_useRowMatchFinder:
|
case ZSTD_c_useRowMatchFinder:
|
||||||
bounds.lowerBound = (int)ZSTD_urm_auto;
|
bounds.lowerBound = (int)ZSTD_ps_auto;
|
||||||
bounds.upperBound = (int)ZSTD_urm_enableRowMatchFinder;
|
bounds.upperBound = (int)ZSTD_ps_disable;
|
||||||
return bounds;
|
return bounds;
|
||||||
|
|
||||||
case ZSTD_c_deterministicRefPrefix:
|
case ZSTD_c_deterministicRefPrefix:
|
||||||
@ -648,7 +639,7 @@ static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param)
|
|||||||
case ZSTD_c_stableOutBuffer:
|
case ZSTD_c_stableOutBuffer:
|
||||||
case ZSTD_c_blockDelimiters:
|
case ZSTD_c_blockDelimiters:
|
||||||
case ZSTD_c_validateSequences:
|
case ZSTD_c_validateSequences:
|
||||||
case ZSTD_c_splitBlocks:
|
case ZSTD_c_useBlockSplitter:
|
||||||
case ZSTD_c_useRowMatchFinder:
|
case ZSTD_c_useRowMatchFinder:
|
||||||
case ZSTD_c_deterministicRefPrefix:
|
case ZSTD_c_deterministicRefPrefix:
|
||||||
default:
|
default:
|
||||||
@ -703,7 +694,7 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value)
|
|||||||
case ZSTD_c_stableOutBuffer:
|
case ZSTD_c_stableOutBuffer:
|
||||||
case ZSTD_c_blockDelimiters:
|
case ZSTD_c_blockDelimiters:
|
||||||
case ZSTD_c_validateSequences:
|
case ZSTD_c_validateSequences:
|
||||||
case ZSTD_c_splitBlocks:
|
case ZSTD_c_useBlockSplitter:
|
||||||
case ZSTD_c_useRowMatchFinder:
|
case ZSTD_c_useRowMatchFinder:
|
||||||
case ZSTD_c_deterministicRefPrefix:
|
case ZSTD_c_deterministicRefPrefix:
|
||||||
break;
|
break;
|
||||||
@ -803,7 +794,7 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
|
|||||||
}
|
}
|
||||||
|
|
||||||
case ZSTD_c_literalCompressionMode : {
|
case ZSTD_c_literalCompressionMode : {
|
||||||
const ZSTD_literalCompressionMode_e lcm = (ZSTD_literalCompressionMode_e)value;
|
const ZSTD_paramSwitch_e lcm = (ZSTD_paramSwitch_e)value;
|
||||||
BOUNDCHECK(ZSTD_c_literalCompressionMode, lcm);
|
BOUNDCHECK(ZSTD_c_literalCompressionMode, lcm);
|
||||||
CCtxParams->literalCompressionMode = lcm;
|
CCtxParams->literalCompressionMode = lcm;
|
||||||
return CCtxParams->literalCompressionMode;
|
return CCtxParams->literalCompressionMode;
|
||||||
@ -917,14 +908,14 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
|
|||||||
CCtxParams->validateSequences = value;
|
CCtxParams->validateSequences = value;
|
||||||
return CCtxParams->validateSequences;
|
return CCtxParams->validateSequences;
|
||||||
|
|
||||||
case ZSTD_c_splitBlocks:
|
case ZSTD_c_useBlockSplitter:
|
||||||
BOUNDCHECK(ZSTD_c_splitBlocks, value);
|
BOUNDCHECK(ZSTD_c_useBlockSplitter, value);
|
||||||
CCtxParams->splitBlocks = value;
|
CCtxParams->useBlockSplitter = (ZSTD_paramSwitch_e)value;
|
||||||
return CCtxParams->splitBlocks;
|
return CCtxParams->useBlockSplitter;
|
||||||
|
|
||||||
case ZSTD_c_useRowMatchFinder:
|
case ZSTD_c_useRowMatchFinder:
|
||||||
BOUNDCHECK(ZSTD_c_useRowMatchFinder, value);
|
BOUNDCHECK(ZSTD_c_useRowMatchFinder, value);
|
||||||
CCtxParams->useRowMatchFinder = (ZSTD_useRowMatchFinderMode_e)value;
|
CCtxParams->useRowMatchFinder = (ZSTD_paramSwitch_e)value;
|
||||||
return CCtxParams->useRowMatchFinder;
|
return CCtxParams->useRowMatchFinder;
|
||||||
|
|
||||||
case ZSTD_c_deterministicRefPrefix:
|
case ZSTD_c_deterministicRefPrefix:
|
||||||
@ -1055,8 +1046,8 @@ size_t ZSTD_CCtxParams_getParameter(
|
|||||||
case ZSTD_c_validateSequences :
|
case ZSTD_c_validateSequences :
|
||||||
*value = (int)CCtxParams->validateSequences;
|
*value = (int)CCtxParams->validateSequences;
|
||||||
break;
|
break;
|
||||||
case ZSTD_c_splitBlocks :
|
case ZSTD_c_useBlockSplitter :
|
||||||
*value = (int)CCtxParams->splitBlocks;
|
*value = (int)CCtxParams->useBlockSplitter;
|
||||||
break;
|
break;
|
||||||
case ZSTD_c_useRowMatchFinder :
|
case ZSTD_c_useRowMatchFinder :
|
||||||
*value = (int)CCtxParams->useRowMatchFinder;
|
*value = (int)CCtxParams->useRowMatchFinder;
|
||||||
@ -1430,7 +1421,7 @@ ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams(
|
|||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams,
|
ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams,
|
||||||
const ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
const ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
const U32 enableDedicatedDictSearch,
|
const U32 enableDedicatedDictSearch,
|
||||||
const U32 forCCtx)
|
const U32 forCCtx)
|
||||||
{
|
{
|
||||||
@ -1463,7 +1454,7 @@ ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams,
|
|||||||
|
|
||||||
/* tables are guaranteed to be sized in multiples of 64 bytes (or 16 uint32_t) */
|
/* tables are guaranteed to be sized in multiples of 64 bytes (or 16 uint32_t) */
|
||||||
ZSTD_STATIC_ASSERT(ZSTD_HASHLOG_MIN >= 4 && ZSTD_WINDOWLOG_MIN >= 4 && ZSTD_CHAINLOG_MIN >= 4);
|
ZSTD_STATIC_ASSERT(ZSTD_HASHLOG_MIN >= 4 && ZSTD_WINDOWLOG_MIN >= 4 && ZSTD_CHAINLOG_MIN >= 4);
|
||||||
assert(useRowMatchFinder != ZSTD_urm_auto);
|
assert(useRowMatchFinder != ZSTD_ps_auto);
|
||||||
|
|
||||||
DEBUGLOG(4, "chainSize: %u - hSize: %u - h3Size: %u",
|
DEBUGLOG(4, "chainSize: %u - hSize: %u - h3Size: %u",
|
||||||
(U32)chainSize, (U32)hSize, (U32)h3Size);
|
(U32)chainSize, (U32)hSize, (U32)h3Size);
|
||||||
@ -1474,7 +1465,7 @@ static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal(
|
|||||||
const ZSTD_compressionParameters* cParams,
|
const ZSTD_compressionParameters* cParams,
|
||||||
const ldmParams_t* ldmParams,
|
const ldmParams_t* ldmParams,
|
||||||
const int isStatic,
|
const int isStatic,
|
||||||
const ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
const ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
const size_t buffInSize,
|
const size_t buffInSize,
|
||||||
const size_t buffOutSize,
|
const size_t buffOutSize,
|
||||||
const U64 pledgedSrcSize)
|
const U64 pledgedSrcSize)
|
||||||
@ -1519,7 +1510,7 @@ size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params)
|
|||||||
{
|
{
|
||||||
ZSTD_compressionParameters const cParams =
|
ZSTD_compressionParameters const cParams =
|
||||||
ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict);
|
ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict);
|
||||||
ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder,
|
ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder,
|
||||||
&cParams);
|
&cParams);
|
||||||
|
|
||||||
RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only.");
|
RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only.");
|
||||||
@ -1537,9 +1528,9 @@ size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams)
|
|||||||
/* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */
|
/* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */
|
||||||
size_t noRowCCtxSize;
|
size_t noRowCCtxSize;
|
||||||
size_t rowCCtxSize;
|
size_t rowCCtxSize;
|
||||||
initialParams.useRowMatchFinder = ZSTD_urm_disableRowMatchFinder;
|
initialParams.useRowMatchFinder = ZSTD_ps_disable;
|
||||||
noRowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams);
|
noRowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams);
|
||||||
initialParams.useRowMatchFinder = ZSTD_urm_enableRowMatchFinder;
|
initialParams.useRowMatchFinder = ZSTD_ps_enable;
|
||||||
rowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams);
|
rowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams);
|
||||||
return MAX(noRowCCtxSize, rowCCtxSize);
|
return MAX(noRowCCtxSize, rowCCtxSize);
|
||||||
} else {
|
} else {
|
||||||
@ -1584,7 +1575,7 @@ size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params)
|
|||||||
size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered)
|
size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered)
|
||||||
? ZSTD_compressBound(blockSize) + 1
|
? ZSTD_compressBound(blockSize) + 1
|
||||||
: 0;
|
: 0;
|
||||||
ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams);
|
ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams);
|
||||||
|
|
||||||
return ZSTD_estimateCCtxSize_usingCCtxParams_internal(
|
return ZSTD_estimateCCtxSize_usingCCtxParams_internal(
|
||||||
&cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize,
|
&cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize,
|
||||||
@ -1599,9 +1590,9 @@ size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams)
|
|||||||
/* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */
|
/* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */
|
||||||
size_t noRowCCtxSize;
|
size_t noRowCCtxSize;
|
||||||
size_t rowCCtxSize;
|
size_t rowCCtxSize;
|
||||||
initialParams.useRowMatchFinder = ZSTD_urm_disableRowMatchFinder;
|
initialParams.useRowMatchFinder = ZSTD_ps_disable;
|
||||||
noRowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams);
|
noRowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams);
|
||||||
initialParams.useRowMatchFinder = ZSTD_urm_enableRowMatchFinder;
|
initialParams.useRowMatchFinder = ZSTD_ps_enable;
|
||||||
rowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams);
|
rowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams);
|
||||||
return MAX(noRowCCtxSize, rowCCtxSize);
|
return MAX(noRowCCtxSize, rowCCtxSize);
|
||||||
} else {
|
} else {
|
||||||
@ -1736,7 +1727,7 @@ static size_t
|
|||||||
ZSTD_reset_matchState(ZSTD_matchState_t* ms,
|
ZSTD_reset_matchState(ZSTD_matchState_t* ms,
|
||||||
ZSTD_cwksp* ws,
|
ZSTD_cwksp* ws,
|
||||||
const ZSTD_compressionParameters* cParams,
|
const ZSTD_compressionParameters* cParams,
|
||||||
const ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
const ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
const ZSTD_compResetPolicy_e crp,
|
const ZSTD_compResetPolicy_e crp,
|
||||||
const ZSTD_indexResetPolicy_e forceResetIndex,
|
const ZSTD_indexResetPolicy_e forceResetIndex,
|
||||||
const ZSTD_resetTarget_e forWho)
|
const ZSTD_resetTarget_e forWho)
|
||||||
@ -1751,7 +1742,7 @@ ZSTD_reset_matchState(ZSTD_matchState_t* ms,
|
|||||||
size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0;
|
size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0;
|
||||||
|
|
||||||
DEBUGLOG(4, "reset indices : %u", forceResetIndex == ZSTDirp_reset);
|
DEBUGLOG(4, "reset indices : %u", forceResetIndex == ZSTDirp_reset);
|
||||||
assert(useRowMatchFinder != ZSTD_urm_auto);
|
assert(useRowMatchFinder != ZSTD_ps_auto);
|
||||||
if (forceResetIndex == ZSTDirp_reset) {
|
if (forceResetIndex == ZSTDirp_reset) {
|
||||||
ZSTD_window_init(&ms->window);
|
ZSTD_window_init(&ms->window);
|
||||||
ZSTD_cwksp_mark_tables_dirty(ws);
|
ZSTD_cwksp_mark_tables_dirty(ws);
|
||||||
@ -1847,8 +1838,8 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
|
|||||||
ZSTD_buffered_policy_e const zbuff)
|
ZSTD_buffered_policy_e const zbuff)
|
||||||
{
|
{
|
||||||
ZSTD_cwksp* const ws = &zc->workspace;
|
ZSTD_cwksp* const ws = &zc->workspace;
|
||||||
DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u, useRowMatchFinder=%d",
|
DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u, useRowMatchFinder=%d useBlockSplitter=%d",
|
||||||
(U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder);
|
(U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder, (int)params->useBlockSplitter);
|
||||||
assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
|
assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
|
||||||
|
|
||||||
zc->isFirstBlock = 1;
|
zc->isFirstBlock = 1;
|
||||||
@ -1859,7 +1850,8 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
|
|||||||
zc->appliedParams = *params;
|
zc->appliedParams = *params;
|
||||||
params = &zc->appliedParams;
|
params = &zc->appliedParams;
|
||||||
|
|
||||||
assert(params->useRowMatchFinder != ZSTD_urm_auto);
|
assert(params->useRowMatchFinder != ZSTD_ps_auto);
|
||||||
|
assert(params->useBlockSplitter != ZSTD_ps_auto);
|
||||||
if (params->ldmParams.enableLdm) {
|
if (params->ldmParams.enableLdm) {
|
||||||
/* Adjust long distance matching parameters */
|
/* Adjust long distance matching parameters */
|
||||||
ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams);
|
ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams);
|
||||||
@ -2138,7 +2130,7 @@ static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ZSTD_cwksp_mark_tables_dirty(&cctx->workspace);
|
ZSTD_cwksp_mark_tables_dirty(&cctx->workspace);
|
||||||
assert(params.useRowMatchFinder != ZSTD_urm_auto);
|
assert(params.useRowMatchFinder != ZSTD_ps_auto);
|
||||||
|
|
||||||
/* copy tables */
|
/* copy tables */
|
||||||
{ size_t const chainSize = ZSTD_allocateChainTable(cdict_cParams->strategy, cdict->useRowMatchFinder, 0 /* DDS guaranteed disabled */)
|
{ size_t const chainSize = ZSTD_allocateChainTable(cdict_cParams->strategy, cdict->useRowMatchFinder, 0 /* DDS guaranteed disabled */)
|
||||||
@ -2232,8 +2224,10 @@ static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx,
|
|||||||
{ ZSTD_CCtx_params params = dstCCtx->requestedParams;
|
{ ZSTD_CCtx_params params = dstCCtx->requestedParams;
|
||||||
/* Copy only compression parameters related to tables. */
|
/* Copy only compression parameters related to tables. */
|
||||||
params.cParams = srcCCtx->appliedParams.cParams;
|
params.cParams = srcCCtx->appliedParams.cParams;
|
||||||
assert(srcCCtx->appliedParams.useRowMatchFinder != ZSTD_urm_auto);
|
assert(srcCCtx->appliedParams.useRowMatchFinder != ZSTD_ps_auto);
|
||||||
|
assert(srcCCtx->appliedParams.useBlockSplitter != ZSTD_ps_auto);
|
||||||
params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder;
|
params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder;
|
||||||
|
params.useBlockSplitter = srcCCtx->appliedParams.useBlockSplitter;
|
||||||
params.fParams = fParams;
|
params.fParams = fParams;
|
||||||
ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize,
|
ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize,
|
||||||
/* loadedDictSize */ 0,
|
/* loadedDictSize */ 0,
|
||||||
@ -2422,11 +2416,13 @@ static int ZSTD_useTargetCBlockSize(const ZSTD_CCtx_params* cctxParams)
|
|||||||
/* ZSTD_blockSplitterEnabled():
|
/* ZSTD_blockSplitterEnabled():
|
||||||
* Returns if block splitting param is being used
|
* Returns if block splitting param is being used
|
||||||
* If used, compression will do best effort to split a block in order to improve compression ratio.
|
* If used, compression will do best effort to split a block in order to improve compression ratio.
|
||||||
|
* At the time this function is called, the parameter must be finalized.
|
||||||
* Returns 1 if true, 0 otherwise. */
|
* Returns 1 if true, 0 otherwise. */
|
||||||
static int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams)
|
static int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams)
|
||||||
{
|
{
|
||||||
DEBUGLOG(5, "ZSTD_blockSplitterEnabled(splitBlocks=%d)", cctxParams->splitBlocks);
|
DEBUGLOG(5, "ZSTD_blockSplitterEnabled (useBlockSplitter=%d)", cctxParams->useBlockSplitter);
|
||||||
return (cctxParams->splitBlocks != 0);
|
assert(cctxParams->useBlockSplitter != ZSTD_ps_auto);
|
||||||
|
return (cctxParams->useBlockSplitter == ZSTD_ps_enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Type returned by ZSTD_buildSequencesStatistics containing finalized symbol encoding types
|
/* Type returned by ZSTD_buildSequencesStatistics containing finalized symbol encoding types
|
||||||
@ -2612,7 +2608,7 @@ ZSTD_entropyCompressSeqStore_internal(seqStore_t* seqStorePtr,
|
|||||||
size_t const cSize = ZSTD_compressLiterals(
|
size_t const cSize = ZSTD_compressLiterals(
|
||||||
&prevEntropy->huf, &nextEntropy->huf,
|
&prevEntropy->huf, &nextEntropy->huf,
|
||||||
cctxParams->cParams.strategy,
|
cctxParams->cParams.strategy,
|
||||||
ZSTD_disableLiteralsCompression(cctxParams),
|
ZSTD_literalsCompressionIsDisabled(cctxParams),
|
||||||
op, dstCapacity,
|
op, dstCapacity,
|
||||||
literals, litSize,
|
literals, litSize,
|
||||||
entropyWorkspace, entropyWkspSize,
|
entropyWorkspace, entropyWkspSize,
|
||||||
@ -2721,7 +2717,7 @@ ZSTD_entropyCompressSeqStore(seqStore_t* seqStorePtr,
|
|||||||
/* ZSTD_selectBlockCompressor() :
|
/* ZSTD_selectBlockCompressor() :
|
||||||
* Not static, but internal use only (used by long distance matcher)
|
* Not static, but internal use only (used by long distance matcher)
|
||||||
* assumption : strat is a valid strategy */
|
* assumption : strat is a valid strategy */
|
||||||
ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_useRowMatchFinderMode_e useRowMatchFinder, ZSTD_dictMode_e dictMode)
|
ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramSwitch_e useRowMatchFinder, ZSTD_dictMode_e dictMode)
|
||||||
{
|
{
|
||||||
static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = {
|
static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = {
|
||||||
{ ZSTD_compressBlock_fast /* default for 0 */,
|
{ ZSTD_compressBlock_fast /* default for 0 */,
|
||||||
@ -2786,7 +2782,7 @@ ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_useRow
|
|||||||
ZSTD_compressBlock_lazy2_dedicatedDictSearch_row }
|
ZSTD_compressBlock_lazy2_dedicatedDictSearch_row }
|
||||||
};
|
};
|
||||||
DEBUGLOG(4, "Selecting a row-based matchfinder");
|
DEBUGLOG(4, "Selecting a row-based matchfinder");
|
||||||
assert(useRowMatchFinder != ZSTD_urm_auto);
|
assert(useRowMatchFinder != ZSTD_ps_auto);
|
||||||
selectedCompressor = rowBasedBlockCompressors[(int)dictMode][(int)strat - (int)ZSTD_greedy];
|
selectedCompressor = rowBasedBlockCompressors[(int)dictMode][(int)strat - (int)ZSTD_greedy];
|
||||||
} else {
|
} else {
|
||||||
selectedCompressor = blockCompressor[(int)dictMode][(int)strat];
|
selectedCompressor = blockCompressor[(int)dictMode][(int)strat];
|
||||||
@ -3055,7 +3051,7 @@ static size_t ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSi
|
|||||||
const ZSTD_hufCTables_t* prevHuf,
|
const ZSTD_hufCTables_t* prevHuf,
|
||||||
ZSTD_hufCTables_t* nextHuf,
|
ZSTD_hufCTables_t* nextHuf,
|
||||||
ZSTD_hufCTablesMetadata_t* hufMetadata,
|
ZSTD_hufCTablesMetadata_t* hufMetadata,
|
||||||
const int disableLiteralsCompression,
|
const int literalsCompressionIsDisabled,
|
||||||
void* workspace, size_t wkspSize)
|
void* workspace, size_t wkspSize)
|
||||||
{
|
{
|
||||||
BYTE* const wkspStart = (BYTE*)workspace;
|
BYTE* const wkspStart = (BYTE*)workspace;
|
||||||
@ -3073,7 +3069,7 @@ static size_t ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSi
|
|||||||
/* Prepare nextEntropy assuming reusing the existing table */
|
/* Prepare nextEntropy assuming reusing the existing table */
|
||||||
ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf));
|
ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf));
|
||||||
|
|
||||||
if (disableLiteralsCompression) {
|
if (literalsCompressionIsDisabled) {
|
||||||
DEBUGLOG(5, "set_basic - disabled");
|
DEBUGLOG(5, "set_basic - disabled");
|
||||||
hufMetadata->hType = set_basic;
|
hufMetadata->hType = set_basic;
|
||||||
return 0;
|
return 0;
|
||||||
@ -3220,7 +3216,7 @@ size_t ZSTD_buildBlockEntropyStats(seqStore_t* seqStorePtr,
|
|||||||
ZSTD_buildBlockEntropyStats_literals(seqStorePtr->litStart, litSize,
|
ZSTD_buildBlockEntropyStats_literals(seqStorePtr->litStart, litSize,
|
||||||
&prevEntropy->huf, &nextEntropy->huf,
|
&prevEntropy->huf, &nextEntropy->huf,
|
||||||
&entropyMetadata->hufMetadata,
|
&entropyMetadata->hufMetadata,
|
||||||
ZSTD_disableLiteralsCompression(cctxParams),
|
ZSTD_literalsCompressionIsDisabled(cctxParams),
|
||||||
workspace, wkspSize);
|
workspace, wkspSize);
|
||||||
FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildBlockEntropyStats_literals failed");
|
FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildBlockEntropyStats_literals failed");
|
||||||
entropyMetadata->fseMetadata.fseTablesSize =
|
entropyMetadata->fseMetadata.fseTablesSize =
|
||||||
@ -3723,6 +3719,7 @@ static size_t ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc,
|
|||||||
U32 nbSeq;
|
U32 nbSeq;
|
||||||
size_t cSize;
|
size_t cSize;
|
||||||
DEBUGLOG(4, "ZSTD_compressBlock_splitBlock");
|
DEBUGLOG(4, "ZSTD_compressBlock_splitBlock");
|
||||||
|
assert(zc->appliedParams.useBlockSplitter == ZSTD_ps_enable);
|
||||||
|
|
||||||
{ const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize);
|
{ const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize);
|
||||||
FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed");
|
FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed");
|
||||||
@ -3737,7 +3734,6 @@ static size_t ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc,
|
|||||||
nbSeq = (U32)(zc->seqStore.sequences - zc->seqStore.sequencesStart);
|
nbSeq = (U32)(zc->seqStore.sequences - zc->seqStore.sequencesStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(zc->appliedParams.splitBlocks == 1);
|
|
||||||
cSize = ZSTD_compressBlock_splitBlock_internal(zc, dst, dstCapacity, src, srcSize, lastBlock, nbSeq);
|
cSize = ZSTD_compressBlock_splitBlock_internal(zc, dst, dstCapacity, src, srcSize, lastBlock, nbSeq);
|
||||||
FORWARD_IF_ERROR(cSize, "Splitting blocks failed!");
|
FORWARD_IF_ERROR(cSize, "Splitting blocks failed!");
|
||||||
return cSize;
|
return cSize;
|
||||||
@ -4252,8 +4248,8 @@ static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms,
|
|||||||
assert(ms->chainTable != NULL);
|
assert(ms->chainTable != NULL);
|
||||||
ZSTD_dedicatedDictSearch_lazy_loadDictionary(ms, iend-HASH_READ_SIZE);
|
ZSTD_dedicatedDictSearch_lazy_loadDictionary(ms, iend-HASH_READ_SIZE);
|
||||||
} else {
|
} else {
|
||||||
assert(params->useRowMatchFinder != ZSTD_urm_auto);
|
assert(params->useRowMatchFinder != ZSTD_ps_auto);
|
||||||
if (params->useRowMatchFinder == ZSTD_urm_enableRowMatchFinder) {
|
if (params->useRowMatchFinder == ZSTD_ps_enable) {
|
||||||
size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog) * sizeof(U16);
|
size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog) * sizeof(U16);
|
||||||
ZSTD_memset(ms->tagTable, 0, tagTableSize);
|
ZSTD_memset(ms->tagTable, 0, tagTableSize);
|
||||||
ZSTD_row_update(ms, iend-HASH_READ_SIZE);
|
ZSTD_row_update(ms, iend-HASH_READ_SIZE);
|
||||||
@ -4753,7 +4749,7 @@ size_t ZSTD_estimateCDictSize_advanced(
|
|||||||
+ ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE)
|
+ ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE)
|
||||||
/* enableDedicatedDictSearch == 1 ensures that CDict estimation will not be too small
|
/* enableDedicatedDictSearch == 1 ensures that CDict estimation will not be too small
|
||||||
* in case we are using DDS with row-hash. */
|
* in case we are using DDS with row-hash. */
|
||||||
+ ZSTD_sizeof_matchState(&cParams, ZSTD_resolveRowMatchFinderMode(ZSTD_urm_auto, &cParams),
|
+ ZSTD_sizeof_matchState(&cParams, ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams),
|
||||||
/* enableDedicatedDictSearch */ 1, /* forCCtx */ 0)
|
/* enableDedicatedDictSearch */ 1, /* forCCtx */ 0)
|
||||||
+ (dictLoadMethod == ZSTD_dlm_byRef ? 0
|
+ (dictLoadMethod == ZSTD_dlm_byRef ? 0
|
||||||
: ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void *))));
|
: ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void *))));
|
||||||
@ -4830,7 +4826,7 @@ static size_t ZSTD_initCDict_internal(
|
|||||||
static ZSTD_CDict* ZSTD_createCDict_advanced_internal(size_t dictSize,
|
static ZSTD_CDict* ZSTD_createCDict_advanced_internal(size_t dictSize,
|
||||||
ZSTD_dictLoadMethod_e dictLoadMethod,
|
ZSTD_dictLoadMethod_e dictLoadMethod,
|
||||||
ZSTD_compressionParameters cParams,
|
ZSTD_compressionParameters cParams,
|
||||||
ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
U32 enableDedicatedDictSearch,
|
U32 enableDedicatedDictSearch,
|
||||||
ZSTD_customMem customMem)
|
ZSTD_customMem customMem)
|
||||||
{
|
{
|
||||||
@ -4985,7 +4981,7 @@ const ZSTD_CDict* ZSTD_initStaticCDict(
|
|||||||
ZSTD_dictContentType_e dictContentType,
|
ZSTD_dictContentType_e dictContentType,
|
||||||
ZSTD_compressionParameters cParams)
|
ZSTD_compressionParameters cParams)
|
||||||
{
|
{
|
||||||
ZSTD_useRowMatchFinderMode_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(ZSTD_urm_auto, &cParams);
|
ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams);
|
||||||
/* enableDedicatedDictSearch == 1 ensures matchstate is not too small in case this CDict will be used for DDS + row hash */
|
/* enableDedicatedDictSearch == 1 ensures matchstate is not too small in case this CDict will be used for DDS + row hash */
|
||||||
size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0);
|
size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0);
|
||||||
size_t const neededSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict))
|
size_t const neededSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict))
|
||||||
@ -5568,11 +5564,7 @@ static size_t ZSTD_CCtx_init_compressStream2(ZSTD_CCtx* cctx,
|
|||||||
params.ldmParams.enableLdm = 1;
|
params.ldmParams.enableLdm = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ZSTD_CParams_useBlockSplitter(¶ms.cParams)) {
|
params.useBlockSplitter = ZSTD_resolveBlockSplitterMode(params.useBlockSplitter, ¶ms.cParams);
|
||||||
DEBUGLOG(4, "Block splitter enabled by default (window size >= 128K, strategy >= btopt)");
|
|
||||||
params.splitBlocks = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams);
|
params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams);
|
||||||
|
|
||||||
#ifdef ZSTD_MULTITHREAD
|
#ifdef ZSTD_MULTITHREAD
|
||||||
|
@ -179,7 +179,7 @@ typedef struct {
|
|||||||
U32 offCodeSumBasePrice; /* to compare to log2(offreq) */
|
U32 offCodeSumBasePrice; /* to compare to log2(offreq) */
|
||||||
ZSTD_OptPrice_e priceType; /* prices can be determined dynamically, or follow a pre-defined cost structure */
|
ZSTD_OptPrice_e priceType; /* prices can be determined dynamically, or follow a pre-defined cost structure */
|
||||||
const ZSTD_entropyCTables_t* symbolCosts; /* pre-calculated dictionary statistics */
|
const ZSTD_entropyCTables_t* symbolCosts; /* pre-calculated dictionary statistics */
|
||||||
ZSTD_literalCompressionMode_e literalCompressionMode;
|
ZSTD_paramSwitch_e literalCompressionMode;
|
||||||
} optState_t;
|
} optState_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -297,7 +297,7 @@ struct ZSTD_CCtx_params_s {
|
|||||||
* There is no guarantee that hint is close to actual source size */
|
* There is no guarantee that hint is close to actual source size */
|
||||||
|
|
||||||
ZSTD_dictAttachPref_e attachDictPref;
|
ZSTD_dictAttachPref_e attachDictPref;
|
||||||
ZSTD_literalCompressionMode_e literalCompressionMode;
|
ZSTD_paramSwitch_e literalCompressionMode;
|
||||||
|
|
||||||
/* Multithreading: used to pass parameters to mtctx */
|
/* Multithreading: used to pass parameters to mtctx */
|
||||||
int nbWorkers;
|
int nbWorkers;
|
||||||
@ -320,10 +320,10 @@ struct ZSTD_CCtx_params_s {
|
|||||||
int validateSequences;
|
int validateSequences;
|
||||||
|
|
||||||
/* Block splitting */
|
/* Block splitting */
|
||||||
int splitBlocks;
|
ZSTD_paramSwitch_e useBlockSplitter;
|
||||||
|
|
||||||
/* Param for deciding whether to use row-based matchfinder */
|
/* Param for deciding whether to use row-based matchfinder */
|
||||||
ZSTD_useRowMatchFinderMode_e useRowMatchFinder;
|
ZSTD_paramSwitch_e useRowMatchFinder;
|
||||||
|
|
||||||
/* Always load a dictionary in ext-dict mode (not prefix mode)? */
|
/* Always load a dictionary in ext-dict mode (not prefix mode)? */
|
||||||
int deterministicRefPrefix;
|
int deterministicRefPrefix;
|
||||||
@ -444,7 +444,7 @@ typedef enum {
|
|||||||
typedef size_t (*ZSTD_blockCompressor) (
|
typedef size_t (*ZSTD_blockCompressor) (
|
||||||
ZSTD_matchState_t* bs, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
ZSTD_matchState_t* bs, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
||||||
void const* src, size_t srcSize);
|
void const* src, size_t srcSize);
|
||||||
ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_useRowMatchFinderMode_e rowMatchfinderMode, ZSTD_dictMode_e dictMode);
|
ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramSwitch_e rowMatchfinderMode, ZSTD_dictMode_e dictMode);
|
||||||
|
|
||||||
|
|
||||||
MEM_STATIC U32 ZSTD_LLcode(U32 litLength)
|
MEM_STATIC U32 ZSTD_LLcode(U32 litLength)
|
||||||
@ -551,17 +551,17 @@ MEM_STATIC size_t ZSTD_minGain(size_t srcSize, ZSTD_strategy strat)
|
|||||||
return (srcSize >> minlog) + 2;
|
return (srcSize >> minlog) + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
MEM_STATIC int ZSTD_disableLiteralsCompression(const ZSTD_CCtx_params* cctxParams)
|
MEM_STATIC int ZSTD_literalsCompressionIsDisabled(const ZSTD_CCtx_params* cctxParams)
|
||||||
{
|
{
|
||||||
switch (cctxParams->literalCompressionMode) {
|
switch (cctxParams->literalCompressionMode) {
|
||||||
case ZSTD_lcm_huffman:
|
case ZSTD_ps_enable:
|
||||||
return 0;
|
return 0;
|
||||||
case ZSTD_lcm_uncompressed:
|
case ZSTD_ps_disable:
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
assert(0 /* impossible: pre-validated */);
|
assert(0 /* impossible: pre-validated */);
|
||||||
/* fall-through */
|
/* fall-through */
|
||||||
case ZSTD_lcm_auto:
|
case ZSTD_ps_auto:
|
||||||
return (cctxParams->cParams.strategy == ZSTD_fast) && (cctxParams->cParams.targetLength > 0);
|
return (cctxParams->cParams.strategy == ZSTD_fast) && (cctxParams->cParams.targetLength > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -657,7 +657,7 @@ void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) {
|
|||||||
|
|
||||||
size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
||||||
ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
||||||
ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
void const* src, size_t srcSize)
|
void const* src, size_t srcSize)
|
||||||
{
|
{
|
||||||
const ZSTD_compressionParameters* const cParams = &ms->cParams;
|
const ZSTD_compressionParameters* const cParams = &ms->cParams;
|
||||||
|
@ -66,7 +66,7 @@ size_t ZSTD_ldm_generateSequences(
|
|||||||
*/
|
*/
|
||||||
size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
||||||
ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
||||||
ZSTD_useRowMatchFinderMode_e useRowMatchFinder,
|
ZSTD_paramSwitch_e useRowMatchFinder,
|
||||||
void const* src, size_t srcSize);
|
void const* src, size_t srcSize);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,7 +65,7 @@ MEM_STATIC double ZSTD_fCost(U32 price)
|
|||||||
|
|
||||||
static int ZSTD_compressedLiterals(optState_t const* const optPtr)
|
static int ZSTD_compressedLiterals(optState_t const* const optPtr)
|
||||||
{
|
{
|
||||||
return optPtr->literalCompressionMode != ZSTD_lcm_uncompressed;
|
return optPtr->literalCompressionMode != ZSTD_ps_disable;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel)
|
static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel)
|
||||||
|
53
lib/zstd.h
53
lib/zstd.h
@ -417,7 +417,7 @@ typedef enum {
|
|||||||
* ZSTD_c_stableOutBuffer
|
* ZSTD_c_stableOutBuffer
|
||||||
* ZSTD_c_blockDelimiters
|
* ZSTD_c_blockDelimiters
|
||||||
* ZSTD_c_validateSequences
|
* ZSTD_c_validateSequences
|
||||||
* ZSTD_c_splitBlocks
|
* ZSTD_c_useBlockSplitter
|
||||||
* ZSTD_c_useRowMatchFinder
|
* ZSTD_c_useRowMatchFinder
|
||||||
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
||||||
* note : never ever use experimentalParam? names directly;
|
* note : never ever use experimentalParam? names directly;
|
||||||
@ -1299,10 +1299,14 @@ typedef enum {
|
|||||||
} ZSTD_literalCompressionMode_e;
|
} ZSTD_literalCompressionMode_e;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ZSTD_urm_auto = 0, /* Automatically determine whether or not we use row matchfinder */
|
/* Note: This enum controls features which are conditionally beneficial. Zstd typically will make a final
|
||||||
ZSTD_urm_disableRowMatchFinder = 1, /* Never use row matchfinder */
|
* decision on whether or not to enable the feature (ZSTD_ps_auto), but setting the switch to ZSTD_ps_enable
|
||||||
ZSTD_urm_enableRowMatchFinder = 2 /* Always use row matchfinder when applicable */
|
* or ZSTD_ps_disable allow for a force enable/disable the feature.
|
||||||
} ZSTD_useRowMatchFinderMode_e;
|
*/
|
||||||
|
ZSTD_ps_auto = 0, /* Let the library automatically determine whether the feature shall be enabled */
|
||||||
|
ZSTD_ps_enable = 1, /* Force-enable the feature */
|
||||||
|
ZSTD_ps_disable = 2 /* Do not use the feature */
|
||||||
|
} ZSTD_paramSwitch_e;
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
* Frame size functions
|
* Frame size functions
|
||||||
@ -1729,9 +1733,15 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* pre
|
|||||||
* See the comments on that enum for an explanation of the feature. */
|
* See the comments on that enum for an explanation of the feature. */
|
||||||
#define ZSTD_c_forceAttachDict ZSTD_c_experimentalParam4
|
#define ZSTD_c_forceAttachDict ZSTD_c_experimentalParam4
|
||||||
|
|
||||||
/* Controls how the literals are compressed (default is auto).
|
/* Controlled with ZSTD_paramSwitch_e enum.
|
||||||
* The value must be of type ZSTD_literalCompressionMode_e.
|
* Default is ZSTD_ps_auto.
|
||||||
* See ZSTD_literalCompressionMode_e enum definition for details.
|
* Set to ZSTD_ps_disable to never compress literals.
|
||||||
|
* Set to ZSTD_ps_enable to always compress literals. (Note: uncompressed literals
|
||||||
|
* may still be emitted if huffman is not beneficial to use.)
|
||||||
|
*
|
||||||
|
* By default, in ZSTD_ps_auto, the library will decide at runtime whether to use
|
||||||
|
* literals compression based on the compression parameters - specifically,
|
||||||
|
* negative compression levels do not use literal compression.
|
||||||
*/
|
*/
|
||||||
#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5
|
#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5
|
||||||
|
|
||||||
@ -1883,23 +1893,26 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* pre
|
|||||||
*/
|
*/
|
||||||
#define ZSTD_c_validateSequences ZSTD_c_experimentalParam12
|
#define ZSTD_c_validateSequences ZSTD_c_experimentalParam12
|
||||||
|
|
||||||
/* ZSTD_c_splitBlocks
|
/* ZSTD_c_useBlockSplitter
|
||||||
* Default is 0 == disabled. Set to 1 to enable block splitting.
|
* Controlled with ZSTD_paramSwitch_e enum.
|
||||||
|
* Default is ZSTD_ps_auto.
|
||||||
|
* Set to ZSTD_ps_disable to never use block splitter.
|
||||||
|
* Set to ZSTD_ps_enable to always use block splitter.
|
||||||
*
|
*
|
||||||
* Will attempt to split blocks in order to improve compression ratio at the cost of speed.
|
* By default, in ZSTD_ps_auto, the library will decide at runtime whether to use
|
||||||
|
* block splitting based on the compression parameters.
|
||||||
*/
|
*/
|
||||||
#define ZSTD_c_splitBlocks ZSTD_c_experimentalParam13
|
#define ZSTD_c_useBlockSplitter ZSTD_c_experimentalParam13
|
||||||
|
|
||||||
/* ZSTD_c_useRowMatchFinder
|
/* ZSTD_c_useRowMatchFinder
|
||||||
* Default is ZSTD_urm_auto.
|
* Controlled with ZSTD_paramSwitch_e enum.
|
||||||
* Controlled with ZSTD_useRowMatchFinderMode_e enum.
|
* Default is ZSTD_ps_auto.
|
||||||
|
* Set to ZSTD_ps_disable to never use row-based matchfinder.
|
||||||
|
* Set to ZSTD_ps_enable to force usage of row-based matchfinder.
|
||||||
*
|
*
|
||||||
* By default, in ZSTD_urm_auto, when finalizing the compression parameters, the library
|
* By default, in ZSTD_ps_auto, the library will decide at runtime whether to use
|
||||||
* will decide at runtime whether to use the row-based matchfinder based on support for SIMD
|
* the row-based matchfinder based on support for SIMD instructions and the window log.
|
||||||
* instructions as well as the windowLog.
|
* Note that this only pertains to compression strategies: greedy, lazy, and lazy2
|
||||||
*
|
|
||||||
* Set to ZSTD_urm_disableRowMatchFinder to never use row-based matchfinder.
|
|
||||||
* Set to ZSTD_urm_enableRowMatchFinder to force usage of row-based matchfinder.
|
|
||||||
*/
|
*/
|
||||||
#define ZSTD_c_useRowMatchFinder ZSTD_c_experimentalParam14
|
#define ZSTD_c_useRowMatchFinder ZSTD_c_experimentalParam14
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ BMK_advancedParams_t BMK_initAdvancedParams(void) {
|
|||||||
0, /* ldmHashLog */
|
0, /* ldmHashLog */
|
||||||
0, /* ldmBuckSizeLog */
|
0, /* ldmBuckSizeLog */
|
||||||
0, /* ldmHashRateLog */
|
0, /* ldmHashRateLog */
|
||||||
ZSTD_lcm_auto, /* literalCompressionMode */
|
ZSTD_ps_auto, /* literalCompressionMode */
|
||||||
0 /* useRowMatchFinder */
|
0 /* useRowMatchFinder */
|
||||||
};
|
};
|
||||||
return res;
|
return res;
|
||||||
|
@ -116,7 +116,7 @@ typedef struct {
|
|||||||
int ldmHashLog;
|
int ldmHashLog;
|
||||||
int ldmBucketSizeLog;
|
int ldmBucketSizeLog;
|
||||||
int ldmHashRateLog;
|
int ldmHashRateLog;
|
||||||
ZSTD_literalCompressionMode_e literalCompressionMode;
|
ZSTD_paramSwitch_e literalCompressionMode;
|
||||||
int useRowMatchFinder; /* use row-based matchfinder if possible */
|
int useRowMatchFinder; /* use row-based matchfinder if possible */
|
||||||
} BMK_advancedParams_t;
|
} BMK_advancedParams_t;
|
||||||
|
|
||||||
|
@ -320,7 +320,7 @@ struct FIO_prefs_s {
|
|||||||
size_t targetCBlockSize;
|
size_t targetCBlockSize;
|
||||||
int srcSizeHint;
|
int srcSizeHint;
|
||||||
int testMode;
|
int testMode;
|
||||||
ZSTD_literalCompressionMode_e literalCompressionMode;
|
ZSTD_paramSwitch_e literalCompressionMode;
|
||||||
|
|
||||||
/* IO preferences */
|
/* IO preferences */
|
||||||
U32 removeSrcFile;
|
U32 removeSrcFile;
|
||||||
@ -392,7 +392,7 @@ FIO_prefs_t* FIO_createPreferences(void)
|
|||||||
ret->targetCBlockSize = 0;
|
ret->targetCBlockSize = 0;
|
||||||
ret->srcSizeHint = 0;
|
ret->srcSizeHint = 0;
|
||||||
ret->testMode = 0;
|
ret->testMode = 0;
|
||||||
ret->literalCompressionMode = ZSTD_lcm_auto;
|
ret->literalCompressionMode = ZSTD_ps_auto;
|
||||||
ret->excludeCompressedFiles = 0;
|
ret->excludeCompressedFiles = 0;
|
||||||
ret->allowBlockDevices = 0;
|
ret->allowBlockDevices = 0;
|
||||||
return ret;
|
return ret;
|
||||||
@ -510,7 +510,7 @@ void FIO_setTestMode(FIO_prefs_t* const prefs, int testMode) {
|
|||||||
|
|
||||||
void FIO_setLiteralCompressionMode(
|
void FIO_setLiteralCompressionMode(
|
||||||
FIO_prefs_t* const prefs,
|
FIO_prefs_t* const prefs,
|
||||||
ZSTD_literalCompressionMode_e mode) {
|
ZSTD_paramSwitch_e mode) {
|
||||||
prefs->literalCompressionMode = mode;
|
prefs->literalCompressionMode = mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ void FIO_setSrcSizeHint(FIO_prefs_t* const prefs, size_t srcSizeHint);
|
|||||||
void FIO_setTestMode(FIO_prefs_t* const prefs, int testMode);
|
void FIO_setTestMode(FIO_prefs_t* const prefs, int testMode);
|
||||||
void FIO_setLiteralCompressionMode(
|
void FIO_setLiteralCompressionMode(
|
||||||
FIO_prefs_t* const prefs,
|
FIO_prefs_t* const prefs,
|
||||||
ZSTD_literalCompressionMode_e mode);
|
ZSTD_paramSwitch_e mode);
|
||||||
|
|
||||||
void FIO_setProgressSetting(FIO_progressSetting_e progressSetting);
|
void FIO_setProgressSetting(FIO_progressSetting_e progressSetting);
|
||||||
void FIO_setNotificationLevel(int level);
|
void FIO_setNotificationLevel(int level);
|
||||||
|
@ -804,7 +804,7 @@ int main(int argCount, const char* argv[])
|
|||||||
#ifndef ZSTD_NOBENCH
|
#ifndef ZSTD_NOBENCH
|
||||||
BMK_advancedParams_t benchParams = BMK_initAdvancedParams();
|
BMK_advancedParams_t benchParams = BMK_initAdvancedParams();
|
||||||
#endif
|
#endif
|
||||||
ZSTD_literalCompressionMode_e literalCompressionMode = ZSTD_lcm_auto;
|
ZSTD_paramSwitch_e literalCompressionMode = ZSTD_ps_auto;
|
||||||
|
|
||||||
|
|
||||||
/* init */
|
/* init */
|
||||||
@ -900,8 +900,8 @@ int main(int argCount, const char* argv[])
|
|||||||
if (!strcmp(argument, "--format=lz4")) { suffix = LZ4_EXTENSION; FIO_setCompressionType(prefs, FIO_lz4Compression); continue; }
|
if (!strcmp(argument, "--format=lz4")) { suffix = LZ4_EXTENSION; FIO_setCompressionType(prefs, FIO_lz4Compression); continue; }
|
||||||
#endif
|
#endif
|
||||||
if (!strcmp(argument, "--rsyncable")) { rsyncable = 1; continue; }
|
if (!strcmp(argument, "--rsyncable")) { rsyncable = 1; continue; }
|
||||||
if (!strcmp(argument, "--compress-literals")) { literalCompressionMode = ZSTD_lcm_huffman; continue; }
|
if (!strcmp(argument, "--compress-literals")) { literalCompressionMode = ZSTD_ps_enable; continue; }
|
||||||
if (!strcmp(argument, "--no-compress-literals")) { literalCompressionMode = ZSTD_lcm_uncompressed; continue; }
|
if (!strcmp(argument, "--no-compress-literals")) { literalCompressionMode = ZSTD_ps_disable; continue; }
|
||||||
if (!strcmp(argument, "--no-progress")) { FIO_setProgressSetting(FIO_ps_never); continue; }
|
if (!strcmp(argument, "--no-progress")) { FIO_setProgressSetting(FIO_ps_never); continue; }
|
||||||
if (!strcmp(argument, "--progress")) { FIO_setProgressSetting(FIO_ps_always); continue; }
|
if (!strcmp(argument, "--progress")) { FIO_setProgressSetting(FIO_ps_always); continue; }
|
||||||
if (!strcmp(argument, "--exclude-compressed")) { FIO_setExcludeCompressedFile(prefs, 1); continue; }
|
if (!strcmp(argument, "--exclude-compressed")) { FIO_setExcludeCompressedFile(prefs, 1); continue; }
|
||||||
|
@ -96,7 +96,7 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, FUZZ_dataProducer
|
|||||||
setRand(cctx, ZSTD_c_forceMaxWindow, 0, 1, producer);
|
setRand(cctx, ZSTD_c_forceMaxWindow, 0, 1, producer);
|
||||||
setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, producer);
|
setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, producer);
|
||||||
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, producer);
|
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, producer);
|
||||||
setRand(cctx, ZSTD_c_splitBlocks, 0, 1, producer);
|
setRand(cctx, ZSTD_c_useBlockSplitter, 0, 2, producer);
|
||||||
setRand(cctx, ZSTD_c_deterministicRefPrefix, 0, 1, producer);
|
setRand(cctx, ZSTD_c_deterministicRefPrefix, 0, 1, producer);
|
||||||
if (FUZZ_dataProducer_uint32Range(producer, 0, 1) == 0) {
|
if (FUZZ_dataProducer_uint32Range(producer, 0, 1) == 0) {
|
||||||
setRand(cctx, ZSTD_c_srcSizeHint, ZSTD_SRCSIZEHINT_MIN, 2 * srcSize, producer);
|
setRand(cctx, ZSTD_c_srcSizeHint, ZSTD_SRCSIZEHINT_MIN, 2 * srcSize, producer);
|
||||||
|
@ -1718,7 +1718,7 @@ static int basicUnitTests(U32 const seed, double compressibility)
|
|||||||
|
|
||||||
DISPLAYLEVEL(3, "test%3i : compress with block splitting : ", testNb++)
|
DISPLAYLEVEL(3, "test%3i : compress with block splitting : ", testNb++)
|
||||||
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_splitBlocks, 1) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_useBlockSplitter, ZSTD_ps_enable) );
|
||||||
cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
||||||
CHECK(cSize);
|
CHECK(cSize);
|
||||||
ZSTD_freeCCtx(cctx);
|
ZSTD_freeCCtx(cctx);
|
||||||
@ -1732,7 +1732,7 @@ static int basicUnitTests(U32 const seed, double compressibility)
|
|||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 2) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 2) );
|
||||||
cSize1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
cSize1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
||||||
CHECK(cSize1);
|
CHECK(cSize1);
|
||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_literalCompressionMode, ZSTD_lcm_uncompressed) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_literalCompressionMode, ZSTD_ps_disable) );
|
||||||
cSize2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
cSize2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
||||||
CHECK(cSize2);
|
CHECK(cSize2);
|
||||||
CHECK_LT(cSize1, cSize2);
|
CHECK_LT(cSize1, cSize2);
|
||||||
@ -2019,7 +2019,7 @@ static int basicUnitTests(U32 const seed, double compressibility)
|
|||||||
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
||||||
size_t nodict_cSize;
|
size_t nodict_cSize;
|
||||||
ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, l);
|
ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, l);
|
||||||
ZSTD_CCtx_setParameter(cctx, ZSTD_c_useRowMatchFinder, ZSTD_urm_enableRowMatchFinder);
|
ZSTD_CCtx_setParameter(cctx, ZSTD_c_useRowMatchFinder, ZSTD_ps_enable);
|
||||||
nodict_cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize,
|
nodict_cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize,
|
||||||
contentStart, contentSize);
|
contentStart, contentSize);
|
||||||
if (nodict_cSize > target_nodict_cSize[l]) {
|
if (nodict_cSize > target_nodict_cSize[l]) {
|
||||||
|
@ -215,7 +215,7 @@ static config_t mt_ldm = {
|
|||||||
|
|
||||||
static param_value_t mt_advanced_param_values[] = {
|
static param_value_t mt_advanced_param_values[] = {
|
||||||
{.param = ZSTD_c_nbWorkers, .value = 2},
|
{.param = ZSTD_c_nbWorkers, .value = 2},
|
||||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_ps_disable},
|
||||||
};
|
};
|
||||||
|
|
||||||
static config_t mt_advanced = {
|
static config_t mt_advanced = {
|
||||||
@ -258,7 +258,7 @@ static config_t small_clog = {
|
|||||||
|
|
||||||
static param_value_t const uncompressed_literals_param_values[] = {
|
static param_value_t const uncompressed_literals_param_values[] = {
|
||||||
{.param = ZSTD_c_compressionLevel, .value = 3},
|
{.param = ZSTD_c_compressionLevel, .value = 3},
|
||||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_ps_disable},
|
||||||
};
|
};
|
||||||
|
|
||||||
static config_t uncompressed_literals = {
|
static config_t uncompressed_literals = {
|
||||||
@ -269,7 +269,7 @@ static config_t uncompressed_literals = {
|
|||||||
|
|
||||||
static param_value_t const uncompressed_literals_opt_param_values[] = {
|
static param_value_t const uncompressed_literals_opt_param_values[] = {
|
||||||
{.param = ZSTD_c_compressionLevel, .value = 19},
|
{.param = ZSTD_c_compressionLevel, .value = 19},
|
||||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_ps_disable},
|
||||||
};
|
};
|
||||||
|
|
||||||
static config_t uncompressed_literals_opt = {
|
static config_t uncompressed_literals_opt = {
|
||||||
@ -280,7 +280,7 @@ static config_t uncompressed_literals_opt = {
|
|||||||
|
|
||||||
static param_value_t const huffman_literals_param_values[] = {
|
static param_value_t const huffman_literals_param_values[] = {
|
||||||
{.param = ZSTD_c_compressionLevel, .value = -1},
|
{.param = ZSTD_c_compressionLevel, .value = -1},
|
||||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_huffman},
|
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_ps_enable},
|
||||||
};
|
};
|
||||||
|
|
||||||
static config_t huffman_literals = {
|
static config_t huffman_literals = {
|
||||||
|
@ -36,7 +36,7 @@ LEVEL(3)
|
|||||||
LEVEL(4)
|
LEVEL(4)
|
||||||
/* ROW_LEVEL triggers the row hash (force enabled and disabled) with different
|
/* ROW_LEVEL triggers the row hash (force enabled and disabled) with different
|
||||||
* dictionary strategies, and 16/32/64 row entries based on the level/searchLog.
|
* dictionary strategies, and 16/32/64 row entries based on the level/searchLog.
|
||||||
* 1 == disabled, 2 == enabled.
|
* 1 == enabled, 2 == disabled.
|
||||||
*/
|
*/
|
||||||
ROW_LEVEL(5, 1)
|
ROW_LEVEL(5, 1)
|
||||||
ROW_LEVEL(5, 2) /* 16-entry rows */
|
ROW_LEVEL(5, 2) /* 16-entry rows */
|
||||||
|
@ -235,18 +235,18 @@ silesia, level 0, advanced
|
|||||||
silesia, level 1, advanced one pass, 5309098
|
silesia, level 1, advanced one pass, 5309098
|
||||||
silesia, level 3, advanced one pass, 4849553
|
silesia, level 3, advanced one pass, 4849553
|
||||||
silesia, level 4, advanced one pass, 4786968
|
silesia, level 4, advanced one pass, 4786968
|
||||||
silesia, level 5 row 1, advanced one pass, 4640752
|
silesia, level 5 row 1, advanced one pass, 4638961
|
||||||
silesia, level 5 row 2, advanced one pass, 4638961
|
silesia, level 5 row 2, advanced one pass, 4640752
|
||||||
silesia, level 5, advanced one pass, 4638961
|
silesia, level 5, advanced one pass, 4638961
|
||||||
silesia, level 6, advanced one pass, 4605369
|
silesia, level 6, advanced one pass, 4605369
|
||||||
silesia, level 7 row 1, advanced one pass, 4564868
|
silesia, level 7 row 1, advanced one pass, 4567204
|
||||||
silesia, level 7 row 2, advanced one pass, 4567204
|
silesia, level 7 row 2, advanced one pass, 4564868
|
||||||
silesia, level 7, advanced one pass, 4567204
|
silesia, level 7, advanced one pass, 4567204
|
||||||
silesia, level 9, advanced one pass, 4543310
|
silesia, level 9, advanced one pass, 4543310
|
||||||
silesia, level 11 row 1, advanced one pass, 4519288
|
silesia, level 11 row 1, advanced one pass, 4521399
|
||||||
silesia, level 11 row 2, advanced one pass, 4521399
|
silesia, level 11 row 2, advanced one pass, 4519288
|
||||||
silesia, level 12 row 1, advanced one pass, 4503116
|
silesia, level 12 row 1, advanced one pass, 4505153
|
||||||
silesia, level 12 row 2, advanced one pass, 4505153
|
silesia, level 12 row 2, advanced one pass, 4503116
|
||||||
silesia, level 13, advanced one pass, 4493990
|
silesia, level 13, advanced one pass, 4493990
|
||||||
silesia, level 16, advanced one pass, 4359864
|
silesia, level 16, advanced one pass, 4359864
|
||||||
silesia, level 19, advanced one pass, 4296880
|
silesia, level 19, advanced one pass, 4296880
|
||||||
@ -269,18 +269,18 @@ silesia.tar, level 0, advanced
|
|||||||
silesia.tar, level 1, advanced one pass, 5331946
|
silesia.tar, level 1, advanced one pass, 5331946
|
||||||
silesia.tar, level 3, advanced one pass, 4861424
|
silesia.tar, level 3, advanced one pass, 4861424
|
||||||
silesia.tar, level 4, advanced one pass, 4799632
|
silesia.tar, level 4, advanced one pass, 4799632
|
||||||
silesia.tar, level 5 row 1, advanced one pass, 4652862
|
silesia.tar, level 5 row 1, advanced one pass, 4650202
|
||||||
silesia.tar, level 5 row 2, advanced one pass, 4650202
|
silesia.tar, level 5 row 2, advanced one pass, 4652862
|
||||||
silesia.tar, level 5, advanced one pass, 4650202
|
silesia.tar, level 5, advanced one pass, 4650202
|
||||||
silesia.tar, level 6, advanced one pass, 4616811
|
silesia.tar, level 6, advanced one pass, 4616811
|
||||||
silesia.tar, level 7 row 1, advanced one pass, 4575393
|
silesia.tar, level 7 row 1, advanced one pass, 4576829
|
||||||
silesia.tar, level 7 row 2, advanced one pass, 4576829
|
silesia.tar, level 7 row 2, advanced one pass, 4575393
|
||||||
silesia.tar, level 7, advanced one pass, 4576829
|
silesia.tar, level 7, advanced one pass, 4576829
|
||||||
silesia.tar, level 9, advanced one pass, 4552584
|
silesia.tar, level 9, advanced one pass, 4552584
|
||||||
silesia.tar, level 11 row 1, advanced one pass, 4529461
|
silesia.tar, level 11 row 1, advanced one pass, 4530256
|
||||||
silesia.tar, level 11 row 2, advanced one pass, 4530256
|
silesia.tar, level 11 row 2, advanced one pass, 4529461
|
||||||
silesia.tar, level 12 row 1, advanced one pass, 4513604
|
silesia.tar, level 12 row 1, advanced one pass, 4514568
|
||||||
silesia.tar, level 12 row 2, advanced one pass, 4514568
|
silesia.tar, level 12 row 2, advanced one pass, 4513604
|
||||||
silesia.tar, level 13, advanced one pass, 4502956
|
silesia.tar, level 13, advanced one pass, 4502956
|
||||||
silesia.tar, level 16, advanced one pass, 4360527
|
silesia.tar, level 16, advanced one pass, 4360527
|
||||||
silesia.tar, level 19, advanced one pass, 4267266
|
silesia.tar, level 19, advanced one pass, 4267266
|
||||||
@ -326,16 +326,16 @@ github, level 4 with dict dms, advanced
|
|||||||
github, level 4 with dict dds, advanced one pass, 41251
|
github, level 4 with dict dds, advanced one pass, 41251
|
||||||
github, level 4 with dict copy, advanced one pass, 41216
|
github, level 4 with dict copy, advanced one pass, 41216
|
||||||
github, level 4 with dict load, advanced one pass, 41159
|
github, level 4 with dict load, advanced one pass, 41159
|
||||||
github, level 5 row 1, advanced one pass, 135121
|
github, level 5 row 1, advanced one pass, 134584
|
||||||
github, level 5 row 1 with dict dms, advanced one pass, 38938
|
github, level 5 row 1 with dict dms, advanced one pass, 38758
|
||||||
github, level 5 row 1 with dict dds, advanced one pass, 38732
|
github, level 5 row 1 with dict dds, advanced one pass, 38728
|
||||||
github, level 5 row 1 with dict copy, advanced one pass, 38934
|
github, level 5 row 1 with dict copy, advanced one pass, 38759
|
||||||
github, level 5 row 1 with dict load, advanced one pass, 40725
|
github, level 5 row 1 with dict load, advanced one pass, 41518
|
||||||
github, level 5 row 2, advanced one pass, 134584
|
github, level 5 row 2, advanced one pass, 135121
|
||||||
github, level 5 row 2 with dict dms, advanced one pass, 38758
|
github, level 5 row 2 with dict dms, advanced one pass, 38938
|
||||||
github, level 5 row 2 with dict dds, advanced one pass, 38728
|
github, level 5 row 2 with dict dds, advanced one pass, 38732
|
||||||
github, level 5 row 2 with dict copy, advanced one pass, 38759
|
github, level 5 row 2 with dict copy, advanced one pass, 38934
|
||||||
github, level 5 row 2 with dict load, advanced one pass, 41518
|
github, level 5 row 2 with dict load, advanced one pass, 40725
|
||||||
github, level 5, advanced one pass, 135121
|
github, level 5, advanced one pass, 135121
|
||||||
github, level 5 with dict, advanced one pass, 38758
|
github, level 5 with dict, advanced one pass, 38758
|
||||||
github, level 5 with dict dms, advanced one pass, 38758
|
github, level 5 with dict dms, advanced one pass, 38758
|
||||||
@ -348,16 +348,16 @@ github, level 6 with dict dms, advanced
|
|||||||
github, level 6 with dict dds, advanced one pass, 38636
|
github, level 6 with dict dds, advanced one pass, 38636
|
||||||
github, level 6 with dict copy, advanced one pass, 38669
|
github, level 6 with dict copy, advanced one pass, 38669
|
||||||
github, level 6 with dict load, advanced one pass, 40695
|
github, level 6 with dict load, advanced one pass, 40695
|
||||||
github, level 7 row 1, advanced one pass, 135122
|
github, level 7 row 1, advanced one pass, 134584
|
||||||
github, level 7 row 1 with dict dms, advanced one pass, 38860
|
github, level 7 row 1 with dict dms, advanced one pass, 38758
|
||||||
github, level 7 row 1 with dict dds, advanced one pass, 38766
|
github, level 7 row 1 with dict dds, advanced one pass, 38745
|
||||||
github, level 7 row 1 with dict copy, advanced one pass, 38834
|
github, level 7 row 1 with dict copy, advanced one pass, 38755
|
||||||
github, level 7 row 1 with dict load, advanced one pass, 40695
|
github, level 7 row 1 with dict load, advanced one pass, 43154
|
||||||
github, level 7 row 2, advanced one pass, 134584
|
github, level 7 row 2, advanced one pass, 135122
|
||||||
github, level 7 row 2 with dict dms, advanced one pass, 38758
|
github, level 7 row 2 with dict dms, advanced one pass, 38860
|
||||||
github, level 7 row 2 with dict dds, advanced one pass, 38745
|
github, level 7 row 2 with dict dds, advanced one pass, 38766
|
||||||
github, level 7 row 2 with dict copy, advanced one pass, 38755
|
github, level 7 row 2 with dict copy, advanced one pass, 38834
|
||||||
github, level 7 row 2 with dict load, advanced one pass, 43154
|
github, level 7 row 2 with dict load, advanced one pass, 40695
|
||||||
github, level 7, advanced one pass, 135122
|
github, level 7, advanced one pass, 135122
|
||||||
github, level 7 with dict, advanced one pass, 38758
|
github, level 7 with dict, advanced one pass, 38758
|
||||||
github, level 7 with dict dms, advanced one pass, 38758
|
github, level 7 with dict dms, advanced one pass, 38758
|
||||||
@ -451,16 +451,16 @@ github.tar, level 4 with dict dms, advanced
|
|||||||
github.tar, level 4 with dict dds, advanced one pass, 37954
|
github.tar, level 4 with dict dds, advanced one pass, 37954
|
||||||
github.tar, level 4 with dict copy, advanced one pass, 37948
|
github.tar, level 4 with dict copy, advanced one pass, 37948
|
||||||
github.tar, level 4 with dict load, advanced one pass, 37927
|
github.tar, level 4 with dict load, advanced one pass, 37927
|
||||||
github.tar, level 5 row 1, advanced one pass, 38534
|
github.tar, level 5 row 1, advanced one pass, 38376
|
||||||
github.tar, level 5 row 1 with dict dms, advanced one pass, 39365
|
github.tar, level 5 row 1 with dict dms, advanced one pass, 39024
|
||||||
github.tar, level 5 row 1 with dict dds, advanced one pass, 39233
|
github.tar, level 5 row 1 with dict dds, advanced one pass, 39028
|
||||||
github.tar, level 5 row 1 with dict copy, advanced one pass, 39715
|
github.tar, level 5 row 1 with dict copy, advanced one pass, 39040
|
||||||
github.tar, level 5 row 1 with dict load, advanced one pass, 38019
|
github.tar, level 5 row 1 with dict load, advanced one pass, 37600
|
||||||
github.tar, level 5 row 2, advanced one pass, 38376
|
github.tar, level 5 row 2, advanced one pass, 38534
|
||||||
github.tar, level 5 row 2 with dict dms, advanced one pass, 39024
|
github.tar, level 5 row 2 with dict dms, advanced one pass, 39365
|
||||||
github.tar, level 5 row 2 with dict dds, advanced one pass, 39028
|
github.tar, level 5 row 2 with dict dds, advanced one pass, 39233
|
||||||
github.tar, level 5 row 2 with dict copy, advanced one pass, 39040
|
github.tar, level 5 row 2 with dict copy, advanced one pass, 39715
|
||||||
github.tar, level 5 row 2 with dict load, advanced one pass, 37600
|
github.tar, level 5 row 2 with dict load, advanced one pass, 38019
|
||||||
github.tar, level 5, advanced one pass, 38376
|
github.tar, level 5, advanced one pass, 38376
|
||||||
github.tar, level 5 with dict, advanced one pass, 39040
|
github.tar, level 5 with dict, advanced one pass, 39040
|
||||||
github.tar, level 5 with dict dms, advanced one pass, 39024
|
github.tar, level 5 with dict dms, advanced one pass, 39024
|
||||||
@ -473,16 +473,16 @@ github.tar, level 6 with dict dms, advanced
|
|||||||
github.tar, level 6 with dict dds, advanced one pass, 38610
|
github.tar, level 6 with dict dds, advanced one pass, 38610
|
||||||
github.tar, level 6 with dict copy, advanced one pass, 38622
|
github.tar, level 6 with dict copy, advanced one pass, 38622
|
||||||
github.tar, level 6 with dict load, advanced one pass, 37829
|
github.tar, level 6 with dict load, advanced one pass, 37829
|
||||||
github.tar, level 7 row 1, advanced one pass, 38077
|
github.tar, level 7 row 1, advanced one pass, 38073
|
||||||
github.tar, level 7 row 1 with dict dms, advanced one pass, 38012
|
github.tar, level 7 row 1 with dict dms, advanced one pass, 37848
|
||||||
github.tar, level 7 row 1 with dict dds, advanced one pass, 38014
|
github.tar, level 7 row 1 with dict dds, advanced one pass, 37869
|
||||||
github.tar, level 7 row 1 with dict copy, advanced one pass, 38101
|
github.tar, level 7 row 1 with dict copy, advanced one pass, 37848
|
||||||
github.tar, level 7 row 1 with dict load, advanced one pass, 37402
|
github.tar, level 7 row 1 with dict load, advanced one pass, 37371
|
||||||
github.tar, level 7 row 2, advanced one pass, 38073
|
github.tar, level 7 row 2, advanced one pass, 38077
|
||||||
github.tar, level 7 row 2 with dict dms, advanced one pass, 37848
|
github.tar, level 7 row 2 with dict dms, advanced one pass, 38012
|
||||||
github.tar, level 7 row 2 with dict dds, advanced one pass, 37869
|
github.tar, level 7 row 2 with dict dds, advanced one pass, 38014
|
||||||
github.tar, level 7 row 2 with dict copy, advanced one pass, 37848
|
github.tar, level 7 row 2 with dict copy, advanced one pass, 38101
|
||||||
github.tar, level 7 row 2 with dict load, advanced one pass, 37371
|
github.tar, level 7 row 2 with dict load, advanced one pass, 37402
|
||||||
github.tar, level 7, advanced one pass, 38073
|
github.tar, level 7, advanced one pass, 38073
|
||||||
github.tar, level 7 with dict, advanced one pass, 37848
|
github.tar, level 7 with dict, advanced one pass, 37848
|
||||||
github.tar, level 7 with dict dms, advanced one pass, 37848
|
github.tar, level 7 with dict dms, advanced one pass, 37848
|
||||||
@ -499,22 +499,22 @@ github.tar, level 11 row 1, advanced
|
|||||||
github.tar, level 11 row 1 with dict dms, advanced one pass, 36963
|
github.tar, level 11 row 1 with dict dms, advanced one pass, 36963
|
||||||
github.tar, level 11 row 1 with dict dds, advanced one pass, 36963
|
github.tar, level 11 row 1 with dict dds, advanced one pass, 36963
|
||||||
github.tar, level 11 row 1 with dict copy, advanced one pass, 36557
|
github.tar, level 11 row 1 with dict copy, advanced one pass, 36557
|
||||||
github.tar, level 11 row 1 with dict load, advanced one pass, 36419
|
github.tar, level 11 row 1 with dict load, advanced one pass, 36424
|
||||||
github.tar, level 11 row 2, advanced one pass, 36435
|
github.tar, level 11 row 2, advanced one pass, 36435
|
||||||
github.tar, level 11 row 2 with dict dms, advanced one pass, 36963
|
github.tar, level 11 row 2 with dict dms, advanced one pass, 36963
|
||||||
github.tar, level 11 row 2 with dict dds, advanced one pass, 36963
|
github.tar, level 11 row 2 with dict dds, advanced one pass, 36963
|
||||||
github.tar, level 11 row 2 with dict copy, advanced one pass, 36557
|
github.tar, level 11 row 2 with dict copy, advanced one pass, 36557
|
||||||
github.tar, level 11 row 2 with dict load, advanced one pass, 36424
|
github.tar, level 11 row 2 with dict load, advanced one pass, 36419
|
||||||
github.tar, level 12 row 1, advanced one pass, 36110
|
github.tar, level 12 row 1, advanced one pass, 36105
|
||||||
github.tar, level 12 row 1 with dict dms, advanced one pass, 36986
|
github.tar, level 12 row 1 with dict dms, advanced one pass, 36986
|
||||||
github.tar, level 12 row 1 with dict dds, advanced one pass, 36986
|
github.tar, level 12 row 1 with dict dds, advanced one pass, 36986
|
||||||
github.tar, level 12 row 1 with dict copy, advanced one pass, 36609
|
github.tar, level 12 row 1 with dict copy, advanced one pass, 36609
|
||||||
github.tar, level 12 row 1 with dict load, advanced one pass, 36459
|
github.tar, level 12 row 1 with dict load, advanced one pass, 36460
|
||||||
github.tar, level 12 row 2, advanced one pass, 36105
|
github.tar, level 12 row 2, advanced one pass, 36110
|
||||||
github.tar, level 12 row 2 with dict dms, advanced one pass, 36986
|
github.tar, level 12 row 2 with dict dms, advanced one pass, 36986
|
||||||
github.tar, level 12 row 2 with dict dds, advanced one pass, 36986
|
github.tar, level 12 row 2 with dict dds, advanced one pass, 36986
|
||||||
github.tar, level 12 row 2 with dict copy, advanced one pass, 36609
|
github.tar, level 12 row 2 with dict copy, advanced one pass, 36609
|
||||||
github.tar, level 12 row 2 with dict load, advanced one pass, 36460
|
github.tar, level 12 row 2 with dict load, advanced one pass, 36459
|
||||||
github.tar, level 13, advanced one pass, 35501
|
github.tar, level 13, advanced one pass, 35501
|
||||||
github.tar, level 13 with dict, advanced one pass, 37130
|
github.tar, level 13 with dict, advanced one pass, 37130
|
||||||
github.tar, level 13 with dict dms, advanced one pass, 37267
|
github.tar, level 13 with dict dms, advanced one pass, 37267
|
||||||
@ -553,18 +553,18 @@ silesia, level 0, advanced
|
|||||||
silesia, level 1, advanced one pass small out, 5309098
|
silesia, level 1, advanced one pass small out, 5309098
|
||||||
silesia, level 3, advanced one pass small out, 4849553
|
silesia, level 3, advanced one pass small out, 4849553
|
||||||
silesia, level 4, advanced one pass small out, 4786968
|
silesia, level 4, advanced one pass small out, 4786968
|
||||||
silesia, level 5 row 1, advanced one pass small out, 4640752
|
silesia, level 5 row 1, advanced one pass small out, 4638961
|
||||||
silesia, level 5 row 2, advanced one pass small out, 4638961
|
silesia, level 5 row 2, advanced one pass small out, 4640752
|
||||||
silesia, level 5, advanced one pass small out, 4638961
|
silesia, level 5, advanced one pass small out, 4638961
|
||||||
silesia, level 6, advanced one pass small out, 4605369
|
silesia, level 6, advanced one pass small out, 4605369
|
||||||
silesia, level 7 row 1, advanced one pass small out, 4564868
|
silesia, level 7 row 1, advanced one pass small out, 4567204
|
||||||
silesia, level 7 row 2, advanced one pass small out, 4567204
|
silesia, level 7 row 2, advanced one pass small out, 4564868
|
||||||
silesia, level 7, advanced one pass small out, 4567204
|
silesia, level 7, advanced one pass small out, 4567204
|
||||||
silesia, level 9, advanced one pass small out, 4543310
|
silesia, level 9, advanced one pass small out, 4543310
|
||||||
silesia, level 11 row 1, advanced one pass small out, 4519288
|
silesia, level 11 row 1, advanced one pass small out, 4521399
|
||||||
silesia, level 11 row 2, advanced one pass small out, 4521399
|
silesia, level 11 row 2, advanced one pass small out, 4519288
|
||||||
silesia, level 12 row 1, advanced one pass small out, 4503116
|
silesia, level 12 row 1, advanced one pass small out, 4505153
|
||||||
silesia, level 12 row 2, advanced one pass small out, 4505153
|
silesia, level 12 row 2, advanced one pass small out, 4503116
|
||||||
silesia, level 13, advanced one pass small out, 4493990
|
silesia, level 13, advanced one pass small out, 4493990
|
||||||
silesia, level 16, advanced one pass small out, 4359864
|
silesia, level 16, advanced one pass small out, 4359864
|
||||||
silesia, level 19, advanced one pass small out, 4296880
|
silesia, level 19, advanced one pass small out, 4296880
|
||||||
@ -587,18 +587,18 @@ silesia.tar, level 0, advanced
|
|||||||
silesia.tar, level 1, advanced one pass small out, 5331946
|
silesia.tar, level 1, advanced one pass small out, 5331946
|
||||||
silesia.tar, level 3, advanced one pass small out, 4861424
|
silesia.tar, level 3, advanced one pass small out, 4861424
|
||||||
silesia.tar, level 4, advanced one pass small out, 4799632
|
silesia.tar, level 4, advanced one pass small out, 4799632
|
||||||
silesia.tar, level 5 row 1, advanced one pass small out, 4652862
|
silesia.tar, level 5 row 1, advanced one pass small out, 4650202
|
||||||
silesia.tar, level 5 row 2, advanced one pass small out, 4650202
|
silesia.tar, level 5 row 2, advanced one pass small out, 4652862
|
||||||
silesia.tar, level 5, advanced one pass small out, 4650202
|
silesia.tar, level 5, advanced one pass small out, 4650202
|
||||||
silesia.tar, level 6, advanced one pass small out, 4616811
|
silesia.tar, level 6, advanced one pass small out, 4616811
|
||||||
silesia.tar, level 7 row 1, advanced one pass small out, 4575393
|
silesia.tar, level 7 row 1, advanced one pass small out, 4576829
|
||||||
silesia.tar, level 7 row 2, advanced one pass small out, 4576829
|
silesia.tar, level 7 row 2, advanced one pass small out, 4575393
|
||||||
silesia.tar, level 7, advanced one pass small out, 4576829
|
silesia.tar, level 7, advanced one pass small out, 4576829
|
||||||
silesia.tar, level 9, advanced one pass small out, 4552584
|
silesia.tar, level 9, advanced one pass small out, 4552584
|
||||||
silesia.tar, level 11 row 1, advanced one pass small out, 4529461
|
silesia.tar, level 11 row 1, advanced one pass small out, 4530256
|
||||||
silesia.tar, level 11 row 2, advanced one pass small out, 4530256
|
silesia.tar, level 11 row 2, advanced one pass small out, 4529461
|
||||||
silesia.tar, level 12 row 1, advanced one pass small out, 4513604
|
silesia.tar, level 12 row 1, advanced one pass small out, 4514568
|
||||||
silesia.tar, level 12 row 2, advanced one pass small out, 4514568
|
silesia.tar, level 12 row 2, advanced one pass small out, 4513604
|
||||||
silesia.tar, level 13, advanced one pass small out, 4502956
|
silesia.tar, level 13, advanced one pass small out, 4502956
|
||||||
silesia.tar, level 16, advanced one pass small out, 4360527
|
silesia.tar, level 16, advanced one pass small out, 4360527
|
||||||
silesia.tar, level 19, advanced one pass small out, 4267266
|
silesia.tar, level 19, advanced one pass small out, 4267266
|
||||||
@ -644,16 +644,16 @@ github, level 4 with dict dms, advanced
|
|||||||
github, level 4 with dict dds, advanced one pass small out, 41251
|
github, level 4 with dict dds, advanced one pass small out, 41251
|
||||||
github, level 4 with dict copy, advanced one pass small out, 41216
|
github, level 4 with dict copy, advanced one pass small out, 41216
|
||||||
github, level 4 with dict load, advanced one pass small out, 41159
|
github, level 4 with dict load, advanced one pass small out, 41159
|
||||||
github, level 5 row 1, advanced one pass small out, 135121
|
github, level 5 row 1, advanced one pass small out, 134584
|
||||||
github, level 5 row 1 with dict dms, advanced one pass small out, 38938
|
github, level 5 row 1 with dict dms, advanced one pass small out, 38758
|
||||||
github, level 5 row 1 with dict dds, advanced one pass small out, 38732
|
github, level 5 row 1 with dict dds, advanced one pass small out, 38728
|
||||||
github, level 5 row 1 with dict copy, advanced one pass small out, 38934
|
github, level 5 row 1 with dict copy, advanced one pass small out, 38759
|
||||||
github, level 5 row 1 with dict load, advanced one pass small out, 40725
|
github, level 5 row 1 with dict load, advanced one pass small out, 41518
|
||||||
github, level 5 row 2, advanced one pass small out, 134584
|
github, level 5 row 2, advanced one pass small out, 135121
|
||||||
github, level 5 row 2 with dict dms, advanced one pass small out, 38758
|
github, level 5 row 2 with dict dms, advanced one pass small out, 38938
|
||||||
github, level 5 row 2 with dict dds, advanced one pass small out, 38728
|
github, level 5 row 2 with dict dds, advanced one pass small out, 38732
|
||||||
github, level 5 row 2 with dict copy, advanced one pass small out, 38759
|
github, level 5 row 2 with dict copy, advanced one pass small out, 38934
|
||||||
github, level 5 row 2 with dict load, advanced one pass small out, 41518
|
github, level 5 row 2 with dict load, advanced one pass small out, 40725
|
||||||
github, level 5, advanced one pass small out, 135121
|
github, level 5, advanced one pass small out, 135121
|
||||||
github, level 5 with dict, advanced one pass small out, 38758
|
github, level 5 with dict, advanced one pass small out, 38758
|
||||||
github, level 5 with dict dms, advanced one pass small out, 38758
|
github, level 5 with dict dms, advanced one pass small out, 38758
|
||||||
@ -666,16 +666,16 @@ github, level 6 with dict dms, advanced
|
|||||||
github, level 6 with dict dds, advanced one pass small out, 38636
|
github, level 6 with dict dds, advanced one pass small out, 38636
|
||||||
github, level 6 with dict copy, advanced one pass small out, 38669
|
github, level 6 with dict copy, advanced one pass small out, 38669
|
||||||
github, level 6 with dict load, advanced one pass small out, 40695
|
github, level 6 with dict load, advanced one pass small out, 40695
|
||||||
github, level 7 row 1, advanced one pass small out, 135122
|
github, level 7 row 1, advanced one pass small out, 134584
|
||||||
github, level 7 row 1 with dict dms, advanced one pass small out, 38860
|
github, level 7 row 1 with dict dms, advanced one pass small out, 38758
|
||||||
github, level 7 row 1 with dict dds, advanced one pass small out, 38766
|
github, level 7 row 1 with dict dds, advanced one pass small out, 38745
|
||||||
github, level 7 row 1 with dict copy, advanced one pass small out, 38834
|
github, level 7 row 1 with dict copy, advanced one pass small out, 38755
|
||||||
github, level 7 row 1 with dict load, advanced one pass small out, 40695
|
github, level 7 row 1 with dict load, advanced one pass small out, 43154
|
||||||
github, level 7 row 2, advanced one pass small out, 134584
|
github, level 7 row 2, advanced one pass small out, 135122
|
||||||
github, level 7 row 2 with dict dms, advanced one pass small out, 38758
|
github, level 7 row 2 with dict dms, advanced one pass small out, 38860
|
||||||
github, level 7 row 2 with dict dds, advanced one pass small out, 38745
|
github, level 7 row 2 with dict dds, advanced one pass small out, 38766
|
||||||
github, level 7 row 2 with dict copy, advanced one pass small out, 38755
|
github, level 7 row 2 with dict copy, advanced one pass small out, 38834
|
||||||
github, level 7 row 2 with dict load, advanced one pass small out, 43154
|
github, level 7 row 2 with dict load, advanced one pass small out, 40695
|
||||||
github, level 7, advanced one pass small out, 135122
|
github, level 7, advanced one pass small out, 135122
|
||||||
github, level 7 with dict, advanced one pass small out, 38758
|
github, level 7 with dict, advanced one pass small out, 38758
|
||||||
github, level 7 with dict dms, advanced one pass small out, 38758
|
github, level 7 with dict dms, advanced one pass small out, 38758
|
||||||
@ -769,16 +769,16 @@ github.tar, level 4 with dict dms, advanced
|
|||||||
github.tar, level 4 with dict dds, advanced one pass small out, 37954
|
github.tar, level 4 with dict dds, advanced one pass small out, 37954
|
||||||
github.tar, level 4 with dict copy, advanced one pass small out, 37948
|
github.tar, level 4 with dict copy, advanced one pass small out, 37948
|
||||||
github.tar, level 4 with dict load, advanced one pass small out, 37927
|
github.tar, level 4 with dict load, advanced one pass small out, 37927
|
||||||
github.tar, level 5 row 1, advanced one pass small out, 38534
|
github.tar, level 5 row 1, advanced one pass small out, 38376
|
||||||
github.tar, level 5 row 1 with dict dms, advanced one pass small out, 39365
|
github.tar, level 5 row 1 with dict dms, advanced one pass small out, 39024
|
||||||
github.tar, level 5 row 1 with dict dds, advanced one pass small out, 39233
|
github.tar, level 5 row 1 with dict dds, advanced one pass small out, 39028
|
||||||
github.tar, level 5 row 1 with dict copy, advanced one pass small out, 39715
|
github.tar, level 5 row 1 with dict copy, advanced one pass small out, 39040
|
||||||
github.tar, level 5 row 1 with dict load, advanced one pass small out, 38019
|
github.tar, level 5 row 1 with dict load, advanced one pass small out, 37600
|
||||||
github.tar, level 5 row 2, advanced one pass small out, 38376
|
github.tar, level 5 row 2, advanced one pass small out, 38534
|
||||||
github.tar, level 5 row 2 with dict dms, advanced one pass small out, 39024
|
github.tar, level 5 row 2 with dict dms, advanced one pass small out, 39365
|
||||||
github.tar, level 5 row 2 with dict dds, advanced one pass small out, 39028
|
github.tar, level 5 row 2 with dict dds, advanced one pass small out, 39233
|
||||||
github.tar, level 5 row 2 with dict copy, advanced one pass small out, 39040
|
github.tar, level 5 row 2 with dict copy, advanced one pass small out, 39715
|
||||||
github.tar, level 5 row 2 with dict load, advanced one pass small out, 37600
|
github.tar, level 5 row 2 with dict load, advanced one pass small out, 38019
|
||||||
github.tar, level 5, advanced one pass small out, 38376
|
github.tar, level 5, advanced one pass small out, 38376
|
||||||
github.tar, level 5 with dict, advanced one pass small out, 39040
|
github.tar, level 5 with dict, advanced one pass small out, 39040
|
||||||
github.tar, level 5 with dict dms, advanced one pass small out, 39024
|
github.tar, level 5 with dict dms, advanced one pass small out, 39024
|
||||||
@ -791,16 +791,16 @@ github.tar, level 6 with dict dms, advanced
|
|||||||
github.tar, level 6 with dict dds, advanced one pass small out, 38610
|
github.tar, level 6 with dict dds, advanced one pass small out, 38610
|
||||||
github.tar, level 6 with dict copy, advanced one pass small out, 38622
|
github.tar, level 6 with dict copy, advanced one pass small out, 38622
|
||||||
github.tar, level 6 with dict load, advanced one pass small out, 37829
|
github.tar, level 6 with dict load, advanced one pass small out, 37829
|
||||||
github.tar, level 7 row 1, advanced one pass small out, 38077
|
github.tar, level 7 row 1, advanced one pass small out, 38073
|
||||||
github.tar, level 7 row 1 with dict dms, advanced one pass small out, 38012
|
github.tar, level 7 row 1 with dict dms, advanced one pass small out, 37848
|
||||||
github.tar, level 7 row 1 with dict dds, advanced one pass small out, 38014
|
github.tar, level 7 row 1 with dict dds, advanced one pass small out, 37869
|
||||||
github.tar, level 7 row 1 with dict copy, advanced one pass small out, 38101
|
github.tar, level 7 row 1 with dict copy, advanced one pass small out, 37848
|
||||||
github.tar, level 7 row 1 with dict load, advanced one pass small out, 37402
|
github.tar, level 7 row 1 with dict load, advanced one pass small out, 37371
|
||||||
github.tar, level 7 row 2, advanced one pass small out, 38073
|
github.tar, level 7 row 2, advanced one pass small out, 38077
|
||||||
github.tar, level 7 row 2 with dict dms, advanced one pass small out, 37848
|
github.tar, level 7 row 2 with dict dms, advanced one pass small out, 38012
|
||||||
github.tar, level 7 row 2 with dict dds, advanced one pass small out, 37869
|
github.tar, level 7 row 2 with dict dds, advanced one pass small out, 38014
|
||||||
github.tar, level 7 row 2 with dict copy, advanced one pass small out, 37848
|
github.tar, level 7 row 2 with dict copy, advanced one pass small out, 38101
|
||||||
github.tar, level 7 row 2 with dict load, advanced one pass small out, 37371
|
github.tar, level 7 row 2 with dict load, advanced one pass small out, 37402
|
||||||
github.tar, level 7, advanced one pass small out, 38073
|
github.tar, level 7, advanced one pass small out, 38073
|
||||||
github.tar, level 7 with dict, advanced one pass small out, 37848
|
github.tar, level 7 with dict, advanced one pass small out, 37848
|
||||||
github.tar, level 7 with dict dms, advanced one pass small out, 37848
|
github.tar, level 7 with dict dms, advanced one pass small out, 37848
|
||||||
@ -817,22 +817,22 @@ github.tar, level 11 row 1, advanced
|
|||||||
github.tar, level 11 row 1 with dict dms, advanced one pass small out, 36963
|
github.tar, level 11 row 1 with dict dms, advanced one pass small out, 36963
|
||||||
github.tar, level 11 row 1 with dict dds, advanced one pass small out, 36963
|
github.tar, level 11 row 1 with dict dds, advanced one pass small out, 36963
|
||||||
github.tar, level 11 row 1 with dict copy, advanced one pass small out, 36557
|
github.tar, level 11 row 1 with dict copy, advanced one pass small out, 36557
|
||||||
github.tar, level 11 row 1 with dict load, advanced one pass small out, 36419
|
github.tar, level 11 row 1 with dict load, advanced one pass small out, 36424
|
||||||
github.tar, level 11 row 2, advanced one pass small out, 36435
|
github.tar, level 11 row 2, advanced one pass small out, 36435
|
||||||
github.tar, level 11 row 2 with dict dms, advanced one pass small out, 36963
|
github.tar, level 11 row 2 with dict dms, advanced one pass small out, 36963
|
||||||
github.tar, level 11 row 2 with dict dds, advanced one pass small out, 36963
|
github.tar, level 11 row 2 with dict dds, advanced one pass small out, 36963
|
||||||
github.tar, level 11 row 2 with dict copy, advanced one pass small out, 36557
|
github.tar, level 11 row 2 with dict copy, advanced one pass small out, 36557
|
||||||
github.tar, level 11 row 2 with dict load, advanced one pass small out, 36424
|
github.tar, level 11 row 2 with dict load, advanced one pass small out, 36419
|
||||||
github.tar, level 12 row 1, advanced one pass small out, 36110
|
github.tar, level 12 row 1, advanced one pass small out, 36105
|
||||||
github.tar, level 12 row 1 with dict dms, advanced one pass small out, 36986
|
github.tar, level 12 row 1 with dict dms, advanced one pass small out, 36986
|
||||||
github.tar, level 12 row 1 with dict dds, advanced one pass small out, 36986
|
github.tar, level 12 row 1 with dict dds, advanced one pass small out, 36986
|
||||||
github.tar, level 12 row 1 with dict copy, advanced one pass small out, 36609
|
github.tar, level 12 row 1 with dict copy, advanced one pass small out, 36609
|
||||||
github.tar, level 12 row 1 with dict load, advanced one pass small out, 36459
|
github.tar, level 12 row 1 with dict load, advanced one pass small out, 36460
|
||||||
github.tar, level 12 row 2, advanced one pass small out, 36105
|
github.tar, level 12 row 2, advanced one pass small out, 36110
|
||||||
github.tar, level 12 row 2 with dict dms, advanced one pass small out, 36986
|
github.tar, level 12 row 2 with dict dms, advanced one pass small out, 36986
|
||||||
github.tar, level 12 row 2 with dict dds, advanced one pass small out, 36986
|
github.tar, level 12 row 2 with dict dds, advanced one pass small out, 36986
|
||||||
github.tar, level 12 row 2 with dict copy, advanced one pass small out, 36609
|
github.tar, level 12 row 2 with dict copy, advanced one pass small out, 36609
|
||||||
github.tar, level 12 row 2 with dict load, advanced one pass small out, 36460
|
github.tar, level 12 row 2 with dict load, advanced one pass small out, 36459
|
||||||
github.tar, level 13, advanced one pass small out, 35501
|
github.tar, level 13, advanced one pass small out, 35501
|
||||||
github.tar, level 13 with dict, advanced one pass small out, 37130
|
github.tar, level 13 with dict, advanced one pass small out, 37130
|
||||||
github.tar, level 13 with dict dms, advanced one pass small out, 37267
|
github.tar, level 13 with dict dms, advanced one pass small out, 37267
|
||||||
@ -871,18 +871,18 @@ silesia, level 0, advanced
|
|||||||
silesia, level 1, advanced streaming, 5312694
|
silesia, level 1, advanced streaming, 5312694
|
||||||
silesia, level 3, advanced streaming, 4849553
|
silesia, level 3, advanced streaming, 4849553
|
||||||
silesia, level 4, advanced streaming, 4786968
|
silesia, level 4, advanced streaming, 4786968
|
||||||
silesia, level 5 row 1, advanced streaming, 4640752
|
silesia, level 5 row 1, advanced streaming, 4638961
|
||||||
silesia, level 5 row 2, advanced streaming, 4638961
|
silesia, level 5 row 2, advanced streaming, 4640752
|
||||||
silesia, level 5, advanced streaming, 4638961
|
silesia, level 5, advanced streaming, 4638961
|
||||||
silesia, level 6, advanced streaming, 4605369
|
silesia, level 6, advanced streaming, 4605369
|
||||||
silesia, level 7 row 1, advanced streaming, 4564868
|
silesia, level 7 row 1, advanced streaming, 4567204
|
||||||
silesia, level 7 row 2, advanced streaming, 4567204
|
silesia, level 7 row 2, advanced streaming, 4564868
|
||||||
silesia, level 7, advanced streaming, 4567204
|
silesia, level 7, advanced streaming, 4567204
|
||||||
silesia, level 9, advanced streaming, 4543310
|
silesia, level 9, advanced streaming, 4543310
|
||||||
silesia, level 11 row 1, advanced streaming, 4519288
|
silesia, level 11 row 1, advanced streaming, 4521399
|
||||||
silesia, level 11 row 2, advanced streaming, 4521399
|
silesia, level 11 row 2, advanced streaming, 4519288
|
||||||
silesia, level 12 row 1, advanced streaming, 4503116
|
silesia, level 12 row 1, advanced streaming, 4505153
|
||||||
silesia, level 12 row 2, advanced streaming, 4505153
|
silesia, level 12 row 2, advanced streaming, 4503116
|
||||||
silesia, level 13, advanced streaming, 4493990
|
silesia, level 13, advanced streaming, 4493990
|
||||||
silesia, level 16, advanced streaming, 4359864
|
silesia, level 16, advanced streaming, 4359864
|
||||||
silesia, level 19, advanced streaming, 4296880
|
silesia, level 19, advanced streaming, 4296880
|
||||||
@ -905,18 +905,18 @@ silesia.tar, level 0, advanced
|
|||||||
silesia.tar, level 1, advanced streaming, 5334890
|
silesia.tar, level 1, advanced streaming, 5334890
|
||||||
silesia.tar, level 3, advanced streaming, 4861426
|
silesia.tar, level 3, advanced streaming, 4861426
|
||||||
silesia.tar, level 4, advanced streaming, 4799632
|
silesia.tar, level 4, advanced streaming, 4799632
|
||||||
silesia.tar, level 5 row 1, advanced streaming, 4652866
|
silesia.tar, level 5 row 1, advanced streaming, 4650207
|
||||||
silesia.tar, level 5 row 2, advanced streaming, 4650207
|
silesia.tar, level 5 row 2, advanced streaming, 4652866
|
||||||
silesia.tar, level 5, advanced streaming, 4650207
|
silesia.tar, level 5, advanced streaming, 4650207
|
||||||
silesia.tar, level 6, advanced streaming, 4616816
|
silesia.tar, level 6, advanced streaming, 4616816
|
||||||
silesia.tar, level 7 row 1, advanced streaming, 4575394
|
silesia.tar, level 7 row 1, advanced streaming, 4576831
|
||||||
silesia.tar, level 7 row 2, advanced streaming, 4576831
|
silesia.tar, level 7 row 2, advanced streaming, 4575394
|
||||||
silesia.tar, level 7, advanced streaming, 4576831
|
silesia.tar, level 7, advanced streaming, 4576831
|
||||||
silesia.tar, level 9, advanced streaming, 4552590
|
silesia.tar, level 9, advanced streaming, 4552590
|
||||||
silesia.tar, level 11 row 1, advanced streaming, 4529461
|
silesia.tar, level 11 row 1, advanced streaming, 4530258
|
||||||
silesia.tar, level 11 row 2, advanced streaming, 4530258
|
silesia.tar, level 11 row 2, advanced streaming, 4529461
|
||||||
silesia.tar, level 12 row 1, advanced streaming, 4513604
|
silesia.tar, level 12 row 1, advanced streaming, 4514569
|
||||||
silesia.tar, level 12 row 2, advanced streaming, 4514569
|
silesia.tar, level 12 row 2, advanced streaming, 4513604
|
||||||
silesia.tar, level 13, advanced streaming, 4502956
|
silesia.tar, level 13, advanced streaming, 4502956
|
||||||
silesia.tar, level 16, advanced streaming, 4360527
|
silesia.tar, level 16, advanced streaming, 4360527
|
||||||
silesia.tar, level 19, advanced streaming, 4267266
|
silesia.tar, level 19, advanced streaming, 4267266
|
||||||
@ -962,16 +962,16 @@ github, level 4 with dict dms, advanced
|
|||||||
github, level 4 with dict dds, advanced streaming, 41251
|
github, level 4 with dict dds, advanced streaming, 41251
|
||||||
github, level 4 with dict copy, advanced streaming, 41216
|
github, level 4 with dict copy, advanced streaming, 41216
|
||||||
github, level 4 with dict load, advanced streaming, 41159
|
github, level 4 with dict load, advanced streaming, 41159
|
||||||
github, level 5 row 1, advanced streaming, 135121
|
github, level 5 row 1, advanced streaming, 134584
|
||||||
github, level 5 row 1 with dict dms, advanced streaming, 38938
|
github, level 5 row 1 with dict dms, advanced streaming, 38758
|
||||||
github, level 5 row 1 with dict dds, advanced streaming, 38732
|
github, level 5 row 1 with dict dds, advanced streaming, 38728
|
||||||
github, level 5 row 1 with dict copy, advanced streaming, 38934
|
github, level 5 row 1 with dict copy, advanced streaming, 38759
|
||||||
github, level 5 row 1 with dict load, advanced streaming, 40725
|
github, level 5 row 1 with dict load, advanced streaming, 41518
|
||||||
github, level 5 row 2, advanced streaming, 134584
|
github, level 5 row 2, advanced streaming, 135121
|
||||||
github, level 5 row 2 with dict dms, advanced streaming, 38758
|
github, level 5 row 2 with dict dms, advanced streaming, 38938
|
||||||
github, level 5 row 2 with dict dds, advanced streaming, 38728
|
github, level 5 row 2 with dict dds, advanced streaming, 38732
|
||||||
github, level 5 row 2 with dict copy, advanced streaming, 38759
|
github, level 5 row 2 with dict copy, advanced streaming, 38934
|
||||||
github, level 5 row 2 with dict load, advanced streaming, 41518
|
github, level 5 row 2 with dict load, advanced streaming, 40725
|
||||||
github, level 5, advanced streaming, 135121
|
github, level 5, advanced streaming, 135121
|
||||||
github, level 5 with dict, advanced streaming, 38758
|
github, level 5 with dict, advanced streaming, 38758
|
||||||
github, level 5 with dict dms, advanced streaming, 38758
|
github, level 5 with dict dms, advanced streaming, 38758
|
||||||
@ -984,16 +984,16 @@ github, level 6 with dict dms, advanced
|
|||||||
github, level 6 with dict dds, advanced streaming, 38636
|
github, level 6 with dict dds, advanced streaming, 38636
|
||||||
github, level 6 with dict copy, advanced streaming, 38669
|
github, level 6 with dict copy, advanced streaming, 38669
|
||||||
github, level 6 with dict load, advanced streaming, 40695
|
github, level 6 with dict load, advanced streaming, 40695
|
||||||
github, level 7 row 1, advanced streaming, 135122
|
github, level 7 row 1, advanced streaming, 134584
|
||||||
github, level 7 row 1 with dict dms, advanced streaming, 38860
|
github, level 7 row 1 with dict dms, advanced streaming, 38758
|
||||||
github, level 7 row 1 with dict dds, advanced streaming, 38766
|
github, level 7 row 1 with dict dds, advanced streaming, 38745
|
||||||
github, level 7 row 1 with dict copy, advanced streaming, 38834
|
github, level 7 row 1 with dict copy, advanced streaming, 38755
|
||||||
github, level 7 row 1 with dict load, advanced streaming, 40695
|
github, level 7 row 1 with dict load, advanced streaming, 43154
|
||||||
github, level 7 row 2, advanced streaming, 134584
|
github, level 7 row 2, advanced streaming, 135122
|
||||||
github, level 7 row 2 with dict dms, advanced streaming, 38758
|
github, level 7 row 2 with dict dms, advanced streaming, 38860
|
||||||
github, level 7 row 2 with dict dds, advanced streaming, 38745
|
github, level 7 row 2 with dict dds, advanced streaming, 38766
|
||||||
github, level 7 row 2 with dict copy, advanced streaming, 38755
|
github, level 7 row 2 with dict copy, advanced streaming, 38834
|
||||||
github, level 7 row 2 with dict load, advanced streaming, 43154
|
github, level 7 row 2 with dict load, advanced streaming, 40695
|
||||||
github, level 7, advanced streaming, 135122
|
github, level 7, advanced streaming, 135122
|
||||||
github, level 7 with dict, advanced streaming, 38758
|
github, level 7 with dict, advanced streaming, 38758
|
||||||
github, level 7 with dict dms, advanced streaming, 38758
|
github, level 7 with dict dms, advanced streaming, 38758
|
||||||
@ -1087,16 +1087,16 @@ github.tar, level 4 with dict dms, advanced
|
|||||||
github.tar, level 4 with dict dds, advanced streaming, 37954
|
github.tar, level 4 with dict dds, advanced streaming, 37954
|
||||||
github.tar, level 4 with dict copy, advanced streaming, 37948
|
github.tar, level 4 with dict copy, advanced streaming, 37948
|
||||||
github.tar, level 4 with dict load, advanced streaming, 37927
|
github.tar, level 4 with dict load, advanced streaming, 37927
|
||||||
github.tar, level 5 row 1, advanced streaming, 38534
|
github.tar, level 5 row 1, advanced streaming, 38376
|
||||||
github.tar, level 5 row 1 with dict dms, advanced streaming, 39365
|
github.tar, level 5 row 1 with dict dms, advanced streaming, 39024
|
||||||
github.tar, level 5 row 1 with dict dds, advanced streaming, 39233
|
github.tar, level 5 row 1 with dict dds, advanced streaming, 39028
|
||||||
github.tar, level 5 row 1 with dict copy, advanced streaming, 39715
|
github.tar, level 5 row 1 with dict copy, advanced streaming, 39040
|
||||||
github.tar, level 5 row 1 with dict load, advanced streaming, 38019
|
github.tar, level 5 row 1 with dict load, advanced streaming, 37600
|
||||||
github.tar, level 5 row 2, advanced streaming, 38376
|
github.tar, level 5 row 2, advanced streaming, 38534
|
||||||
github.tar, level 5 row 2 with dict dms, advanced streaming, 39024
|
github.tar, level 5 row 2 with dict dms, advanced streaming, 39365
|
||||||
github.tar, level 5 row 2 with dict dds, advanced streaming, 39028
|
github.tar, level 5 row 2 with dict dds, advanced streaming, 39233
|
||||||
github.tar, level 5 row 2 with dict copy, advanced streaming, 39040
|
github.tar, level 5 row 2 with dict copy, advanced streaming, 39715
|
||||||
github.tar, level 5 row 2 with dict load, advanced streaming, 37600
|
github.tar, level 5 row 2 with dict load, advanced streaming, 38019
|
||||||
github.tar, level 5, advanced streaming, 38376
|
github.tar, level 5, advanced streaming, 38376
|
||||||
github.tar, level 5 with dict, advanced streaming, 39040
|
github.tar, level 5 with dict, advanced streaming, 39040
|
||||||
github.tar, level 5 with dict dms, advanced streaming, 39024
|
github.tar, level 5 with dict dms, advanced streaming, 39024
|
||||||
@ -1109,16 +1109,16 @@ github.tar, level 6 with dict dms, advanced
|
|||||||
github.tar, level 6 with dict dds, advanced streaming, 38610
|
github.tar, level 6 with dict dds, advanced streaming, 38610
|
||||||
github.tar, level 6 with dict copy, advanced streaming, 38622
|
github.tar, level 6 with dict copy, advanced streaming, 38622
|
||||||
github.tar, level 6 with dict load, advanced streaming, 37829
|
github.tar, level 6 with dict load, advanced streaming, 37829
|
||||||
github.tar, level 7 row 1, advanced streaming, 38077
|
github.tar, level 7 row 1, advanced streaming, 38073
|
||||||
github.tar, level 7 row 1 with dict dms, advanced streaming, 38012
|
github.tar, level 7 row 1 with dict dms, advanced streaming, 37848
|
||||||
github.tar, level 7 row 1 with dict dds, advanced streaming, 38014
|
github.tar, level 7 row 1 with dict dds, advanced streaming, 37869
|
||||||
github.tar, level 7 row 1 with dict copy, advanced streaming, 38101
|
github.tar, level 7 row 1 with dict copy, advanced streaming, 37848
|
||||||
github.tar, level 7 row 1 with dict load, advanced streaming, 37402
|
github.tar, level 7 row 1 with dict load, advanced streaming, 37371
|
||||||
github.tar, level 7 row 2, advanced streaming, 38073
|
github.tar, level 7 row 2, advanced streaming, 38077
|
||||||
github.tar, level 7 row 2 with dict dms, advanced streaming, 37848
|
github.tar, level 7 row 2 with dict dms, advanced streaming, 38012
|
||||||
github.tar, level 7 row 2 with dict dds, advanced streaming, 37869
|
github.tar, level 7 row 2 with dict dds, advanced streaming, 38014
|
||||||
github.tar, level 7 row 2 with dict copy, advanced streaming, 37848
|
github.tar, level 7 row 2 with dict copy, advanced streaming, 38101
|
||||||
github.tar, level 7 row 2 with dict load, advanced streaming, 37371
|
github.tar, level 7 row 2 with dict load, advanced streaming, 37402
|
||||||
github.tar, level 7, advanced streaming, 38073
|
github.tar, level 7, advanced streaming, 38073
|
||||||
github.tar, level 7 with dict, advanced streaming, 37848
|
github.tar, level 7 with dict, advanced streaming, 37848
|
||||||
github.tar, level 7 with dict dms, advanced streaming, 37848
|
github.tar, level 7 with dict dms, advanced streaming, 37848
|
||||||
@ -1135,22 +1135,22 @@ github.tar, level 11 row 1, advanced
|
|||||||
github.tar, level 11 row 1 with dict dms, advanced streaming, 36963
|
github.tar, level 11 row 1 with dict dms, advanced streaming, 36963
|
||||||
github.tar, level 11 row 1 with dict dds, advanced streaming, 36963
|
github.tar, level 11 row 1 with dict dds, advanced streaming, 36963
|
||||||
github.tar, level 11 row 1 with dict copy, advanced streaming, 36557
|
github.tar, level 11 row 1 with dict copy, advanced streaming, 36557
|
||||||
github.tar, level 11 row 1 with dict load, advanced streaming, 36419
|
github.tar, level 11 row 1 with dict load, advanced streaming, 36424
|
||||||
github.tar, level 11 row 2, advanced streaming, 36435
|
github.tar, level 11 row 2, advanced streaming, 36435
|
||||||
github.tar, level 11 row 2 with dict dms, advanced streaming, 36963
|
github.tar, level 11 row 2 with dict dms, advanced streaming, 36963
|
||||||
github.tar, level 11 row 2 with dict dds, advanced streaming, 36963
|
github.tar, level 11 row 2 with dict dds, advanced streaming, 36963
|
||||||
github.tar, level 11 row 2 with dict copy, advanced streaming, 36557
|
github.tar, level 11 row 2 with dict copy, advanced streaming, 36557
|
||||||
github.tar, level 11 row 2 with dict load, advanced streaming, 36424
|
github.tar, level 11 row 2 with dict load, advanced streaming, 36419
|
||||||
github.tar, level 12 row 1, advanced streaming, 36110
|
github.tar, level 12 row 1, advanced streaming, 36105
|
||||||
github.tar, level 12 row 1 with dict dms, advanced streaming, 36986
|
github.tar, level 12 row 1 with dict dms, advanced streaming, 36986
|
||||||
github.tar, level 12 row 1 with dict dds, advanced streaming, 36986
|
github.tar, level 12 row 1 with dict dds, advanced streaming, 36986
|
||||||
github.tar, level 12 row 1 with dict copy, advanced streaming, 36609
|
github.tar, level 12 row 1 with dict copy, advanced streaming, 36609
|
||||||
github.tar, level 12 row 1 with dict load, advanced streaming, 36459
|
github.tar, level 12 row 1 with dict load, advanced streaming, 36460
|
||||||
github.tar, level 12 row 2, advanced streaming, 36105
|
github.tar, level 12 row 2, advanced streaming, 36110
|
||||||
github.tar, level 12 row 2 with dict dms, advanced streaming, 36986
|
github.tar, level 12 row 2 with dict dms, advanced streaming, 36986
|
||||||
github.tar, level 12 row 2 with dict dds, advanced streaming, 36986
|
github.tar, level 12 row 2 with dict dds, advanced streaming, 36986
|
||||||
github.tar, level 12 row 2 with dict copy, advanced streaming, 36609
|
github.tar, level 12 row 2 with dict copy, advanced streaming, 36609
|
||||||
github.tar, level 12 row 2 with dict load, advanced streaming, 36460
|
github.tar, level 12 row 2 with dict load, advanced streaming, 36459
|
||||||
github.tar, level 13, advanced streaming, 35501
|
github.tar, level 13, advanced streaming, 35501
|
||||||
github.tar, level 13 with dict, advanced streaming, 37130
|
github.tar, level 13 with dict, advanced streaming, 37130
|
||||||
github.tar, level 13 with dict dms, advanced streaming, 37267
|
github.tar, level 13 with dict dms, advanced streaming, 37267
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user