Come viene rappresentato lo spazio colore YCbCr in un'immagine JPEG?


9

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:


3

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 .


Questi schemi sembrano riferirsi al campionamento di frequenza per i video, non alla codifica JPEG.
whuber

@whuber: sono spesso usati nella discussione della codifica video, ma JPEG supporta anche la luminanza con il doppio della risoluzione della crominanza. Nel caso di JPEG, è facoltativo, ma chroma può essere full-res o half-res.
Jerry Coffin,

1
GIMP utilizzerà il sottocampionamento Chroma per impostazione predefinita quando si salva un JPEG, sebbene sia facile ignorarlo. Non ricordo se questo vale anche per Photoshop.
thomasrutter,

@thomasrutter, Photoshop seleziona il sottocampionamento in base all'impostazione della qualità scelta. Non è un'opzione indipendente.
Mark Ransom,

I numeri, a proposito, si riferiscono al numero di campioni per 4 pixel orizzontali per Y, Pr e Pb. Quindi 4: 4: 4 significa che tutti e tre i canali campionano ogni pixel; 4: 2: 2 significa che i canali Pr e Pb campionano solo ogni secondo pixel in orizzontale; 4: 1: 1 (non credo che questo sia mai usato in fotografia, solo in video) significa che Pr e Pb campionano solo ogni quarto pixel in orizzontale. 4: 2: 0 è una deviazione speciale da questa regola. NON significa che non esiste un canale Pb. Ciò significa che i canali Pr e Pb sono dimezzati in direzione sia orizzontale che verticale, non solo orizzontale.
thomasrutter,

24

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.

  1. 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.

  2. 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.

  3. 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).

  4. 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.

  5. 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à,

  6. 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.


2
Penso che il mio cervello sia appena esploso.
Nick Bedford,

Il sottocampionamento cromatico non comporta solo una "perdita di risoluzione". Introduce artefatti molto evidenti soprattutto nel canale rosso.
Mark Ransom,

@Mark Ransom quei manufatti non sono altro che il risultato di dimezzare la risoluzione nei canali di colore e dell'interpolazione necessaria per tener conto di ciò dopo la decompressione. Non dovrebbe mai produrre alcun "artefatto evidente" diverso da quello causato dalla sfocatura della risoluzione, sebbene possano esistere alcuni decodificatori che rovinano questa interpolazione o eseguono un'interpolazione molto vicina al vicino più vicino, con conseguente blocco che è abbastanza evidente per il rosso dettagli sul nero (o magenta sul blu, ecc.). Ad esempio, questo era un problema comune su alcuni dei primi lettori DVD.
thomasrutter,

5
Non credo di aver mai visto una spiegazione migliore, più facile da capire della compressione delle immagini jpeg - o davvero con perdita di dati -. definito +1
jay.lee

Spiacenti, non intendevo implicare che il sottocampionamento causi gli artefatti. È solo che gli errori esistenti dalla quantizzazione vengono fatti esplodere 2 volte, rendendoli molto più visibili. Penso che sia importante sapere che l'effetto visibile del sottocampionamento è qualcosa di più di una semplice sfumatura aggiunta.
Mark Ransom,

1

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.


-1

Circa 8 bit per ciascun canale, ma esistono diversi modi leggermente diversi per farlo. I dettagli sono riportati nell'articolo di Wikipedia su YCbCr .


Questo è stato affermato nella domanda. Fornire una risposta più dettagliata.
Nick Bedford,

@Nick Dov'era "questo" indicato nella domanda, esattamente? La domanda, così com'è ora, dice "Nello spazio colore YCbCr per un'immagine JPEG a 24 bit, come vengono distribuiti i bit?" Ho detto come sono distribuiti, supponendo - come chiunque capisca la domanda - che i canali sono Y, Cb e Cr. La mia risposta è un riassunto corretto dell'articolo di Wikipedia. La politica di SE è quella di fornire riassunti piuttosto che copiare materiale all'ingrosso (sebbene sia facile, lo ammetto, fornire alcuni esempi limite di lunghe citazioni altrove su questo sito).
whuber

Penso che questo tipo di risposta, anche se non eccezionale come una spiegazione completa, sia molto meglio di uno che taglia e incolla da Wikipedia, o che parafrasa un intero articolo di Wikipedia. Se Wikipedia è buona, parlarne è utile. E se è tutto ciò che la tua risposta sta contribuendo, essere in anticipo e semplicemente dare un breve riepilogo e un link è esattamente la cosa giusta da fare.
Leggi il mio profilo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.