|
|
|
@ -154,7 +154,7 @@ size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams)
|
|
|
|
|
U32 const searchLengthMax = (cParams.strategy == ZSTD_fast) ? ZSTD_SEARCHLENGTH_MAX : ZSTD_SEARCHLENGTH_MAX-1;
|
|
|
|
|
CLAMPCHECK(cParams.searchLength, searchLengthMin, searchLengthMax); }
|
|
|
|
|
CLAMPCHECK(cParams.targetLength, ZSTD_TARGETLENGTH_MIN, ZSTD_TARGETLENGTH_MAX);
|
|
|
|
|
if ((U32)(cParams.strategy) > (U32)ZSTD_btopt2) return ERROR(compressionParameter_unsupported);
|
|
|
|
|
if ((U32)(cParams.strategy) > (U32)ZSTD_btultra) return ERROR(compressionParameter_unsupported);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -211,7 +211,7 @@ size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams)
|
|
|
|
|
size_t const optSpace = ((MaxML+1) + (MaxLL+1) + (MaxOff+1) + (1<<Litbits))*sizeof(U32)
|
|
|
|
|
+ (ZSTD_OPT_NUM+1)*(sizeof(ZSTD_match_t) + sizeof(ZSTD_optimal_t));
|
|
|
|
|
size_t const neededSpace = tableSpace + (256*sizeof(U32)) /* huffTable */ + tokenSpace
|
|
|
|
|
+ (((cParams.strategy == ZSTD_btopt) || (cParams.strategy == ZSTD_btopt2)) ? optSpace : 0);
|
|
|
|
|
+ (((cParams.strategy == ZSTD_btopt) || (cParams.strategy == ZSTD_btultra)) ? optSpace : 0);
|
|
|
|
|
|
|
|
|
|
return sizeof(ZSTD_CCtx) + neededSpace;
|
|
|
|
|
}
|
|
|
|
@ -274,7 +274,7 @@ static size_t ZSTD_resetCCtx_advanced (ZSTD_CCtx* zc,
|
|
|
|
|
{ size_t const optSpace = ((MaxML+1) + (MaxLL+1) + (MaxOff+1) + (1<<Litbits))*sizeof(U32)
|
|
|
|
|
+ (ZSTD_OPT_NUM+1)*(sizeof(ZSTD_match_t) + sizeof(ZSTD_optimal_t));
|
|
|
|
|
size_t const neededSpace = tableSpace + (256*sizeof(U32)) /* huffTable */ + tokenSpace
|
|
|
|
|
+ (((params.cParams.strategy == ZSTD_btopt) || (params.cParams.strategy == ZSTD_btopt2)) ? optSpace : 0);
|
|
|
|
|
+ (((params.cParams.strategy == ZSTD_btopt) || (params.cParams.strategy == ZSTD_btultra)) ? optSpace : 0);
|
|
|
|
|
if (zc->workSpaceSize < neededSpace) {
|
|
|
|
|
ZSTD_free(zc->workSpace, zc->customMem);
|
|
|
|
|
zc->workSpace = ZSTD_malloc(neededSpace, zc->customMem);
|
|
|
|
@ -305,7 +305,7 @@ static size_t ZSTD_resetCCtx_advanced (ZSTD_CCtx* zc,
|
|
|
|
|
zc->frameContentSize = frameContentSize;
|
|
|
|
|
{ int i; for (i=0; i<ZSTD_REP_NUM; i++) zc->rep[i] = repStartValue[i]; }
|
|
|
|
|
|
|
|
|
|
if ((params.cParams.strategy == ZSTD_btopt) || (params.cParams.strategy == ZSTD_btopt2)) {
|
|
|
|
|
if ((params.cParams.strategy == ZSTD_btopt) || (params.cParams.strategy == ZSTD_btultra)) {
|
|
|
|
|
zc->seqStore.litFreq = (U32*)ptr;
|
|
|
|
|
zc->seqStore.litLengthFreq = zc->seqStore.litFreq + (1<<Litbits);
|
|
|
|
|
zc->seqStore.matchLengthFreq = zc->seqStore.litLengthFreq + (MaxLL+1);
|
|
|
|
@ -2258,7 +2258,7 @@ static void ZSTD_compressBlock_btopt(ZSTD_CCtx* ctx, const void* src, size_t src
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void ZSTD_compressBlock_btopt2(ZSTD_CCtx* ctx, const void* src, size_t srcSize)
|
|
|
|
|
static void ZSTD_compressBlock_btultra(ZSTD_CCtx* ctx, const void* src, size_t srcSize)
|
|
|
|
|
{
|
|
|
|
|
#ifdef ZSTD_OPT_H_91842398743
|
|
|
|
|
ZSTD_compressBlock_opt_generic(ctx, src, srcSize, 1);
|
|
|
|
@ -2278,7 +2278,7 @@ static void ZSTD_compressBlock_btopt_extDict(ZSTD_CCtx* ctx, const void* src, si
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void ZSTD_compressBlock_btopt2_extDict(ZSTD_CCtx* ctx, const void* src, size_t srcSize)
|
|
|
|
|
static void ZSTD_compressBlock_btultra_extDict(ZSTD_CCtx* ctx, const void* src, size_t srcSize)
|
|
|
|
|
{
|
|
|
|
|
#ifdef ZSTD_OPT_H_91842398743
|
|
|
|
|
ZSTD_compressBlock_opt_extDict_generic(ctx, src, srcSize, 1);
|
|
|
|
@ -2294,8 +2294,8 @@ typedef void (*ZSTD_blockCompressor) (ZSTD_CCtx* ctx, const void* src, size_t sr
|
|
|
|
|
static ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, int extDict)
|
|
|
|
|
{
|
|
|
|
|
static const ZSTD_blockCompressor blockCompressor[2][8] = {
|
|
|
|
|
{ ZSTD_compressBlock_fast, ZSTD_compressBlock_doubleFast, ZSTD_compressBlock_greedy, ZSTD_compressBlock_lazy, ZSTD_compressBlock_lazy2, ZSTD_compressBlock_btlazy2, ZSTD_compressBlock_btopt, ZSTD_compressBlock_btopt2 },
|
|
|
|
|
{ ZSTD_compressBlock_fast_extDict, ZSTD_compressBlock_doubleFast_extDict, ZSTD_compressBlock_greedy_extDict, ZSTD_compressBlock_lazy_extDict,ZSTD_compressBlock_lazy2_extDict, ZSTD_compressBlock_btlazy2_extDict, ZSTD_compressBlock_btopt_extDict, ZSTD_compressBlock_btopt2_extDict }
|
|
|
|
|
{ ZSTD_compressBlock_fast, ZSTD_compressBlock_doubleFast, ZSTD_compressBlock_greedy, ZSTD_compressBlock_lazy, ZSTD_compressBlock_lazy2, ZSTD_compressBlock_btlazy2, ZSTD_compressBlock_btopt, ZSTD_compressBlock_btultra },
|
|
|
|
|
{ ZSTD_compressBlock_fast_extDict, ZSTD_compressBlock_doubleFast_extDict, ZSTD_compressBlock_greedy_extDict, ZSTD_compressBlock_lazy_extDict,ZSTD_compressBlock_lazy2_extDict, ZSTD_compressBlock_btlazy2_extDict, ZSTD_compressBlock_btopt_extDict, ZSTD_compressBlock_btultra_extDict }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return blockCompressor[extDict][(U32)strat];
|
|
|
|
@ -2539,7 +2539,7 @@ static size_t ZSTD_loadDictionaryContent(ZSTD_CCtx* zc, const void* src, size_t
|
|
|
|
|
|
|
|
|
|
case ZSTD_btlazy2:
|
|
|
|
|
case ZSTD_btopt:
|
|
|
|
|
case ZSTD_btopt2:
|
|
|
|
|
case ZSTD_btultra:
|
|
|
|
|
ZSTD_updateTree(zc, iend-HASH_READ_SIZE, iend, 1 << zc->params.cParams.searchLog, zc->params.cParams.searchLength);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@ -3270,9 +3270,9 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|
|
|
|
{ 23, 21, 22, 4, 5, 24, ZSTD_btopt }, /* level 17 */
|
|
|
|
|
{ 23, 23, 22, 6, 5, 32, ZSTD_btopt }, /* level 18 */
|
|
|
|
|
{ 23, 23, 22, 6, 3, 48, ZSTD_btopt }, /* level 19 */
|
|
|
|
|
{ 25, 25, 23, 7, 3, 64, ZSTD_btopt2 }, /* level 20 */
|
|
|
|
|
{ 26, 26, 23, 7, 3,256, ZSTD_btopt2 }, /* level 21 */
|
|
|
|
|
{ 27, 27, 25, 9, 3,512, ZSTD_btopt2 }, /* level 22 */
|
|
|
|
|
{ 25, 25, 23, 7, 3, 64, ZSTD_btultra }, /* level 20 */
|
|
|
|
|
{ 26, 26, 23, 7, 3,256, ZSTD_btultra }, /* level 21 */
|
|
|
|
|
{ 27, 27, 25, 9, 3,512, ZSTD_btultra }, /* level 22 */
|
|
|
|
|
},
|
|
|
|
|
{ /* for srcSize <= 256 KB */
|
|
|
|
|
/* W, C, H, S, L, T, strat */
|
|
|
|
@ -3296,9 +3296,9 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|
|
|
|
{ 18, 19, 18, 8, 3, 64, ZSTD_btopt }, /* level 17.*/
|
|
|
|
|
{ 18, 19, 18, 9, 3,128, ZSTD_btopt }, /* level 18.*/
|
|
|
|
|
{ 18, 19, 18, 10, 3,256, ZSTD_btopt }, /* level 19.*/
|
|
|
|
|
{ 18, 19, 18, 11, 3,512, ZSTD_btopt2 }, /* level 20.*/
|
|
|
|
|
{ 18, 19, 18, 12, 3,512, ZSTD_btopt2 }, /* level 21.*/
|
|
|
|
|
{ 18, 19, 18, 13, 3,512, ZSTD_btopt2 }, /* level 22.*/
|
|
|
|
|
{ 18, 19, 18, 11, 3,512, ZSTD_btultra }, /* level 20.*/
|
|
|
|
|
{ 18, 19, 18, 12, 3,512, ZSTD_btultra }, /* level 21.*/
|
|
|
|
|
{ 18, 19, 18, 13, 3,512, ZSTD_btultra }, /* level 22.*/
|
|
|
|
|
},
|
|
|
|
|
{ /* for srcSize <= 128 KB */
|
|
|
|
|
/* W, C, H, S, L, T, strat */
|
|
|
|
@ -3322,9 +3322,9 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|
|
|
|
{ 17, 18, 17, 7, 3, 64, ZSTD_btopt }, /* level 17.*/
|
|
|
|
|
{ 17, 18, 17, 7, 3,256, ZSTD_btopt }, /* level 18.*/
|
|
|
|
|
{ 17, 18, 17, 8, 3,256, ZSTD_btopt }, /* level 19.*/
|
|
|
|
|
{ 17, 18, 17, 9, 3,256, ZSTD_btopt2 }, /* level 20.*/
|
|
|
|
|
{ 17, 18, 17, 10, 3,256, ZSTD_btopt2 }, /* level 21.*/
|
|
|
|
|
{ 17, 18, 17, 11, 3,512, ZSTD_btopt2 }, /* level 22.*/
|
|
|
|
|
{ 17, 18, 17, 9, 3,256, ZSTD_btultra }, /* level 20.*/
|
|
|
|
|
{ 17, 18, 17, 10, 3,256, ZSTD_btultra }, /* level 21.*/
|
|
|
|
|
{ 17, 18, 17, 11, 3,512, ZSTD_btultra }, /* level 22.*/
|
|
|
|
|
},
|
|
|
|
|
{ /* for srcSize <= 16 KB */
|
|
|
|
|
/* W, C, H, S, L, T, strat */
|
|
|
|
@ -3348,9 +3348,9 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|
|
|
|
{ 14, 15, 15, 6, 3,128, ZSTD_btopt }, /* level 17.*/
|
|
|
|
|
{ 14, 15, 15, 6, 3,256, ZSTD_btopt }, /* level 18.*/
|
|
|
|
|
{ 14, 15, 15, 7, 3,256, ZSTD_btopt }, /* level 19.*/
|
|
|
|
|
{ 14, 15, 15, 8, 3,256, ZSTD_btopt2 }, /* level 20.*/
|
|
|
|
|
{ 14, 15, 15, 9, 3,256, ZSTD_btopt2 }, /* level 21.*/
|
|
|
|
|
{ 14, 15, 15, 10, 3,256, ZSTD_btopt2 }, /* level 22.*/
|
|
|
|
|
{ 14, 15, 15, 8, 3,256, ZSTD_btultra }, /* level 20.*/
|
|
|
|
|
{ 14, 15, 15, 9, 3,256, ZSTD_btultra }, /* level 21.*/
|
|
|
|
|
{ 14, 15, 15, 10, 3,256, ZSTD_btultra }, /* level 22.*/
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|