EINE STUFE EINER KETTE — WAS ANKOMMT, WAS HERAUSGEHT, WAS DANACH BRICHT
Wo diese Stufe in der Encoding-Pipeline sitzt
Ein Video-Encoder ist kein einzelner Algorithmus, sondern acht Stufen in fester Reihenfolge — und die Reihenfolge ist nicht beliebig: Jede Stufe existiert, weil die vorherige ihre Arbeit erst möglich gemacht hat. Dieses Werkzeug modelliert eine davon. Die Kette unten verlinkt die anderen sieben.
Chroma-Subsampling-Labor — verwirft den größten Teil der Farbauflösung und lässt die Helligkeit unangetastet
- Was ankommt
- Luma und Chroma in voller Auflösung — ein Farbwert pro Pixel, geschrieben 4:4:4.
- Was herausgeht
- Luma in voller Auflösung, Chroma mit einem Viertel der Abtastwerte bei 4:2:0.
- Was die nächste Stufe voraussetzt
- Alles danach verarbeitet viermal weniger Chroma-Daten, und der Decoder interpoliert die verworfenen Werte wieder hinein.
- Was hier schiefgeht
- Eine gesättigte Kante — roter Text auf Schwarz ist der Standardfall — bekommt ihre Farbe über den Block verschmiert, denn diese Kante liegt im Chroma-Kanal, wo die Abtastwerte entfernt wurden. Luma bleibt intakt, also sieht das Bild scharf aus und die Farbe falsch.
Aufgabe vollständig gelöst
-
Bytes pro Pixel für 4:4:4, 4:2:2 und 4:2:0 anhand der Abtastwerte 6 Schritte
Leiten Sie die Bytes pro Pixel für 4:4:4, 4:2:2 und 4:2:0 aus den Abtastzahlen ab und ermitteln Sie anschließend, wie viel Bandbreite 4:2:0 tatsächlich einspart.
-
Zählen Sie die Abtastwerte in einem 2×2-Block. Die Schreibweise gibt an, wie viele Chroma-Abtastwerte vier Luma-Abtastwerten in der oberen und unteren Zeile zugeordnet sind, sodass das Verhältnis eine Anzahl und kein Bruch ist.
-
Die anderen beiden Modi verwerfen Chroma horizontal und anschließend auch vertikal. Jede Halbierung entfernt zwei der zwölf Abtastwerte im Block.
-
Multiplizieren Sie mit der Pixelanzahl für die Bildgröße und bilden Sie das Verhältnis für die Einsparung. 4:2:0 ist durch Konstruktion genau die Hälfte von 4:4:4, nicht durch Messung.
-
Betrachten Sie, wohin die Abtastwerte gegangen sind. Luma bleibt in jedem Modus unberührt — die Farbdifferenzkanäle sind die einzigen, die ausgedünnt werden, und das menschliche Auge löst sie mit etwa der halben Sehschärfe auf.
-
Skalieren Sie dieselben 1,5 Bytes pro Pixel auf ein reales Einzelbild bei einer realen Bildrate.
-
Deshalb ist das Fehlerbild spezifisch und nicht allgemein: Der Verlust liegt vollständig in den beiden Kanälen, die keine Leuchtdichte-Details übertragen.
Antwort
Die Hälfte, und es sind immer noch 746 Mbit/s für unkomprimiertes 1080p30. Diese Zahl ist der Kern der Aufgabe. Chroma-Subsampling ist die günstigste Kompression, die es gibt — keine Transformation, kein Entropiekodierer, keine Entscheidung zu treffen — und nach der Halbierung der Daten ist der Datenstrom immer noch viel zu groß für jedes Netzwerk, das irgendjemand zu Hause hat. Deshalb setzt jeder ausgelieferte Codec nach diesem Schritt an, anstatt ihn zu ersetzen. Der Grund, warum es visuell so wenig kostet, liegt in der Y-Gleichung: Luma wird an jedem Pixel abgetastet und nur Cb und Cr werden ausgedünnt, sodass Kanten, Textur und Details unberührt bleiben. Was fehlschlägt, ist alles, dessen Information allein in der Farbe liegt — roter Text auf grauem Hintergrund, ein gesättigtes Logo, eine Chroma-Key-Kante —, weshalb 4:2:0 bei Laub unsichtbar ist und bei einer Präsentation verheerend wirkt.
-
Quellen (1)
- Insight block 1 says codecs discard colour before anything else. This is the measurement that licenses it: K. T. Mullen, "The contrast sensitivity of human colour vision to red–green and blue–yellow chromatic gratings." The Journal of Physiology 359, 381–400, 1985 — chromatic acuity falls away at far coarser detail than luminance acuity.