So che un'immagine a 24 bit dedica 8 bit ciascuno per R, G e B. È solo per lo spazio colore RGB. Nello spazio colore YCbCr per un'immagine JPEG a 24 bit, come vengono distribuiti i bit?
So che un'immagine a 24 bit dedica 8 bit ciascuno per R, G e B. È solo per lo spazio colore RGB. Nello spazio colore YCbCr per un'immagine JPEG a 24 bit, come vengono distribuiti i bit?
Risposte:
Esistono alcuni formati per YCbCr. in generale, l'occhio è più sensibile ai cambiamenti di luminanza (Y, luminosità) che ai cambiamenti di crominanza (Cb, Cr, colore). Pertanto, è possibile cancellare alcune informazioni di crominanza mantenendo la qualità dell'immagine.
Pertanto, il formato più "costoso" è 4: 4: 4, dove per ogni componente luma (Y) ci sono 1 differenza rossa (Cr) e una differenza blu (Cb).
Quindi, applicando il principio che ho citato, ci sono 4: 2: 2 dove per ogni 2 componenti Y ci sono 1 Cb e 1 Cr. E va anche oltre a 4: 1: 1 e 4: 2: 0, ecc. Maggiori informazioni qui .
Un JPEG può iniziare con 8 bit per canale R, G e B, ma quando è memorizzato nel JPEG è memorizzato in modo molto diverso, dove non esiste una vera "profondità di bit", ma i valori sono memorizzati come coefficienti di frequenza di una data precisione.
In JPEG ciò che è più rilevante è il tasso di quantizzazione , che influenza la quantità di informazioni che viene gettata via durante la fase di quantizzazione della compressione e quindi la precisione di ciascun coefficiente. Questo tasso di quantizzazione viene impostato dall'impostazione "qualità" quando si salva un JPEG in Photoshop. Tuttavia, non è correlato alla profondità in bit come in un'immagine raster e si potrebbe anche dire che un'immagine JPEG non ha una profondità in bit mentre è in formato JPEG, anche se i codificatori / decodificatori JPEG iniziano con / terminano con un 24 bit immagine raster.
L'altro fattore principale rilevante per il salvataggio di un JPEG è il tipo di sottocampionamento cromatico . In un JPEG, hai la possibilità di dimezzare la risoluzione orizzontale, o orizzontale e verticale, dei canali di colore (Pr e Pb) rispetto al canale di luminanza (luminosità). Durante la decompressione, i canali di colore sono interpolati e nella maggior parte dei soggetti fotografici non fa molta differenza.
Ecco un breve riassunto di come un'immagine viene trasformata in JPEG.
I valori RGB vengono convertiti in valori Y, Pb, Pr. Lo spazio colore YPbPr è più adatto per una compressione efficiente perché mantiene le informazioni sulla luminanza, che trasportano il maggior numero di dettagli, in un solo canale. Questa conversione è una semplice operazione aritmetica che è perfettamente reversibile, a parte se si verificano errori di arrotondamento.
Se si utilizza qualsiasi campionamento cromatico (in altre parole, utilizzando qualcosa di diverso dalla modalità 4: 4: 4), la risoluzione verticale e / o orizzontale dei canali Pb e Pr viene dimezzata. Pertanto, questi canali avranno dimensioni di pixel diverse rispetto al canale di luminanza. Ciò porta alla perdita permanente della risoluzione nei canali di colore.
Per ogni canale, l'immagine è divisa in blocchi di 8 pixel per 8 pixel, che fornisce 64 valori lineari per ciascuno di tali blocchi in ciascun canale. Se un canale non è un multiplo di 8 pixel in una delle due dimensioni, i pixel del bordo vengono ripetuti (e verranno eliminati durante la decompressione), quindi la compressione JPEG è sempre più efficiente con dimensioni multiple di 8 pixel o 16 se si tiene conto nel sottocampionamento cromatico).
I 64 valori in ciascun blocco subiscono una trasformazione dal dominio spaziale al dominio della frequenza, in questo caso chiamato trasformazione del coseno discreta. Si finisce con 64 coefficienti, ognuno dei quali rappresenta l'ampiezza di una particolare mappa di frequenza sull'area presa da quel blocco. Il primo valore è la frequenza più bassa che è effettivamente il valore medio di tutti i pixel, fino agli ultimi valori che descrivono la componente di frequenza più alta del blocco. Tutti i valori precedenti si discostano molto di più e sono più importanti per l'aspetto dell'immagine finale rispetto ai valori successivi in un blocco. Questa operazione è perfettamente reversibile se si utilizza una precisione sufficiente.
Quindi c'è il passaggio di quantizzazione, in cui ciascuno dei 64 coefficienti che hai ottenuto nel passaggio precedente è diviso per un numero (chiamato fattore di quantizzazione), e il resto viene eliminato. Questo è il punto in cui la precisione dei campioni è maggiormente influenzata, ma è qui che si ottengono enormi risparmi di spazio da JPEG rispetto alla compressione senza perdita. Poiché tutto è nel dominio della frequenza dalla trasformazione precedente, questa perdita di precisione fa del suo meglio per preservare la qualità dell'immagine percettiva rispetto alla semplice riduzione della profondità in bit / precisione dei pixel prima di questa trasformazione. Il contrario di questa procedura è semplicemente quello di moltiplicare per lo stesso numero per cui hai diviso i coefficienti, ma ovviamente da quando hai buttato via i resti, finisci con meno precisione dei coefficienti. Ciò comporta una perdita permanente di qualità,
Dopo questa quantizzazione è tipico che molti dei coefficienti meno significativi successivi siano pari a zero, quindi questi vengono eliminati. Quindi una routine di codifica a lunghezza variabile (senza perdita di dati) codifica tutti i coefficienti rimanenti in modo efficiente, anche se ognuno può utilizzare un diverso numero di bit.
È impossibile affermare che un determinato fattore di quantizzazione equivale a una certa profondità di bit poiché la quantizzazione non fornisce bande come quando si riduce la profondità di bit, ma invece fornisce una perdita percettiva complessiva nei dettagli, a partire dalle parti in cui l'avresti notato meno perché ha un'ampiezza così bassa per la sua frequenza.
La rappresentazione del chroma (Cb Cr) in canali separati dalla luma (Y) ha un altro effetto positivo sulla compressione. La maggior parte delle informazioni visibili si trova nel canale di luminanza. Gli occhi umani tollerano sia una risoluzione spaziale inferiore sia una quantizzazione più aggressiva nei canali cromatici. Quindi un'immagine compressa in modo aggressivo può finire per consumare circa il 10% dello spazio file per Chroma, e il resto per Luma, e comunque avere un aspetto decente.
Alla fine della giornata è ancora una compressione con perdita di dati.
Circa 8 bit per ciascun canale, ma esistono diversi modi leggermente diversi per farlo. I dettagli sono riportati nell'articolo di Wikipedia su YCbCr .