Bekanntlich arbeiten digitale Bild- und Videosysteme mit den drei Grundfarben
Rot (R)
Grün (G)
Blau (B).
Für die Darstellung eines Bildpunktes (Pixel) werden deshalb drei Zahlen benötigt, die die Helligkeitswerte der drei Farben des Pixels repräsentieren. Aus technischen Gründen - z.B. effizientere Codierung - werden nun unterschiedliche Codierungen benutzt. Wir betrachten hier nur die allgemein gebräuchlichen Videosysteme.
Übrigens:
1 - Die Grundfarben Rot, Grün und Blau muss man erst genau definieren. Es gibt ja bekanntlich verschiedene Rots, Grüns und Blaus. In den Normen (siehe unten) wird die genaue Farbe tatsächlich genau definiert. Diese drei
für ein Farbsystem definierten Grundfarben nennt man "Primaries". Die Primaries legen auch fest, wie groß die darstellbare Farbenvielfalt ist. Das nennt man den "Farbraum". Man kann eine Farbe exakt definieren, wenn man ihre Position im CIE Diagramm angibt. https://de.wikipedia.org/wiki/CIE-Normvalenzsystem
2 - Eine weitere wichtige Festlegung ist der "Weißpunkt". Auch Weiß ist bekanntlich nicht Weiß, da es unterschiedliche Weiß gibt. Ein weißes Stück Papier sieht bei Sonnenuntergang farblich anders aus als im künstlichen Neonlicht. Auch hier wird für jedes Farbsystem der genaue Weißpunkt festgelegt, indem die drei Grundfarben definiert werden, die zusammen das standadrisierte Weiß für dieses Farbsystem ergeben. Ein Beispiel ist das oft zitierte D65: das ist ein Weiß, das etwa einem grau verhangenen Himmel entspricht und eine Farbtemperatur von 6504 Grad Kelvin hat.
Ein Display ist dann auf "D65 kalibriert", wenn es für R=G=B (alle drei Farbwerte sind gleich) ein Weiß oder Grau der Farbtemperatur von 6504 Grad Kelvin erzeugt. Natürlich kann in einem D65 System auch ein wärmeres Weiß dargstellt werden (also mit niedrigerer Farbtemperatur), dann sind die Werte für R,G und B nicht mehr alle gleich.
3 - Und nun noch der dritte Punkt: die Gammakurve. Es stellt sich die Frage, ob z.B. ein Rot-Wert von 40 vom Display doppelt so hell dargestellt wird wie ein Wert von 20. Oder 80 doppelt so hell ist wie 40. Die Zuordnung der Zahlenwerte zu den vom Display dargestellten Helligkeiten nennt man die Gammakurve. Sie heißt so, weil sie normalerweise einen exponentiellen Kurvenverlauf hat und Gamma dann der Exponent der e-Funktion ist.
Für die drei letzten Punkte gibt es im Internet unzählige Quellen (z.B. Wikipedia). Deshalb sind hier nur der Vollständigkeit halber diese sehr kurzen Erklärungen angegeben.
sRGB
sRGB heißt "Standard Rot/Grün/Blau. Hierbei werden jedem Pixel 3 Zahlen zugeordnet (und aufgezeichnet/übertragen/gespeichert/verarbeitet), von denen jede den Helligkeitswert einer der drei Farben darstellt. Meistens werden hierfür drei 8-Bit Datenworte verwendet. Jeder Farbwert kann so zwischen 0 und 255 liegen, er kann also 256 unterschiedliche Werte annehmen. Es können somit durch die drei Farbwerte 256 x 256 x 256 unteschiedliche Farben dargestellt werden, also insgesamt 16.777.216. Das sind zwar viele, aber es zeigt sich regelmäßig, dass mehr Farben oft deutliche Vorteile in der Natürlichkeit des Bildes bringen! Dazu sind dann mehr als 8 Bit pro Farbwert nötig.
Deshalb werden zunehmend auch wesentlich genauere Farb-Darstellungen durch mehr Bit benutzt. Je mehr Bit, je mehr Farben können dargstellt werden. Z.B. produzieren Fotokameras und auch hochwertige digitale Kinokameras bis zu 16 Bit pro Farbwert. Neuere hochwertige Computermonitore können vermehrt 10 Bit Farbtiefe pro Farbkanal darstellen, im Gegensatz zu den weitverbreiteten Standard-Monitoren mit nur 8 Bit.
Wenn alle möglichen Zahlenwerte für die Farbdarstellung genutzt werden, nennt man das "Full Swing". Bei 8 Bit sind das 256 Werte, bei 10 Bit schon 1024. Dies im Gegensatz zum "Studio Swing", siehe YCbCr, nächster Absatz.
YCbCr
Wenn ein Pixel wie bei RGB durch drei Zahlen für die drei Grundfarben beschrieben ist, dann kann man nicht direkt die Helligkeit des Pixels ablesen, sondern nur die Helligkeit der jeweiligen Farbe. Die Helligkeit des Pixels ergibt sich aber aus einer Formel:
Y = 0,99xR +0,587xG +0,114xB.
Dieses Y ist die Helligkeit des Pixels, die im YCbCr System als erste Zahl direkt angegeben wird. Die Koeffizienten in dieser Formel werden in einer Norm (hier ITU-R BT 601) festgelegt.
Auch die Werte Cb und Cr können so berechnet werden. Natürlich mit anderen Koeffizienten, die auch durch die Norm festgelegt sind. Die Zahlen Cb und Cr sind ein Maß für die Farbabweichung des Pixels von Weiß in Richtung Blau/gelb bzw. Rot/Türkis.
Somit stellen auch beim YCbCr-System drei Zahlen, die drei Werte Y, Cb und Cr, die Farbe des Pixels dar. Durch entsprechende Formeln können sehr einfach die RGB Werte zurückgewonnen werden. Damit wird in diesem System sozusagen ein "Schwarz/Weißbild direkt übertragen (Y) und zusätzlich Informationen, wie zusätzlich die Farben gewonnen werden können. Die theoretischen Hintergründe finden sich z.B. in Wikipedia.
Somit ermöglicht die YCbCr-Codierung also ein direktes Ablesen der Helligkeit: es ist der Y-Wert.
Desweiteren - und das ist wichtig - haben die Werte Cb und Cr Eigenschaften, die eine effizientere Weiterverarbeitung erlauben als bei einem RGB-System (Stichwort Datenreduzierung).
Da das menschliche Auge weniger Rezeptoren für Farbe als für Helligkeit hat, benötigt man für die Farbdarstellung weniger Farbwerte als Luminanzwerte (=Helligkeitswerte). Deshalb wird z.B. beim Fernsehen pro 4 Luminanzwerten nur ein Farbwert übertragen. Ein Pixel hat also den korrekten Helligkeitswert, aber nur jedes vierte Pixel hat einen korrekten Farbwert, die anderen Farbwerte werden im Display interpoliert. Dies wird mit 4:2:0 bezeichnet. Bei einem System 4:2:2 werden halb so viele Farbwerte wie Helligkeitswerte übertragen, bei 4:4:4 werden für jedes Pixel alle Farbwerte übertragen. Warum das x:y:z heißt, kann man im Internet finden.
Aus technischen Gründen lässt man für die Werte Y, Cb, Cr nicht alle Zahlen zu, die z.B. eine 8 Bit-Zahl annehmen kann. Mit 8 Bit kann man ja bekanntlich 256 Zahlen darstellen, üblicherweise 0...255. Von diesen 256 Zahlen werden in einem YCbCr-System nun einige für andere Zwecke reserviert und für die Luminanzwerte nur die Zahlen 16 bis 235 zugelassen. Für die Cb- und Cr-Werte ist der Bereich 16...240 zugelassen (eigentlich zwischen -112 und +112, es wird aber eine Verschiebung um 128 durchgeführt, damit kein Vorzeichen kodiert werden muss). Diesen Zahlenbereich nennt man "Studio Swing". Oder auch "Legal Range". Dadurch können weniger Helligkeitswerte dargstellt werden als wenn alle Werte benutzt würden, nämlich nur 220 anstelle von 256. Einerseits ist das deutlich weniger, andererseits ist das aber in der Praxis kaum zu bemerken. Trotzdem gibt es Bestrebungen, mehr Datenwerte zu aktivieren. Dies ist das Ziel von xv.YCC.
Aus diesen Besonderheiten resultieren immer wieder viele Schwierigkeiten, die auch die Motivation für diese Internet Seite sind. Nämlich den Nutzern digitaler Videosysteme zu helfen, die damit verbundenen vielfältigen Fallstricke zu umschiffen.
Noch ein Punkt: oft wir ein YCbCr System auch einfach als YUV System bezeichnet. Das ist insofern nicht ganz korrekt, da YUV der Name für das entsprechende frühere Analogsystem war.
xv.YCC
Diese Farbcodierung ist ein Spezialfall von YCbCr. Sie erlaubt einen größeren Bereich für die Zahlen, die die drei Werte Y, Cb und Cr in diesem System annehmen können. Leider gibt es hier nur firmenspezifische Normen und keine durchgängigen Lösungen, weshalb sich in der Praxis diese Codierungen nicht wirklich breit durchsetzen.
Natürlich gibt es noch viel mehr Farbräume, z.B. den Adobe-Farbraum oder für den Druck. Für Video sind derzeit allerdings die erwähnten vorrangig. Wichtig ist auch zu wissen, dass das Umrechnen der Pixelwerte von einem Farbraum in einen anderen oft problematisch ist, weil sich das "Tonwertmapping" dann nicht eins zu eins realisieren lässt. Deshalb müssen in diesem Fall Näherungen benutzt werden, was in Farbverfälschungen enden kann.
Folgende Tabelle zeigt technische Details.
Farbraum
Signaldarstellung
und Farbtiefe
Anwendung
Bemerkung
basiert auf Rec.709*
Primaries & Weißpunkt
(siehe unten)
Gamma = 2,2
Farbcodierung 4:4:4
"Full Swing": 0...255
bei 8 Bit/Farbe, also 24 Bit gesamt
Deep Color:
10, 12 oder 16 Bit pro Farbe
Computerdisplays
Scanner
Drucker
Digitalkameras, RAW
Darstellung in Software
sRGB ist der standardisierte RGB-Farbraum.
Jedes Display arbeitet am Ende mit RGB
"Million Colors" = 8 BIt
"Billion Colors" = 10 Bit
* siehe "Videosysteme"
basiert auf Rec.709
Primaries & Weißpunkt
(siehe unten)
Gamma = 2,4
Farbcodierung 4:4:4
4:2:2
4:2:0
"Studio Swing"
gemäß Rec.709, Rec.601 siehe "Videosysteme"
Deep Color:
3 mal 10, 12 Bit; 48 Bit
digitales TV
Video
BlueRay
YCbCr ist die digitale Version des analogen YUV
Es ermöglicht im Vergleich zu RGB eine einfachere Bandbreitenreduzierung der Farbkanäle und stellt den Luminanzkanal separat dar.
größer als YCbCr
wie YCbCr
"Full Swing": 0...256
"erweitert": 16...256
Achtung: hat nichts mit "Deep Colour" zu tun, siehe HDMI
SONY
neuere Geräte
Im Modus "erweitert":
Displays, Player, GraKa
Konvertierung zu RGB kann leicht zu negativen Werten führen.
Es wird auch die Bezeichnung xv.Colour verwendet.
Sehr problematisch, weil firmenspezifisch und gerätespezifisch, keine allgemeingültige Norm