Developer Toolbox

gzip (DEFLATE)

Katso, miten gzip pienentää tekstiä: toistoista tulee lyhyitä kopioita, ja Huffman-koodit antavat yleisille symboleille vähemmän bittejä.

  • Ikkuna: 32 KB
  • Kopiot: 3-258 tavua
  • Koodit: enintään 15 bittiä
  • gzip-kehys: 18 tavua
Mitä nämä tarkoittavat?
  • Literaali: merkki, joka kirjoitetaan sellaisenaan, koska sen kohdasta ei ala vähintään 3 merkin toistoa.
  • Kopio: pituus ja etäisyys, jotka tarkoittavat "ota näin monta merkkiä näin kaukaa takaa". Kopio saa mennä päällekkäin tuottamansa tekstin kanssa.
  • Ikkuna: kuinka kauas taaksepäin pakkaaja saa etsiä toistoa. gzipissä 32 KB, Brotlissa enintään 16 MB.
  • Huffman-koodi: jokaiselle symbolille oma bittikoodi, yleisille symboleille lyhyempi. Se muodostetaan puusta, joka yhdistää yhä uudelleen kaksi harvinaisinta symbolia.
  • Prefiksitön: mikään koodi ei ole toisen koodin alku, joten koodien jonon voi lukea takaisin ilman erottimia.
LZ77 ja Huffman askel askeleelta 0 / 19 askelta

Tekstissä on 23 merkkiä, pakkaamattomana 184 bittiä. Pakkaaja lukee sen vasemmalta oikealle ja kysyy jokaisessa kohdassa, onko seuraava osa esiintynyt aiemmin.

Välilyönti: toisto tai tauko. Nuolinäppäimet: askel. Home ja End: alkuun tai loppuun.

Kokeile tätä: Kirjoita sama kirjain monta kertaa. Yksi kopio etäisyydellä 1 kattaa ne kaikki, koska kopio saa mennä päällekkäin itse tuottamansa tekstin kanssa.

Miten se toimii

gzip ajaa DEFLATEn kahdessa vaiheessa. LZ77 käy tekstin läpi ja etsii jokaisessa kohdassa pisimmän tavujonon, joka on jo esiintynyt viimeisten 32 KB:n aikana. Sen sijaan että toistaisi tavut, se kirjoittaa parin: montako tavua kopioidaan (3-258) ja kuinka kaukana ne ovat taaksepäin. Se mitä jää jäljelle, literaalit ja nämä parit, kirjoitetaan sitten Huffman-koodeilla: yleiset symbolit saavat lyhyet koodit ja harvinaiset pitkät. gzip käärii tuloksen 10 tavun otsakkeeseen ja 8 tavun loppuosaan, jossa on CRC-32-tarkistussumma.

Milloin se on hyvä valinta

gzip pakkaa tekstiä, joka toistaa itseään: HTML, CSS, JavaScript, JSON, lokit, CSV. Jokainen selain ja palvelin ymmärtää sitä, se on nopea kaikilla tasoilla, ja se on turvallinen oletus vastausten pakkaamiseen lennossa. Valmiiksi pakatussa datassa, kuten JPEG, PNG, WOFF2 tai ZIP, ei ole enää toistoja, joten gzip vain lisää oman kehyksensä.

Omalla tekstilläsi

Samat kaksi vaihetta oikealla gzipillä (taso 6) pidemmälle tekstille. Liitä oma tekstisi tai tuo se Gzip- ja Brotli-pakkaus-työkalusta.

Syöte