@@ -83,14 +83,14 @@ size_t ZSTD_HC_compress_advanced (ZSTD_HC_CCtx* ctx,
8383
8484/** ZSTD_HC_validateParams
8585 correct params value to remain within authorized range
86- optimize for srcSize if srcSize > 0 */
87- void ZSTD_HC_validateParams (ZSTD_HC_parameters * params , size_t srcSize );
86+ srcSizeHint value is optional, select 0 if not known */
87+ void ZSTD_HC_validateParams (ZSTD_HC_parameters * params , U64 srcSizeHint );
8888
8989
9090/* *************************************
9191* Streaming functions
9292***************************************/
93- size_t ZSTD_HC_compressBegin (ZSTD_HC_CCtx * ctx , void * dst , size_t maxDstSize , int compressionLevel );
93+ size_t ZSTD_HC_compressBegin (ZSTD_HC_CCtx * ctx , void * dst , size_t maxDstSize , int compressionLevel , U64 srcSizeHint );
9494size_t ZSTD_HC_compressContinue (ZSTD_HC_CCtx * ctx , void * dst , size_t maxDstSize , const void * src , size_t srcSize );
9595size_t ZSTD_HC_compressEnd (ZSTD_HC_CCtx * ctx , void * dst , size_t maxDstSize );
9696
@@ -99,7 +99,32 @@ size_t ZSTD_HC_compressEnd(ZSTD_HC_CCtx* ctx, void* dst, size_t maxDstSize);
9999* Pre-defined compression levels
100100***************************************/
101101#define ZSTD_HC_MAX_CLEVEL 20
102- static const ZSTD_HC_parameters ZSTD_HC_defaultParameters [ZSTD_HC_MAX_CLEVEL + 1 ] = {
102+ static const ZSTD_HC_parameters ZSTD_HC_defaultParameters [2 ][ZSTD_HC_MAX_CLEVEL + 1 ] = {
103+ { /* for <= 128 KB */
104+ /* W, C, H, S, L, strat */
105+ { 17 , 12 , 12 , 1 , 4 , ZSTD_HC_fast }, /* level 0 - never used */
106+ { 17 , 12 , 13 , 1 , 6 , ZSTD_HC_fast }, /* level 1 */
107+ { 17 , 15 , 16 , 1 , 5 , ZSTD_HC_fast }, /* level 2 */
108+ { 17 , 16 , 17 , 1 , 5 , ZSTD_HC_fast }, /* level 3 */
109+ { 17 , 13 , 15 , 2 , 4 , ZSTD_HC_greedy }, /* level 4 */
110+ { 17 , 15 , 17 , 3 , 4 , ZSTD_HC_greedy }, /* level 5 */
111+ { 17 , 14 , 17 , 3 , 4 , ZSTD_HC_lazy }, /* level 6 */
112+ { 17 , 16 , 17 , 4 , 4 , ZSTD_HC_lazy }, /* level 7 */
113+ { 17 , 16 , 17 , 4 , 4 , ZSTD_HC_lazy2 }, /* level 8 */
114+ { 17 , 17 , 16 , 5 , 4 , ZSTD_HC_lazy2 }, /* level 9 */
115+ { 17 , 17 , 16 , 6 , 4 , ZSTD_HC_lazy2 }, /* level 10 */
116+ { 17 , 17 , 16 , 7 , 4 , ZSTD_HC_lazy2 }, /* level 11 */
117+ { 17 , 17 , 16 , 8 , 4 , ZSTD_HC_lazy2 }, /* level 12 */
118+ { 17 , 18 , 16 , 4 , 4 , ZSTD_HC_btlazy2 }, /* level 13 */
119+ { 17 , 18 , 16 , 5 , 4 , ZSTD_HC_btlazy2 }, /* level 14 */
120+ { 17 , 18 , 16 , 6 , 4 , ZSTD_HC_btlazy2 }, /* level 15 */
121+ { 17 , 18 , 16 , 7 , 4 , ZSTD_HC_btlazy2 }, /* level 16 */
122+ { 17 , 18 , 16 , 8 , 4 , ZSTD_HC_btlazy2 }, /* level 17 */
123+ { 17 , 18 , 16 , 9 , 4 , ZSTD_HC_btlazy2 }, /* level 18 */
124+ { 17 , 18 , 16 , 10 , 4 , ZSTD_HC_btlazy2 }, /* level 19 */
125+ { 17 , 18 , 18 , 12 , 4 , ZSTD_HC_btlazy2 }, /* level 20 */
126+ },
127+ { /* for > 128 KB */
103128 /* W, C, H, S, L, strat */
104129 { 18 , 12 , 12 , 1 , 4 , ZSTD_HC_fast }, /* level 0 - never used */
105130 { 18 , 14 , 14 , 1 , 7 , ZSTD_HC_fast }, /* level 1 - in fact redirected towards zstd fast */
@@ -122,6 +147,7 @@ static const ZSTD_HC_parameters ZSTD_HC_defaultParameters[ZSTD_HC_MAX_CLEVEL+1]
122147 { 25 , 24 , 23 , 5 , 5 , ZSTD_HC_btlazy2 }, /* level 18 */
123148 { 25 , 26 , 23 , 5 , 5 , ZSTD_HC_btlazy2 }, /* level 19 */
124149 { 26 , 27 , 24 , 6 , 5 , ZSTD_HC_btlazy2 }, /* level 20 */
150+ }
125151};
126152
127153
0 commit comments