Developer Toolbox

Brotli

Подивіться, що Brotli вміє понад gzip: вбудований словник поширених слів, більше вікно й рівні якості, що міняють час на розмір.

  • Вікно: до 16 МБ
  • Словник: 122 КБ
  • Якість: 0-11
  • Коди залежать від контексту
Що це означає?
  • Вбудований словник: близько 13 500 слів, які знає кожен декодер Brotli, тож кодувальник може послатися на слово за його номером.
  • Якість: налаштування зусиль Brotli від 0 до 11. Вищі рівні шукають ретельніше заради ще кількох відсотків і коштують у багато разів дорожче.
  • Контекстне моделювання: вибір таблиці кодів за тим, що стоїть безпосередньо перед символом, адже після літери зазвичай ідуть інші символи, ніж після цифри чи пробілу.
  • Вікно: як далеко назад компресор може шукати повтор. У gzip це 32 КБ, у Brotli до 16 МБ.

Слова зі словника Brotli

Вставте будь-який текст. Слова зі словника Brotli буде позначено, а смуги порівняють перші 300 байтів, де словник важить найбільше, з усім текстом.

Введення

Завантаження...

Спробуйте: Завантажте коротку HTML-сторінку. На кількох сотнях байтів результат вирішує словник, і Brotli помітно випереджає gzip.

Якість, розмір і час

Той самий текст на кожному рівні якості. До 4-6 розмір швидко падає, а час майже не змінюється; 10 і 11 дають ще кілька відсотків ціною в багато разів більшої роботи.

Завантаження...

Чим він відрізняється від gzip

Вікно до 16 МБ

gzip копіює лише з останніх 32 КБ. Brotli сягає набагато далі, тож у великому файлі знаходить повтори, яких gzip уже не бачить.

Коди, що залежать від контексту

Той самий символ може отримати різний код залежно від двох байтів перед ним. Після літери ймовірні інші символи, ніж після цифри чи пробілу.

Словник від самого початку

gzip мусить записувати першу появу кожного слова літералами. Brotli натомість може послатися на свій вбудований словник, тому найбільше він виграє на малих файлах.

Як це працює

Brotli спирається на ті самі дві ідеї, що й gzip (копії попереднього тексту й коди Huffman), і додає ще три. Його вікно сягає 16 МБ замість 32 КБ, тож у великому файлі він знаходить повтори далеко позаду. Його коди залежать від контексту попередніх байтів. А ще він має словник приблизно з 13 500 слів, поширених на вебсторінках і в коді, тож навіть перша поява слова на кшталт class чи function може стати коротким посиланням.

Коли варто використовувати

Brotli робить текст на 15-25% меншим, ніж gzip, особливо малі файли, де основну роботу виконує словник. Усі сучасні браузери приймають його через HTTPS. Статичні файли стискайте заздалегідь з якістю 11, а динамічні відповіді на льоту з якістю 4-6: там він приблизно такий самий швидкий, як gzip.