Brotli — алгоритм сжатия данных с открытым исходным кодом, разработанный Юрки Алакуйяла () и Золтаном Сабадка.

Метод сжатия brotli основан на современном варианте алгоритма LZ77, энтропийном кодировании Хаффмана и моделировании контекста 2-го порядка.

Предназначен для ускорения загрузки веб-страниц, поддерживается в браузерах Chrome, основанных на Chromium, и в Firefox.

Как и zopfli, другой алгоритм сжатия от Google, brotli был назван в честь швейцарского хлебобулочного изделия, brötli.

Характеристики Алгоритм brotli был впервые представлен в 2015 году в качестве специализированного алгоритма сжатия веб-шрифтов.

В сентябре 2015 года инженеры Google представили версию brotli, содержавшую улучшения для универсального сжатия данных без потерь, особенно для использования при сжатии интернет-трафика. Алгоритм и реализация были переработаны для улучшения степени сжатия и ускорения операций сжатия и распаковки. Был доработан API работы с потоками, появились более высокие уровни сжатия, уменьшилось потребление памяти.

В отличие от большинства универсальных алгоритмов сжатия, brotli поставляется со встроенным 120-килобайтным словарём. Этот словарь содержит около 13 тысяч строк, фраз и других последовательностей, часто встречавшихся в большом корпусе текстовых и HTML-документов. Подобная особенность позволяет увеличить степень сжатия для некоторых коротких файлов.

По сравнению с классическим алгоритмом deflate (середина 1990-х, ZIP, gzip) brotli, как правило, достигает на 20 % более высокой степени сжатия для текстовых файлов, сохраняя сходную скорость сжатия и распаковки. Сжатые при помощи brotli потоки получили тип кодирования br.

В отличие от zopfli, алгоритм brotli не является обратно совместимым с zlib и deflate.

Использование Mozilla Firefox реализовал brotli с версии 44 (январь 2016) Google Chrome поддерживает brotli с версии 49 Метод опубликован как RFC 7932 Формат шрифтов Web Open Font Format 2.0 Safari поддерживает brotli c macOS High Sierra Microsoft Edge поддерживает brotli

См. также

Zstd (Zstandard, Facebook) (Apple)

Примечания

Ссылки Репозиторий на GitHub Анонс Google OpenSource, сентябрь 2015 Спецификация, RFC 7932 Google Chrome getting Brotli // phoronix, 21 January 2016 Results of experimenting with Brotli for dynamic web content / Cloudflare, 23 Oct 2015

Категория:Незавершённые статьи по информатике Категория:Свободные библиотеки программ Категория:Алгоритмы сжатия без потерь