Объяснение алгоритма кодирования Бротли - PullRequest
0 голосов
/ 19 марта 2019

Формат сжатия Brotli превосходно задокументирован в RFC 7932 . Вы можете просто прочитать этот RFC сверху вниз, и он расскажет вам, как работает формат.

Однако, хотя вы, вероятно, могли бы реализовать декодер (декомпрессор) на основе только RFC, RFC не описывает алгоритм кодера en , который является частью эталонной реализации Google C (brotli) инструмент командной строки). Другими словами, он не говорит нам, какие стратегии кодировщик использует на разных уровнях качества, чтобы найти эффективное сжатое представление для данного входного потока.

Конечно, я всегда могу прочитать источник кодера , но мне было интересно, есть ли доступное высокоуровневое описание того, как работает кодер?

1 Ответ

2 голосов
/ 20 марта 2019

Все, что мне известно, это очень краткое описание в этой статье :

Более высокая плотность данных достигается путем моделирования контекста 2-го порядка, повторного использования энтропиикоды, большее окно памяти прошлых данных и совместные коды распределения.

Что еще более важно, из той же статьи:

новый алгоритм назван в честь швейцарских хлебобулочных изделий.Brötli в переводе с немецкого означает «маленький хлеб».

...