File Index
Files and directories
Sign in
FILE

clevels.h

File preview with syntax highlighting.

linux-6.19.14/lib/zstd/compress/clevels.h C
  1/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
  2/*
  3 * Copyright (c) Meta Platforms, Inc. and affiliates.
  4 * All rights reserved.
  5 *
  6 * This source code is licensed under both the BSD-style license (found in the
  7 * LICENSE file in the root directory of this source tree) and the GPLv2 (found
  8 * in the COPYING file in the root directory of this source tree).
  9 * You may select, at your option, one of the above-listed licenses.
 10 */
 11
 12#ifndef ZSTD_CLEVELS_H
 13#define ZSTD_CLEVELS_H
 14
 15#define ZSTD_STATIC_LINKING_ONLY  /* ZSTD_compressionParameters  */
 16#include <linux/zstd.h>
 17
 18/*-=====  Pre-defined compression levels  =====-*/
 19
 20#define ZSTD_MAX_CLEVEL     22
 21
 22__attribute__((__unused__))
 23
 24static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = {
 25{   /* "default" - for any srcSize > 256 KB */
 26    /* W,  C,  H,  S,  L, TL, strat */
 27    { 19, 12, 13,  1,  6,  1, ZSTD_fast    },  /* base for negative levels */
 28    { 19, 13, 14,  1,  7,  0, ZSTD_fast    },  /* level  1 */
 29    { 20, 15, 16,  1,  6,  0, ZSTD_fast    },  /* level  2 */
 30    { 21, 16, 17,  1,  5,  0, ZSTD_dfast   },  /* level  3 */
 31    { 21, 18, 18,  1,  5,  0, ZSTD_dfast   },  /* level  4 */
 32    { 21, 18, 19,  3,  5,  2, ZSTD_greedy  },  /* level  5 */
 33    { 21, 18, 19,  3,  5,  4, ZSTD_lazy    },  /* level  6 */
 34    { 21, 19, 20,  4,  5,  8, ZSTD_lazy    },  /* level  7 */
 35    { 21, 19, 20,  4,  5, 16, ZSTD_lazy2   },  /* level  8 */
 36    { 22, 20, 21,  4,  5, 16, ZSTD_lazy2   },  /* level  9 */
 37    { 22, 21, 22,  5,  5, 16, ZSTD_lazy2   },  /* level 10 */
 38    { 22, 21, 22,  6,  5, 16, ZSTD_lazy2   },  /* level 11 */
 39    { 22, 22, 23,  6,  5, 32, ZSTD_lazy2   },  /* level 12 */
 40    { 22, 22, 22,  4,  5, 32, ZSTD_btlazy2 },  /* level 13 */
 41    { 22, 22, 23,  5,  5, 32, ZSTD_btlazy2 },  /* level 14 */
 42    { 22, 23, 23,  6,  5, 32, ZSTD_btlazy2 },  /* level 15 */
 43    { 22, 22, 22,  5,  5, 48, ZSTD_btopt   },  /* level 16 */
 44    { 23, 23, 22,  5,  4, 64, ZSTD_btopt   },  /* level 17 */
 45    { 23, 23, 22,  6,  3, 64, ZSTD_btultra },  /* level 18 */
 46    { 23, 24, 22,  7,  3,256, ZSTD_btultra2},  /* level 19 */
 47    { 25, 25, 23,  7,  3,256, ZSTD_btultra2},  /* level 20 */
 48    { 26, 26, 24,  7,  3,512, ZSTD_btultra2},  /* level 21 */
 49    { 27, 27, 25,  9,  3,999, ZSTD_btultra2},  /* level 22 */
 50},
 51{   /* for srcSize <= 256 KB */
 52    /* W,  C,  H,  S,  L,  T, strat */
 53    { 18, 12, 13,  1,  5,  1, ZSTD_fast    },  /* base for negative levels */
 54    { 18, 13, 14,  1,  6,  0, ZSTD_fast    },  /* level  1 */
 55    { 18, 14, 14,  1,  5,  0, ZSTD_dfast   },  /* level  2 */
 56    { 18, 16, 16,  1,  4,  0, ZSTD_dfast   },  /* level  3 */
 57    { 18, 16, 17,  3,  5,  2, ZSTD_greedy  },  /* level  4.*/
 58    { 18, 17, 18,  5,  5,  2, ZSTD_greedy  },  /* level  5.*/
 59    { 18, 18, 19,  3,  5,  4, ZSTD_lazy    },  /* level  6.*/
 60    { 18, 18, 19,  4,  4,  4, ZSTD_lazy    },  /* level  7 */
 61    { 18, 18, 19,  4,  4,  8, ZSTD_lazy2   },  /* level  8 */
 62    { 18, 18, 19,  5,  4,  8, ZSTD_lazy2   },  /* level  9 */
 63    { 18, 18, 19,  6,  4,  8, ZSTD_lazy2   },  /* level 10 */
 64    { 18, 18, 19,  5,  4, 12, ZSTD_btlazy2 },  /* level 11.*/
 65    { 18, 19, 19,  7,  4, 12, ZSTD_btlazy2 },  /* level 12.*/
 66    { 18, 18, 19,  4,  4, 16, ZSTD_btopt   },  /* level 13 */
 67    { 18, 18, 19,  4,  3, 32, ZSTD_btopt   },  /* level 14.*/
 68    { 18, 18, 19,  6,  3,128, ZSTD_btopt   },  /* level 15.*/
 69    { 18, 19, 19,  6,  3,128, ZSTD_btultra },  /* level 16.*/
 70    { 18, 19, 19,  8,  3,256, ZSTD_btultra },  /* level 17.*/
 71    { 18, 19, 19,  6,  3,128, ZSTD_btultra2},  /* level 18.*/
 72    { 18, 19, 19,  8,  3,256, ZSTD_btultra2},  /* level 19.*/
 73    { 18, 19, 19, 10,  3,512, ZSTD_btultra2},  /* level 20.*/
 74    { 18, 19, 19, 12,  3,512, ZSTD_btultra2},  /* level 21.*/
 75    { 18, 19, 19, 13,  3,999, ZSTD_btultra2},  /* level 22.*/
 76},
 77{   /* for srcSize <= 128 KB */
 78    /* W,  C,  H,  S,  L,  T, strat */
 79    { 17, 12, 12,  1,  5,  1, ZSTD_fast    },  /* base for negative levels */
 80    { 17, 12, 13,  1,  6,  0, ZSTD_fast    },  /* level  1 */
 81    { 17, 13, 15,  1,  5,  0, ZSTD_fast    },  /* level  2 */
 82    { 17, 15, 16,  2,  5,  0, ZSTD_dfast   },  /* level  3 */
 83    { 17, 17, 17,  2,  4,  0, ZSTD_dfast   },  /* level  4 */
 84    { 17, 16, 17,  3,  4,  2, ZSTD_greedy  },  /* level  5 */
 85    { 17, 16, 17,  3,  4,  4, ZSTD_lazy    },  /* level  6 */
 86    { 17, 16, 17,  3,  4,  8, ZSTD_lazy2   },  /* level  7 */
 87    { 17, 16, 17,  4,  4,  8, ZSTD_lazy2   },  /* level  8 */
 88    { 17, 16, 17,  5,  4,  8, ZSTD_lazy2   },  /* level  9 */
 89    { 17, 16, 17,  6,  4,  8, ZSTD_lazy2   },  /* level 10 */
 90    { 17, 17, 17,  5,  4,  8, ZSTD_btlazy2 },  /* level 11 */
 91    { 17, 18, 17,  7,  4, 12, ZSTD_btlazy2 },  /* level 12 */
 92    { 17, 18, 17,  3,  4, 12, ZSTD_btopt   },  /* level 13.*/
 93    { 17, 18, 17,  4,  3, 32, ZSTD_btopt   },  /* level 14.*/
 94    { 17, 18, 17,  6,  3,256, ZSTD_btopt   },  /* level 15.*/
 95    { 17, 18, 17,  6,  3,128, ZSTD_btultra },  /* level 16.*/
 96    { 17, 18, 17,  8,  3,256, ZSTD_btultra },  /* level 17.*/
 97    { 17, 18, 17, 10,  3,512, ZSTD_btultra },  /* level 18.*/
 98    { 17, 18, 17,  5,  3,256, ZSTD_btultra2},  /* level 19.*/
 99    { 17, 18, 17,  7,  3,512, ZSTD_btultra2},  /* level 20.*/
100    { 17, 18, 17,  9,  3,512, ZSTD_btultra2},  /* level 21.*/
101    { 17, 18, 17, 11,  3,999, ZSTD_btultra2},  /* level 22.*/
102},
103{   /* for srcSize <= 16 KB */
104    /* W,  C,  H,  S,  L,  T, strat */
105    { 14, 12, 13,  1,  5,  1, ZSTD_fast    },  /* base for negative levels */
106    { 14, 14, 15,  1,  5,  0, ZSTD_fast    },  /* level  1 */
107    { 14, 14, 15,  1,  4,  0, ZSTD_fast    },  /* level  2 */
108    { 14, 14, 15,  2,  4,  0, ZSTD_dfast   },  /* level  3 */
109    { 14, 14, 14,  4,  4,  2, ZSTD_greedy  },  /* level  4 */
110    { 14, 14, 14,  3,  4,  4, ZSTD_lazy    },  /* level  5.*/
111    { 14, 14, 14,  4,  4,  8, ZSTD_lazy2   },  /* level  6 */
112    { 14, 14, 14,  6,  4,  8, ZSTD_lazy2   },  /* level  7 */
113    { 14, 14, 14,  8,  4,  8, ZSTD_lazy2   },  /* level  8.*/
114    { 14, 15, 14,  5,  4,  8, ZSTD_btlazy2 },  /* level  9.*/
115    { 14, 15, 14,  9,  4,  8, ZSTD_btlazy2 },  /* level 10.*/
116    { 14, 15, 14,  3,  4, 12, ZSTD_btopt   },  /* level 11.*/
117    { 14, 15, 14,  4,  3, 24, ZSTD_btopt   },  /* level 12.*/
118    { 14, 15, 14,  5,  3, 32, ZSTD_btultra },  /* level 13.*/
119    { 14, 15, 15,  6,  3, 64, ZSTD_btultra },  /* level 14.*/
120    { 14, 15, 15,  7,  3,256, ZSTD_btultra },  /* level 15.*/
121    { 14, 15, 15,  5,  3, 48, ZSTD_btultra2},  /* level 16.*/
122    { 14, 15, 15,  6,  3,128, ZSTD_btultra2},  /* level 17.*/
123    { 14, 15, 15,  7,  3,256, ZSTD_btultra2},  /* level 18.*/
124    { 14, 15, 15,  8,  3,256, ZSTD_btultra2},  /* level 19.*/
125    { 14, 15, 15,  8,  3,512, ZSTD_btultra2},  /* level 20.*/
126    { 14, 15, 15,  9,  3,512, ZSTD_btultra2},  /* level 21.*/
127    { 14, 15, 15, 10,  3,999, ZSTD_btultra2},  /* level 22.*/
128},
129};
130
131
132
133#endif  /* ZSTD_CLEVELS_H */
~/ Read-only file preview.