YCbCr Farbräume

YCbCr, Y’CbCr oder Y Pb / Cb Pr / Cr , auch geschrieben als YC B C R oder Y’C B C R , ist eine Familie von Farbräumen, die als Teil der Farbbildpipeline in der Video- und Digitalfotografie verwendet werden Systeme. Y ‚ist die Luma-Komponente und CB und CR sind die Blau-Differenz- und Rot-Differenz-Chroma-Komponenten. Y ‚(mit Primzahl) unterscheidet sich von Y, was Luminanz ist, was bedeutet, dass die Lichtintensität basierend auf gammakorrigierten RGB-Primärfarben nichtlinear codiert wird.

Y’CbCr-Farbräume werden durch eine mathematische Koordinatentransformation aus einem zugeordneten RGB-Farbraum definiert. Wenn der zugrunde liegende RGB-Farbraum absolut ist, ist der Y’CbCr-Farbraum ebenfalls ein absoluter Farbraum; Umgekehrt, wenn der RGB-Raum schlecht definiert ist, so ist Y’CbCr.

Begründung
Kathodenstrahlröhrenanzeigen werden durch rote, grüne und blaue Spannungssignale angesteuert, aber diese RGB-Signale sind als Darstellung für Speicherung und Übertragung nicht effizient, da sie eine große Redundanz aufweisen.

YCbCr und Y’CbCr sind eine praktische Annäherung an die Farbverarbeitung und Wahrnehmungsgleichförmigkeit, wobei die Primärfarben, die in etwa rot, grün und blau entsprechen, zu wahrnehmungsrelevanter Information verarbeitet werden. Dadurch können nachfolgende Bild- / Videoverarbeitung, Übertragung und Speicherung Operationen ausführen und Fehler auf wahrnehmungsmäßig sinnvolle Weise einführen. Y’CbCr wird verwendet, um ein Luma-Signal (Y ‚), das mit hoher Auflösung gespeichert oder mit hoher Bandbreite übertragen werden kann, und zwei Chrominanzkomponenten (CB und CR), die bandbreitenreduziert, unterabgetastet, komprimiert oder anderweitig sein können, zu trennen separat behandelt für eine verbesserte Systemeffizienz.

Ein praktisches Beispiel wäre die Verringerung der Bandbreite oder der Auflösung, die „Farbe“ im Vergleich zu „Schwarz-Weiß“ zugewiesen wird, da Menschen empfindlicher auf die Schwarz-Weiß-Informationen reagieren (siehe Bildbeispiel rechts). Dies wird Chroma-Subsampling genannt.

YCbCr
YCbCr wird manchmal als YCC abgekürzt. Y’CbCr wird oft YPbPr genannt, wenn es für analoge Komponentenvideos verwendet wird, obwohl der Ausdruck Y’CbCr für beide Systeme gemeinsam verwendet wird, mit oder ohne Primzahl.

Y’CbCr wird oft mit dem YUV-Farbraum verwechselt, und in der Regel werden die Begriffe YCbCr und YUV synonym verwendet, was zu einiger Verwirrung führt.Der Hauptunterschied besteht darin, dass YUV analog und YCbCr digital ist.

Y’CbCr-Signale (vor Skalierung und Offsets, um die Signale in digitale Form zu bringen) werden YPbPr genannt und werden aus der entsprechenden gamma-angepassten RGB-Quelle (Rot, Grün und Blau) unter Verwendung von drei definierten Konstanten KR, KG und KB erzeugt wie folgt:


wobei K R , K G und K B üblicherweise aus der Definition des entsprechenden RGB-Raums abgeleitet werden und erfüllt werden müssen  . (Die äquivalente Matrixmanipulation wird oft als „Farbmatrix“ bezeichnet.)

Hier wird die Hauptsymbol-Gammakorrektur verwendet; somit liegen R ‚, G‘ und B ’nominell im Bereich von 0 bis 1, wobei 0 die minimale Intensität (z. B. für die Anzeige der Farbe Schwarz) und 1 das Maximum (z. B. für die Anzeige der Farbe Weiß) darstellt. Der resultierende Luma (Y) -Wert wird dann einen Nennbereich von 0 bis 1 haben, und die Chroma (PB und PR) -Werte werden einen Nennbereich von -0,5 bis +0,5 haben. Der umgekehrte Umwandlungsprozeß kann leicht durch Invertieren der obigen Gleichungen abgeleitet werden.

Wenn die Signale in digitaler Form dargestellt werden, werden die Ergebnisse skaliert und gerundet, und Offsets werden typischerweise hinzugefügt. Zum Beispiel ergibt die Skalierung und der Offset, der auf die Y‘-Komponente pro Spezifikation (z. B. MPEG-2) angewendet wird, den Wert 16 für Schwarz und den Wert 235 für Weiß, wenn eine 8-Bit-Darstellung verwendet wird. Der Standard hat digitalisierte 8-Bit-Versionen von CB und CR, die auf einen anderen Bereich von 16 bis 240 skaliert sind. Folglich ist manchmal eine Neuskalierung durch den Bruch (235-16) / (240-16) = 219/224 erforderlich, wenn eine Farbmatrixierung durchgeführt wird oder Verarbeitung im YCbCr-Raum, was zu Quantisierungsverzerrungen führt, wenn die nachfolgende Verarbeitung nicht unter Verwendung höherer Bittiefen durchgeführt wird.

Die Skalierung, die zur Verwendung eines kleineren Bereichs digitaler Werte führt, als dies für die Darstellung des nominalen Bereichs der Eingangsdaten wünschenswert erscheinen mag, ermöglicht während der Verarbeitung ein gewisses „Überschwingen“ und „Unterschwingen“, ohne unerwünschtes Abschneiden zu erfordern. Dieser „Head-Room“ und „Toe-Room“ kann auch zur Erweiterung des nominalen Farbumfangs verwendet werden, wie von xvYCC angegeben.

Der Wert 235 berücksichtigt ein maximales Schwarz-zu-Weiß-Überschwingen von 255 – 235 = 20 oder 20 / (235 – 16) = 9,1%, was geringfügig größer ist als das theoretische maximale Überschwingen (Gibbs-Phänomen) von etwa 8,9% der maximale Schritt. Der Toe-Room ist kleiner und erlaubt nur 16/219 = 7,3% Überschreitung, was weniger als das theoretische maximale Überschwingen von 8,9% ist.

Da die Gleichungen, die YCbCr definieren, auf eine Weise gebildet werden, die den gesamten nominalen RGB-Farbwürfel dreht und ihn in einen (größeren) YCbCr-Farbwürfel einpasst, gibt es einige Punkte innerhalb des YCbCr-Farbwürfels, die nicht in der entsprechenden RGB-Domäne dargestellt werden können (zumindest nicht im nominellen RGB-Bereich). Dies verursacht einige Schwierigkeiten beim Bestimmen, wie einige YCbCr-Signale korrekt interpretiert und angezeigt werden. Diese außerhalb des Bereichs liegenden YCbCr-Werte werden von xvYCC verwendet, um Farben außerhalb des BT.709-Gamuts zu codieren.

Umwandlung von RGB in YCbCr

ITU-R BT.601 Umwandlung
Die Form von Y’CbCr, die für die Standard-Definitionsfernsehverwendung in dem ITU-R BT.601 (früher CCIR 601) -Standard zur Verwendung mit einem digitalen Komponentenvideo definiert wurde, wird von dem entsprechenden RGB-Raum wie folgt abgeleitet:


Aus den obigen Konstanten und Formeln kann Folgendes für ITU-R BT.601 abgeleitet werden.

Analoges YPbPr von analogem R’G’B ‚wird wie folgt abgeleitet:


Das digitale Y’CbCr (8 Bits pro Abtastwert) wird wie folgt aus dem analogen R’G’B ‚abgeleitet:


oder einfach komponentenweise


Die resultierenden Signale liegen im Bereich von 16 bis 235 für Y ‚(Cb und Cr im Bereich von 16 bis 240); Die Werte von 0 bis 15 heißen Footroom, während die Werte von 236 bis 255 Headroom genannt werden.

Alternativ kann das digitale Y’CbCr von dem digitalen R’dG’dB’d abgeleitet werden (8 Bits pro Abtastwert, wobei jeder den vollen Bereich verwendet, wobei 0 Schwarz darstellt und 255 Weiß darstellt) gemäß den folgenden Gleichungen:


In der obigen Formel werden die Skalierungsfaktoren mit multipliziert  . Dies ermöglicht den Wert 256 im Nenner, der mit einem einzigen Bitwechsel berechnet werden kann.

Wenn die R’d G’d B’d-Digitalquelle Footroom und Headroom enthält, muss der Footroom-Offset 16 zuerst von jedem Signal subtrahiert werden, und ein Skalierungsfaktor von  muss in die Gleichungen einbezogen werden.

Die inverse Transformation ist:


Die inverse Transformation ohne Rundungen (mit Werten, die direkt von der Empfehlung ITU-R BT.601 kommen) ist:


Diese Form von Y’CbCr wird hauptsächlich für ältere Standard-Definition-Fernsehsysteme verwendet, da sie ein RGB-Modell verwendet, das zu den Phosphoremissionseigenschaften von älteren CRTs passt.

ITU-R BT.709 Konvertierung
Eine andere Form von Y’CbCr ist in dem ITU-R BT.709-Standard spezifiziert, hauptsächlich für HDTV-Verwendung. Die neuere Form wird auch in einigen Computer-Display-orientierten Anwendungen verwendet. In diesem Fall unterscheiden sich die Werte von Kb und Kr, aber die Formeln für ihre Verwendung sind gleich. Für ITU-R BT.709 lauten die Konstanten:


Diese Form von Y’CbCr basiert auf einem RGB-Modell, das den Leuchtstoffemissionseigenschaften neuerer CRTs und anderer moderner Anzeigegeräte besser entspricht.

Die Definitionen der Signale R ‚, G‘ und B ‚unterscheiden sich auch zwischen BT.709 und BT.601 und unterscheiden sich innerhalb von BT.601 in Abhängigkeit vom Typ des verwendeten Fernsehsystems (625-Zeilen wie in PAL und SECAM oder 525-Linie wie in NTSC) und unterscheiden sich weiter in anderen Spezifikationen.In verschiedenen Designs gibt es Unterschiede in den Definitionen der R-, G- und B-Chromatizitätskoordinaten, des Referenzweißpunkts, des unterstützten Gamut-Bereichs, der genauen Gamma-Vorkompensationsfunktionen zum Ableiten von R ‚, G‘ und B ‚von R, G und B und in den Skalierungen und Offsets, die während der Umwandlung von R’G’B ‚zu Y’CbCr anzuwenden sind. Eine korrekte Umwandlung von Y’CbCr von einer Form in die andere ist also nicht nur eine Frage der Invertierung einer Matrix und der Anwendung der anderen. Wenn Y’CbCr ideal ausgelegt ist, werden die Werte von KB und KR tatsächlich aus der genauen Spezifikation der RGB-Farbprimärsignale abgeleitet, so dass das Luma (Y ‚) – Signal so gut wie möglich einer Gamma-angepassten Messung entspricht der Leuchtdichte (typischerweise basierend auf den CIE 1931-Messungen der Reaktion des menschlichen visuellen Systems auf Farbreize).

ITU-R BT.2020 Umwandlung
Der ITU-R BT.2020-Standard definiert sowohl gammakorrigiertes Y’CbCr als auch eine linear codierte Version von YCbCr, YcCbcCrc genannt. YcCbcCrc kann verwendet werden, wenn die höchste Priorität die genaueste Beibehaltung der Luminanzinformation ist. Für YcCbcCrc sind die Koeffizienten:


JPEG-Konvertierung
JFIF-Verwendung von JPEG unterstützt Y’CbCr, wobei Y ‚, CB und CR den vollen 8-Bit-Bereich von [0 … 255] haben. Im Folgenden sind die Umrechnungsgleichungen mit sechs Dezimalstellen der Genauigkeit ausgedrückt. (Ideale Gleichungen siehe ITU-T T.871.) Beachten Sie, dass für die folgenden Formeln der Bereich jedes Eingangs (R, G, B) auch der volle 8-Bit-Bereich von [0 … 255] ist.


Und zurück:

CbCr-Ebene bei Y = 0,5

Y = 0,5

Hinweis: Wenn Y = 0 ist, müssen R, G und B alle Null sein, daher können Cb und Cr nur Null sein. Wenn Y = 1 ist, müssen R, G und B gleich 1 sein, daher können Cb und Cr nur Null sein.

Im Gegensatz zu R, G und B sind die Y-, Cb- und Cr-Werte nicht unabhängig voneinander; Die willkürliche Auswahl von YCbCr-Werten kann zu einem oder mehreren RGB-Werten führen, die außerhalb des Gamuts liegen, dh größer als 1,0 oder kleiner als 0,0.