sRGB - sRGB

sRGB
Standard-RGB
SRGB-Farbwert CIE1931.svg
sRGB-Farben an berechneter Position in CIE 1931- Farbtafel . Luminanz so eingestellt, dass helle Linien zu den Komplementärfarben der Primärfarben vermieden werden.
Einheimischer Name
Status Veröffentlicht
Erstmals veröffentlicht 18. Oktober 1999 ; Vor 21 Jahren ( 1999-10-18 )
Organisation IEC
Komitee TC / SC : TC 100/TA 2
Domain Farbraum , Farbmodell
Abkürzung sRGB
Webseite Webstore .iec .ch / Veröffentlichung / 6169

sRGB ist ein Standard- RGB-Farbraum (Rot, Grün, Blau) , den HP und Microsoft 1996 gemeinsam entwickelt haben, um ihn auf Monitoren, Druckern und im Web zu verwenden . Anschließend wurde es von der IEC als IEC 61966-2-1:1999 genormt. Sein Vorgänger NIF RGB wurde in FlashPix verwendet und war fast gleich. Es wird normalerweise als Farbraum für Bilder angenommen, die keine Farbrauminformationen enthalten, insbesondere wenn die Pixel der Bilder in 8-Bit-Ganzzahlen pro Farbkanal gespeichert werden .

sRGB verwendet die ITU-R BT.709- Primärsignale – die gleichen wie bei Studiomonitoren und HDTV – eine für CRTs typische Übertragungsfunktion ( Gamma ) und eine Anzeigeumgebung , die auf typische Betrachtungsbedingungen zu Hause und im Büro abgestimmt ist. Diese Spezifikation ermöglichte es, sRGB direkt auf typischen CRT-Monitoren der damaligen Zeit anzuzeigen, was der Akzeptanz sehr zugute kam. sYCC verwendet die BT.601 YCbCr- Matrix zum Kodieren in den erweiterten Farbraum, negative R'G'B'-Werte werden mit der erweiterten Übertragungsfunktion dekodiert, sRGB verwendet keine Y'CbCr-Matrix.

Der sRGB-Farbraum

Chromatizität rot Grün Blau Weißpunkt
x 0,6400 0.3000 0.1500 0,3127
ja 0,3300 0,6000 0.0600 0,3290
Ja 0,2126 0,7152 0,0722 1.0000

sRGB definiert die Chromazitäten der roten, grünen und blauen Primärfarben , die Farben , bei denen einer der drei Kanäle nicht Null ist und die anderen beiden sind gleich Null. Die Farbskala , die in sRGB dargestellt werden kann, ist das durch diese Primärfarben definierte Farbdreieck . Wie bei jedem RGB-Farbraum ist es für nicht-negative Werte von R, G und B nicht möglich, Farben außerhalb dieses Dreiecks darzustellen, das weit innerhalb des für einen Menschen mit normalem trichromatischem Sehen sichtbaren Farbbereichs liegt.

Die Vorwahlen stammen von HDTV ( Rec. 709 ) , das wiederum auf Farbfernsehen ( Rec. 601 ) basiert . Diese Werte spiegeln die ungefähre Farbe von Verbraucher-CRT-Leuchtstoffen wider.

Die sRGB-Übertragungsfunktion ("Gamma")

Auf einem sRGB-Display sollte jeder durchgehende Balken so hell aussehen wie das umgebende gestreifte Dithering. (Hinweis: muss im Original betrachtet werden, 100% Größe)

sRGB definiert auch eine nichtlineare Übertragungsfunktion zwischen der Intensität dieser Primärfarben und der tatsächlich gespeicherten Anzahl. Die Kurve ähnelt der Gamma- Reaktion eines CRT- Displays. Diese nichtlineare Konvertierung bedeutet, dass sRGB eine einigermaßen effiziente Verwendung der Werte in einer ganzzahligen Bilddatei ist, um für den Menschen wahrnehmbare Lichtpegel anzuzeigen.

Im Gegensatz zu den meisten anderen RGB-Farbräumen kann das sRGB- Gamma nicht als einzelner Zahlenwert ausgedrückt werden. Das Gesamtgamma beträgt ungefähr 2,2 und besteht aus einem linearen (Gamma 1,0) Abschnitt in der Nähe von Schwarz und einem nichtlinearen Abschnitt an anderer Stelle mit einem 2,4-Exponenten und einem Gamma (Steigung des logarithmischen Ausgangs gegenüber dem logarithmischen Eingang), der sich von 1,0 bis ungefähr 2,3 ändert. Der Zweck des linearen Abschnitts besteht darin, dass die Kurve bei Null keine unendliche Steigung hat, was zu numerischen Problemen führen könnte.

Transformation

Von sRGB zu CIE XYZ

Die sRGB-Komponentenwerte , , liegen im Bereich von 0 bis 1 (Werte im Bereich von 0 bis 255 sollten durch 255.0 geteilt werden).

  • wo ist , , oder .

Diese gamma-erweiterten Werte (manchmal als "lineare Werte" oder "lineare Lichtwerte" bezeichnet) werden mit einer Matrix multipliziert, um CIE XYZ zu erhalten:

Dies ist eigentlich die Matrix für BT.709-Primärfarben, nicht nur für sRGB, die zweite Zeile enthält die BT.709-2-Matrixkoeffizienten .

Von CIE XYZ zu sRGB

Die CIE-XYZ- Werte müssen so skaliert werden, dass das Y von D65 ("weiß") 1,0 ist ( X , Y , Z = 0,9505, 1,0000, 1,0890). Dies ist normalerweise der Fall, aber einige Farbräume verwenden 100 oder andere Werte (z. B. in CIELAB , wenn bestimmte Weißpunkte verwendet werden).

Der erste Schritt bei der Berechnung von sRGB aus CIE XYZ ist eine lineare Transformation, die durch eine Matrixmultiplikation durchgeführt werden kann. (Die Zahlenwerte unten stimmen mit denen in der offiziellen sRGB-Spezifikation überein, die kleine Rundungsfehler in der Originalveröffentlichung von den sRGB-Erstellern korrigierte und den 2° -Standardfarbmessbeobachter für CIE XYZ annimmt.)

Diese linearen RGB-Werte sind nicht das Endergebnis; Die Gammakorrektur muss weiterhin angewendet werden. Die folgende Formel transformiert die linearen Werte in sRGB:

  • wo ist , , oder .

Diese gammakomprimierten Werte (manchmal als "nichtlineare Werte" bezeichnet) werden normalerweise auf den Bereich 0 bis 1 begrenzt. Dieses Beschneiden kann vor oder nach der Gammaberechnung oder als Teil der Konvertierung in 8 Bit erfolgen. Wenn Werte im Bereich von 0 bis 255 benötigt werden, zB für die Videodarstellung oder 8-Bit-Grafik, ist die übliche Technik, mit 255 zu multiplizieren und auf eine ganze Zahl zu runden.

sYCC-Transformation mit erweitertem Farbraum

Die Änderung 1 zu IEC 61966-2-1:1999 beschreibt, wie die Gammakorrektur auf negative Werte angewendet wird, indem f (− x ) angewendet wird, wenn x negativ ist (und f die oben beschriebenen sRGB↔linearen Funktionen sind), als Teil von die YCbCr- Definition. Dies wird auch von scRGB verwendet .

Abänderung 1 empfiehlt auch eine XYZ-zu-RGB-Matrix mit höherer Genauigkeit mit 7 Dezimalpunkten, um die RGB-zu-XYZ-Matrix genauer zu invertieren (die bei der oben gezeigten Genauigkeit bleibt):

.

Theorie der Transformation

x-Achse: codierter Wert
Linke y-Achse: effektives lokales Gamma
Rechte y-Achse: Intensität
Auftragung der sRGB-Intensitäten gegen die numerischen sRGB-Werte (rot) und die Steigung dieser Funktion im log-log-Raum (blau), die das effektive Gamma bei jedem . ist Punkt. Unterhalb eines komprimierten Wertes von 0,04045 oder einer linearen Intensität von 0,00313 ist die Kurve linear, sodass das Gamma 1 beträgt. Hinter der roten Kurve befindet sich eine gestrichelte schwarze Kurve, die ein exaktes Gamma = 2,2-Potenzgesetz zeigt.

Es wird manchmal gesagt, dass sRGB ein Gamma von 2,2 verwendet, aber die obigen Transformationen zeigen einen Exponenten von 2,4. Dies liegt daran, dass der Nettoeffekt der stückweisen Zerlegung notwendigerweise ein sich änderndes momentanes Gamma an jedem Punkt des Bereichs ist: Es geht von Gamma = 1 bei Null bis zu einem Gamma nahe 2,4 bei maximaler Intensität, wobei ein Medianwert nahe 2,2 liegt. Die Transformation wurde entworfen, um ein Gamma von ungefähr 2,2 anzunähern, jedoch mit einem linearen Anteil nahe Null, um eine unendliche Steigung bei K  = 0 zu vermeiden , die numerische Probleme verursachen kann.

Parametrieren der stückweisen Formeln zur Verwendung für 0,04045, für 12,92 und für 0,055, die Stetigkeitsbedingung am Knickpunkt ist

Das Auflösen mit und dem Standardwert liefert zwei Lösungen, ≈ oder . Die Norm IEC 61966-2-1 verwendet den gerundeten Wert , der ergibt . Wenn wir jedoch die Bedingung stellen, dass auch die Steigungen übereinstimmen, müssen wir haben

Wir haben jetzt zwei Gleichungen. Wenn wir die beiden Unbekannten als seien und dann lösen können, um zu geben

,

Einsetzen von und ergibt und , mit dem entsprechenden Linearbereich-Schwellenwert bei . Diese Werte, gerundet auf , und , beschreiben manchmal die sRGB-Konvertierung. Veröffentlichungen der sRGB-Ersteller wurden auf und gerundet , daher (dies wurde auch in FlashPix verwendet ), was zu einer kleinen Diskontinuität in der Kurve führte. Einige Autoren haben diese Werte trotz der Diskontinuität übernommen. Für den Standard wurde der gerundete Wert beibehalten und der Wert neu berechnet, um die resultierende Kurve wie oben beschrieben kontinuierlich zu machen, was zu einer Steigungsunstetigkeit von 12,92 unterhalb des Schnittpunkts bis 12,70 oberhalb führte.

Betrachtungsumgebung

CIE 1931 xy - Farbtafel , die zeigt , Gamut des sRGB - Farbraum (das Dreieck). Die äußere gekrümmte Grenze ist der spektrale (oder monochromatische) Ort mit Wellenlängen in Nanometern (blau markiert). Dieses Bild wird mit sRGB gezeichnet, daher können Farben außerhalb des Dreiecks nicht genau eingefärbt werden und wurden interpoliert. Der Weißpunkt D65 wird in der Mitte angezeigt, und der Plancksche Locus wird mit Farbtemperaturen in Kelvin angezeigt . D65 ist kein idealer schwarzer Körper mit 6504 Kelvin , da er auf atmosphärisch gefiltertem Tageslicht basiert.
Parameter Wert
Bildschirmhelligkeitsstufe 80 cd / m 2
Leuchtmittel Weißpunkt x = 0,3127, y = 0,3290 (D65)
Bild-Surround-Reflexion 20% (~mittelgrau)
Codierung der Umgebungsbeleuchtungsstärke 64 Lux
Codierung des Umgebungsweißpunkts x = 0,3457, y = 0,3585 (D50)
Codierung des Betrachtungsflares 1,0%
Typische Umgebungsbeleuchtungsstärke 200 Lux
Typischer Weißpunkt in der Umgebung x = 0,3457, y = 0,3585 (D50)
Typisches Sehfeuer 5,0%

Die sRGB-Spezifikation geht von einer schwach beleuchteten Codierungs-(Erstellungs-)Umgebung mit einer umgebungskorrelierten Farbtemperatur (CCT) von 5003 K aus. Dies unterscheidet sich von der CCT des Leuchtmittels (D65). Die Verwendung von D50 für beides hätte den Weißpunkt der meisten Fotopapiere übermäßig blau erscheinen lassen. Die anderen Parameter, wie der Luminanzpegel, sind repräsentativ für einen typischen CRT-Monitor.

Für optimale Ergebnisse empfiehlt die ICC , die kodierte Betrachtungsumgebung (dh schwache, diffuse Beleuchtung) anstelle der weniger strengen typischen Betrachtungsumgebung zu verwenden.

Verwendungszweck

Vergleich einiger RGB- und CMYK - Farbskalen auf einem CIE 1931 xy - Farbtafel

Aufgrund der Standardisierung von sRGB im Internet, auf Computern und auf Druckern verwenden viele digitale Kameras und Scanner der unteren bis mittleren Endverbraucherklasse sRGB als standardmäßigen (oder nur verfügbaren) Arbeitsfarbraum. Consumer- CCDs sind jedoch in der Regel nicht kalibriert, d. h., obwohl das Bild als sRGB gekennzeichnet ist, kann nicht geschlossen werden, dass das Bild farbgenaues sRGB ist.

Wenn der Farbraum eines Bildes unbekannt ist und es sich um ein 8- bis 16-Bit-Bildformat handelt, ist die Annahme des sRGB-Farbraums eine sichere Wahl. Ein ICC-Profil kann verwendet werden; die ICC vertreibt drei solcher Profile: zwei Profile nach Version 4 der ICC-Spezifikation, die sie empfehlen, und ein Profil nach Version 2, die immer noch gebräuchlich ist. Version 2 des ICC-Profils unterstützt keine parametrische Kurvenkodierung ("para"), deshalb verwendet es zur Annäherung an die EOTF 1024 Punkte 1DLUT, was möglicherweise nicht offensichtlich ist, dass es stückweise ist. Das Display P3 ICC-Profil codiert die sRGB-Übertragung unter Verwendung der "Para"-Codierung von g, a, b, c, d.

Da die sRGB-Farbskala die Farbskala eines Low-End- Tintenstrahldruckers erreicht oder überschreitet , wird ein sRGB-Bild oft als zufriedenstellend für den Heimdruck angesehen. sRGB wird manchmal von High-End-Druckverlegern vermieden, weil sein Farbraum insbesondere in den blau-grünen Farben nicht groß genug ist, um alle Farben aufzunehmen, die im CMYK- Druck reproduziert werden können . Bilder, die für den professionellen Druck über einen vollständig farbgesteuerten Workflow (z. B. Druckvorstufenausgabe ) bestimmt sind, verwenden manchmal einen anderen Farbraum wie Adobe RGB (1998) , der einen größeren Farbraum bietet. Solche im Internet verwendeten Bilder können mit Farbmanagement- Tools, die normalerweise in Software enthalten sind, die in diesen anderen Farbräumen funktioniert, in sRGB umgewandelt werden.

Die beiden dominierenden Programmierschnittstellen für 3D-Grafiken, OpenGL und Direct3D , unterstützen beide die sRGB-Gammakurve. OpenGL unterstützt Texturen mit sRGB-gammakodierten Farbkomponenten (zuerst eingeführt mit der EXT_texture_sRGB-Erweiterung, in OpenGL 2.1 zum Kern hinzugefügt) und das Rendern in sRGB-gamma-kodierte Framebuffer (zuerst eingeführt mit der EXT_framebuffer_sRGB-Erweiterung, zum Kern in OpenGL 3.0 hinzugefügt). Korrektes Mipmapping und Interpolation von sRGB- Gammatexturen hat direkte Hardwareunterstützung in Texturierungseinheiten der meisten modernen GPUs (zum Beispiel führt nVidia GeForce 8 eine Konvertierung von 8-Bit-Texturen in lineare Werte durch, bevor diese Werte interpoliert werden) und hat keine Leistungseinbußen.

Verweise

Normen

  • IEC 61966-2-1:1999 ist die offizielle Spezifikation von sRGB. Es bietet Anzeigeumgebung, Kodierung und kolorimetrische Details.
  • Die Änderung A1:2003 zu IEC 61966-2-1:1999 beschreibt eine analoge sYCC-Kodierung für YCbCr- Farbräume, eine RGB-Kodierung mit erweitertem Gamut und eine CIELAB- Transformation.
  • sRGB , Internationales Farbkonsortium
  • Der vierte Arbeitsentwurf der IEC 61966-2-1 ist online verfügbar, jedoch nicht der vollständige Standard. Es kann von www2.units.it heruntergeladen werden .
  • Archivkopie von sRGB.com , jetzt nicht verfügbar, mit vielen Informationen zu Design, Prinzipien und Verwendung von sRGB

Externe Links