Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 1 | #ifndef BROTLI_RESEARCH_DEORUMMOLAE_H_ |
| 2 | #define BROTLI_RESEARCH_DEORUMMOLAE_H_ |
| 3 | |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 4 | #include <cstddef> |
| 5 | #include <cstdint> |
| 6 | #include <string> |
| 7 | #include <vector> |
Eugene Kliuchnikov | 39ef4bb | 2017-10-13 11:25:03 +0200 | [diff] [blame] | 8 | |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 9 | /* log2(maximal number of files). Value 6 provides some speedups. */ |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 10 | #define DM_LOG_MAX_FILES 6 |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 11 | |
| 12 | /* Non tunable definitions. */ |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 13 | #define DM_MAX_FILES (1 << DM_LOG_MAX_FILES) |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 14 | |
| 15 | /** |
| 16 | * Generate a dictionary for given samples. |
| 17 | * |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 18 | * @param dictionary_size_limit maximal dictionary size |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 19 | * @param sample_sizes vector with sample sizes |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 20 | * @param sample_data concatenated samples |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 21 | * @return generated dictionary |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 22 | */ |
Tianjie Xu | a5dcb7c | 2018-09-25 12:25:15 -0700 | [diff] [blame] | 23 | std::string DM_generate(size_t dictionary_size_limit, |
| 24 | const std::vector<size_t>& sample_sizes, const uint8_t* sample_data); |
Eugene Kliuchnikov | 5244106 | 2017-07-21 10:07:24 +0200 | [diff] [blame] | 25 | |
| 26 | #endif // BROTLI_RESEARCH_DEORUMMOLAE_H_ |