La compressione dell’immagine, in elettronica, informatica e nelle telecomunicazioni, è il nome generico sotto il quale si raggruppano gli algoritmi e le tecniche di elaborazione digitale delle immagini appartenenti alle tecniche di compressione dati, che si utilizzano per ridurre le dimensioni in byte delle immagini digitali.

Un’immagine è rappresentata in formato digitale come una serie di punti (pixel) disposti come una scacchiera o matrice (grafica raster o bitmap). Ogni punto può utilizzare uno o più bit per definire il colore del punto: maggiore è il numero di colori, maggiore sarà il numero di bit necessari per codificare tutti i colori dell’immagine. Le tecniche di compressione utilizzano le peculiarità delle immagini per ridurre l’entropia locale del file in modo da renderlo più piccolo.

Compressione Lossless (senza perdita)
Le prime tecniche di compressione erano molto semplici anche perché la potenza dei primi computer era limitata e quindi per ottenere tempi di decompressione accettabili queste dovevano essere necessariamente semplici. Una tecnica molto diffusa ma semplice era la Run-length encoding. Questa prevedeva la memorizzazione di zone di colore uniforme tramite stringhe speciali. Per esempio se in un’immagine si trovavano mille punti dello stesso colore il programma di compressione salvava il colore in un carattere speciale e in seguito memorizzava il numero di punti da colorare con lo stesso colore; le immagini di tipo IFF venivano salvate con questo metodo. Inizialmente le immagini avevano un numero limitato di colori e quindi si utilizzavano tecniche che si avvantaggiavano di questo. Molti formati utilizzavano tecniche di compressione a dizionario come la LZW. Questi algoritmi costruivano dei dizionari contenenti gruppi di punti che si ripetevano frequentemente e poi memorizzavano l’immagine utilizzando il dizionario creato. Il formato GIF utilizza questa tecnica. È da notare che queste tecniche di compressione sono tutte senza perdita di informazione.

Tra i formati che consentono l’utilizzo di algoritmi di compressione lossless abbiamo:

– png (certe applicazioni permettono anche la scrittura di file png non compressi);
– tga;
– tiff.


Compressione Lossy (con perdita)
Con il crescere della potenza di calcolo dei computer questi sono stati in grado di gestire immagini con migliaia o milioni di colori. Immagini con così tanti colori erano gestite male dai classici metodi di compressione dato che l’assunto del ridotto numero di colori falliva. Vennero sviluppate nuove tecniche di compressione, principalmente a perdita di informazione. Queste nuove tecniche permettevano compressioni anche del 50% con il mantenimento di una qualità accettabile.

Tra i vari metodi il più diffuso divenne il JPEG che utilizza varie tecniche di compressione combinandole tra loro per ottenere compressioni molto elevate. Tra le tecniche utilizzate quella responsabile della maggior compressione (e della perdita di qualità) è la trasformata discreta del coseno la quale converte i punti dello schermo nella loro equivalente rappresentazione nel dominio della frequenza. Il segnale risultante è formato da segnali a bassa frequenza e segnali ad alta frequenza: i segnali a bassa frequenza rappresentano le zone di colore uniformi dell’immagine mentre le componenti ad alta frequenza rappresentano i particolari dell’immagine e i disturbi di quantizzazione. La compressione JPEG provvede a salvare le componenti a bassa frequenza e una parte delle componenti ad alta frequenza. Più si incrementa la qualità più componenti vengono salvate e nel contempo più il file diventa grande.

Il successo dello standard JPEG spinse molte società e consorzi a sviluppare soluzioni basate sulla perdita di compressione, ma con fattori di compressione maggiore del JPEG a parità di qualità ottenuta. Questi formati fanno uso di tecniche matematiche molto avanzate come la compressione frattale o quella basata sulle trasformate Wavelet (JPEG 2000).

Tra i formati lossy abbiamo:

– jpeg;
– gif (per immagini con più di 256 colori si ottiene una compressione lossy poiché vengono eliminate la maggior parte delle sfumature di colore).


Nell’ambito di un progetto di lettura ottica documentale, che algoritmi di compressione è conveniente utilizzare?

Poiché l’obiettivo della lettura ottica è estrarre il maggior numero di informazioni possibile con la massima accuratezza possibile, è bene avvalersi in fase di scansione di algoritmi conservativi (senza perdita, Lossless) così da far sì che il software disponga di tutte le informazioni utili ad effettuare una corretta decodifica. Qualora i documenti siano acquisiti in bianco e nero, si raccomanda di effettuare le scansioni in formato TIF, con compressione di tipo G4; in caso di documenti da acquisire in scala di grigi o a colori, l’ideale è acquisire in formato TIF con compressione LZW. Si tratta ovviamente di suggerimenti non vincolanti, ma che possono contribuire all’ottenimento di risultati ancora più soddisfacenti.

Una volta elaborata l’immagine dal software OCR, sarà quindi possibile salvarla in altri formati implementando diversi algoritmi di compressione: ad esempio, sarà possibile salvare documenti a colori in formato JPG, o in formato PDF con compressione JPG, o in qualsiasi altro formato, con o senza compressione. E’ bene accertarsi che la soluzione di data-capture prescelta includa specifiche funzionalità per configurare in dettaglio le caratteristiche dell’immagine da salvare, in modo da non dover richiedere ulteriori elaborazioni in applicazioni software a valle.