simplified ZSTD_estimateCCtxSize()
This commit is contained in:
+2
-2
@@ -215,7 +215,7 @@ ZSTDLIB_API size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
|
|||||||
#define ZSTD_HASHLOG_MAX ZSTD_WINDOWLOG_MAX
|
#define ZSTD_HASHLOG_MAX ZSTD_WINDOWLOG_MAX
|
||||||
#define ZSTD_HASHLOG_MIN 12
|
#define ZSTD_HASHLOG_MIN 12
|
||||||
#define ZSTD_HASHLOG3_MAX 17
|
#define ZSTD_HASHLOG3_MAX 17
|
||||||
#define ZSTD_HASHLOG3_MIN 15
|
//#define ZSTD_HASHLOG3_MIN 15
|
||||||
#define ZSTD_SEARCHLOG_MAX (ZSTD_WINDOWLOG_MAX-1)
|
#define ZSTD_SEARCHLOG_MAX (ZSTD_WINDOWLOG_MAX-1)
|
||||||
#define ZSTD_SEARCHLOG_MIN 1
|
#define ZSTD_SEARCHLOG_MIN 1
|
||||||
#define ZSTD_SEARCHLENGTH_MAX 7
|
#define ZSTD_SEARCHLENGTH_MAX 7
|
||||||
@@ -265,7 +265,7 @@ typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; v
|
|||||||
/*! ZSTD_estimateCCtxSize() :
|
/*! ZSTD_estimateCCtxSize() :
|
||||||
* Gives the amount of memory allocated for a ZSTD_CCtx given a set of compression parameters.
|
* Gives the amount of memory allocated for a ZSTD_CCtx given a set of compression parameters.
|
||||||
* `frameContentSize` is an optional parameter, provide `0` if unknown */
|
* `frameContentSize` is an optional parameter, provide `0` if unknown */
|
||||||
ZSTDLIB_API size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams, unsigned long long frameContentSize);
|
ZSTDLIB_API size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams);
|
||||||
|
|
||||||
/*! ZSTD_createCCtx_advanced() :
|
/*! ZSTD_createCCtx_advanced() :
|
||||||
* Create a ZSTD compression context using external alloc and free functions */
|
* Create a ZSTD compression context using external alloc and free functions */
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, u
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams, unsigned long long frameContentSize)
|
size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams)
|
||||||
{
|
{
|
||||||
const size_t blockSize = MIN(ZSTD_BLOCKSIZE_MAX, (size_t)1 << cParams.windowLog);
|
const size_t blockSize = MIN(ZSTD_BLOCKSIZE_MAX, (size_t)1 << cParams.windowLog);
|
||||||
const U32 divider = (cParams.searchLength==3) ? 3 : 4;
|
const U32 divider = (cParams.searchLength==3) ? 3 : 4;
|
||||||
@@ -258,9 +258,7 @@ size_t ZSTD_estimateCCtxSize(ZSTD_compressionParameters cParams, unsigned long l
|
|||||||
|
|
||||||
const size_t chainSize = (cParams.strategy == ZSTD_fast) ? 0 : (1 << cParams.chainLog);
|
const size_t chainSize = (cParams.strategy == ZSTD_fast) ? 0 : (1 << cParams.chainLog);
|
||||||
const size_t hSize = ((size_t)1) << cParams.hashLog;
|
const size_t hSize = ((size_t)1) << cParams.hashLog;
|
||||||
const U32 hashLog3 = (cParams.searchLength>3) ? 0 :
|
const U32 hashLog3 = (cParams.searchLength>3) ? 0 : MIN(ZSTD_HASHLOG3_MAX, cParams.windowLog);
|
||||||
( (!frameContentSize || frameContentSize >= 8192) ? ZSTD_HASHLOG3_MAX :
|
|
||||||
((frameContentSize >= 2048) ? ZSTD_HASHLOG3_MIN + 1 : ZSTD_HASHLOG3_MIN) );
|
|
||||||
const size_t h3Size = ((size_t)1) << hashLog3;
|
const size_t h3Size = ((size_t)1) << hashLog3;
|
||||||
const size_t tableSpace = (chainSize + hSize + h3Size) * sizeof(U32);
|
const size_t tableSpace = (chainSize + hSize + h3Size) * sizeof(U32);
|
||||||
|
|
||||||
@@ -283,9 +281,7 @@ static size_t ZSTD_resetCCtx_advanced (ZSTD_CCtx* zc,
|
|||||||
const size_t tokenSpace = blockSize + 11*maxNbSeq;
|
const size_t tokenSpace = blockSize + 11*maxNbSeq;
|
||||||
const size_t chainSize = (params.cParams.strategy == ZSTD_fast) ? 0 : (1 << params.cParams.chainLog);
|
const size_t chainSize = (params.cParams.strategy == ZSTD_fast) ? 0 : (1 << params.cParams.chainLog);
|
||||||
const size_t hSize = ((size_t)1) << params.cParams.hashLog;
|
const size_t hSize = ((size_t)1) << params.cParams.hashLog;
|
||||||
const U32 hashLog3 = (params.cParams.searchLength>3) ? 0 :
|
const U32 hashLog3 = (params.cParams.searchLength>3) ? 0 : MIN(ZSTD_HASHLOG3_MAX, params.cParams.windowLog);
|
||||||
( (!frameContentSize || frameContentSize >= 8192) ? ZSTD_HASHLOG3_MAX :
|
|
||||||
((frameContentSize >= 2048) ? ZSTD_HASHLOG3_MIN + 1 : ZSTD_HASHLOG3_MIN) );
|
|
||||||
const size_t h3Size = ((size_t)1) << hashLog3;
|
const size_t h3Size = ((size_t)1) << hashLog3;
|
||||||
const size_t tableSpace = (chainSize + hSize + h3Size) * sizeof(U32);
|
const size_t tableSpace = (chainSize + hSize + h3Size) * sizeof(U32);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user