blob: 581509726a6a1756e36113b990bb10f971bf2c70 [file] [log] [blame]
Eugene Kliuchnikov52441062017-07-21 10:07:24 +02001#ifndef BROTLI_RESEARCH_DEORUMMOLAE_H_
2#define BROTLI_RESEARCH_DEORUMMOLAE_H_
3
Tianjie Xua5dcb7c2018-09-25 12:25:15 -07004#include <cstddef>
5#include <cstdint>
6#include <string>
7#include <vector>
Eugene Kliuchnikov39ef4bb2017-10-13 11:25:03 +02008
Eugene Kliuchnikov52441062017-07-21 10:07:24 +02009/* log2(maximal number of files). Value 6 provides some speedups. */
Tianjie Xua5dcb7c2018-09-25 12:25:15 -070010#define DM_LOG_MAX_FILES 6
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020011
12/* Non tunable definitions. */
Tianjie Xua5dcb7c2018-09-25 12:25:15 -070013#define DM_MAX_FILES (1 << DM_LOG_MAX_FILES)
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020014
15/**
16 * Generate a dictionary for given samples.
17 *
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020018 * @param dictionary_size_limit maximal dictionary size
Tianjie Xua5dcb7c2018-09-25 12:25:15 -070019 * @param sample_sizes vector with sample sizes
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020020 * @param sample_data concatenated samples
Tianjie Xua5dcb7c2018-09-25 12:25:15 -070021 * @return generated dictionary
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020022 */
Tianjie Xua5dcb7c2018-09-25 12:25:15 -070023std::string DM_generate(size_t dictionary_size_limit,
24 const std::vector<size_t>& sample_sizes, const uint8_t* sample_data);
Eugene Kliuchnikov52441062017-07-21 10:07:24 +020025
26#endif // BROTLI_RESEARCH_DEORUMMOLAE_H_