Codifica dei coefficienti AC Codifica dei coefficienti AC La DCT e la quantizzazione tendono a produrre blocchi di coefficienti con molti zeri. Esempio, con la tabella di quantizzazione predefinita: 56 7 7 4 2 1 1 0 4 6 5 3 2 1 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Con una codifica opportuna, è possibile rappresentare in modo compatto i coefficienti nulli
Zig-zag order Codifica dei coefficienti AC I coefficienti nulli si trovano prevalentemente per le componenti in alta frequenza Nello standard JPEG, i coefficienti vengono riordinati seguendo un percorso a zig-zag che tende a raggruppare i coefficienti nulli Risultato sul blocco di coefficienti mostrato prima: (-56) -7-4 1 6 7-4 -5-2 0 0 0 2 3 2-1 -2-1 0 0 0 0 0 0 0 0 1 1 0 0...
Zig-zag order Codifica dei coefficienti AC Il riordinamento tende a produrre una sequenza con Coefficienti nulli raggruppati Coefficienti nulli alla fine Per codificare la sequenza in modo efficiente, si memorizzano soltanto i coefficienti non nulli. Prima di ogni coefficiente si inserisce un simbolo (indicato con RRRR) che indica il numero di coefficienti nulli eliminati Esempio di run-length encoding Gli zeri alla fine della sequenza vengono sostituiti da un simbolo di end of block (EOB)
Codifica Codifica dei coefficienti AC I coefficienti AC hanno solitamente valori prossimi allo zero. I numeri più grandi (in valore assoluto) appaiono con probabilità bassa Per codificare questi valori in modo efficiente, si utilizza un procedimento analogo a quello utilizzato per i coefficienti DC differenziali. Ogni coefficiente AC è dunque rappresentato da una terna di valori: runlength + size + amplitude Le coppie di simboli (RRRR, SSSS) vengono codificate in modo efficiente utilizzando un codice di Huffman. Un codice apposito è usato per indicare il simbolo EOB
Progressive DESCRIZIONE DELLO STANDARD JPEG
Progressive
Progressive Lo standard prevede 4 diversi modes of operation. Non è richiesto che i software li implementino tutti 1 Sequential DCT-based 2 Progressive DCT-based 3 Lossless 4 Hierarchical Il procedimento utilizzato più comunemente, e descritto in precedenza, è il Sequential DCT-based
Progressive
Baseline JPEG Progressive è molto ampio, e raramente un decodificatore ne implementa tutte le funzioni. È stato definito un sottoinsieme di funzioni che ogni decodificatore dovrebbe supportare: baseline process
Progressive Progressive Nella modalità sequential, i blocchi DCT vengono codificati e trasmessi uno dopo l altro. Nelle immagini a colori, le diverse componenti vengono alternate tra di loro (interleaving). Se il file JPEG viene trasmesso attraverso un canale di comunicazione lento (esempio: immagini in una pagina web), il decodificatore può già visualizzare le prime righe dell immagine prima che il download sia completato
Progressive Progressive In alternativa, è possibile trasmettere prima una porzione dei coefficienti AC (spectral selection), oppure i bit più significativi (successive approximation), o combinazioni miste: modalità progressive Il decodificatore è in grado di visualizzare rapidamente un anteprima con qualità ridotta