Come vengono compressi i file di testo, teniche ed algoritmi

La gran parte delle informazioni presenti in internet sono codificate attraverso del testo in caratteri alfanumerici, tradizionalmente rappresentati mediante il codice ASCII (American Standard Code for Information Interchange). Questo codice, inizialmente codificato a 7 bit e poi esteso ad 8 bit (Extended ASCII), non era in grado di rappresentare tutti i caratteri delle lingue del mondo così sono state definite ulteriori estensioni come l’UNICODE per la rappresentazione di caratteri per esempio dell’alfabeto greco, cirillico, ecc. Anche quest’ultimo è stato esteso passando da 16 bit (65.536 caratteri) ad una codifica con 21 bit (circa 1 milione di caratteri).

La gran parte dei testi sono “testi formattati”, ovvero il titolo, il sottotitolo e i paragrafi del documento sono presentati in maniera differente, ad esempio il titolo può essere rappresentato con un carattere più grande, il sottotitolo in corsivo così come la data e il luogo. Esistono diversi standard che rappresentano i diversi formati, come il formato Microsoft Word, Formato Portable Document Format, ecc.

Come vengono compressi i file di testo, teniche ed algoritmi

I file di testo occupano poco spazio rispetto ad altri media come i file audio e video, ma nonostante ciò i file di tipo testo sono quelli che più si adattano alla compressione, file di qualche MB possono facilmente essere ridotti in file di pochi KB. Il motivo per cui i file di testo si adattano molto bene alla compressione è data dal fatto che alcuni caratteri appaiono più frequentemente rispetto ad altri e che alcuni gruppi di caratteri appaiono molto frequentemente.
Tutti gli algoritmi di compressione che operano sui file di testo sono di tipo lossless, ovvero senza perdita di dati (l’integrità del documento è fondamentale!). Tra i principali algoritmi troviamo:

  1. Huffman
  2. Run length
  3. Lempel-Ziv-Welch (LZW)

Pubblicato in Informatica, Programmazione Taggato con: , , , , , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*