Entscheidungsfindung im Encoder

Während der Encoder das Bild bearbeitet, muss er eine gewaltige Menge an Entscheidungen treffen. Meistens gibt es mehrere Möglichkeiten, wie ein Makroblock encodiert werden kann, also müssen Kriterien her, nach dem der Encoder die günstigste Variante heraussuchen kann.

Metriken im Encoder

Eine Metrik ist nichts anderes als eine Berechnung, deren Ergebnis aussagt, wie gut oder schlecht eine Encodingstrategie ist. Die einfachsten Metriken setzen an der Differenz zwischen Originalbild und encodiertem Bild an und gehen von der Annahme aus, dass das Bild um so schlechter wird, je deutlicher es sich vom Original unterscheidet. Das können wir in eine mathematische Formel packen und dann tatsächlich eindeutige Aussagen über besser und schlechter treffen. Die zwei bekanntesten Metriken sind das sehr einfach gestrickte Peak Signal to Noise Ratio (PSNR) und das etwas komplexere Structural Similarity (SSIM). Entweder diese oder ähnliche Qualitätsmaßstäbe, die nach demselben Prinzip funktionieren, werden in jedem Encoder weit verbreitet eingesetzt.

Doch solche einfachen mathematischen Metriken haben ein Problem. Sie sind sehr grobe Vereinfachungen des menschlichen Sehsystems (Human Visual System, HVS), d.h. sie sind fehleranfällig. Es gilt eben bei weitem nicht immer, dass ein größerer Unterschied zum Original auch schlechtere Qualität bedeutet. Es kommt sehr darauf an, wie dieser Unterschied beschaffen ist.

An dieser Stelle setzen die psychovisuellen Methoden an, oft mit Psyvis abgekürzt. Die versuchen, die Eigenschaften des HVS besser nachzubilden, lassen sich aber genau deswegen nicht mehr so einfach in schönen, eindeutigen mathematischen Formeln ausdrücken.

Rate/Distortion-Optimierung

Videoencoding ist von massenweise Abwägungen und Kompromissen geprägt, u.a. von einer sinnvollen Balance zwischen benötigter Datenrate und erzielter Qualität. Diese Entscheidung müssen wir manuell bei der Auswahl der Zielgröße oder Qualitätsstufe treffen, doch auch der Encoder besitzt Funktionen, die etwas ähnliches tun. Das passiert auf Makroblock-Basis und nennt sich Rate/Distortion Optimization (RDO). Dabei werden für einen Block mehrere unterschiedliche Szenarien berechnet, um das beste Preis/Leistungs-Verhältnis zu erreichen. Der Preis sind die verbrauchten Bits, die Leistung die erzielte Qualität. Dabei kann es durchaus sinnvoll sein, eine etwas geringere Qualität in Kauf zu nehmen, wenn damit überproportional Bits gespart werden. Denn diese Bits stehen dann an anderer Stelle zur Verfügung, wo sie vielleicht nötiger sind.

Kommentare