pagina |
Le tecniche di compressione sembrano così promettenti che alcuni si domandano se le reti telefoniche attuali, associate a qualche satellite di comunicazione, non potrebbero essere sufficienti alla gran parte delle applicazioni evitando le spese di infrastruttura legate alle famose autostrade dell'informazione IL MIRACOLO SPIEGATO Spieghiamo come, mediante qualche convenzione di codice ben scelta, si esplorano le regolarità dei dati informatici per diminuirne la grandezza. Immaginiamo di dover conservare un testo che contiene delle ripetizioni e non utilizza i simboli "[" e "}" Conveniamo di mettere tra parentesi i pezzi ripetuti seguiti dal numero delle ripetizioni, si trasformerà il testo: Per utilizzare un tale metodo di codifica si scrivono due algoritmi, uno realizza la compressione, cioè passa dal testo in chiaro al testo ridotto, l'altro realizza la decompressione, cioè restituisce il testo in chiaro a partire da quello ridotto. Esaminiamo un altro codice di compressione. In una prima parte del testo compresso si tolgono le sequenze ripetute si scrive il testo restante in parti più corte separate dal simbolo # (che si suppone non sia utilizzato nel messaggio da comprimere). Poi in una seconda parte, che comincia quando il simbolo # è utilizzato due volte di seguito, si indica quale sequenza deve essere utilizzata e in quale ordine. Il messaggio diviene: |
PERCHE' FUNZIONA L'idea di esplorare le frequenze ineguali di uso delle lettere da luogo ad altri algoritmi di compressione. Delle tecniche speciali sono utilizzate per la codifica di telecopie o di immagini di film. I metodi attuali di compressione del testo permettono di guadagnare il 50% dello spazio. Per le immagini statiche si guadagna facilmente l'80% e per le immagini di un film, fino al 95%. Quando si tratta di un testo ci si aspetta sicuramente dall'operazione didecompressione che essa restituisca esattamente il testo di partenza. Al contrario quando si tratta di un'immagine, si tollera che l'immagine restituita dopo la decompressione sia un poco diversa, se questo fa guadagnare spazio. Il codice MP3 dei files audio esplora le caratteristiche dell'udito umano e degrada il suono in modo quasi inudibile. Generalmente la compressione è più lunga della decompressione; più questi tempi sono brevi meglio è. Se la compressione funziona è perchè i testi e i documenti manipolati non sono casuali. Le immagini si comprimono bene perchè accanto ad un punto rosso si hanno molte probabilità di trovare un altro punto rosso piuttosto che un punto blu o verde: una immagine è composta da macchie di colore di punti identici raggruppati in pacchetti. Analogamente, dietro una " q " si hanno molte possibilità di trovare una "u" piuttosto che un'altra lettera, la lettera "e" è usata molto più di frequente della lettera "x" eccetera. Queste regolarità permettono la compressione: se i dati informatici fossero casuali la compressione sarebbe impossibile. Alcuni algoritmi di compressione esatti (che permettono la restituzione totale dei dati di partenza) non possono comprimere tutti i testi di lunghezza n. Supponiamo per semplicità che i testi siano composti di due soli caratteri "0" e "1". Ci sono 2^n testi di lunghezza n e a ciascuno di essi l'algoritmo di compressione deve associare un testo di due lettere più corto e specifico (se due testi diversi saranno codificati nello stesso modo la decompressione sarà impossibile. Ci sarà un testo di lunghezza 0 (il testo vuoto), 2 testi di lunghezza 1, 4 testi di lunghezza 2,.....,2^n-1 testi di lunghezza n-1, ciò fa in totale 1+2+.....2^n-1=2^n-1 testi di lunghezza inferiore a n. |
pagina |