- YCbCr
-
Das YCbCr-Farbmodell wurde für die digitale PAL-Fernsehnorm als ein vergleichsweise leicht vom YUV-Farbmodell abweichendes Farbmodell entwickelt. Es findet unter anderem bei dem CCIR-601-Standard für digitale Bild- und Videoaufzeichnung Anwendung und wird auch für digitales NTSC-Fernsehen genutzt. Es wird zudem beispielsweise für JPEG-Bilder und MPEG-Videos verwendet, und damit auch auf DVDs, Video CDs und bei den meisten anderen verbreiteten digitalen Videonormen. Man beachte, dass ein Farbmodell noch kein Farbraum ist, denn es legt noch nicht fest, welche Farben eigentlich mit "Rot", "Grün" und "Blau" genau gemeint sind. Für einen Farbraum bedarf es noch des Bezuges auf bestimmte absolute Farbwerte.
Inhaltsverzeichnis
Das YCbCr-Farbmodell
Es gibt Farbmodelle, die einen Farbort durch drei andere Eigenschaften als durch Grundfarben angeben, wie beim kurz RGB-Farbraum, sondern durch Helligkeit und Farbigkeit. Die Koordinaten sind etwa die Grundhelligkeiten (als Schwarz über Grau bis Weiß) und der Farbton mit dem größten Anteil sowie die Sättigung der Farbe, von "knallig" bis blass). Dieses Farbmodell beruht auf der Fähigkeit des Auges, geringe Luminanzunterschiede (Helligkeitsunterschiede) besser zu erkennen als kleine Farbtonunterschiede, und diese wiederum besser als kleine Farbsättigungsunterschiede. So ist ein Text grau auf schwarz geschrieben gut zu lesen. Bei gleicher Grundhelligkeit ist ein Text ein blau auf rot geschrieben sehr schlecht zu lesen. Solche Farbmodelle nennt man Helligkeit-Farbigkeit-Modelle.
Das YCbCr-Modell ist eine Abwandlung eines solchen Helligkeit-Farbigkeits-Modells. Der RGB-Farbort wird in Grundhelligkeit Y und zwei Farbkomponenten Cb und Cr aufgeteilt. Cb ist ein Maß für die Abweichung von Grau in Richtung Blau zu Gelb. Cr ist die entsprechende Maßzahl für die Farbigkeit in Richtung Rot oder Türkis. Diese Darstellung nutzt die Eigenheit des Sehsinnes, für grünes Licht besonders empfindlich zu sein. Die Information über den Grünanteil (und damit indirekt für dessen Komplementärfarbe Violett) ist in der Grundhelligkeit Y eingerechnet. Nur die farblichen Abweichungen beim Rot/Türkis- und Blau/Gelb-Anteil sind deshalb anzugeben. Die helligkeitsbeschreibenden Y-Werte können besser aufgelöst werden als die Farbinformation.
Anmerkung: Die unterschiedliche Wahrnehmung von Y gegenüber den Cr und Cb Kanälen entspricht der Entwicklung der Farb- und Helligkeitsverteilung in der Natur. Viele Informationen sind in der Helligkeit gespeichert und die Farbe variiert kaum. Im Laufe der Evolution hat sich der menschliche Sehsinn daran angepasst, durch Stäbchen und ein dreifaches Zapfensystem.
Im Computer wird dies genutzt und die Auflösung für Cr und Cb wird so reduziert, dass das Bild nicht an wesentlicher Qualität verliert. Mit der Komprimierung von JPEG kann man so 50% der Datenmenge einsparen, wenn auf Cr und Cb die Skala für Y dazu vierfach stärker teilt. So lässt sich zwischen hoher Komprimierung bei geringer Datenmenge und schlechterer Qualität und geringer Komprimierung bei hoher Qualität schieben.
Umrechnung zwischen RGB und YCbCr
Vor der Umrechnung müssen die Werte für RGB mit einer Gammakorrektur auf das Intervall [0;1] normiert werden. Das gebildete Farbtripel wird zur Unterscheidung in der Literatur meist mit R'G'B' bezeichnet. Die YCbCr-Werte sind auf eine bestimmte Auflösung digitalisiert und bei Bedarf mit einem Offset versehen, um negative Werte zu vermeiden. Bevor also die YCbCr-Daten bestimmt werden können, werden aus den R'G'B'-Farbdaten die so genannten YPbPr-Werte berechnet. Diese Werte von YPbPr sind fix auf den Wertebereich [0;1] für Y und [-0,5; 0,5] für die beiden Farbkomponenten PbPr beschränkt und unterliegen keinerlei Beschränkung betreffend der Auflösung, es sind analoge Signale. Durch eine bestimmte Auflösung, beispielsweise 8 Bit pro Wert mit einem Wertebereich von {0, 1, …, 255}, werden aus den Y'PbPr-Werten die Werte Y'CrCb gebildet, jeweils im Wertebereich von {0, 1, …, 255}. Es kann aber auch bei Y'CbCr eine Abbildung auf 10 Bit mit einem Wertebereich von {0, 1, …, 1023} erfolgen. Diese Auflösung wird wegen der höheren Farbdynamik im Studiobereich genutzt. Die Gammakorrektur von R'G'B' wirkt sich nur auf das Helligkeitssignal Y' aus. Die Schreibweise sollte deshalb korrekterweise Y'CbCr statt YCbCr sein.
Die folgenden Gleichungen zeigen die allgemeine Berechnung der Y'PbPr-Wertetripel ohne zunächst einen Bezug auf einen bestimmten Standard zu nehmen:
Die dabei auftretenden Konstanten Kr und Kb sind in der ITU-R BT.601 (ehemals CCIR 601) für Fernsehen in der Standardauflösung SDTV definiert.
Somit sind sie von diesem Standard abhängig und mit Kb = 0,114 und Kr = 0,299 festgelegt. Die Wahl dieser Koeffizienten ist aus den Darstellungseigenschaften der Kathodenstrahlröhre bestimmt. Als ITU-R-B.601-konforme Umrechnung für Y'PbPr-Werte ergeben sich die folgenden Formeln.
Diese Werte werden mit einer gewollten Auflösung digitalisiert und mit einem Offset versehen zu YCbCr-Werte umgerechnet. Der Offset ist notwendig um bei digitalen Videodaten reservierte Werte wie 0 und 255 für spezielle Steueraufgaben (Synchronisation) frei zu halten. Die Werte im Bereich „Reserve oben“ oder „Reserve unten“ sind für die Übersteuerung der Videosignale reserviert und solten nicht verwendet werden.
In der folgenden Übersicht ist die Digitalisierung für eine 8 Bit-Dynamik gezeigt. Die untere Reserve sei {1, 2, …, 15}, die obere von {236, 237, …, 254}, die Synchronisationswerte {0, 255}. Y' liegt somit im Wertebereich {16, 17, …, 235} und Cb und Cr in {16, 17, …, 240}:
Liegen die R'G'B'-Daten bereits digital als R'dG'dB'd im Wertebereich {0, 1, …, 255} vor, so erfolgt die Umrechnung für 8 Bit-Dynamik nach folgenden Formeln:
Die geringen Abweichungen der Koeffizienten in der Matrix ergeben sich durch den Faktor 256/255. Diese Form der Umrechnung wird wie eingangs erwähnt primär bei der digitalen Darstellung der analogen PAL in NTSC Farbfernsehsignalen in Standardauflösung der SDTV verwendet.
Beim HDTV-Standard ITU-R BT.709 werden andere Konstanten für Kb, Kr eingesetzt, das führt zu anderen Transformationswerten. Es gilt Kb = 0,0722 und Kr = 0,2126 entsprechend den Darstellungsmöglichkeiten von LCD- und Plasmabildschirmen. Die Matrizen sind dann entsprechend zu berechnen.
Für die YCbCr Farbkonvertierung gibt es eine große Anzahl weiterer Normen. Die Norm SMPTE 240M definiert diese Konstanten mit Kb = 0,087 und Kr = 0,212. Das YCC-Farbmodell von Kodak ist auf Fotopapier optimiert.
Die YCbCr-Transformation bei JPEG und MPEG verwendet ebenfalls dieses Farbmodell. Da JPEG keine Synchronisationswerte in den Bilddatenstrom abbilden muss, kann für die Werte von YCbCr der volle Wertebereich von 8 Bit verwendet werden, also sind {Y', Cb', Cr'} und auch R, G und B im Wertebereich {0, 1, …, 255} möglich.
Farbunterabtastung
Einer der großen Vorteile von YCbCr ist, dass die Abtastrate der Chrominanz-Kanäle niedriger als die des Y Kanals sein kann, man spricht auch von der Farbunterabtastung (engl. Chroma Subsampling), ohne dass es zu einer spürbaren Verringerung der zu gewährleistenden Qualität kommt.
Literatur
- Charles Poynton: Digital Video and HDTV Algorithms and Interfaces, San Francisco: Morgan Kaufmann Publishers 2003. ISBN 1-55860-792-7
Weblinks
- Unterschied zwischen den verschiedenen Abtastraten bei YCbCr
- YCbCr-Datenformate
- [1] in englischer Sprache von Gary Sullivan und Stephen Estrop
- Freier YCbCr Viewer
- Ein YCbCr-4:2:0-Viewer unter GPL
- Ein YCbCr-4:2:0 Viewer unter GPL, win32 und linux unter GPL, win32 und linux Version
Wikimedia Foundation.