Brotli — Визуализатор алгоритмов

Шаг 1:Brotli (Google, 2015) is what many HTTPS sites use today. Like DEFLATE it combines dictionary matches + entropy coding — but it also ships a static dictionary of common web phrases. Compress a URL-like string.

Brotli

Сложный

Brotli — это современный алгоритм сжатия без потерь, разработанный Google в 2015 году. Он широко используется в HTTP через Content-Encoding: br для сжатия HTML, CSS и JavaScript. Brotli относится к тому же семейству алгоритмов, что и DEFLATE: поиск совпадений в словаре и энтропийное кодирование. Однако у него есть дополнительное преимущество — большой статический словарь фраз, которые уже встречаются в интернете.

Как это работает (обучающая модель на этой странице):

1. Статический словарь — поиск совпадений с известными фразами (частями URL, HTML-тегами, распространёнными словами), не извлекая их исключительно из самого файла
2. Обратные ссылки LZ — копирование фрагментов из уже обработанного текста, если словарь не помогает
3. Литералы — запись отдельных символов, когда совпадений нет ни в словаре, ни в ранее обработанном тексте
4. Энтропийное кодирование — назначение коротких кодов часто встречающимся командам (настоящий Brotli использует более сложные коды, зависящие от контекста)

Почему Brotli часто эффективнее gzip в интернете:

gzip изучает структуру только внутри текущего потока данных. Brotli также использует общие знания о вебе: "https://", "www.", "</div>" и тысячи других фрагментов. Эти заранее известные данные доступны обеим сторонам HTTP-соединения и не требуют дополнительной передачи.

Временная сложность:

Поиск совпадений концептуально похож на LZ77 / DEFLATE; качество зависит от размера окна и алгоритма поиска
Поиск по словарю оптимизирован для высокой скорости в промышленных реализациях кодеков

Пространственная сложность:

Кодировщику и декодировщику необходимы статический словарь (около 120 КБ в полной реализации Brotli) и скользящее окно

Свойства:

  • Сжатие без потерь; RFC 7932
  • Отлично подходит для текстовых веб-ресурсов, но менее эффективен для уже сжатых бинарных данных
  • Более высокие уровни сжатия обменивают производительность CPU на меньший размер данных (CDN / этап сборки vs сжатие на лету)
  • Эта визуализация представляет собой обучающий процесс, а не побитово совместимый кодировщик Brotli

Запомните: Brotli ≈ идея DEFLATE + статический словарь, учитывающий особенности веба + более эффективное энтропийное кодирование.

Похожие алгоритмы

Частые вопросы

Что такое Brotli?
Brotli — это современный алгоритм сжатия без потерь, разработанный Google в 2015 году. Он широко используется в HTTP через Content-Encoding: br для сжатия HTML, CSS и JavaScript. Brotli относится к тому же семейству алгоритмов, что и DEFLATE: поиск совпадений в словаре и энтропийное кодирование. Однако у него есть дополнительное преимущество — большой статический словарь фраз, которые уже встречаются в интернете.
Какова сложность Brotli?
Brotli объясняется с помощью пошаговой визуализации, включая временную и пространственную сложность.
Для кого предназначена визуализация Brotli?
Визуализация Brotli рассчитана на продвинутый уровень в категории «Сжатие данных». Полезна для студентов, подготовки к собеседованиям и практического изучения.
Какие алгоритмы связаны с Brotli?
В той же категории (Сжатие данных) вы можете изучить: Run-Length Encoding, LZ77, LZW. Каждый из них имеет интерактивную визуализацию.