La codifica JPEG dovrebbe tenere conto della gamma?


11

Quando un'immagine viene codificata mediante JPEG, i pixel RGB vengono prima codificati in YUV, quindi i canali UV vengono sottocampionati. Prima di eseguire effettivamente il DCT e codificare i coefficienti, JPEG non corregge la gamma del canale Y. È corretto? Non dovremmo determinare i coefficienti DCT che influenzeranno maggiormente il nostro risultato visualizzato?


Non lo so, ma certamente ha senso non correggere la gamma.
joojaa,

Non sto pubblicando questo come risposta poiché non sono fiducioso in esso, ma la percezione della luminosità della visione umana non è lineare. In effetti, sRGB fa un ottimo lavoro nel compensare ciò e nel dare la massima precisione nelle aree che contano. Quindi potresti scoprire che la correzione gamma prima di comprimere il luma potrebbe effettivamente produrre risultati peggiori.
yuriks,

AFAIK, gli standard video assumono R'G'B ', cioè. uno spazio cromatico non lineare, quando si applica la trasformazione del colore 3x3 a / da YCbCr. In un'applicazione come il video in cui si desidera massimizzare la qualità per bit, non ha senso usare linear. Penso che le sezioni 27 e 29 delle Domande frequenti sul colore di Charles Poyton lo esprimano più chiaramente: poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC27
Simon F

"Video demysified" dice anche: "YCbCr è lo spazio colore originariamente definito da BT.601 e ora utilizzato per tutti i formati video dei componenti digitali .... La notazione tecnicamente corretta è Y'Cb'Cr 'poiché tutti e tre i componenti sono derivato da R'G'B '. "
Simon F,

L'esponente gamma è memorizzato in dati exif JPEG. la maggior parte dei software lo ignora totalmente. ma puoi supporre che dopo aver decodificato un jpeg sia già nello spazio gamma, quindi non c'è alcuna conversione da fare prima di inviare il valore rgb sul buffer di visualizzazione.
v.oddou,

Risposte:


2

Secondo Wikipedia (inserire l'accuratezza del disclaimer standard RE):

JPEG non definisce quale codifica colore deve essere utilizzata per le immagini. JFIF definisce il modello di colore da utilizzare: Y per scala di grigi o YCbCr come definito da CCIR 601.

YCbCr è un formato non lineare. Come ho detto prima, "Video Demysified" afferma:

"YCbCr è lo spazio colore originariamente definito da BT.601 e ora utilizzato per tutti i formati video dei componenti digitali. .... La notazione tecnicamente corretta è Y'Cb'Cr 'poiché tutti e tre i componenti sono derivati ​​da R'G'B '."

e afferma Charles 'Poynton's Color FAQ

I sistemi video approssimano la risposta alla luminosità della visione usando segnali R'G'B 'ciascuno soggetto a una funzione di potenza di 0,45.

Con la compressione cerchiamo la migliore rappresentazione visiva per bit e, poiché l'occhio non è lineare in questo modo, ha senso usare rappresentazioni non lineari.


Da questi dettagli, a quanto ho capito, JPEG si aspetta che i valori RGB di input vengano codificati in modo tale che il display applichi una funzione di alimentazione sul display. Al fine di ricreare quei valori RGB specifici, essi dovrebbero non essere corretta prima codifica.
Mokosha,

1
Il problema nel dichiararlo in quel modo è che è un po 'ambiguo. Dovremmo probabilmente affermare che, se i tuoi dati "RGB" sono, in effetti, R'G'B '(e supponiamo che sRGB rientri in quella categoria), non dovresti modificare i valori prima di applicare R'G'B' => Matrice YCbCr. Se, tuttavia, i dati sono stati, ad esempio, calcolati con un renderer (quindi possibilmente lineare), elaborati usando il downscaling (che dovrebbe essere fatto in uno spazio lineare) o, diciamo, catturati (e ripuliti) con un CCD (che io think is linear), quindi deve essere rimappato prima della compressione JPEG.
Simon F,

7

La risposta breve è "no", per motivi trattati nella nota di Alvy Ray Smith, Gamma Correction . La gamma non riguarda la non linearità nella percezione umana, riguarda la non linearità nei dispositivi di visualizzazione (e, suppongo, anche i dispositivi di acquisizione).

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.