Commit | Line | Data |
---|---|---|
e0c1b49f NT |
1 | /* |
2 | * Copyright (c) Yann Collet, Facebook, Inc. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This source code is licensed under both the BSD-style license (found in the | |
6 | * LICENSE file in the root directory of this source tree) and the GPLv2 (found | |
7 | * in the COPYING file in the root directory of this source tree). | |
8 | * You may select, at your option, one of the above-listed licenses. | |
9 | */ | |
10 | ||
11 | #ifndef ZSTD_COMPRESS_SEQUENCES_H | |
12 | #define ZSTD_COMPRESS_SEQUENCES_H | |
13 | ||
14 | #include "../common/fse.h" /* FSE_repeat, FSE_CTable */ | |
15 | #include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */ | |
16 | ||
17 | typedef enum { | |
18 | ZSTD_defaultDisallowed = 0, | |
19 | ZSTD_defaultAllowed = 1 | |
20 | } ZSTD_defaultPolicy_e; | |
21 | ||
22 | symbolEncodingType_e | |
23 | ZSTD_selectEncodingType( | |
24 | FSE_repeat* repeatMode, unsigned const* count, unsigned const max, | |
25 | size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, | |
26 | FSE_CTable const* prevCTable, | |
27 | short const* defaultNorm, U32 defaultNormLog, | |
28 | ZSTD_defaultPolicy_e const isDefaultAllowed, | |
29 | ZSTD_strategy const strategy); | |
30 | ||
31 | size_t | |
32 | ZSTD_buildCTable(void* dst, size_t dstCapacity, | |
33 | FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, | |
34 | unsigned* count, U32 max, | |
35 | const BYTE* codeTable, size_t nbSeq, | |
36 | const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, | |
37 | const FSE_CTable* prevCTable, size_t prevCTableSize, | |
38 | void* entropyWorkspace, size_t entropyWorkspaceSize); | |
39 | ||
40 | size_t ZSTD_encodeSequences( | |
41 | void* dst, size_t dstCapacity, | |
42 | FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, | |
43 | FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, | |
44 | FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, | |
45 | seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2); | |
46 | ||
47 | size_t ZSTD_fseBitCost( | |
48 | FSE_CTable const* ctable, | |
49 | unsigned const* count, | |
50 | unsigned const max); | |
51 | ||
52 | size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, | |
53 | unsigned const* count, unsigned const max); | |
54 | #endif /* ZSTD_COMPRESS_SEQUENCES_H */ |