xaker

Формат сжатия Brotli — оптимизированная версия Deflate

  • вторник, 17 июня 2014 г. в 03:12:28
http://www.xakep.ru/post/62641/

Инженерный совет Интернета (IETF) принял черновик спецификаций нового формата сжатия данных Brotli.

Спецификации описывают формат сжатия без потерь с использованием алгоритма LZ77 и кодирования Хаффмана, причём эффективность сжатия сравнима с лучшими из используемых сейчас популярных форматов сжатия. Brotli значительно эффективнее gzip по степени сжатия, а разархивирование осуществляется гораздо быстрее нынешней реализации LZMA.

Термокарта с эффективностью сжатия отдельных фрагментов HTML-документа в программе gzip (deflate)

Разработчики Brotli — двое сотрудников цюрихского подразделения компании Google, которые участвовали в разработке форматов сжатия Zopfli и WebP. Разработчики предлагают использовать Brotli для сжатия файлов (например, веб-шрифтов) и произвольных потоков данных. Формат не предназначен для архивирования каких-либо специфических данных: растровой графики, аудио или видео. Для них существуют специализированные кодеки.

Brotli — это улучшенная версия стандарта Deflate (RFC 1951), который считается свободным от всех существующих патентов и широко используется для разных целей, в том числе в файлах gzip, графике PNG и архивах .zip.

В частности, разработчики Brotli учитывают характеристики более современной аппаратуры (окно увеличено с 32 КБ до 16 МБ), повторно используют коды энтропии и применяют другие методы оптимизации. Подробнее об этих «хитростях» см. в презентации Brotli. Теоретическая основа, то есть алгоритмическая часть, вроде бы не отличается от Deflate.

Brotli использует статичный словарь.

Ранее компания Google разработала ещё один формат сжатия Snappy, который оптимизирован на максимальную скорость работы и предназначен для стриминга в сети. Он тоже основан на LZ77, как и Brotli, но не применяет кодирование Хаффмана, поэтому работает быстрее и сжимает хуже.