Wie wird der YCbCr-Farbraum in einem JPEG-Bild dargestellt?


9

Ich weiß, dass ein 24-Bit-Bild jeweils 8 Bit für R, G und B reserviert. Ist es nur für den RGB-Farbraum. Wie sind die Bits im YCbCr-Farbraum für ein 24-Bit-JPEG-Bild verteilt?

Antworten:


3

Es gibt einige Formate für YCbCr. Im Allgemeinen reagiert das Auge empfindlicher auf Änderungen der Luminanz (Y, Helligkeit) als auf Änderungen der Farbintensität (Cb, Cr, Farbe). Somit ist es möglich, einige Chroma-Informationen zu löschen, während die Bildqualität erhalten bleibt.

Somit ist das "teuerste" Format 4: 4: 4, wobei für jede Luma (Y) -Komponente 1 Rotdifferenz (Cr) und eine Blaudifferenz (Cb) -Komponente vorhanden sind.

Dann gibt es nach dem von mir erwähnten Prinzip 4: 2: 2, wobei für jede 2 Y-Komponente 1 Cb und 1 Cr vorhanden sind. Und es geht noch weiter zu 4: 1: 1 und 4: 2: 0 usw. Mehr Infos hier .


Diese Muster scheinen sich auf die Frequenzabtastung für Video zu beziehen, nicht auf die JPEG-Codierung.
Whuber

@whuber: Sie werden häufig zur Diskussion der Videokodierung verwendet, aber JPEG unterstützt auch die Luminanz mit der doppelten Auflösung der Chrominanz. Im Fall von JPEG ist dies jedoch optional - Chroma kann entweder in voller oder in halber Auflösung vorliegen.
Jerry Coffin

1
Das GIMP verwendet beim Speichern eines JPEG standardmäßig die Chroma-Unterabtastung, die jedoch leicht überschrieben werden kann. Ich kann mich nicht erinnern, ob dies auch für Photoshop gilt.
Thomasrutter

@thomasrutter, Photoshop wählt die Unterabtastung basierend auf der von Ihnen gewählten Qualitätseinstellung aus. Es ist keine unabhängige Option.
Mark Ransom

Die Zahlen beziehen sich übrigens auf die Anzahl der Abtastwerte pro 4 horizontale Pixel für Y, Pr und Pb. 4: 4: 4 bedeutet also, dass alle drei Kanäle jedes Pixel abtasten. 4: 2: 2 bedeutet, dass die Pr- und Pb-Kanäle nur jedes zweite Pixel horizontal abtasten; 4: 1: 1 (ich glaube nicht, dass dies jemals in der Fotografie verwendet wird, nur in Videos) bedeutet, dass Pr und Pb nur jedes vierte Pixel horizontal abtasten. 4: 2: 0 ist eine besondere Abweichung von dieser Regel. Dies bedeutet NICHT, dass kein Pb-Kanal vorhanden ist. Dies bedeutet, dass die Pr- und Pb-Kanäle sowohl in horizontaler als auch in vertikaler Richtung halbiert werden und nicht nur horizontal.
Thomasrutter

24

Ein JPEG kann mit 8 Bits pro R-, G- und B-Kanal beginnen, aber wenn es im JPEG gespeichert wird, wird es sehr unterschiedlich gespeichert, wobei es keine echte "Bittiefe" gibt, sondern Werte als Frequenzkoeffizienten mit einer bestimmten Genauigkeit gespeichert werden.

In JPEG ist die Quantisierungsrate relevanter , die beeinflusst, wie viel Information während der Quantisierungsphase der Komprimierung weggeworfen wird und wie genau jeder Koeffizient ist. Diese Quantisierungsrate wird durch die Einstellung "Qualität" festgelegt, wenn Sie ein JPEG in Photoshop speichern. Es hängt jedoch nicht mit der Bittiefe zusammen, wie in einem Rasterbild, und man könnte sogar sagen, dass ein JPEG-Bild im JPEG-Format keine Bittiefe hat, obwohl JPEG-Encoder / -Decoder mit einem 24-Bit beginnen / enden Rasterbild.

Der andere wichtige Faktor, der beim Speichern eines JPEG relevant ist, ist der Chroma-Sub-Sampling-Typ . In einem JPEG haben Sie die Möglichkeit, die horizontale oder sowohl die horizontale als auch die vertikale Auflösung der Farbkanäle (Pr und Pb) relativ zum Luminanzkanal (Helligkeit) zu halbieren. Beim Dekomprimieren werden die Farbkanäle interpoliert und bei den meisten fotografischen Motiven macht dies keinen großen Unterschied.

Hier ist eine grobe Zusammenfassung, wie ein Bild in ein JPEG umgewandelt wird.

  1. RGB-Werte werden in Y-, Pb- und Pr-Werte konvertiert. Der YPbPr-Farbraum eignet sich besser für eine effiziente Komprimierung, da die Luminanzinformationen, die die meisten Details enthalten, nur in einem Kanal gespeichert werden. Diese Konvertierung ist eine einfache arithmetische Operation, die perfekt umkehrbar ist, abgesehen von Rundungsfehlern.

  2. Wenn Sie ein Chroma-Subsampling verwenden (dh einen anderen Modus als den 4: 4: 4-Modus verwenden), wird nur die vertikale und / oder horizontale Auflösung der Pb- und Pr-Kanäle halbiert. Somit haben diese Kanäle andere Pixelabmessungen als der Luminanzkanal. Dies führt zu einem dauerhaften Auflösungsverlust in den Farbkanälen.

  3. Für jeden Kanal wird das Bild in Blöcke von 8 mal 8 Pixeln aufgeteilt, was 64 lineare Werte für jeden solchen Block in jedem Kanal ergibt. Wenn ein Kanal in keiner der beiden Dimensionen ein Vielfaches von 8 Pixeln ist, werden die Kantenpixel wiederholt (und beim Dekomprimieren verworfen - daher ist die JPEG-Komprimierung bei Dimensionen, die ein Vielfaches von 8 Pixeln sind, immer effizienter, oder 16, wenn Sie den Faktor berücksichtigen in Chroma Subsampling).

  4. Die 64 Werte in jedem Block werden einer Transformation vom Raumbereich in den Frequenzbereich unterzogen, in diesem Fall als diskrete Cosinustransformation bezeichnet. Am Ende erhalten Sie 64 Koeffizienten, die jeweils die Amplitude einer bestimmten Frequenzkarte über dem von diesem Block eingenommenen Bereich darstellen. Der erste Wert ist die niedrigste Frequenz, die effektiv der Durchschnittswert aller Pixel ist, bis zu den letzten Werten, die die höchste Frequenzkomponente des Blocks beschreiben. Die früheren Werte weichen alle viel stärker ab und sind für das Aussehen des endgültigen Bildes wichtiger als die späteren Werte in einem Block. Dieser Vorgang ist perfekt umkehrbar, solange Sie genügend Präzision verwenden.

  5. Dann gibt es den Quantisierungsschritt, bei dem jeder der 64 Koeffizienten, die Sie im vorherigen Schritt erreicht haben, durch eine Zahl (als Quantisierungsfaktor bezeichnet) geteilt wird und der Rest weggeworfen wird. Hier wird die Präzision der Samples am meisten beeinflusst, aber hier erzielen Sie die enormen Platzersparnisse durch JPEG im Vergleich zur verlustfreien Komprimierung. Da sich seit der vorherigen Transformation alles im Frequenzbereich befindet, trägt dieser Genauigkeitsverlust am besten dazu bei, die wahrgenommene Bildqualität zu erhalten, als dies vor dieser Transformation lediglich durch Verringern der Bittiefe / Genauigkeit der Pixel der Fall wäre. Die Umkehrung dieses Verfahrens besteht einfach darin, mit derselben Zahl zu multiplizieren, durch die Sie die Koeffizienten geteilt haben. Da Sie jedoch die Reste weggeworfen haben, erhalten Sie natürlich eine geringere Genauigkeit der Koeffizienten. Dies führt zu einem dauerhaften Qualitätsverlust.

  6. Nach dieser Quantisierung ist es typisch, dass viele der späteren, weniger signifikanten Koeffizienten Null sind, sodass diese weggeworfen werden. Dann codiert eine (verlustfreie) Codierungsroutine variabler Länge alle verbleibenden Koeffizienten auf effiziente Weise, obwohl jeder eine andere Anzahl von Bits verwenden kann.

Es ist unmöglich zu sagen, dass ein bestimmter Quantisierungsfaktor einer bestimmten Bittiefe entspricht, da die Quantisierung keine Streifenbildung ergibt, wie wenn Sie die Bittiefe reduzieren, sondern einen allgemeinen Wahrnehmungsverlust im Detail ergibt, beginnend an den Stellen, an denen Sie ihn bemerken würden weniger, weil es für seine Frequenz eine so niedrige Amplitude hat.


2
Ich glaube, mein Gehirn ist gerade explodiert.
Nick Bedford

Chroma-Subsampling führt nicht nur zu einem "Auflösungsverlust". Es führt sehr auffällige Artefakte ein, insbesondere im roten Kanal.
Mark Ransom

@Mark Ransom Diese Artefakte sind nichts anderes als das Ergebnis der Halbierung der Auflösung in den Farbkanälen und der Interpolation, die erforderlich ist, um dies nach der Dekomprimierung zu berücksichtigen. Es sollten niemals andere "wahrnehmbare Artefakte" als die durch Verwischen der Auflösung verursachten erzeugt werden, obwohl es möglicherweise einige Decoder gibt, die diese Interpolation vermasseln oder eine sehr einfache Interpolation mit dem nächsten Nachbarn durchführen, was zu einer Blockade führt, die für Rot ziemlich auffällig ist Details zu Schwarz (oder Magenta zu Blau usw.). Dies war beispielsweise bei einigen frühen DVD-Playern ein häufiges Problem.
Thomasrutter

5
Ich glaube nicht, dass ich jemals eine bessere, leichter verständliche Erklärung für die JPEG- oder wirklich verlustbehaftete Bildkomprimierung gesehen habe. definitiv +1
jay.lee

Entschuldigung, ich wollte nicht implizieren, dass die Unterabtastung die Artefakte verursacht. Es ist nur so, dass die vorhandenen Fehler aus der Quantisierung 2X gesprengt werden, wodurch sie viel sichtbarer werden. Ich denke, es ist wichtig zu wissen, dass der sichtbare Effekt der Unterabtastung mehr als nur ein wenig zusätzliche Unschärfe ist.
Mark Ransom

1

Die Darstellung der Chroma (Cb Cr) in getrennten Kanälen von der Luma (Y) wirkt sich ebenfalls positiv auf die Kompression aus. Die meisten sichtbaren Informationen befinden sich im Luma-Kanal. Menschliche Augen tolerieren sowohl eine geringere räumliche Auflösung als auch eine aggressivere Quantisierung in den Chroma-Kanälen. Ein aggressiv komprimiertes Bild kann also etwa 10% des Dateibereichs für Chroma und den Rest für Luma beanspruchen und trotzdem anständig aussehen.

Am Ende des Tages ist es immer noch verlustbehaftete Komprimierung.


-1

Ungefähr 8 Bit für jeden Kanal, aber es gibt verschiedene leicht unterschiedliche Möglichkeiten, dies zu tun. Die Details finden Sie im Wikipedia-Artikel über YCbCr .


Dies wurde in der Frage angegeben. Geben Sie eine detailliertere Antwort.
Nick Bedford

@Nick Wo genau wurde "dies" in der Frage angegeben? Die aktuelle Frage lautet: "Wie sind die Bits im YCbCr-Farbraum für ein 24-Bit-JPEG-Bild verteilt?" Ich habe gesagt, wie sie verteilt sind, unter der Annahme, dass - wie jeder, der die Frage versteht - die Kanäle Y, Cb und Cr sind. Meine Antwort ist eine korrekte Zusammenfassung des Wikipedia-Artikels. Die SE-Richtlinie besteht darin, Zusammenfassungen bereitzustellen, anstatt Material im Großhandel zu kopieren (obwohl es, wie ich zugeben muss, einfach ist, einige Grenzbeispiele für lange Zitate an anderer Stelle auf dieser Website bereitzustellen).
Whuber

Ich denke, diese Art von Antwort ist zwar nicht so gut wie eine vollständige Erklärung, aber viel besser als eine, die nur aus der Wikipedia schneidet und einfügt oder sogar einen ganzen Wikipedia-Artikel umschreibt. Wenn die Wikipedia gut ist, ist es hilfreich, den Leuten davon zu erzählen. Und wenn das alles ist, was Ihre Antwort dazu beiträgt, ist es genau das Richtige, im Voraus zu sein und nur eine kurze Zusammenfassung und einen Link zu geben.
Bitte lesen Sie mein Profil
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.