Farbverfälschungen bei der Konvertierung

farbIm Rahmen unserer Arbeit haben wir einen großen deutschen Automobilhersteller bei der Entwicklung eines auf H.264 basierenden Videosystems durch unsere Analyse beratend unterstützt. Das Videosystem ist zum späteren Einsatz im Automobil vorgesehen, wobei Video-Daten im H.264 Format per Streaming an mehrere im Automobil verbaute Bildschirme übertragen werden. Kern des Videosystems ist eine Konvertierungskomponente, welche beliebige Bilddaten in das H.264-Format wandelt.

 

 

In der Entwicklungsphase kam es innerhalb dieses Videosystems zu zunächst unerklärlichen Problemen. Aufgrund unserer Erfahrung und Kompetenz wurden wir beauftragt, bei der Lösung dieser Probleme zu helfen. Wir gingen dabei vor wie folgt:

  • Auf Basis erster Beobachtungen und der Fehlerbeschreibung durch den Automobilhersteller erstellten wir einen maßgeschneiderten Referenz-Korpus von Testsequenzen und stellten diesen dem Automobilhersteller zur Verfügung.

  • Dieser Referenz-Korpus wurde zweimal in H.264 konvertiert: Einmal im Videosystem des Automobilherstellers (A), einmal durch uns (B). Auf diese Weise erhielten wir zwei auf dem Referenz-Korpus basierende Vergleichs-Korpora, A und B.

  • Vergleichskorpus A nutzten wir zur Suche nach und zur Identifikation von Problemen und Fehlern in der Konvertierungskomponente des Videosystems des Automobilherstellers.

  • Vergleichskorpus B nutzten wir als optimales Beispiel zum Vergleich und zur Gegenüberstellung mit Vergleichskorpus A.

  • Wir führten für beide Vergleichskopora eine Reihe von Analysen, darunter auch die Analyse der Bewegungsvektoren durch. Für die Analysen auf Basis von PSNR und SSIM nutzten wir den originalen Referenz-Korpus zum Vergleich.

Durch die so durchgeführten Analysen konnten wir die Ursachen der bekannten Probleme aufdecken und zusätzlich eine Reihe von weiteren Problemen aufdecken und lösen, welche ansonsten mit hoher Wahrscheinlichkeit erst nach Fertigstellung des Videosystems aufgefallen wären. Durch unsere Hilfe konnten spätere schlechte Testergebnisse in Fachzeitschriften und Unzufriedenheit bei den Kunden des Automobilherstellers vermieden werden. Eines der so aufgedeckten Probleme ist das Problem der Farbverfälschungen, welches wir Ihnen im Folgenden als Beispiel unserer Arbeit beschreiben wollen.

Das Problem

Bei der Durchsicht der durch den Automobilhersteller konvertierten Testsequenzen des Referenz-Korpus konnten wir feststellen, dass die RGB-Farbwerte stark von den RGB-Farbwerten in den durch uns konvertierten Testsequenzen abwichen. Die Abweichung beträgt für die einzelnen Farbkomponenten jeweils 15...20 Einheiten und mehr. Besonders starke Probleme entstanden bei stark gesättigten Farben.

 

Das Problem der Farbverfälschung führt zu einem starken Verlust an Qualität im Vergleich zu den ursprünglichen originalen Referenz-Testsequenzen und tritt im Videosystem des Automobilherstellers grundsätzlich, bei jeder Art von Videosequenz, nicht nur bei den von uns eingesetzten Referenz-Testsequenzen auf. In vielen Fällen ist das Problem bereits mit bloßem Auge gut zu erkennen.

 

Die Lösung

Das Problem wird verursacht durch die Farbraumkonversion vom RGB-Farbraum in den YCbCr-Farbraum und wieder zurück in den RGB-Farbraum. Diese wird im Videosystem des Automobilherstellers unnötigerweise durchgeführt.

Für die Konversion von RGB nach YCbCr existieren verschiedene Rechenvorschriften, wie etwa die unter dem Namen ITU-R BT.601 standardisierte Konversion:

Im JPEG Format, welches auch auf dem YCbCr-Farbraum basiert und aus RGB-Bilddaten erzeugt wird, wird eine andere Art der Konversion genutzt:

Außer den zwei gezeigten Konversionsformeln existieren andere, wie etwa die unter dem Namen ITU-R BT.709 standardisierte Konversion. Zusätzlich kann es durch die jeweilige Implementation im Codec zu mehr oder weniger großen Rundungsfehlern bei der Konversion kommen. Besonders problematisch ist jedoch, wenn für die Rückkonversion von YCbCr nach RGB eine andere Vorschrift genutzt wird, als zuvor für die Hinkonversion genutzt wurde. Dies war auch der Fall beim beschriebenen Problem und verursachte die massiven Abweichungen in der Farbwiedergabe.

Farbraumkonversionen zwischen YCbCr und RGB sind oft nicht vermeidbar, zumal da die meisten Grafikkarten und Displays auf RGB basieren, Videocodecs jedoch auf YCbCr. Für diese nicht vermeidbare Farbraumkonversionen muss im Sinne geringer Abweichungen darauf geachtet werden, dass für Hin- und Rückkonversion jeweils die gleiche Rechenvorschrift verwendet wird. Unnötige Farbraumkonversionen sollten jedoch auf jeden Fall vermieden werden. In diesem speziellen Fall konnte das Problem durch eine grundsätzliche Umstrukturierung des Videosystems des Automobilherstellers gelöst werden.

 

Copyright 2012 – All rights reserved

Gelesen 3144 mal Letzte Änderung am Freitag, 28 November 2014 10:54