Freigeben über


Über YUV Video

Digitale Videos werden häufig im YUV-Format codiert. In diesem Artikel werden die allgemeinen Konzepte von YUV-Video zusammen mit einigen Terminologien erläutert, ohne tief in die Mathematik der YUV-Videoverarbeitung zu gehen.

Wenn Sie mit Computergrafiken gearbeitet haben, sind Sie wahrscheinlich mit RGB-Farben vertraut. Eine RGB-Farbe wird mit drei Werten codiert: Rot, Grün und Blau. Diese Werte entsprechen direkt Teilen des sichtbaren Spektrums. Die drei RGB-Werte bilden ein mathematisches Koordinatensystem, das als Farbraum bezeichnet wird. Die rote Komponente definiert eine Achse dieses Koordinatensystems, blau die zweite und grün die dritte, wie in der folgenden Abbildung dargestellt. Jede gültige RGB-Farbe fällt irgendwo in diesen Farbraum. Beispielsweise ist reine Magenta 100 % blau, 100 % rot und 0 % grün.

Diagramm mit RGB-Farbraum

Obwohl RGB eine gängige Methode zur Darstellung von Farben ist, sind andere Koordinatensysteme möglich. Der Begriff YUV bezieht sich auf eine Familie von Farbräumen, die alle Helligkeitsinformationen getrennt von Farbinformationen codieren. Wie RGB verwendet YUV drei Werte, um eine beliebige Farbe darzustellen. Diese Werte werden als Y', U und V bezeichnet. (Tatsächlich ist diese Verwendung des Begriffs "YUV" technisch ungenau. In Computervideos bezieht sich der Begriff YUV fast immer auf einen bestimmten Farbraum namens Y'CbCr, der später erläutert wird. YUV wird jedoch häufig als allgemeiner Begriff für jeden Farbraum verwendet, der nach denselben Prinzipien wie Y'CbCr funktioniert.)

Die Y-Komponente, auch luma genannt, stellt den Helligkeitswert der Farbe dar. Das Primsymbol (') wird verwendet, um luma von einem eng verwandten Wert, der Luminanz, die als Y bezeichnet wird, zu unterscheiden. Die Luminanz wird von linearen RGB-Werten abgeleitet, während Luma von nicht linearen (gammakorrigierten) RGB-Werten abgeleitet wird. Die Luminanz ist ein genaueres Maß für die tatsächliche Helligkeit, aber luma ist aus technischen Gründen praktischer zu verwenden. Das Primsymbol wird häufig weggelassen, aber YUV-Farbräume verwenden immer Luma und keine Leuchtdichte.

Luma wird von einer RGB-Farbe abgeleitet, indem ein gewichteter Durchschnitt der roten, grünen und blauen Komponenten verwendet wird. Für Das Fernsehen mit Standarddefinition wird die folgende Formel verwendet:

Y' = 0.299R + 0.587G + 0.114B

Diese Formel spiegelt die Tatsache wider, dass das menschliche Auge gegenüber bestimmten Wellenlängen des Lichts empfindlicher ist als andere, was die wahrgenommene Helligkeit einer Farbe beeinflusst. Blaues Licht erscheint am dunkelsten, Grün am hellsten, und Rot ist irgendwo dazwischen. Diese Formel spiegelt auch die physikalischen Eigenschaften der Phosphore wider, die in frühen Fernsehern verwendet wurden. Eine neuere Formel, unter Berücksichtigung moderner Fernsehtechnik, wird für hochauflösendes Fernsehen verwendet:

Y' = 0.2125R + 0.7154G + 0.0721B

Die Lumagleichung für standarddefiniertes Fernsehen ist in einer Spezifikation mit dem Namen ITU-R BT.601 definiert. Für high-definition television ist ITU-R BT.709 die relevante Spezifikation.

Die You- und V-Komponenten, auch als Chromawerte oder Farbdifferenzwerte bezeichnet, werden abgeleitet, indem der Y-Wert von den roten und blauen Komponenten der ursprünglichen RGB-Farbe subtrahiert wird:

U = B - Y'

V = R - Y'

Zusammen enthalten diese Werte genügend Informationen, um den ursprünglichen RGB-Wert wiederherzustellen.

Vorteile von YUV

Analoges Fernsehen nutzt YUV teilweise aus historischen Gründen. Analoge Farbfernsehsignale wurden so konzipiert, dass sie abwärtskompatibel mit Schwarzweißfernsehern sind. Das Farbfernsehsignal überträgt die Chroma-Informationen (Sie und V), die auf das Luma-Signal überlagert sind. Schwarzweißfernseher ignorieren die Chroma und zeigen das kombinierte Signal als Graustufenbild an. (Das Signal ist so konzipiert, dass das Chroma das Lumasignal nicht erheblich beeinträchtigt.) Farbfernseher können das Chroma extrahieren und das Signal wieder in RGB konvertieren.

YUV hat einen weiteren Vorteil, der heute relevanter ist. Das menschliche Auge reagiert weniger empfindlich auf Farbtonänderungen als auf Helligkeitsänderungen. Daher kann ein Bild weniger Chromainformationen als luma-Informationen enthalten, ohne die wahrgenommene Qualität des Bilds zu beeinträchtigen. Beispielsweise ist es üblich, die Chromawerte mit der hälfte der horizontalen Auflösung der Lumaproben zu probieren. Anders ausgedrückt: Für alle zwei Lumabeispiele in einer Reihe von Pixeln gibt es ein U-Beispiel und ein V-Beispiel. Unter der Annahme, dass zur Codierung jedes Werts 8 Bits verwendet werden, werden für zwei Pixel (zwei Y', ein U und ein V) insgesamt 4 Bytes benötigt, durchschnittlich 16 Bit pro Pixel oder 30 % weniger als die entsprechende 24-Bit-RGB-Codierung.

YUV ist grundsätzlich nicht kompakter als RGB. Sofern die Chroma nicht heruntersampiert wird, hat ein YUV-Pixel die gleiche Größe wie ein RGB-Pixel. Außerdem ist die Konvertierung von RGB zu YUV nicht verlustreich. Wenn kein Downsampling erfolgt, kann ein YUV-Pixel ohne Informationsverlust wieder in RGB konvertiert werden. Downsampling macht ein YUV-Bild kleiner und verliert auch einen Teil der Farbinformationen. Bei richtiger Ausführung ist der Verlust jedoch nicht wahrnehmbar signifikant.

YUV in Computervideo

Die zuvor für YUV aufgeführten Formeln sind nicht die genauen Konvertierungen, die in digitalen Videos verwendet werden. Digitale Videos verwenden im Allgemeinen eine Form von YUV namens Y'CbCr. Im Wesentlichen arbeitet Y'CbCr, indem die YUV-Komponenten auf die folgenden Bereiche skaliert werden:

Komponente Bereich
Y' 16–235
Cb/Cr 16–240, wobei 128 null darstellt

 

Diese Bereiche setzen eine Genauigkeit von 8 Bit für die Y'CbCr-Komponenten voraus. Hier ist die genaue Ableitung von Y'CbCr unter Verwendung der BT.601-Definition von luma:

  1. Beginnen Sie mit RGB-Werten im Bereich [0...1]. Mit anderen Worten, reines Schwarz ist 0 und reines Weiß ist 1. Wichtig ist, dass es sich dabei um nicht lineare RGB-Werte (gammakorrigiert) handelt.

  2. Berechnen Sie das Luma. Für BT.601, Y' = 0,299R + 0,587G + 0,114B, wie zuvor beschrieben.

  3. Berechnen Sie die zwischengeschalteten Chroma-Differenzwerte (B - Y') und (R - Y'). Diese Werte haben einen Bereich von +/- 0,886 für (B - Y') und +/- 0,701 für (R - Y').

  4. Skalieren Sie die Chroma-Differenzwerte wie folgt:

    Pb = (0,5 / (1 - 0,114)) × (B - Y')

    Pr = (0,5 / (1 - 0,299)) × (R - Y')

    Diese Skalierungsfaktoren sind so konzipiert, dass beide Werte den gleichen numerischen Bereich (+/- 0,5) erhalten. Zusammen definieren sie einen YUV-Farbraum mit dem Namen Y'PbPr. Dieser Farbraum wird in analogen Komponentenvideos verwendet.

  5. Skalieren Sie die Y'PbPr-Werte, um die endgültigen Y'CbCr-Werte zu erhalten:

    Y' = 16 + 219 × Y'

    Cb = 128 + 224 × Pb

    Cr = 128 + 224 × Pr

Diese letzten Skalierungsfaktoren erzeugen den in der vorherigen Tabelle aufgeführten Wertebereich. Natürlich können Sie RGB direkt in Y'CbCr konvertieren, ohne die Zwischenergebnisse zu speichern. Die Schritte werden hier separat aufgeführt, um zu zeigen, wie Y'CbCr von den ursprünglichen YUV-Formeln abgeleitet wird, die am Anfang dieses Artikels angegeben wurden.

Die folgende Tabelle zeigt RGB- und YCbCr-Werte für verschiedene Farben, wobei wiederum die BT.601-Definition von luma verwendet wird.

Color R G B Y' Cb Cr
Schwarz 0 0 0 16 128 128
Red 255 0 0 81 90 240
Grün 0 255 0 145 54 34
Blau 0 0 255 41 240 110
Cyan 0 255 255 170 166 16
Magenta 255 0 255 106 202 222
Gelb 255 255 0 210 16 146
Weiß 255 255 255 235 128 128

 

Wie diese Tabelle zeigt, entsprechen Cb und Cr nicht intuitiven Vorstellungen über Farbe. Beispielsweise enthalten reines Weiß und reines Schwarz beide neutrale Werte von Cb und Cr (128). Die höchsten und niedrigsten Werte für Cb sind blau bzw. gelb. Für Cr sind die höchsten und niedrigsten Werte Rot und Cyan.

Weitere Informationen

Videomedientypen

Medientypen