JPG- JPG
JPEG: acronimo di Joint Photographic Experts Group (FormatoISO standard 10919). Algoritmo di compressionelossy (con perdita) per le immagini, indicato per memorizzare immagini fotografichea tono continuo in Truecolor (224 = 16.777.216 colori possibili per pixel).Se la compressione JPEG è alta si perde molto in termini di qualità dell'immagine,anche se si ottine una dimensione del file difficilmentesuperabile con altri formati. Viceversa se la compressione è bassa, ledimensioni aumentano. Spetta all'utente trovare il giusto compromesso tra qualità edimensione, con programmi di fotoritocco o visualizzazione quali p.e. Photoshop,Adobe e ACDSee, ACD Systems. Schema 1  |  |  |  | Figura 1 Qualitá 10 1.443 byte | Figura 2 Qualitá 30 2.166 byte | Figura 3 Qualitá 60 3.826 byte | Figura 4 Qualitá 80 6.216 byte | | Schema 2  | Elevando l'indice di compressione si abbassa ovviamente l'indice di Qualità (vedi schema 1, figura 1). Nel grafico dello schema 3, si dimostra che il guadagno in termini di byte, su questa immagine test, è superiore per i valori alti dell'indice di Qualità (p.e. da 100 a 90) e via via sempre meno. Invece da 20 a 10 si guadagna molto in termini di byte ma l'immagine degenera (vedi figura 1 schema 1). (*) I valori sono stati ottenuti facendo il rapporto tra un valore e il successivo, in ordine decrescente (p.e. 1.404 = 12.132/8.641). Inoltre i guadagni non sono assoluti ma relativi all'immagine test, e quindi solo indicativi. | Schema 3 | Note: 1) Dai dati raccolti si deduce che non c'è una proporzione diretta trale dimensioni dei file e la Qualità (compressioni). Le dimensioni deifile hanno una crescita costante al crescere della qualità. 2) La stessa immagine memorizzata in formato TIFF occupa 31.764 byte. I rapportidi compressione (approssimativi) tra il formato TIFF e JPEG risultano essere: 22:1 figura 1, 15:1 figura 2, 8:1 figura 3, 5:1 figura 4. 3) Il formato JPEG non è consigliato per memorizzare disegni al trattoo con scarse sfumature come grafici e tabelle. Per esempio, su linee sottiliin contrasto con lo sfondo (p.e. nero su bianco) si presenterebbero forti sbavature.Per questo tipo di immagini si consiglia il formato GIF. 4) Le compressioni sono migliori per le immagini a colori rispetto a quelle inscala di grigio. Cfr. Le operazioni di compressione per il JPEG (più sotto). 5) L'immagine è quella di Lena Sjööblom, apparsa nel novembredel 1972 su Playboy Magazine ed utilizzata dai ricercatori del JPEG. Si riportano altre quattro immagini studiate da Nicola Veleda con il grafico riassuntivo su 3 compressioni JPEG e una compressione GIF. I dati del grafico sono su file Excel di Microsoft. LE OPERAZIONI DI COMPRESSIONE JPEGFASE 1) Preparazione dei blocchiPoichè l'occhio umano avverte meno le differenze tra colori rispetto aquelle di luminosità, si sfrutta questa limitazione per migliorare lacompressione delle immagini. Inizialmente viene trasformato lo spazio dei colori RGB (24 bit) in YCbCr (oYUV), con Y, Cb e Cr matrici a 8 bit con le stesse dimensioni dell'immagine RGB.Y contiene coefficienti riguardanti la Luminanza, Cb e Cr invece quelliriguardanti la Crominanza rispettivamente blu e rossa, nel seguente modo: Y = 0,299R + 0,587G + 0,114B Cb = −0,1687R − 0,331G + 0,5B (crominanza blu) Cr = 0,5R − 0,419G − 0,081B (crominanza rossa) Supponendo che l'immagine originale RGB abbia dimensione 640x480 pixel, dopoquesto passaggio, sulle matrici Cb e Cr vengono calcolate le medie dei colorisu blocchi di 2x2 pixel, portando le due matrici alla dimensione 320x240. A ciascun coefficiente delle 3 matrici viene sottratto 128, portando l'intervallo[0..255] a [−128..127] per rendere più efficiente il calcolo al prossimopasso, poichè vengono portati a 0 molti dei valori medi. In questa faseun ipotetica immagine di 640x480 pixel viene ridotta di un fattore 2: 614.400bit (Cb) + 614.400 bit (Cr) + 2.457.600 bit (Y) = 1/2 × 7.372.800 bit(RGB).FASE 2) La Trasformata Discreta del Coseno (DCT) La funzione DCT qui descritta ha la proprietà di raccogliere le informazionipiù significative di un'immagine in pochi coefficienti. Si dividono le tre matrici in blocchi di 8 × 8 pixel, quindi per Y si avranno4800 blocchi, mentre pre U e V 1200 ciascuno. Se le dimensione della matrice non è divisibileper 8 si aggiungono delle copie dell'ultima riga o colonna in altezza o larghezza. Viene applicato per ogni elemento dei blocchi la DCT (vedi formula a fianco)che produce ancora 8x8 coefficienti. N = dimensione del blocco, 8 pixel. f(m,n) sono i valori in posizione m,n del blocco da trasformare. t(i,j) sono i valori DCT di posizione (i,j), con i,j=0..7. C(i,j) vale 1/N per C(0,j) e C(i,0), 2/N altrimenti. Quindi 1/8 nel primo casoe 1/4 nel secondo.Come per la Trasformata di Fourier, la DCT trasforma segnali dal dominio del tempo al dominio delle frequenze (vedi lenote sulla Trasformata di Fourier: dalla figura è possibile osservare come le onde acustiche possono essere rappresentate e studiate nel dominio del tempo oppure in quello delle frequenze — Spettroscopio — ). La Trasformata ci permette di passara da una all'altra rappresentazione. Gli elementi ottenuti informano sulla potenza spettrale, presente per ogni frequenza spaziale (livello di dettaglio). Per approfondire quanto appena espresso, un'immagine può essere pensata composta dalla somma di tante variazioni di luminosità di forma cosinusoidale, di diversa frequenza (spaziale), fase e intensità. Le alte frequenze definiscono i dettagli dell'immagine mentre quelle basse le ombreggiature più estese. Ricapitolando, grazie a questa trasformazione è possibile distinguerele alte frequenze da quelle basse. Vedremo nella prossima fase come vengono smorzatele alte frequenze (coefficienti raccolti nella parte bassa a destra nel blocco8x8), le quali informano sui dettagli dell'immagine. Diversamente invece verrannosostanzialmente conservate le basse frequenze (coefficienti nella parte altapiù a sinistra). Nella Fase 2 infatti, la sola DCT non comportaperdite di informazione degne di nota, nonostante degliarrotondamenti sui coefficienti trasformati.FASE 3) La Quantizzazione In questa fase ogni elemeto di ciascun blocco viene diviso per un coefficientepresente nella Tabella di quantizzazione (fig. a fianco) sempredi dimensione 8x8. L'effetto dell'operazione di divisione è quello diarrotondare i valori prodotti dalla DCT, portando a zero quelli prossimi allozero, smorzare le alte frequenze e arrotondare con maggiore precisione le frequenzebasse, utilizzando una Tabella di quantizzazione per la luminanza e una opportunaper le due crominanze. Questo perché, come si è già dettoall'inizio, è maggiore la sensibilità visiva in luminosità piuttostoche per i colori, inoltre per entrambe le tabelle di quantizzazione vengono sceltiopportuni valori per arrotondare con meno precisione i coefficienti delle altefrequenze rispetto a quelle basse.Approfondimento: l'operazione di divisione e di arrotondamento del risultato per alti coefficienti nella Tabella di quantizzazione definiscono una tabella DCT quantizzata con valori notevolmente meno accurati nella parte bassa a sinistra. Esempio: supponiamo che nel blocco in posizione (4,1) ci sia il coefficiente 9 (DCT), mentre 4 è il coefficiente corrispondente nella Tabella di quantizzazione. 9÷4=2,25, 2 arrotondando. In fase di Dequantizzazione per ricostruire l'immagine (decodifica JPEG) si ha: 2×4=8. Quindi il coefficiente DCT non è più 9 ma 8. È evidente che l'errore aumenta all'aumentare del coeff. di quantizzazione a causa degli arrotondamenti. Anche supponendo che la Tabella di Quantizzazione abbia tutti i coefficienti a 1, come risultato della divisione tra gli elementi del blocco e 1, otterremo gli stessi coefficienti. Ma la Fase 3 apporterebbe comunque una perdita di informazioni, a causa degli arrotondati agli interi (cfr. arrotondamento Fase 2). Le Tabelle di Quantizzazione non sono standard ma differiscono dal produttore di software, i gradi di compressione poi dipendono da essa. Qualitativamente se si ricostruisse l'immagine considerando le basse frequenze,risulterebbe priva di dettagli, con zone d'ombra e di luminosità notevolmentesfuocate. Diversamente considerando quelle alte si evidenzierebbero i contornie i dettagli, mentre le parti sfumate verrebbero eliminate, quindi tutte di unastessa tonalità (si pensi all'effetto rilievo di un programma di fotoritocco).Per analogia si osservi l'approssimazione di un onda quadra considerando solola prima armonica (fig.8, Seriedi Fourier).FASE 4) Codifica [a cura di Nicola Veleda] La fase finale del processo JPEG è la codifica dell'immagine quantizzata.La codifica JPEG consiste in tre differenti passi per comprimere l'immagine.Se i valori del blocco vengono visti come un'onda acustica (con la posizione nel blocco in ascissa e il valore in ordinata), l'elemento del blocco in posizione (0,0) detto coefficiente DC rappresenta la componente continua dell'onda (da qui il nome DC, Direct Current o corrente continua); gli altri valori del blocco sono relativi ad esso. Ai fini del calcolo, il coefficiente DC è il valore massimoin ampiezza presente nel blocco. Il primo passo modifica il coefficiente DC dal valore assoluto ad un valore relativo al coefficiente DC del blocco precedente. Ad esempio, se i coefficienti DC di due blocchi adiacenti sono 227 e 205, il secondo diventerà -22. I blocchi adiacenti solitamente hanno un elevato grado di correlazione, così la codifica del coefficiente DC come differenza dal coefficiente precedente tipicamente produce un piccolissimo numero; gli altri elementi, di valori di per sé già contenuti,non vengono modificati. Il secondo passo ordina gli elementi del blocco utilizzando la sequenza a zig-zag (**). Una ragione per la quale l'algoritmo JPEG comprime così efficacemente è per il fatto che un bel numero di elementi del blocco DCT vengono arrotondati a zero durante la fase di quantizzazione, e tendono ad ammassarsi nell'angolo in basso a destra del blocco. Un metodo per condensare tutti questi zero nella codifica è appunto quello di ordinare gli elementi non per righe e colonne, ma tramite una sequenza che dall'angolo superiore sinistro vada a quello inferiore destro disegnando unaserpentina in diagonale. Una volta abbassato il valore del coefficiente DC e condensato gli zeri alla fine, il terzo e ultimo passo comprime la sequenza di elementi del blocco in una sequenza di bit tramite la codifica entropica, un mix tra le codifiche RLE (Run-Length Encoding) e Huffman. Questa codifica genera tre pezzi per ogni elemento del blocco: il numero di zeri consecutivi che lo precedono (Zero Run Length), il numero di bit da usare (Bit Count) e i bit di codifica (Amplitude). Lo Zero Run Length è una codifica RLE (Run-Length Encoding) per compattare gli zeri consecutivi in soli 6 bit: i primi due (00) identificano lo Zero Run Length, gli altri quattro indicano il numero di zeri consecutivi, fino ad un massimo di 16; se ce ne sono di più, si inseriscono altri Zero Run Length. Ad esempio, 000101 codifica 6 zeri consecutivi. Bit Count e Amplitude sono invece una codifica Huffman. Il Bit Count indica di quanti bit è composta la codifica dell'elemento; è costituito da 3 o 4 bit. La tabella identifica il suo valore a seconda del valore dell'elementodel blocco. Ad esempio, per -476 il Bit Count è 1110. | Valore elemento | Numero di bit | Bit Count | | -1, 1 | 1 | 010 | | -3, -2, 2, 3 | 2 | 011 | | -7..-4, 4..7 | 3 | 1000 | | -15..-8, 8..15 | 4 | 1001 | | -31..-16, 16..31 | 5 | 1010 | | -63..-32, 32..63 | 6 | 1011 | | -127..-64, 64..127 | 7 | 1100 | | -255..-128, 128..255 | 8 | 1101 | | -511..-256, 256..511 | 9 | 1110 | | -1023..-512, 512..1023 | 10 | 1111 | Amplitude è la codifica dell'elemento in formato binario, utilizzando un numero di bit definito dal Bit Count: se il valore dell'elemento è negativo, verrà rimappato in codifica con valori positivi. Ad esempio, i valori [-511..-256] verranno rimappati in [0..255], di modo che -476 avrà come codifica 000100011 (-476+511=35 in decimale). (*) N.d.A. La DCT concentra l'energia nell'angolo in alto a sinistra del blocco, in cui il primo elemento, indicato 'coefficiente DC' (da Direct Current) è la componente continua (costante), mentre tutti i restanti 63, indicati AC (da Alternate Current) presentano variazioni intorno al valore DC. (**) Nell'esempio di tabella quantizzata gli 0 consecutivi memorizzati con il metodo a zig-zag sono 38, mentre contandoli da sinistra verso destra e dall'alto in basso sono solo 31.
Maggiori informazioni su : JPG?
Components Engine è la soluzione innovativa per gestire la composizione, la revisione, la pubblicazione digitale interattivo su web e su cd rom del catalogo dei pezzi di ricambio di un prodotto complesso. Offre altresì anche la possibilità di generare il catalogo cartaceo con la possibilità di definire e “disegnare” il proprio layout. Components Engine è una soluzione software estremamente personalizzabile e scalabile, che permette, partendo da un file in formato Autocad, di generare mappe sensibili dei disegni tecnici (esplosi), pubblicarle via Web e associarle al catalogo ricambi.
L’applicazione consente all’utente di ciccare direttamente sull’immagine del pezzo richiesto, per caricare il carrello acquisti o prenotazioni del ricambio.
|