Реализация сжатия строк UTF-16 - PullRequest
0 голосов
/ 06 августа 2020

C язык / алгоритм сжатия noob здесь, извинения заранее.

Я изучаю алгоритм сжатия строк utf-16 на основе Lempel-Ziv, как описано здесь http://www.unicode.org/notes/tn31/

В соответствии с реализацией (https://www.unicode.org/notes/tn31/#Performance) строка из 1014 байтов должна быть сжата примерно до 560 (примерно 60%).

Однако я загрузил образец Код c (https://www.unicode.org/notes/tn31/utf16_compressor.tar.gz) и протестировал сжатие строки длиной 1290 (я добавил оператор печати для печати входных и выходных длин), но после сжатия длина выходных данных составляет 3018. Что-то мне не хватает или я неверно интерпретирую длину вывода? Исходя из кода, выходной буфер функции сжатия представляет собой массив беззнаковых символов (1 байт), следовательно, 3018 на самом деле составляет 3018 байт?

...