Бротли

редактировать
Сжатие Бротли Алгоритм
Brotli-logo.svg
Исходный автор (ы) Юрки Алакуйяла, Золтан Сабадка
Разработчик (и) Юрки Алакуйяла, Евгений Ключников, Роберт Обрик, Золтан Сабадка, Лоде Вандевенне <47167>Первоначальный выпуск 117>15 октября 2013 г.; 6 лет назад (2013-10-15)
Стабильный выпуск 1.0.9 / 27 августа 2020 г.; 47 дней назад (2020-08-27)
Репозиторий Измените это s в Викиданных
Написано наC
Операционная система Кросс-платформенная
Платформа Портативная
Тип Сжатие данных
Лицензия Лицензия MIT
Веб-сайтgithub.com / google / brotli Измените это в Викиданных

Brotli - это спецификация формата данных для потоков данных сжатых с определенной комбинацией универсальный алгоритм LZ77 сжатия без потерь, кодирование Хаффмана и контекстное моделирование 2-го порядка. Brotli - это алгоритм сжатия, разработанный Google и лучше всего подходит для сжатия текста.

Сотрудники Google Юрки Алакуйяла и Золтан Сабадка изначально разработали Brotli, чтобы уменьшить размер передаваемых веб-шрифтов WOFF 2, и в этом контексте Brotli был продолжением разработки zopfli, который является zlib -совместимой реализацией стандартных спецификаций gzip и deflate. Brotli позволяет более плотную упаковку, чем gzip и deflate, благодаря нескольким улучшениям на уровне алгоритмов и форматов: использование контекстных моделей для литералов и расстояний копирования, описание расстояний копирования через прошлые расстояния, использование очереди перехода на передний план при выборе энтропийного кода, объединение -энтропийное кодирование длины букв и копий, использование алгоритмов графа при разделении блоков и увеличенное окно обратной ссылки являются примерами улучшений. Спецификация Brotli была обобщена в сентябре 2015 года для сжатия HTTP-потока (тип кодирования содержимого «br»). Эта обобщенная итерация также улучшила степень сжатия за счет использования предварительно определенного словаря часто используемых слов и фраз.

Содержание
  • 1 История
  • 2 О
  • 3 Поддержка отрасли
    • 3.1 Браузеры и другие клиенты
    • 3.2 Веб-серверы
  • 4 Ссылки
  • 5 Внешние ссылки
История

Алакуйяла и Сабадка завершили спецификацию Brotli в течение 2013–2016 годов. Спецификация сопровождалась эталонной реализацией, разработанной двумя дополнительными авторами, Евгением Ключниковым и Лоде Вандевенном, которые ранее разработали zopfli реализацию Google deflate и gzip -совместимую. сжатие в 2013 году. В отличие от zopfli, который был повторной реализацией существующей спецификации формата данных, Brotli был новым форматом данных и позволил авторам еще больше улучшить коэффициенты сжатия.

Internet Engineering Task Force утвердил спецификацию формата сжатых данных Brotli в качестве информационного запроса на комментарий (RFC 7932 ) в июле 2016 года. Формат данных Brotli является неотъемлемой частью второй итерации Формат открытого веб-шрифта.

В то время как реализация алгоритма сжатия deflate в Google zopfli названа в честь zöpfli, швейцарский немецкий слово для закуски плетеный масляный хлеб, brotli назван в честь brötli, швейцарского немецкого слова, обозначающего булочку. Собственная реализация спецификации Brotli в Google была выпущена в соответствии с условиями разрешающего бесплатного программного обеспечения лицензия MIT в 2016 году. Официальная проверка спецификации Brotli была независимо проведена Марком Адлером, один из соавторов формата и библиотеки сжатия zlib / gzip. Реализация Адлера была выпущена на условиях аналогичной разрешительной лицензии Apache. Также существуют другие реализации спецификации, в том числе на языке «источник-источник» haxe.

Brotli доступен как порт для Android в терминальном интерфейсе с собственной разделяемой библиотекой.

О

Brotli был впервые выпущен в 2013 году для автономного сжатия веб-шрифтов. Версия Brotli, выпущенная в сентябре 2015 года разработчиками программного обеспечения Google, содержала усовершенствования в стандартном сжатии данных без потерь, с особым упором на использование HTTP-сжатия. Кодер был частично переписан, в результате чего улучшилась степень сжатия, были ускорены как кодер, так и декодер, улучшен API потоковой передачи и добавлены дополнительные уровни качества сжатия. Кроме того, в новом выпуске улучшена производительность на разных платформах с уменьшением памяти для декодирования.

В отличие от большинства алгоритмов сжатия общего назначения, Brotli использует предварительно определенный словарь размером примерно 120 КиБ в дополнение к динамически заполняемым ( "скользящее окно") словарь. Предварительно определенный словарь содержит более 13000 общих слов, фраз и других подстрок, полученных из большого корпуса текстовых и HTML-документов. Было показано, что использование предопределенного словаря увеличивает степень сжатия там, где файл в основном содержит часто используемые слова.

Скользящее окно Brotli ограничено 16 MiB. Это позволяет выполнять декодирование на мобильных телефонах с ограниченными ресурсами, но снижает производительность Brotli на тестах сжатия с большими файлами. Ограничения небольшого размера окна можно смягчить, используя Brotli большого окна, который несовместим с RFC7932 (собственно Brotli).

Потоки, сжатые с помощью Brotli, имеют тип кодировки содержимого «br».

Промышленная поддержка

Браузеры и другие клиенты

  • Mozilla Firefox представила поддержку метода кодирования содержимого br в версии 44 (выпущена 26 января 2016 года).
  • Google Chrome поддерживает метод кодирования содержимого br с версии 50 (выпущен 20 апреля 2016 г.).
  • Opera поддерживает метод кодирования содержимого br с версии 38 (выпущен 8 Июнь 2016 г.).
  • Microsoft Edge поддерживает метод кодирования содержимого br с версии 15 (выпущенной 5 апреля 2017 г.).
  • Safari поддерживает метод кодирования содержимого br начиная с версии 11 (выпущенной 5 октября 2017 г.).
  • cURL имеет параметр времени компиляции для поддержки метода кодирования содержимого br с использованием libbrotli начиная с версии 7.57, выпущенной 29 ноября 2017 г.

Веб-серверы

  • Для HTTP-сервера Apache метод кодирования содержимого br поддерживается модулем mod_brotli начиная с версии 2.4.26.
  • Microsoft IIS имеет расширение сообщества IIS brotli, поскольку Март 2016 г., в котором добавлена ​​поддержка метода кодирования содержимого br.
  • nginx имеет модуль ngx_brotli, предоставляемый Google с декабря 2016 года.
  • Node.js имеет модуль встроенный встроенный кодировщик и декодер, начиная с версии 11.7.0, который может использоваться для поддержки кодирования содержимого br.
  • Amazon CloudFront теперь может (по состоянию на сентябрь 2020 г.) автоматически сжимать кэшируемые ответы на edge с использованием Brotli.
  • Веб-сервер LiteSpeed ​​ включает метод кодирования содержимого br для статических файлов только с версии 5.2 в июле 2017 года.
  • Cloudflare CDN предлагает опцию brotli для сжатия данных между его граничный узел и пользователь.
  • NaviServer добавлена ​​поддержка в версии 4.99.17b1
  • Caddy (веб-сервер) Обслуживает статически сжатые файлы.br, начиная с версии 0.9.4 из 21 декабря 2016 г.
Ссылки
Примечания
Внешние ссылки
  • Ссылочная реализация Brotli на brotli на GitHub
Последняя правка сделана 2021-05-13 14:01:51
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте