Ce face “zipped for” în GMail

Da, știe cineva 😛

Fișierele .zip sunt, de cele mai multe ori și în funcție de softul folosit, comprimate folosind un algoritm Lempel-Ziv-Markov sau Huffman, ambii algoritmi folosind un dicționar pentru decomprimarea datelor rezultate. Acest dicționar atribuie celor mai frecvente și mai lungi succesiuni de biți câte o etichetă cât mai scurtă.

Hiper-simplificând procesul, dacă vrem să comprimăm propoziția

Temistocle are mere care transcend barierele cosmice. Temistocle are și tractor cu care ară cerealele.

atunci aplicarea algoritmului de compresie ar genera (probabil) următorul dicționar:

Temistocle: 1
transcend: 2
barierele: 3
tractor: 4
cosmi: 5
are: 6
ce: 8
re: 9
le: 10
și: 11
cu: 12
ară: 13
me: 14

care ar comprima textul în felul următor:

1 6 14/9 c6 2 3 5/8. 1 6 11 4 12 c6 13 8/9a10/10

Am folosit / ca sa despart codurile, însă în practică acest separator nu apare în rezultat. Se folosesc unele convenții pentru a ști exact cand urmează un nou cod.

După cum se poate observa, dacă alăturăm dicționarul datelor rezultate (proces necesar pentru decomprimare), pentru un set mic de date de intrare, algoritmii de compresie nu sunt foarte eficienți. Dacă, însă, am avea de comprimat epopeea lui Temistocle, în care numele său apare de suficient de multe ori, rata de compresie ar fi una foarte bună.

Deși dicționarul este generat în timpul analizei preliminare a datelor de comprimat, există particularități ale fiecărei limbi care fac selectarea empirică a anumitor secvențe de caractere preferabilă în defavoarea altora. Cu alte cuvinte, dicționarul generat semi-automat la începutul compresiei ar fi diferit pentru limba română față de limba engleză.

Revenind la GMail…

Să zicem că avem atașate unui mail 3 documente Word cu un comunicat de presă și descrierile celor 2 companii menționate în el, toate în limba română. Și să presupunem că selectăm downloadarea tuturor atașamentelor ca .zip.

În consecință, fișierul .zip downloadat ar putea varia semnificativ în dimensiune dacă am selecta arhivarea pentru limba română (dicționarul fiind adaptat pentru continutul atașamentelor) versus limba engleză (când dicționarul n-ar mai fi la fel de bine adaptat).

Desigur, vorbim aici de fișiere mari, când algoritmul de compresie ar oferi rezultate semnificativ diferite în volum în funcție de dicționarul ales. Adică pentru epopeea lui Temistocle contează ce limbă selectăm, în timp ce pentru cele 2 propoziții de mai sus este destul de puțin relevant.

3 thoughts on “Ce face “zipped for” în GMail

      • Deja imi place mai mult Gmail! Interesant si destept! Multumesc pentru explicatie, pare logic, desi niciodata nu m-am gandit ca un zip poate diferi in functie de dictionar / textul din continut… Smartass!

Leave a Reply

Your email address will not be published. Required fields are marked *