Rate-Control-Simulator

Sieh, wie CRF die Bitrate an die Komplexität anpasst, während CBR ein festes Ziel hält — auf Kosten schwankender Qualität

Interaktive Simulation wird geladen...

Eine CRF-Zahl lässt sich nicht zwischen Encodern übertragen 🖖

CRF sieht wie eine absolute Qualitätsskala aus und verhält sich innerhalb eines Encoders bei einem Preset auch so. Über Encoder hinweg nicht. Der Wert ist ein Index in die internen Quantisierer-Entscheidungen genau dieses Encoders und keine Messung von irgendetwas, sodass das Kopieren einer Einstellung von einer x264- auf eine x265-Kommandozeile stillschweigend etwas anderes verlangt — die grobe Faustregel lautet, dass x265 eine um etwa 5 oder 6 höhere Zahl braucht, um gleich auszusehen, weil seine Standard-Quantisiererskalierung anders ist. Presets verschieben das Ziel ebenfalls, denn sie verändern, für welche Entscheidungen der Encoder Zeit aufwenden will. Der einzige verlässliche Weg, Qualität zwischen zwei Encodern abzugleichen, ist eine Probe mit beiden zu kodieren und zu vergleichen.

Qualität festlegen oder Größe festlegen 🖖

Ratensteuerung ist im Grunde die Entscheidung, welchen Regler man fixiert. Bei CRF wählst du eine Qualitätsstufe und lässt die Dateigröße dort landen, wo das Material es verlangt. Bei CBR legst du die Bitrate fest und lässt die Qualität mit der Szene schwanken. Faustregel: CRF für Downloads und Archive, bei denen die Größe variieren darf, und CBR für Live-Streaming oder Broadcast mit fester Bandbreite.

CRF senkt bei hektischen Szenen heimlich die Qualität 🖖

Trotz des Namens ist die 'konstante' Qualität nicht wirklich konstant. Encoder wie x264 lassen die Qualität in den komplexesten Bildern bewusst absinken, gesteuert durch einen Quantisierungskurven-Kompressionsfaktor (qcomp, Standard 0.6), der bewegungsreichen Szenen weniger Bits pro Pixel zuteilt als eine streng konstante Qualität. Das funktioniert, weil schnelle Bewegung feine Details maskiert – das Auge bemerkt die Artefakte in der Action kaum.

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

  1. 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.

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    5. 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.

    6. 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.

  2. 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.

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    5. 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)

Beispielaufgaben

  • Action - Actionfilm: die CRF-Bitrate schnellt bei Kampfszenen auf das 3-Fache; die CBR-Qualität sinkt, wenn der Puffer leerläuft
  • Bildschirmaufnahme - Bildschirmaufnahme: CRF verbraucht bei statischer Oberfläche fast keine Bits; die CBR-Qualität bricht ein, sobald die Videowiedergabe beginnt
  • Sport - Sport mit 1-Frame-Puffer: anhaltend hohe Komplexität setzt die CBR-Qualität dauerhaft unter Druck
  • Dokumentation - Dokumentation bei CRF 30: moderate Bitrate; vereinzelte Komplexitätsspitzen in beiden Modi sichtbar