mirror of
https://github.com/facebook/zstd.git
synced 2025-08-07 06:23:00 +03:00
Adding --show-default-cparams (show cparams before compressing
This commit is contained in:
@@ -4071,117 +4071,9 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
|
|||||||
|
|
||||||
/*-===== Pre-defined compression levels =====-*/
|
/*-===== Pre-defined compression levels =====-*/
|
||||||
|
|
||||||
#define ZSTD_MAX_CLEVEL 22
|
|
||||||
int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; }
|
int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; }
|
||||||
int ZSTD_minCLevel(void) { return (int)-ZSTD_TARGETLENGTH_MAX; }
|
int ZSTD_minCLevel(void) { return (int)-ZSTD_TARGETLENGTH_MAX; }
|
||||||
|
|
||||||
static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = {
|
|
||||||
{ /* "default" - for any srcSize > 256 KB */
|
|
||||||
/* W, C, H, S, L, TL, strat */
|
|
||||||
{ 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */
|
|
||||||
{ 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */
|
|
||||||
{ 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */
|
|
||||||
{ 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */
|
|
||||||
{ 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */
|
|
||||||
{ 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */
|
|
||||||
{ 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */
|
|
||||||
{ 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */
|
|
||||||
{ 21, 19, 19, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */
|
|
||||||
{ 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */
|
|
||||||
{ 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */
|
|
||||||
{ 22, 21, 22, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */
|
|
||||||
{ 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */
|
|
||||||
{ 22, 21, 22, 5, 5, 32, ZSTD_btlazy2 }, /* level 13 */
|
|
||||||
{ 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */
|
|
||||||
{ 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */
|
|
||||||
{ 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */
|
|
||||||
{ 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */
|
|
||||||
{ 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */
|
|
||||||
{ 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */
|
|
||||||
{ 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */
|
|
||||||
{ 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */
|
|
||||||
{ 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */
|
|
||||||
},
|
|
||||||
{ /* for srcSize <= 256 KB */
|
|
||||||
/* W, C, H, S, L, T, strat */
|
|
||||||
{ 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
|
||||||
{ 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
|
||||||
{ 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */
|
|
||||||
{ 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */
|
|
||||||
{ 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/
|
|
||||||
{ 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/
|
|
||||||
{ 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/
|
|
||||||
{ 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */
|
|
||||||
{ 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
|
|
||||||
{ 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
|
|
||||||
{ 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
|
|
||||||
{ 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/
|
|
||||||
{ 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/
|
|
||||||
{ 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */
|
|
||||||
{ 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/
|
|
||||||
{ 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/
|
|
||||||
{ 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/
|
|
||||||
{ 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/
|
|
||||||
{ 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/
|
|
||||||
{ 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/
|
|
||||||
{ 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/
|
|
||||||
{ 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/
|
|
||||||
{ 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/
|
|
||||||
},
|
|
||||||
{ /* for srcSize <= 128 KB */
|
|
||||||
/* W, C, H, S, L, T, strat */
|
|
||||||
{ 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
|
||||||
{ 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
|
||||||
{ 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */
|
|
||||||
{ 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */
|
|
||||||
{ 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */
|
|
||||||
{ 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */
|
|
||||||
{ 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */
|
|
||||||
{ 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
|
||||||
{ 17, 17, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
|
|
||||||
{ 17, 17, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
|
|
||||||
{ 17, 17, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
|
|
||||||
{ 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */
|
|
||||||
{ 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */
|
|
||||||
{ 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/
|
|
||||||
{ 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/
|
|
||||||
{ 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/
|
|
||||||
{ 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/
|
|
||||||
{ 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/
|
|
||||||
{ 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/
|
|
||||||
{ 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/
|
|
||||||
{ 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/
|
|
||||||
{ 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/
|
|
||||||
{ 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/
|
|
||||||
},
|
|
||||||
{ /* for srcSize <= 16 KB */
|
|
||||||
/* W, C, H, S, L, T, strat */
|
|
||||||
{ 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
|
||||||
{ 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */
|
|
||||||
{ 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */
|
|
||||||
{ 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */
|
|
||||||
{ 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */
|
|
||||||
{ 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/
|
|
||||||
{ 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
|
|
||||||
{ 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
|
||||||
{ 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/
|
|
||||||
{ 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/
|
|
||||||
{ 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/
|
|
||||||
{ 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/
|
|
||||||
{ 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/
|
|
||||||
{ 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/
|
|
||||||
{ 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/
|
|
||||||
{ 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/
|
|
||||||
{ 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/
|
|
||||||
{ 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/
|
|
||||||
{ 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/
|
|
||||||
{ 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/
|
|
||||||
{ 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/
|
|
||||||
{ 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/
|
|
||||||
{ 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/*! ZSTD_getCParams_internal() :
|
/*! ZSTD_getCParams_internal() :
|
||||||
* @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize.
|
* @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize.
|
||||||
* Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown.
|
* Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown.
|
||||||
|
@@ -551,6 +551,119 @@ ZSTD_count_2segments(const BYTE* ip, const BYTE* match,
|
|||||||
return matchLength + ZSTD_count(ip+matchLength, iStart, iEnd);
|
return matchLength + ZSTD_count(ip+matchLength, iStart, iEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-*************************************
|
||||||
|
* Compression parameters
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
#define ZSTD_MAX_CLEVEL 22
|
||||||
|
|
||||||
|
static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = {
|
||||||
|
{ /* "default" - for any srcSize > 256 KB */
|
||||||
|
/* W, C, H, S, L, TL, strat */
|
||||||
|
{ 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
|
{ 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */
|
||||||
|
{ 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */
|
||||||
|
{ 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */
|
||||||
|
{ 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */
|
||||||
|
{ 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */
|
||||||
|
{ 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */
|
||||||
|
{ 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */
|
||||||
|
{ 21, 19, 19, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */
|
||||||
|
{ 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */
|
||||||
|
{ 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */
|
||||||
|
{ 22, 21, 22, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */
|
||||||
|
{ 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */
|
||||||
|
{ 22, 21, 22, 5, 5, 32, ZSTD_btlazy2 }, /* level 13 */
|
||||||
|
{ 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */
|
||||||
|
{ 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */
|
||||||
|
{ 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */
|
||||||
|
{ 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */
|
||||||
|
{ 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */
|
||||||
|
{ 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */
|
||||||
|
{ 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */
|
||||||
|
{ 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */
|
||||||
|
{ 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */
|
||||||
|
},
|
||||||
|
{ /* for srcSize <= 256 KB */
|
||||||
|
/* W, C, H, S, L, T, strat */
|
||||||
|
{ 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
|
{ 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
||||||
|
{ 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */
|
||||||
|
{ 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */
|
||||||
|
{ 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/
|
||||||
|
{ 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/
|
||||||
|
{ 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/
|
||||||
|
{ 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */
|
||||||
|
{ 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
|
||||||
|
{ 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
|
||||||
|
{ 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
|
||||||
|
{ 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/
|
||||||
|
{ 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/
|
||||||
|
{ 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */
|
||||||
|
{ 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/
|
||||||
|
{ 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/
|
||||||
|
{ 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/
|
||||||
|
{ 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/
|
||||||
|
{ 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/
|
||||||
|
{ 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/
|
||||||
|
{ 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/
|
||||||
|
{ 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/
|
||||||
|
{ 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/
|
||||||
|
},
|
||||||
|
{ /* for srcSize <= 128 KB */
|
||||||
|
/* W, C, H, S, L, T, strat */
|
||||||
|
{ 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
|
{ 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
||||||
|
{ 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */
|
||||||
|
{ 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */
|
||||||
|
{ 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */
|
||||||
|
{ 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */
|
||||||
|
{ 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */
|
||||||
|
{ 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
||||||
|
{ 17, 17, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
|
||||||
|
{ 17, 17, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
|
||||||
|
{ 17, 17, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
|
||||||
|
{ 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */
|
||||||
|
{ 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */
|
||||||
|
{ 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/
|
||||||
|
{ 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/
|
||||||
|
{ 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/
|
||||||
|
{ 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/
|
||||||
|
{ 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/
|
||||||
|
{ 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/
|
||||||
|
{ 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/
|
||||||
|
{ 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/
|
||||||
|
{ 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/
|
||||||
|
{ 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/
|
||||||
|
},
|
||||||
|
{ /* for srcSize <= 16 KB */
|
||||||
|
/* W, C, H, S, L, T, strat */
|
||||||
|
{ 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
|
{ 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */
|
||||||
|
{ 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */
|
||||||
|
{ 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */
|
||||||
|
{ 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */
|
||||||
|
{ 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/
|
||||||
|
{ 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
|
||||||
|
{ 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
||||||
|
{ 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/
|
||||||
|
{ 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/
|
||||||
|
{ 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/
|
||||||
|
{ 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/
|
||||||
|
{ 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/
|
||||||
|
{ 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/
|
||||||
|
{ 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/
|
||||||
|
{ 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/
|
||||||
|
{ 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/
|
||||||
|
{ 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/
|
||||||
|
{ 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/
|
||||||
|
{ 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/
|
||||||
|
{ 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/
|
||||||
|
{ 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/
|
||||||
|
{ 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*-*************************************
|
/*-*************************************
|
||||||
* Hashes
|
* Hashes
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
# include "dibio.h" /* ZDICT_cover_params_t, DiB_trainFromFiles() */
|
# include "dibio.h" /* ZDICT_cover_params_t, DiB_trainFromFiles() */
|
||||||
#endif
|
#endif
|
||||||
#include "zstd.h" /* ZSTD_VERSION_STRING, ZSTD_minCLevel, ZSTD_maxCLevel */
|
#include "zstd.h" /* ZSTD_VERSION_STRING, ZSTD_minCLevel, ZSTD_maxCLevel */
|
||||||
|
#include "zstd_compress_internal.h" /* ZSTD_compressionParameters, ZSTD_strategyMap */
|
||||||
|
|
||||||
|
|
||||||
/*-************************************
|
/*-************************************
|
||||||
@@ -580,6 +581,7 @@ int main(int const argCount, const char* argv[])
|
|||||||
separateFiles = 0,
|
separateFiles = 0,
|
||||||
setRealTimePrio = 0,
|
setRealTimePrio = 0,
|
||||||
singleThread = 0,
|
singleThread = 0,
|
||||||
|
showDefaultCParams = 0,
|
||||||
ultra=0;
|
ultra=0;
|
||||||
double compressibility = 0.5;
|
double compressibility = 0.5;
|
||||||
unsigned bench_nbSeconds = 3; /* would be better if this value was synchronized from bench */
|
unsigned bench_nbSeconds = 3; /* would be better if this value was synchronized from bench */
|
||||||
@@ -693,6 +695,7 @@ int main(int const argCount, const char* argv[])
|
|||||||
if (!strcmp(argument, "--rm")) { FIO_setRemoveSrcFile(prefs, 1); continue; }
|
if (!strcmp(argument, "--rm")) { FIO_setRemoveSrcFile(prefs, 1); continue; }
|
||||||
if (!strcmp(argument, "--priority=rt")) { setRealTimePrio = 1; continue; }
|
if (!strcmp(argument, "--priority=rt")) { setRealTimePrio = 1; continue; }
|
||||||
if (!strcmp(argument, "--output-dir-flat")) {nextArgumentIsOutDirName=1; lastCommand=1; continue; }
|
if (!strcmp(argument, "--output-dir-flat")) {nextArgumentIsOutDirName=1; lastCommand=1; continue; }
|
||||||
|
if (!strcmp(argument, "--show-default-cparams")) { showDefaultCParams = 1; continue; }
|
||||||
if (!strcmp(argument, "--adapt")) { adapt = 1; continue; }
|
if (!strcmp(argument, "--adapt")) { adapt = 1; continue; }
|
||||||
if (longCommandWArg(&argument, "--adapt=")) { adapt = 1; if (!parseAdaptParameters(argument, &adaptMin, &adaptMax)) { badusage(programName); CLEAN_RETURN(1); } continue; }
|
if (longCommandWArg(&argument, "--adapt=")) { adapt = 1; if (!parseAdaptParameters(argument, &adaptMin, &adaptMax)) { badusage(programName); CLEAN_RETURN(1); } continue; }
|
||||||
if (!strcmp(argument, "--single-thread")) { nbWorkers = 0; singleThread = 1; continue; }
|
if (!strcmp(argument, "--single-thread")) { nbWorkers = 0; singleThread = 1; continue; }
|
||||||
@@ -1170,6 +1173,17 @@ int main(int const argCount, const char* argv[])
|
|||||||
} }
|
} }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (showDefaultCParams) {
|
||||||
|
if (operation == zom_decompress) {
|
||||||
|
DISPLAY("error : can't use --show-default-cparams in decomrpession mode \n");
|
||||||
|
CLEAN_RETURN(1);
|
||||||
|
}
|
||||||
|
if (!UTIL_isRegularFile(filenames->fileNames[0])) {
|
||||||
|
DISPLAY("error : can't use --show-default-cparams with non-regular files \n");
|
||||||
|
CLEAN_RETURN(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (dictFileName != NULL && patchFromDictFileName != NULL) {
|
if (dictFileName != NULL && patchFromDictFileName != NULL) {
|
||||||
DISPLAY("error : can't use -D and --patch-from=# at the same time \n");
|
DISPLAY("error : can't use -D and --patch-from=# at the same time \n");
|
||||||
CLEAN_RETURN(1);
|
CLEAN_RETURN(1);
|
||||||
@@ -1213,6 +1227,25 @@ int main(int const argCount, const char* argv[])
|
|||||||
if (adaptMin > cLevel) cLevel = adaptMin;
|
if (adaptMin > cLevel) cLevel = adaptMin;
|
||||||
if (adaptMax < cLevel) cLevel = adaptMax;
|
if (adaptMax < cLevel) cLevel = adaptMax;
|
||||||
|
|
||||||
|
if (showDefaultCParams) {
|
||||||
|
size_t fileNb;
|
||||||
|
static const char* ZSTD_strategyMap[9 + 1] = { "", "ZSTD_fast",
|
||||||
|
"ZSTD_dfast", "ZSTD_greedy", "ZSTD_lazy", "ZSTD_lazy2", "ZSTD_btlazy2",
|
||||||
|
"ZSTD_btopt", "ZSTD_btultra", "ZSTD_btultra2"};
|
||||||
|
for (fileNb = 0; fileNb < (size_t)filenames->tableSize; fileNb++) {
|
||||||
|
const size_t fileSize = UTIL_getFileSize(filenames->fileNames[fileNb]);
|
||||||
|
const size_t cParamsIdx = (fileSize < 16 KB) ? 3 : ( (fileSize < 128 KB) ? 2 : ( (fileSize < 256 KB) ? 1 : 0) );
|
||||||
|
ZSTD_compressionParameters cParams = ZSTD_defaultCParameters[cParamsIdx][cLevel];
|
||||||
|
DISPLAY("%s (%u bytes)\n", filenames->fileNames[fileNb], (unsigned)fileSize);
|
||||||
|
DISPLAY(" - windowLog : %u\n", (unsigned)cParams.windowLog);
|
||||||
|
DISPLAY(" - chainLog : %u\n", (unsigned)cParams.chainLog);
|
||||||
|
DISPLAY(" - searchLog : %u\n", (unsigned)cParams.searchLog);
|
||||||
|
DISPLAY(" - minMatch : %u\n", (unsigned)cParams.minMatch);
|
||||||
|
DISPLAY(" - targetLength : %u\n", (unsigned)cParams.targetLength);
|
||||||
|
DISPLAY(" - strategy : %s\n", ZSTD_strategyMap[(int)cParams.strategy]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((filenames->tableSize==1) && outFileName)
|
if ((filenames->tableSize==1) && outFileName)
|
||||||
operationResult = FIO_compressFilename(prefs, outFileName, filenames->fileNames[0], dictFileName, cLevel, compressionParams);
|
operationResult = FIO_compressFilename(prefs, outFileName, filenames->fileNames[0], dictFileName, cLevel, compressionParams);
|
||||||
else
|
else
|
||||||
|
@@ -457,6 +457,18 @@ ls tmp* > tmpList
|
|||||||
$ZSTD -f tmp1 --filelist=tmpList --filelist=tmpList tmp2 tmp3 # can trigger an overflow of internal file list
|
$ZSTD -f tmp1 --filelist=tmpList --filelist=tmpList tmp2 tmp3 # can trigger an overflow of internal file list
|
||||||
rm -rf tmp*
|
rm -rf tmp*
|
||||||
|
|
||||||
|
println "test : show-default-cparams regular"
|
||||||
|
$DATAGEN > tmp
|
||||||
|
$ZSTD --show-default-cparams -f tmp
|
||||||
|
rm -rf tmp*
|
||||||
|
|
||||||
|
println "test : show-default-cparams recursive"
|
||||||
|
mkdir tmp_files
|
||||||
|
$DATAGEN -g15000 > tmp_files/tmp1
|
||||||
|
$DATAGEN -g129000 > tmp_files/tmp2
|
||||||
|
$DATAGEN -g257000 > tmp_files/tmp3
|
||||||
|
$ZSTD --show-default-cparams -f -r tmp_files
|
||||||
|
rm -rf tmp*
|
||||||
|
|
||||||
println "\n===> Advanced compression parameters "
|
println "\n===> Advanced compression parameters "
|
||||||
println "Hello world!" | $ZSTD --zstd=windowLog=21, - -o tmp.zst && die "wrong parameters not detected!"
|
println "Hello world!" | $ZSTD --zstd=windowLog=21, - -o tmp.zst && die "wrong parameters not detected!"
|
||||||
|
Reference in New Issue
Block a user