5. Algoritmi Lossy

5.1 JPEG

JPEG [8]e' l'acronimo di Joint Photographic Experts Group, il nome della commissione che ha definito questo standard di compressione. I meccanismi di compressione, risultano  particolarmente adatti ad immagini contenenti un elevato numero di colori (immagini True Color), a toni di grigio e per la memorizzazione di immagini fotografiche o di disegni molto sfumati. Negli altri casi, come cartoons, forniscono risultati generalmente peggiori di altri formati, sia in termini di qualità sia di dimensione dei file.

L'algoritmo JPEG ottiene una buona compressione sfruttando le limitazioni conosciute dell'occhio umano. Infatti è stato progettato in modo che i pixel eliminati siano quelli meno percettibili, così se si trovano due pixel con minima variazione di luminosità vengono conservati, ma se si trovano due pixel con minima variazione di colore se ne conserverà uno solo.

Tuttavia JPEG, non usa un metodo fisso di compressione. E' possibile scegliere il grado di compressione che si desidera applicare a un'immagine, determinando in questo modo anche la qualità dell'immagine. Più si comprime un'immagine, più se ne riduce la qualità. JPEG può raggiungere rapporti di compressione molto alti, riducendo le immagini di circa un centinaio di volte rispetto alle originali; questo è possibile perché, l'algoritmo scarta i dati non necessari durante la compressione dell'immagine e per questo motivo la tecnica di compressione è definita lossy.

L'algoritmo di compressione opera seguendo i seguenti passi:

  1. si suddivide l'immagine in blocchi di 8x8 o 16x16
  2. si procede successivamente lavorando su ciascun blocco:
    1. si applica un'operazione matematica che coinvolge la "trasformata di Fourier" e che trasforma il blocco in uno composto da molti valori prossimi allo zero.
    2. si approssimano alcuni di questi valori proprio a zero, in base alla qualità che si è deciso di applicare durante la fase precedente alla compressione, generando una sequenza composta da numerosi zeri.
    3. Su tale blocco viene poi applicata una particolare compressione a zig-zag di tipo RLE e poi una di tipo Huffman (entrambi compressioni "lossless").
Nella fase della decompressione, si ripetono le fasi al contrario ottenendo, a causa dell'approssimazione introdotta, una sequenza che sarà leggermente differente da quella originale.

Da quanto appena discusso si nota che JPEG tratta solo immagini statiche, ma esiste un altro standard correlato per trattare filmati (immagini in movimento) MPEG.

5.2 MPEG

Lo sviluppo delle tecnologie video digitali ha reso possibile l'utilizzo delle tecniche di compressione video nelle telecomunicazioni (teleconferenza, video telefonia, ecc.). La definizione di un efficace algoritmo di compressione per sequenze video permette infatti di ridurre la mole di dati originaria, in modo da renderli più facilmente gestibili sia per la  trasmissione e che per la memorizzazione. Si è perciò resa necessaria la standardizzazione di tali tecniche di compressione.

Lo standard utlizzato per la compressione e trasmissione audio/video è MPEG [9], acronimo di Motion Picture Expert Group (il comitato di esperti che ne ha definite le specifiche).  L'attività dell' MPEG copre la compressione dati video, la compressione dati audio (in quanto ad una sequenza video è generalmente associato dell'audio) ed inoltre si occupa anche della sincronizzazione audio-video. Fin dall'inizio il lavoro dell'Mpeg si è sviluppato in tre direzioni distinte definite attraverso tre sigle numeriche, Mpeg 1, 2, 3. Ciascuna delle sigle indicava un diverso standard corrispondente a una diversa velocità di trasferimento.

MPEG-1
Mpeg 1 è il primo standard di codifica digitale elaborato. Il suo ambito di applicazione è essenzialmente quello dei dischi contenenti informazione video da riprodurre in locale. Questo formato definisce il flusso di bit per audio e video compressi in modo ottimale tale da riempire una larghezza di banda di 1.5 Mbit/s. Questo valore è stato scelto, poichè è il data rate dei CD audio e dei nastri DAT. Lo standard è suddiviso in 3 parti, video, audio e systems, dove systems sta per l'integrazione tra i flussi di dati audio e video, grazie ad un'opportuna etichettatura che permette la sincronizzazione dei due flussi. Inoltre nella fase 2 di Mpeg si definito uno stream per l'audio e il video dai 3 ai 10 Mbits/s. Grazie alla parte audio di questo standard è stato creato il formato MP3 per i file.

MPEG-2
Con Mpeg 2  si voleva rendere disponibile la codifica digitale per un trasferimento a distanza aggiungendo anche alcune funzioni nuove come il trasferimento in parallelo di più canali audio o lo zapping tra diversi flussi video. Mpeg2 è lo standard più utilizzato al mondo per la trasmissione televisiva via satellite e permette di ridurre lo spazio occupato dai filmati mantenendo comunque una buona qualità, infatti la qualità ottenuta è paragonabile a quella di un video VHS. Sia MPEG che MPEG2 richiedono una notevole mole di calcoli per la compressione e la decompressione. Fino ad oggi sono state proposte varie versioni per lo standard MPEG, alcune delle quali sono ancora in via di sviluppo. Per quanto riguarda invece gli obiettivi di Mpeg 3, questi sono stato raggiunti appotando semplici modifiche dello stesso Mpeg2.

MPEG-4
Mpeg4, disponibile dal 1997, sconvolge il concetto classico di audiovisivo, perchè più che trasferire una serie di quadri successivi si occupa di codificare degli oggetti audiovisuali definendo per ciascuno di questi il suo comportamento. Ogni oggetto può essere composto tanto da immagini di sintesi quanto da immagini tradizionali ma quello che più conta è che essendo una struttura di cui è descritto il comportamento esso può diventare oggetto di interazioni.
Per fare un esempio, più che codificare una successione di immagini che descrivono il comportamento di una persona all'interno di una stanza, Mpeg4 codifica l'intera stanza e l'intera azione della persona al suo interno rendendo così possibile all'utente di scegliere il proprio punto di visuale o decidere della presenza o assenza di certi elementi. Il grado di interattività deve venire di volta in volta definito.
 
 

5.2.1 MP3

Il formato di compressione audio utilizzato da MPEG è MPEG 1 Layer 3, o più semplicemente MP3, è particolarmente efficace nel comprimere audio senza perdite di qualità eccessive. Partendo da dati non compressi, per esempio files .wav, che memorizzano esattamente la forma dell'onda sonora di un rumore, un suono o una canzone. I dati audio, registrati come campioni, vengono compressi usando algoritmi che fanno affidamento sulla percezione dei suoni per misurare solamente quelle porzioni di informazione che l' orecchio umano non avrebbe comunque percepito (analogamente a cio' che JPEG fa con le immagini). Inoltre i dati vengono ulteriormente compressi con algoritmi matematici, ottenendo una notevole compressione e la possibilita' di registrare audio di ottima qualita' occupando molto meno spazio di quanto necessario per gli stessi dati memorizzati con altri formati (AIFF, WAVE ecc.). La compressione MP3 consente di ridurre lo spazio occupato fino a dodici volte: 4 minuti di musica, che in formato .wav occupano 42 Mb, in formato .mp3 possono occupare meno di 4 Mb.

Dal punto di vista tecnico,la compressione viene effettuata in due passaggi:

Durante la codifica percezionale, vengono scartati dalla forma d'onda tutti i dati superflui, non percepibili dall'orecchio umano, in base ad alcune considerazioni: Bisogna notare che, mentre la compressione percezionale è più efficiente nelle fasi musicali più dense di suoni, l'algoritmo di Huffman comprime meglio i passaggi semplici, le due fasi della codifica sono dunque complementari.