![]() |
Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
|
Go to the source code of this file.
Macros | |
#define | HUF_H_298734234 |
#define | FSE_STATIC_LINKING_ONLY |
#define | HUF_BLOCKSIZE_MAX (128 * 1024) |
#define | HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */) |
#define | HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64)) |
#define | HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_TABLELOG_ABSOLUTEMAX */ |
#define | HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ |
#define | HUF_SYMBOLVALUE_MAX 255 |
#define | HUF_TABLELOG_ABSOLUTEMAX 12 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ |
#define | HUF_CTABLEBOUND 129 |
#define | HUF_BLOCKBOUND(size) |
#define | HUF_COMPRESSBOUND(size) |
#define | HUF_CTABLE_SIZE_ST(maxSymbolValue) |
#define | HUF_CTABLE_SIZE(maxSymbolValue) |
#define | HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue) |
#define | HUF_DTABLE_SIZE(maxTableLog) |
#define | HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog) |
#define | HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) |
#define | HUF_OPTIMAL_DEPTH_THRESHOLD ZSTD_btultra |
#define | HUF_CTABLE_WORKSPACE_SIZE_U32 ((4 * (HUF_SYMBOLVALUE_MAX + 1)) + 192) |
#define | HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) |
#define | HUF_READ_STATS_WORKSPACE_SIZE_U32 FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1) |
#define | HUF_READ_STATS_WORKSPACE_SIZE (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned)) |
#define | HUF_DECOMPRESS_WORKSPACE_SIZE ((2 << 10) + (1 << 9)) |
#define | HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) |
Typedefs | |
typedef size_t | HUF_CElt |
typedef U32 | HUF_DTable |
Enumerations | |
enum | HUF_flags_e { HUF_flags_bmi2 = (1 << 0) , HUF_flags_optimalDepth = (1 << 1) , HUF_flags_preferRepeat = (1 << 2) , HUF_flags_suspectUncompressible = (1 << 3) , HUF_flags_disableAsm = (1 << 4) , HUF_flags_disableFast = (1 << 5) } |
enum | HUF_repeat { HUF_repeat_none , HUF_repeat_check , HUF_repeat_valid } |
Functions | |
size_t | HUF_compressBound (size_t size) |
unsigned | HUF_isError (size_t code) |
const char * | HUF_getErrorName (size_t code) |
unsigned | HUF_minTableLog (unsigned symbolCardinality) |
unsigned | HUF_cardinality (const unsigned *count, unsigned maxSymbolValue) |
unsigned | HUF_optimalTableLog (unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, void *workSpace, size_t wkspSize, HUF_CElt *table, const unsigned *count, int flags) |
size_t | HUF_writeCTable_wksp (void *dst, size_t maxDstSize, const HUF_CElt *CTable, unsigned maxSymbolValue, unsigned huffLog, void *workspace, size_t workspaceSize) |
size_t | HUF_compress4X_usingCTable (void *dst, size_t dstSize, const void *src, size_t srcSize, const HUF_CElt *CTable, int flags) |
size_t | HUF_estimateCompressedSize (const HUF_CElt *CTable, const unsigned *count, unsigned maxSymbolValue) |
int | HUF_validateCTable (const HUF_CElt *CTable, const unsigned *count, unsigned maxSymbolValue) |
size_t | HUF_compress4X_repeat (void *dst, size_t dstSize, const void *src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void *workSpace, size_t wkspSize, HUF_CElt *hufTable, HUF_repeat *repeat, int flags) |
size_t | HUF_buildCTable_wksp (HUF_CElt *tree, const unsigned *count, U32 maxSymbolValue, U32 maxNbBits, void *workSpace, size_t wkspSize) |
size_t | HUF_readStats (BYTE *huffWeight, size_t hwSize, U32 *rankStats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize) |
size_t | HUF_readStats_wksp (BYTE *huffWeight, size_t hwSize, U32 *rankStats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize, void *workspace, size_t wkspSize, int flags) |
size_t | HUF_readCTable (HUF_CElt *CTable, unsigned *maxSymbolValuePtr, const void *src, size_t srcSize, unsigned *hasZeroWeights) |
U32 | HUF_getNbBitsFromCTable (const HUF_CElt *symbolTable, U32 symbolValue) |
U32 | HUF_selectDecoder (size_t dstSize, size_t cSrcSize) |
size_t | HUF_compress1X_usingCTable (void *dst, size_t dstSize, const void *src, size_t srcSize, const HUF_CElt *CTable, int flags) |
size_t | HUF_compress1X_repeat (void *dst, size_t dstSize, const void *src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void *workSpace, size_t wkspSize, HUF_CElt *hufTable, HUF_repeat *repeat, int flags) |
size_t | HUF_decompress1X_DCtx_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags) |
size_t | HUF_decompress1X2_DCtx_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags) |
size_t | HUF_decompress1X_usingDTable (void *dst, size_t maxDstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable, int flags) |
size_t | HUF_decompress1X1_DCtx_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags) |
size_t | HUF_decompress4X_usingDTable (void *dst, size_t maxDstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable, int flags) |
size_t | HUF_decompress4X_hufOnly_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags) |
size_t | HUF_readDTableX1_wksp (HUF_DTable *DTable, const void *src, size_t srcSize, void *workSpace, size_t wkspSize, int flags) |
size_t | HUF_readDTableX2_wksp (HUF_DTable *DTable, const void *src, size_t srcSize, void *workSpace, size_t wkspSize, int flags) |
#define FSE_STATIC_LINKING_ONLY |
#define HUF_BLOCKBOUND | ( | size | ) |
#define HUF_BLOCKSIZE_MAX (128 * 1024) |
maximum input size for a single block compressed with HUF_compress
#define HUF_COMPRESSBOUND | ( | size | ) |
#define HUF_CREATE_STATIC_CTABLE | ( | name, | |
maxSymbolValue ) |
#define HUF_CREATE_STATIC_DTABLEX1 | ( | DTable, | |
maxTableLog ) |
#define HUF_CREATE_STATIC_DTABLEX2 | ( | DTable, | |
maxTableLog ) |
#define HUF_CTABLE_SIZE | ( | maxSymbolValue | ) |
#define HUF_CTABLE_SIZE_ST | ( | maxSymbolValue | ) |
#define HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) |
#define HUF_CTABLE_WORKSPACE_SIZE_U32 ((4 * (HUF_SYMBOLVALUE_MAX + 1)) + 192) |
HUF_buildCTable_wksp() : Same as HUF_buildCTable(), but using externally allocated scratch buffer. workSpace
must be aligned on 4-bytes boundaries, and its size must be >= HUF_CTABLE_WORKSPACE_SIZE.
#define HUF_CTABLEBOUND 129 |
#define HUF_DECOMPRESS_WORKSPACE_SIZE ((2 << 10) + (1 << 9)) |
The minimum workspace size for the workSpace
used in HUF_readDTableX1_wksp() and HUF_readDTableX2_wksp().
The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15. Buffer overflow errors may potentially occur if code modifications result in a required workspace size greater than that specified in the following macro.
#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) |
#define HUF_DTABLE_SIZE | ( | maxTableLog | ) |
#define HUF_H_298734234 |
#define HUF_OPTIMAL_DEPTH_THRESHOLD ZSTD_btultra |
#define HUF_READ_STATS_WORKSPACE_SIZE (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned)) |
#define HUF_READ_STATS_WORKSPACE_SIZE_U32 FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1) |
HUF_readStats_wksp() : Same as HUF_readStats() but takes an external workspace which must be 4-byte aligned and its size must be >= HUF_READ_STATS_WORKSPACE_SIZE. If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0.
#define HUF_SYMBOLVALUE_MAX 255 |
#define HUF_TABLELOG_ABSOLUTEMAX 12 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ |
#define HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ |
#define HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_TABLELOG_ABSOLUTEMAX */ |
#define HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */) |
#define HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64)) |
typedef size_t HUF_CElt |
typedef U32 HUF_DTable |
enum HUF_flags_e |
Huffman flags bitset. For all flags, 0 is the default value.
enum HUF_repeat |
size_t HUF_buildCTable_wksp | ( | HUF_CElt * | tree, |
const unsigned * | count, | ||
U32 | maxSymbolValue, | ||
U32 | maxNbBits, | ||
void * | workSpace, | ||
size_t | wkspSize ) |
unsigned HUF_cardinality | ( | const unsigned * | count, |
unsigned | maxSymbolValue ) |
size_t HUF_compress1X_repeat | ( | void * | dst, |
size_t | dstSize, | ||
const void * | src, | ||
size_t | srcSize, | ||
unsigned | maxSymbolValue, | ||
unsigned | tableLog, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
HUF_CElt * | hufTable, | ||
HUF_repeat * | repeat, | ||
int | flags ) |
HUF_compress1X_repeat() : Same as HUF_compress1X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. If it uses hufTable it does not modify hufTable or repeat. If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. If preferRepeat then the old table will always be used if valid. If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding
wkspSize | workSpace must be aligned on 4-bytes boundaries, wkspSize must be >= HUF_WORKSPACE_SIZE |
size_t HUF_compress1X_usingCTable | ( | void * | dst, |
size_t | dstSize, | ||
const void * | src, | ||
size_t | srcSize, | ||
const HUF_CElt * | CTable, | ||
int | flags ) |
size_t HUF_compress4X_repeat | ( | void * | dst, |
size_t | dstSize, | ||
const void * | src, | ||
size_t | srcSize, | ||
unsigned | maxSymbolValue, | ||
unsigned | tableLog, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
HUF_CElt * | hufTable, | ||
HUF_repeat * | repeat, | ||
int | flags ) |
HUF_compress4X_repeat() : Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. If it uses hufTable it does not modify hufTable or repeat. If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. If preferRepeat then the old table will always be used if valid. If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding
wkspSize | workSpace must be aligned on 4-bytes boundaries, wkspSize must be >= HUF_WORKSPACE_SIZE |
size_t HUF_compress4X_usingCTable | ( | void * | dst, |
size_t | dstSize, | ||
const void * | src, | ||
size_t | srcSize, | ||
const HUF_CElt * | CTable, | ||
int | flags ) |
size_t HUF_compressBound | ( | size_t | size | ) |
maximum compressed size (worst case)
size_t HUF_decompress1X1_DCtx_wksp | ( | HUF_DTable * | dctx, |
void * | dst, | ||
size_t | dstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
size_t HUF_decompress1X2_DCtx_wksp | ( | HUF_DTable * | dctx, |
void * | dst, | ||
size_t | dstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
double-symbols decoder
size_t HUF_decompress1X_DCtx_wksp | ( | HUF_DTable * | dctx, |
void * | dst, | ||
size_t | dstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
size_t HUF_decompress1X_usingDTable | ( | void * | dst, |
size_t | maxDstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
const HUF_DTable * | DTable, | ||
int | flags ) |
size_t HUF_decompress4X_hufOnly_wksp | ( | HUF_DTable * | dctx, |
void * | dst, | ||
size_t | dstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
size_t HUF_decompress4X_usingDTable | ( | void * | dst, |
size_t | maxDstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
const HUF_DTable * | DTable, | ||
int | flags ) |
size_t HUF_estimateCompressedSize | ( | const HUF_CElt * | CTable, |
const unsigned * | count, | ||
unsigned | maxSymbolValue ) |
const char * HUF_getErrorName | ( | size_t | code | ) |
provides error code string (useful for debugging)
HUF_getNbBitsFromCTable() : Read nbBits from CTable symbolTable, for symbol symbolValue
presumed <= HUF_SYMBOLVALUE_MAX Note 1 : is not inlined, as HUF_CElt definition is private
unsigned HUF_isError | ( | size_t | code | ) |
tells if a return value is an error code
unsigned HUF_minTableLog | ( | unsigned | symbolCardinality | ) |
HUF_compress() does the following:
The following API allows targeting specific sub-functions for advanced tasks. For example, it's possible to compress several blocks using the same 'CTable', or to save and regenerate 'CTable' using external methods.
unsigned HUF_optimalTableLog | ( | unsigned | maxTableLog, |
size_t | srcSize, | ||
unsigned | maxSymbolValue, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
HUF_CElt * | table, | ||
const unsigned * | count, | ||
int | flags ) |
size_t HUF_readCTable | ( | HUF_CElt * | CTable, |
unsigned * | maxSymbolValuePtr, | ||
const void * | src, | ||
size_t | srcSize, | ||
unsigned * | hasZeroWeights ) |
HUF_readCTable() : Loading a CTable saved with HUF_writeCTable()
size_t HUF_readDTableX1_wksp | ( | HUF_DTable * | DTable, |
const void * | src, | ||
size_t | srcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
size_t HUF_readDTableX2_wksp | ( | HUF_DTable * | DTable, |
const void * | src, | ||
size_t | srcSize, | ||
void * | workSpace, | ||
size_t | wkspSize, | ||
int | flags ) |
size_t HUF_readStats | ( | BYTE * | huffWeight, |
size_t | hwSize, | ||
U32 * | rankStats, | ||
U32 * | nbSymbolsPtr, | ||
U32 * | tableLogPtr, | ||
const void * | src, | ||
size_t | srcSize ) |
HUF_readStats() : Read compact Huffman tree, saved by HUF_writeCTable(). huffWeight
is destination buffer.
src
, or an error Code . Note : Needed by HUF_readCTable() and HUF_readDTableXn() .HUF_readStats() : Read compact Huffman tree, saved by HUF_writeCTable(). huffWeight
is destination buffer. rankStats
is assumed to be a table of at least HUF_TABLELOG_MAX U32.
src
, or an error Code . Note : Needed by HUF_readCTable() and HUF_readDTableX?() . size_t HUF_readStats_wksp | ( | BYTE * | huffWeight, |
size_t | hwSize, | ||
U32 * | rankStats, | ||
U32 * | nbSymbolsPtr, | ||
U32 * | tableLogPtr, | ||
const void * | src, | ||
size_t | srcSize, | ||
void * | workspace, | ||
size_t | wkspSize, | ||
int | flags ) |
U32 HUF_selectDecoder | ( | size_t | dstSize, |
size_t | cSrcSize ) |
HUF_selectDecoder() : Tells which decoder is likely to decode faster, based on a set of pre-computed metrics.