]>
git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/BrotliCompress/enc/block_splitter.h
1 /* Copyright 2013 Google Inc. All Rights Reserved.
3 Distributed under MIT license.
4 See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
7 /* Block split point selection utilities. */
9 #ifndef BROTLI_ENC_BLOCK_SPLITTER_H_
10 #define BROTLI_ENC_BLOCK_SPLITTER_H_
12 #include "../common/types.h"
13 #include "./command.h"
16 #include "./quality.h"
18 #if defined(__cplusplus) || defined(c_plusplus)
22 typedef struct BlockSplit
{
23 size_t num_types
; /* Amount of distinct types */
24 size_t num_blocks
; /* Amount of values in types and length */
28 size_t types_alloc_size
;
29 size_t lengths_alloc_size
;
32 BROTLI_INTERNAL
void BrotliInitBlockSplit(BlockSplit
* self
);
33 BROTLI_INTERNAL
void BrotliDestroyBlockSplit(MemoryManager
* m
,
36 BROTLI_INTERNAL
void BrotliSplitBlock(MemoryManager
* m
,
38 const size_t num_commands
,
42 const BrotliEncoderParams
* params
,
43 BlockSplit
* literal_split
,
44 BlockSplit
* insert_and_copy_split
,
45 BlockSplit
* dist_split
);
47 #if defined(__cplusplus) || defined(c_plusplus)
51 #endif /* BROTLI_ENC_BLOCK_SPLITTER_H_ */