Brotli

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Brotli
Brotli-logo.svg
Тип кодек, алгоритм сжатия[d] и формат файла
Разработчик Золтан Сабадка
Написана на Си[2]
Последняя версия 1.0.7(23 октября 2018; 12 месяцев назад (2018-10-23)[1])
Лицензия лицензия MIT[3][4]
Сайт github.com/google/brotli

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

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

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

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

Характеристики[править | править код]

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

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

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

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

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

Использование[править | править код]

См. также[править | править код]

Примечания[править | править код]

  1. Releases - google/brotli. Дата обращения 2 марта 2018.
  2. The brotli Open Source Project on Open Hub: Languages Page — 2006.
  3. https://github.com/google/brotli/blob/master/LICENSE
  4. The brotli Open Source Project on Open Hub: Licenses Page — 2006.
  5. Brotli Compressed Data Format. IETF Internet Drafts (16 мая 2014). (недоступная ссылка)
  6. Brotli Source Code - GitHub. github.com.
  7. Slater-Robbins, Max Chrome and Firefox are about to get a lot faster thanks to Google's new data compression algorithm (20 Jan 2016). Дата обращения 20 января 2016.
  8. 1 2 Google Open Source Blog: Introducing Brotli: a new compression algorithm for the internet
  9. Smaller Fonts with WOFF 2.0 and unicode-range (18 Feb 2015). Дата обращения 20 января 2016.
  10. Richard Chirgwin. Google's new squeeze: Brotli compression open-sourced. The Register (23 September 2015).
  11. Alakuijala, Jyrki Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms. Google (22 сентября 2015). Дата обращения 25 октября 2015.
  12. Firefox 44 release notes. Дата обращения 26 января 2016.
  13. 1 2 Can I use... Support tables for HTML5, CSS3, etc. Дата обращения 7 января 2016.
  14. Windows 10 build 14986. developer.microsoft.com. Дата обращения 29 июня 2018.
  15. Introducing Brotli compression in Microsoft Edge — Microsoft Edge Dev BlogMicrosoft Edge Dev Blog

Ссылки[править | править код]