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.
Rate-Control-Simulator — wählt den Quantisierer für jedes Bild, um entweder eine Bitraten- oder eine Qualitätsvorgabe zu treffen
Die Ratensteuerung ist eine Schleife und keine Stufe: Sie umschließt die Quantisierung in Stufe 05 und regelt sie fortlaufend nach, statt einmal zwischen zwei Nachbarn zu laufen.
- Was ankommt
- Die gemessenen Bitkosten der bereits codierten Bilder und eine Zielvorgabe.
- Was herausgeht
- Eine Quantisierereinstellung für das nächste Bild, zurückgegeben an Stufe 05.
- Was die nächste Stufe voraussetzt
- Sie setzt voraus, die Quantisierung verändern zu dürfen — deshalb umschließt sie diese Stufe, statt ihr zu folgen.
- Was hier schiefgeht
- Qualität und Bitrate lassen sich nicht beide konstant halten. CRF hält die Qualität fest und lässt die Bitrate bei komplexen Szenen steigen; CBR hält die Bitrate fest und lässt dort die Qualität einbrechen. Eines zu wählen heißt zu wählen, welches der beiden sich bewegen darf.
Aufgaben vollständig gelöst
-
Ableitung der 60er-Wertung für den schlechtesten CBR-Frame aus einem 4-Frame-Puffer 6 Schritte
Action-Szene, CRF 23, ein 4-Frame-Puffer. Der schlechteste Frame von CBR erreicht einen Wert von 60 von den 85, die dieses Modell ihm erlaubt, und die Regeln stehen alle auf der Seite: CRF weist jedem Frame einen Anteil der Bits proportional zu seiner Komplexität zu, CBR zahlt pauschal 2000 Bits und füllt dies aus einem Puffer auf, der die Kapazität von 4 Frames fasst, und die Qualität von CBR beträgt das 85-Fache der Quadratwurzel aus Angebot geteilt durch Nachfrage. Leiten Sie die 60 ab.
-
Die CRF-Zuweisung ist relativ zur mittleren Komplexität der Szene definiert, sodass ihre Mittelung direkt wieder die mittlere Komplexität ergibt. Unabhängig von Szene und CRF liegt der Mittelwert exakt beim Zielwert von 2000 Bits — diese Anzeige ist eine Definition, keine Messung.
-
Der Spitzenwert ist der aufschlussreiche. 4078 gegenüber 2000 besagt, dass der komplexeste Frame das 2,039-Fache der mittleren Komplexität aufweist, und da der Generator die Komplexität bei 0,95 deckelt, muss die mittlere Komplexität dieser Szene 0,466 betragen.
-
CBR unterliegt derselben Kurve. Seine Nachfrage pro Frame entspricht demselben Ausdruck wie die CRF-Zuweisung; der Frame, für den CRF 4078 Bits zahlt, ist also derselbe Frame, für den von CBR 4078 Bits gefordert werden und CBR 2000 bereitstellt.
-
Dies abzudecken ist die Aufgabe des Puffers. Vollständig gefüllt fasst er 8000 Bits und hebt das Angebot auf 5040 an, deutlich über den 4078, die der anspruchsvollste Frame fordert — ein voller Puffer würde die Spitze vollständig verbergen und die Qualität würde die 85 nie verlassen.
-
Die Qualität verlässt die 85 jedoch, folglich kann der Puffer nicht voll sein. Nehmen Sie stattdessen an, er sei leer: Das Angebot beträgt bloß 2000, das Verhältnis ist 0,4904, seine Quadratwurzel 0,7003, und das 85-Fache davon ergibt 59,5, was das Feld auf 60 rundet. Das gedruckte Minimum entspricht exakt der Untergrenze bei leerem Puffer.
-
Der Puffer leert sich um den Betrag, um den die Nachfrage das Budget übersteigt, was beim Spitzen-Frame 2078 Bits entspricht. 8000 Bits Pufferkapazität entsprechen 3,85 Frames davon. Der anspruchsvolle Abschnitt dieser Szene erstreckt sich über 40 Frames.
Antwort
60 ist kein falsch dimensionierter Puffer. Es ist ein Puffer, der leergelaufen ist. Die Puffergröße lässt sich in Zeit umrechnen, nicht in Qualität: Dividiert man den Füllstand durch das Defizit pro Frame, erhält man die Anzahl der abgedeckten Frames. Deshalb wird ein Burst im Verhältnis zum Puffer in Frames statt in Bits gemessen. Um einen Burst von 40 Frames Länge zu verbergen, werden etwa 1,04 Frames Puffer pro Burst-Frame benötigt — insgesamt also rund 40 Frames, und der Schieberegler endet bei 10. Das ist das Argument für eine variable Bitrate in einem Satz: CRF muss den Burst nie verbergen, sondern bezahlt einfach dafür.
-
-
Die Lücke von 10,8 Punkten zwischen CRF und CBR bei 2000 Bits pro Frame 5 Schritte
Beide Modi verbrauchen in dieser Szene dieselben 2000 Bits pro Frame. Die Qualitätslinie von CRF liegt bei 89,8, CBR erreicht im Mittel 79. Ermitteln Sie, womit diese Lücke von 10,8 Punkten erkauft wird und was sie in CRF-Schritten kosten würde.
-
Der CRF-Wert ergibt sich allein aus dem Schieberegler: 45 Punkte verteilt auf die 22 Schritte von CRF 18 bis CRF 40. CRF 23 liegt 5 Schritte darunter, also 89,8.
-
Ein Schritt entspricht daher an jeder Stelle der Skala 2,045 Punkten — dieses Modell gestaltet die CRF-Qualität linear, wodurch sich die Lücke später in Schritten bewerten lässt.
-
Die Bitraten sind nicht bloß ähnlich, sie sind identisch. CRF erreicht den Zielwert konstruktionsbedingt im Mittel, und CBR stellt den Zielwert bei jedem einzelnen Frame bereit, sodass beide über die 120 Frames hinweg 240.000 Bits erzeugen.
-
Nichts an den 10,8 Punkten zwischen 89,8 und 79 ist somit ein Unterschied in der Bitrate. Gleiche Bits, gleiche Dateigröße, 10,8 Punkte Abstand.
-
Die Lücke teilt sich in zwei Teile auf. CBR ist selbst bei Frames, die mühelos verarbeitet werden könnten, auf 85 gedeckelt, was gegenüber den 89,8 von CRF 4,8 Punkte kostet; die verbleibenden 6,0 Punkte gehen bei den Frames verloren, bei denen der Puffer aufgebraucht war.
Antwort
Eine konstante Bitrate kostet hier 10,8 Qualitätspunkte, und 5,28 CRF-Schritte würden diese zurückkaufen. Was CBR dafür gewinnt, ist eine Begrenzung der Spitzen: Sein größter Frame umfasst 2000 Bits, genau seinen Mittelwert, während der größte Frame von CRF 4078 Bits misst. Bei einer Verbindung, die exakt 2000 Bits pro Frame überträgt und keinen einzigen Bit mehr, kommt der Spitzen-Frame von CRF verspätet an und seine 89,8 ist wertlos — das ist der einzige Grund, die 10,8 in Kauf zu nehmen. Beachten Sie, was Schritt 3 ebenfalls ausschließt: Die Zuweisung enthält überhaupt keinen CRF-Term; eine Erhöhung von CRF auf 28 würde also den Wert senken und die Bitrate bei 2000 belassen. Diese Seite zeigt Ihnen, wohin die Bits fließen, nicht was der Kauf eines Qualitätsniveaus kostet.
-
Quellen (1)
- The framework every encoder’s rate control is an approximation of: G. J. Sullivan & T. Wiegand, "Rate-distortion optimization for video compression." IEEE Signal Processing Magazine 15(6), 74–90, 1998.