| Il futuro della compressione digitali delle immagini: jpeg2000 |
|
|
| Scritto da Frank Gentile | |
|
Con la diffusione della rete internet, si è resa più necessaria l'adozione di sistemi di compressione dei contenuti multimediali, quali foto, audio e video. Da sempre il sistema più utilizzato per la compressione delle immagini è il jpg. La codifica jpg funziona suddividendo le immagini in blocchi, di dimensione 8x8 pixel, a questi blocchi viene applicata la trasformata discreta del coseno (DCT).
Questa tecnica permette di eliminare una certa quantità di informazioni, a discapito del dettaglio e di riprodurre i pixel attraverso una funzione matematica. Una foto può essere compressa in jpg con diversi livelli di qualità, ad ogni livello di qualità varia la quantizzazione della DCT, ovvero il numero di parametri utilizzati. I dati inoltre vengono ulteriormente compressi con altre tecniche, senza però degradare ulteriormente l'immagine (un pò come la compressione zip). Il difetto + percepibile della compressione jpg è la formazione di blocchi visibili in caso di alti rapporti di compressione. Ecco un esempio di immagine jpg molto compressa: ![]() Si notano chiaramente i blocchi di dimensione 8x8, questi risultano distinguibili perchè è stato usato un grado di quantizzazione basso, ovvero si memorizzano poche informazioni per blocco. Inoltre bisogna sapere che l'algoritmo di compressione jpg memorizza più parametri se le immagini sono complesse, pochi parametri se le immagini contengono colori più uniformi. Di conseguenza le immagini con colori uniformi occupano meno spazio rispetto a immagini ricche di dettagli. Fin quì abbiamo spiegato a grandi linee come funziona la compressione jpg, tutti sappiamo che è il formato più usato nel web, e permette di ottenere immagini di buona qualità in poco spazio. Basti pensare che un'immagine a 1024x768 a 24 bit (8 bit per canale) occupa 2.25 Mb, la stessa immagine compressa in jpg occupa mediamente 250 kb ad alta qualità. Ora diamo uno sguardo verso il futuro parlando del sistema di compressione jpg2000. La differenza sostanziale rispetto alla compressione jpg classica, è la funzione matematica di trasformazione che non è + la DCT, bensì la DWM cioè trasformata discreta wavelet. L'algoritmo di compressioe jpeg2000 non prevede più la suddivisione dell'immagine in blocchi, bensì la scomposizione delle informazioni di colore in diverse bande di frequenza (un pò come avviene per la compressione mp3). Ciascuna banda di frequenza viene trasformata mediante l'algoritmo DWM, e quantizzata. La quantizzazione differisce a secondo delle bande di frequenza (l'occhio umano è più sensibile a determinate frequenze) e a secondo del livello di compressione desiderato. Risultato: maggiore qualità delle immagini a parità di spazio utilizzato e eliminazione dei blocchi. Ma le parole servono a poco, i nostri lettori vogliono vedere i fatti! Ed è proprio questo il cuore di questo articolo. Mi sono armato di pazienza e ho fatto delle ricerche sul sito internazionale del jpg (http://www.jpeg.org) per cercare di trovare dei codec con i quali fare personalmente delle prove, e devo dire che i risultati sono sbalorditivi. Per prima cosa ho preso una piccola immagine (catturata dal mio desktop) e ho provato a confrontare gli algoritmi jpg e jpg2000 usando il plugin Pegasus per Adobe Photoshop. Ecco i risultati: Immagine originale: ![]()
jpg 47 Kb ![]()
jpg2000 47 Kb
jpg 38 Kb
jpg2000 38 Kb
jpg 17 Kb
jpg2000 17 Kb I risultati parlano da soli! Logicamente il confronto l'abbiamo fatto con valori di compressione elevati, poichè comprimendo poco le differenze non si notano, perchè il jpg è un algoritmo che da ottimi risultati a bassi rapporti di compressione. Però salta all'occhio come, diminuendo la dimensione dei file, il jpg denota la sgradevole visione di macroblocchi, mentre nel jpg2000 l'immagine risulta più sfocata, ma comunque con un dettaglio maggiore e senza blocchi. Le immagini sono state ingrandite al 200%. Ho eseguito altre prove utilizzando un immagine diversa (il mitico Kirk Hammett chitarrista dei metallica), per far vedere come aumentando la compressione il jpg2000 mantiene una qualità elevata, ed ecco i risultati:
Immagine originale
jpg 23 Kb
jpg2000 23 Kb
jpg 11 Kb
jpg2000 11 Kb
jpg 7 Kb
jpg2000 7 Kb
jpg 5 Kb
jpg2000 5 Kb
jpg 3 Kb
jpg2000 3 Kb Questa volta per le jpg ho usato il compressore della macromedia, che devo notare è migliore rispetto a quello del photoshop nei bassi rapporti di compressione. Cmq i risultati mostrano chiaramente che con il jpg2000 si riescono a ottenere immagini di dimensioni ridotte, senza effetto blocchi, anche se si nota una certa scalettatura dei contorni (dovuta sicuramente alla mancanza delle componenti ad alta frequenza) e sfocatura. Altri vantaggi del jpg2000 sono: possibilità di scalare la qualità facilmente, possibilità di vedere le immagini anche se i dati sono corrotti; per contro c'è da dire che l'algoritmo jpg2000 è decisamente pesante da elaborare rispetto ad altri algoritmi, anche se la potenza dei processori attuali rende il problema marginale per i pc (meno per i dispositivi portatili come le fotocamere). Inoltre bisogna ricordare che sono stati definiti dei formati mjpeg2000 per la compressione video e jp3d per immagini tridimensionali. Sicuramente restano margini di miglioramento per il jpg2000, la tecnologia è ancora in fase di sviluppo, e al momento neanche i browser supportano la visualizzazione di immagini jpg2000 (per visualizzarle in questa pagina le ho dovute riconvertire in jpg alta qualità). Devo però dire che i codec jpg2000 esistenti sono tutti a pagamento, anche se potrete trovare dei plugin per il vostro browser gratuiti. Onestamente mi auspico che la tecnologia si sviluppi ulteriormente, che vengano rilasciati codec gratuiti, ma a quanto pare gli interessi economici rallentano la diffusione di questo nuovo formato. by BenZ |










