ZXC 0.15.0
High-performance asymmetric lossless compression library
Loading...
Searching...
No Matches
zxc_dict.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause */
2/*
3 * ZXC - High-performance lossless compression
4 *
5 * Copyright (c) Bertrand Lebonnois and contributors.
6 */
7
39#ifndef ZXC_DICT_H
40#define ZXC_DICT_H
41
42#include <stddef.h>
43#include <stdint.h>
44
45#include "zxc_export.h"
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
72ZXC_EXPORT uint32_t zxc_dict_id(const void* dict, size_t dict_size, const void* huf_lengths);
73
91ZXC_EXPORT int zxc_dict_load(const void* buf, size_t buf_size, const void** content_out,
92 size_t* content_size_out, const void** huf_out, uint32_t* dict_id_out);
93
108ZXC_EXPORT int64_t zxc_dict_save(const void* content, size_t content_size, const void* huf_lengths,
109 void* buf, size_t buf_capacity);
110
117ZXC_EXPORT size_t zxc_dict_save_bound(size_t content_size);
118
129ZXC_EXPORT uint32_t zxc_dict_get_id(const void* buf, size_t buf_size);
130
146ZXC_EXPORT int64_t zxc_train_dict(const void* const* samples, const size_t* sample_sizes,
147 size_t n_samples, void* dict_buf, size_t dict_capacity);
148
172ZXC_EXPORT int zxc_train_dict_huf(const void* const* samples, const size_t* sample_sizes,
173 size_t n_samples, const void* dict, size_t dict_size,
174 uint8_t* huf_lengths_out);
175
195ZXC_EXPORT int64_t zxc_dict_train(const void* const* samples, const size_t* sample_sizes,
196 size_t n_samples, void* zxd_buf, size_t zxd_capacity);
197
208ZXC_EXPORT const void* zxc_dict_huf(const void* buf, size_t buf_size);
209
/* end of dict */
211
212#ifdef __cplusplus
213}
214#endif
215
216#endif /* ZXC_DICT_H */
int64_t zxc_dict_train(const void *const *samples, const size_t *sample_sizes, size_t n_samples, void *zxd_buf, size_t zxd_capacity)
One-call dictionary creation: content + shared table, serialized to ready-to-write ....
Definition zxc_dict.c:540
int zxc_train_dict_huf(const void *const *samples, const size_t *sample_sizes, size_t n_samples, const void *dict, size_t dict_size, uint8_t *huf_lengths_out)
Trains the shared literal Huffman table for an already-trained dictionary.
Definition zxc_dict.c:437
int64_t zxc_train_dict(const void *const *samples, const size_t *sample_sizes, size_t n_samples, void *dict_buf, size_t dict_capacity)
Trains a dictionary from a corpus of samples.
Definition zxc_dict.c:263
size_t zxc_dict_save_bound(size_t content_size)
Returns the .zxd file size for a given content size.
Definition zxc_dict.c:69
const void * zxc_dict_huf(const void *buf, size_t buf_size)
Returns a pointer to the shared Huffman table inside a .zxd buffer.
Definition zxc_dict.c:156
int zxc_dict_load(const void *buf, size_t buf_size, const void **content_out, size_t *content_size_out, const void **huf_out, uint32_t *dict_id_out)
Loads and validates a .zxd dictionary file from a memory buffer.
Definition zxc_dict.c:112
int64_t zxc_dict_save(const void *content, size_t content_size, const void *huf_lengths, void *buf, size_t buf_capacity)
Serializes dictionary content and its shared Huffman table to .zxd.
Definition zxc_dict.c:79
uint32_t zxc_dict_get_id(const void *buf, size_t buf_size)
Returns the dictionary ID stored in a .zxd file buffer.
Definition zxc_dict.c:57
uint32_t zxc_dict_id(const void *dict, size_t dict_size, const void *huf_lengths)
Computes the dictionary ID for the given content and optional table.
Definition zxc_dict.c:29
Platform-specific symbol visibility macros.