Developer Toolbox

Brotli

Zie wat Brotli meer doet dan gzip: een ingebouwd woordenboek met veelgebruikte woorden, een groter venster en kwaliteitsniveaus die tijd tegen grootte inruilen.

  • Venster: tot 16 MB
  • Woordenboek: 122 KB
  • Kwaliteit: 0-11
  • Codes hangen af van context
Wat betekent dit?
  • Ingebouwd woordenboek: ongeveer 13.500 woorden die elke Brotli-decoder kent, zodat de encoder naar een woord kan verwijzen met zijn nummer.
  • Kwaliteit: de inspanningsinstelling van Brotli, van 0 tot 11. Hogere niveaus zoeken harder naar een paar procent minder, tegen een veelvoud van de kosten.
  • Contextmodellering: de codetabel kiezen op basis van wat er net voor kwam, want na een letter volgen andere tekens dan na een cijfer of een spatie.
  • Venster: hoe ver de compressor terug mag kijken naar een herhaling. 32 KB in gzip, tot 16 MB in Brotli.

Woorden uit het Brotli-woordenboek

Plak een willekeurige tekst. De woorden die in het woordenboek van Brotli staan worden gemarkeerd, en de balken vergelijken de eerste 300 bytes, waar het woordenboek het meest uitmaakt, met de hele tekst.

Invoer

Laden...

Probeer dit: Laad een korte HTML-pagina. Bij een paar honderd bytes bepaalt het woordenboek het resultaat, en Brotli loopt duidelijk op gzip uit.

Kwaliteit, grootte en tijd

Dezelfde tekst op elke kwaliteit. Tot 4-6 daalt de grootte snel terwijl de tijd nauwelijks verandert. 10 en 11 leveren een paar procent extra op voor een veelvoud van het werk.

Laden...

Waarin het verschilt van gzip

Een venster tot 16 MB

gzip kopieert alleen uit de laatste 32 KB. Brotli reikt veel verder, dus vindt het in een groot bestand herhalingen die gzip niet meer kan zien.

Codes die afhangen van de context

Hetzelfde teken kan een andere code krijgen, afhankelijk van de twee bytes ervoor. Na een letter zijn andere tekens waarschijnlijk dan na een cijfer of een spatie.

Een woordenboek vanaf het begin

gzip moet de eerste keer dat een woord voorkomt als literals schrijven. Brotli kan in plaats daarvan naar zijn ingebouwde woordenboek verwijzen, en daarom wint het het meest bij kleine bestanden.

Hoe het werkt

Brotli gebruikt dezelfde twee ideeën als gzip, kopieën van eerdere tekst en Huffman-codes, en voegt er drie aan toe. Zijn venster reikt 16 MB ver in plaats van 32 KB, dus vindt het herhalingen ver terug in een groot bestand. Zijn codes hangen af van de context van de voorgaande bytes. En het heeft een woordenboek met ongeveer 13.500 woorden die veel voorkomen in webpagina's en code, zodat zelfs de eerste keer dat een woord als class of function opduikt een korte verwijzing kan zijn.

Wanneer het een goede keuze is

Brotli maakt tekst 15-25% kleiner dan gzip, vooral bij kleine bestanden, waar het woordenboek het werk doet. Elke huidige browser accepteert het via HTTPS. Comprimeer statische bestanden vooraf op kwaliteit 11 en dynamische antwoorden on the fly op 4-6, waar het ongeveer zo snel is als gzip.