diff options
| author | Jeff Epler <jepler@gmail.com> | 2020-09-08 19:07:53 -0500 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2020-09-08 19:07:53 -0500 |
| commit | bdb07adfccaf25576a8f1e074db7f8b7e48890b2 (patch) | |
| tree | e39e4c954e03677ee2fb57d1f22f22227bfaebbb /py/makeqstrdata.py | |
| parent | cbfd38d1ce8839e11e828b0e8742d5d983446313 (diff) | |
translations: Make decompression clearer
Now this gets filled in with values e.g., 128 (0x80) and 159 (0x9f).
Diffstat (limited to 'py/makeqstrdata.py')
| -rw-r--r-- | py/makeqstrdata.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/py/makeqstrdata.py b/py/makeqstrdata.py index 40c50b7b4..721fa8320 100644 --- a/py/makeqstrdata.py +++ b/py/makeqstrdata.py @@ -159,7 +159,14 @@ def compute_huffman_coding(translations, qstrs, compression_filename): f.write("const uint8_t lengths[] = {{ {} }};\n".format(", ".join(map(str, lengths)))) f.write("const {} values[] = {{ {} }};\n".format(values_type, ", ".join(str(ord(u)) for u in values))) f.write("#define compress_max_length_bits ({})\n".format(max_translation_encoded_length.bit_length())) - f.write("const {} ngrams[] = {{ {} }};\n".format(values_type, ", ".join(str(u) for u in ngramdata))) + f.write("const {} bigrams[] = {{ {} }};\n".format(values_type, ", ".join(str(u) for u in ngramdata))) + if len(ngrams) > 32: + bigram_start = 0xe000 + else: + bigram_start = 0x80 + bigram_end = bigram_start + len(ngrams) - 1 # End is inclusive + f.write("#define bigram_start {}\n".format(bigram_start)) + f.write("#define bigram_end {}\n".format(bigram_end)) return values, lengths, ngrams def decompress(encoding_table, encoded, encoded_length_bits): |
