Brotli — новый алгоритм сжатия данных для веба от Google
Так как веб-сайты и онлайн-сервисы с каждым годом становятся все «тяжелее», возрастает необходимость и сжатия данных в вебе. По этой причине Google выпустил новый алгоритм сжатия данных для веб-сайтов — Brotli, что в переводе с швейцарского немецкого означает «маленькая булка хлеба». Алгоритм уже доступен широкой аудитории на GitHub.
Brotli имеет открытый исходный код и позволяет сжимать данные на 20-26% эффективнее, чем его предшественник от Google, алгоритм Zopfli (тоже хлебопекарная продукция из Швейцарии, больше всего похожая внешне на нашу булку-плетенку). Оба алгоритма имеют банальную и простую цель — помочь быстрее загружать веб-страницы.
Разработка Google позволяет сжимать данные без потерь, используя комбинацию алгоритмов LZ77 и кодирование Хаффмана, что ставит Brotli в один ряд с лучшими на данный момент методами общего сжатия данных. В тоже время Brotli работает лучше, чем LZMA и bzip2, а по заверению Google по скорости работы новый алгоритм можно сравнить с Deflate ZLIB.
Особенно остро вопрос сжатия данных стоит для мобильных пользователей и в Google надеются, что разработанная и там технология будет в будущем повсеместно интегрирована в веб-браузеры, что позволит загружать страницы быстрее. В свою очередь это повлечет экономию заряда батареи и снизит объемы веб-трафика.
Возникает вопрос, как именно Google добился подобного сжатия данных, на что они дают следующий ответ (в оригинале, дабы избежать разночтений при переводе):
The higher data density is achieved by a 2nd order context modeling, re-use of entropy codes, larger memory window of past data and joint distribution codes.
Тут можно ознакомиться со сравнением эффективности Brotli и других алгоритмов, которое подготовил Google (ссылку предоставил пользователь evnuh).