mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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 */
 | 
