forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.1 KiB
54 lines
2.1 KiB
/* |
|
* Copyright (c) Yann Collet, Facebook, Inc. |
|
* All rights reserved. |
|
* |
|
* This source code is licensed under both the BSD-style license (found in the |
|
* LICENSE file in the root directory of this source tree) and the GPLv2 (found |
|
* in the COPYING file in the root directory of this source tree). |
|
* You may select, at your option, one of the above-listed licenses. |
|
*/ |
|
|
|
#ifndef ZSTD_COMPRESS_SEQUENCES_H |
|
#define ZSTD_COMPRESS_SEQUENCES_H |
|
|
|
#include "../common/fse.h" /* FSE_repeat, FSE_CTable */ |
|
#include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */ |
|
|
|
typedef enum { |
|
ZSTD_defaultDisallowed = 0, |
|
ZSTD_defaultAllowed = 1 |
|
} ZSTD_defaultPolicy_e; |
|
|
|
symbolEncodingType_e |
|
ZSTD_selectEncodingType( |
|
FSE_repeat* repeatMode, unsigned const* count, unsigned const max, |
|
size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, |
|
FSE_CTable const* prevCTable, |
|
short const* defaultNorm, U32 defaultNormLog, |
|
ZSTD_defaultPolicy_e const isDefaultAllowed, |
|
ZSTD_strategy const strategy); |
|
|
|
size_t |
|
ZSTD_buildCTable(void* dst, size_t dstCapacity, |
|
FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, |
|
unsigned* count, U32 max, |
|
const BYTE* codeTable, size_t nbSeq, |
|
const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, |
|
const FSE_CTable* prevCTable, size_t prevCTableSize, |
|
void* entropyWorkspace, size_t entropyWorkspaceSize); |
|
|
|
size_t ZSTD_encodeSequences( |
|
void* dst, size_t dstCapacity, |
|
FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, |
|
FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, |
|
FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, |
|
seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2); |
|
|
|
size_t ZSTD_fseBitCost( |
|
FSE_CTable const* ctable, |
|
unsigned const* count, |
|
unsigned const max); |
|
|
|
size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, |
|
unsigned const* count, unsigned const max); |
|
#endif /* ZSTD_COMPRESS_SEQUENCES_H */
|
|
|