xref: /aosp_15_r20/external/brotli/research/deorummolae.h (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Worker #ifndef BROTLI_RESEARCH_DEORUMMOLAE_H_
2*f4ee7fbaSAndroid Build Coastguard Worker #define BROTLI_RESEARCH_DEORUMMOLAE_H_
3*f4ee7fbaSAndroid Build Coastguard Worker 
4*f4ee7fbaSAndroid Build Coastguard Worker #include <cstddef>
5*f4ee7fbaSAndroid Build Coastguard Worker #include <cstdint>
6*f4ee7fbaSAndroid Build Coastguard Worker #include <string>
7*f4ee7fbaSAndroid Build Coastguard Worker #include <vector>
8*f4ee7fbaSAndroid Build Coastguard Worker 
9*f4ee7fbaSAndroid Build Coastguard Worker /* log2(maximal number of files). Value 6 provides some speedups. */
10*f4ee7fbaSAndroid Build Coastguard Worker #define DM_LOG_MAX_FILES 6
11*f4ee7fbaSAndroid Build Coastguard Worker 
12*f4ee7fbaSAndroid Build Coastguard Worker /* Non tunable definitions. */
13*f4ee7fbaSAndroid Build Coastguard Worker #define DM_MAX_FILES (1 << DM_LOG_MAX_FILES)
14*f4ee7fbaSAndroid Build Coastguard Worker 
15*f4ee7fbaSAndroid Build Coastguard Worker /**
16*f4ee7fbaSAndroid Build Coastguard Worker  * Generate a dictionary for given samples.
17*f4ee7fbaSAndroid Build Coastguard Worker  *
18*f4ee7fbaSAndroid Build Coastguard Worker  * @param dictionary_size_limit maximal dictionary size
19*f4ee7fbaSAndroid Build Coastguard Worker  * @param sample_sizes vector with sample sizes
20*f4ee7fbaSAndroid Build Coastguard Worker  * @param sample_data concatenated samples
21*f4ee7fbaSAndroid Build Coastguard Worker  * @return generated dictionary
22*f4ee7fbaSAndroid Build Coastguard Worker  */
23*f4ee7fbaSAndroid Build Coastguard Worker std::string DM_generate(size_t dictionary_size_limit,
24*f4ee7fbaSAndroid Build Coastguard Worker     const std::vector<size_t>& sample_sizes, const uint8_t* sample_data);
25*f4ee7fbaSAndroid Build Coastguard Worker 
26*f4ee7fbaSAndroid Build Coastguard Worker #endif  // BROTLI_RESEARCH_DEORUMMOLAE_H_
27