ennui hat geschrieben:Warum hat man das bei der Einführung von digitalem Video eigentlich damals so gemacht, welche Gründe gab es da? Logischer wäre ja, die kümmerlichen 8 Bit wenigstens auch voll auszuschöpfen. Warum nahm man da nicht den vollen Range 0-255? Sollten da noch irgendwelche Zusatzinformationen übertragen werden?
Das verwirrung stiftende Problem ist die Konvergenz zweier Technologiezweige, die sich getrennt entwickelt haben. Ich versuche das mal kurz zusammenzufassen, vielleicht sollte ich das aber mal zum Nachlesen ausführlicher auf einer Website beschreiben.
Zum einen gibt es die Computertechnik. Hier hat man seit der Einführung von 24-Bit RGB "True Color" jedem der drei Farbkanäle einen Werteberich von 0-255 zugestanden. Weiß war hier immer 255,255,255 und Schwarz immer 0,0,0. Die verfügbaren 8 Bit pro Farbkanal wurden damit voll ausgeschöpft. Digitale Filter führen hier natürlich auch zu Überschwingern, diese kann man aber einfach abschneiden.
Was erst später kam, war die Festlegung auf sRGB als Farbraum. Vorher waren die Farbmonitore zwar ähnlich, aber nicht festgelegt. Mit sRGB kam die genaue Festlegung der drei Primärfarben und der Übertragungsfunktion ("Gamma").
Viele der verwendeten Dateiformate kommen aus der Computer-Ecke: BMP, TIFF, JPEG, PNG, AVI, usw. Hier werden natürlich die vollen 8 Bit gespeichert. Aus Computer-Sicht war 0,0,0 immer Schwarz und 255,255,255 immer Weiß.
Was sich bis heute leider nicht durchgesetzt hat, ist ein programmübergreifendes Farbmanagement. Daher gehen Programme ohne Vorhandensein von Zusatzinformationen bei der Verarbeitung und Darstellung von Bitmaps in der Regel von sRGB aus.
Zum anderen gab es die Fernseh-/Videotechnik. Diese war ganz lange analog. Auch hier gab es festgelegte Primärfarben und eine Übertragungsfunktion, jedoch andere Festlegungen als im Computerbereich.
Erste Schritte in Richtung digitaler Videotechnik haben ein analoges Komponentensignal einfach digitalisiert, meist mit 8 Bit pro Kanal. Verkomplizierend kommt hier dazu, dass es sich in der Regel nicht um RGB handelte, sondern YUV, was dadurch entstand, dass man auf lineares RGB die Übertragungsfunktion angewendet hat und erst danach über eine Matrix zu YUV konvertiert hat. Das geschah damals alles analog.
Aus diversen Entwicklungen ging dabei hervor, dass man sich bei 8-Bit-Aufzeichnungen auf einen Schwarzpunkt von Y=16 und ein nominelles Maximum von Y=235 (Weiß) festgelegt hat. Y=0 und Y=255 wurden speziellen Signalisierungszwecken vorbehalten, der restliche Bereich diente der Aufzeichnung von Überschwingern. Über die tatsächlichen Gründe dafür weiß ich nicht Bescheid, ich kann nur Vermutungen anstellen: Eventuell wollte man moderate Überschwinger unbedingt reproduzieren können, damit bei der Rückwandlung in ein analoges Signal bei sonst "hart" abgeschnittenen überschwingenden Verläufen keine weiteren neuen Störungen eingeführt werden. Vielleicht war diese Umsetzung damals auch einfach nur einfacher umzusetzen bzw. kostengünstiger. Jedenfalls findet der Wertebereich bis heute Verwendung.
Irgendwann konvergierten die Technologien, da man am PC Videodaten verarbeiten wollte.
Recht einfach ist es natürlich die 8-Bit Samples (1 Byte) aus der Videoecke als einfach ohne mehr Umwandlungen uns unbedingt nötig am PC darzustellen, als ob es sich um eine sRGB Bitmap handelt (eine Umsetzung von YCbCr nach RGB ist aber nötig). Zwar stimmen dann Schwarz und Weiß nicht und die Übertragungsfunktion ist auch eine Andere, aber es ist einfach zu programmieren, da die zugrundeliegenden RGB-Bitmaps im Speicher prinzipiell den gleichen Aufbau haben. Was dabei entsteht, ist eine am PC leicht kontrastarme Darstellung ohne richtiges Schwarz, die falsche Übertragungsfunktion fällt hingegen kaum auf. Ein Vorteil dieser Vorgehensweise: Sie ist schnell. Das war wichtig, als die PCs grade anfingen für Digital-Video schnell genug zu sein.
Wie schon gesagt: Hat man eine nicht komprimierte Computer-RGB-Bitmap und eine Video-RGB-Bitmap, dann haben diese die gleiche Größe, den gleichen Speicheraufbau, auch wenn die einzelnen Werte eine andere Bedeutung haben. Interpretiert man Letztere ohne sonstige Umwandlung als Erstere, dann kann diese vom PC direkt dargestellt werden, wenn auch leicht verändert (Kontrast, usw.).
Ohne Zusatzinformationen kann man jedenfalls die beiden nicht komprimierten 24-Bit-RGB-Bitmap-Typen nicht auseinanderhalten. Da ein Computer im Zweifel immer von sRGB ausgeht und viele Programme primär auf die Gegebenheiten der Computer-Technik ausgelegt sind und sich ein konsequentes Farbmanagement leider bisher nicht durchgesetzt hat, werden Video-Bitmaps gelegentlich "flau" ausgegeben.
Noch ein paar Hinweise: Es reicht nicht den Wertebereich anzupassen, es müssen auch die Übertragungsfunktionen berücksichtigt werden. Liegen die Video-Daten als YCrCb vor, muss noch mehr berücksichtigt werden, da sich hiermit Farben beschreiben lassen, die außerhalb von 0-255 für RGB liegen.
Soviel als kurze Zusammenfassung.