Guide

Per-Title- oder Per-Shot-Encoding? Die Unterschiede erklärt

Von Dirk Hildebrandt, CTO von Wavelet Beam

Ein Zeichentrickfilm und eine körnige Nachtszene brauchen nicht dieselbe Bitrate. Per-Title-Encoding passt die Bitratenleiter an jeden Titel an, Per-Shot-Encoding geht weiter und passt sie an jeden Shot an. Dieser Guide vergleicht beide Ansätze, erklärt die Convex-Hull-Methode hinter den meisten Per-Shot-Systemen und zeigt, wie Per-Shot-Encoding in einem einzigen Durchgang funktioniert.

Von festen Leitern zu Per-Title

Adaptives Streaming mit HLS oder DASH bietet jedes Video in mehreren Stufen an, der Bitratenleiter. Der Player wechselt je nach verfügbarer Bandbreite zwischen ihnen. Jahrelang galt eine feste Leiter für alle Inhalte, zum Beispiel 1080p mit fester Bitrate für jeden Titel. Einfache Inhalte wurden überversorgt und verschwendeten Bandbreite, komplexe Inhalte wurden unterversorgt und zeigten Artefakte.

Per-Title-Encoding analysiert die Komplexität eines ganzen Titels und baut dafür eine Leiter. Ein Animationsfilm bekommt niedrigere Bitraten, ein Sportereignis oder ein Film mit starkem Korn höhere. Die Grenze: Ein Titel ist nicht einheitlich. Ein zweistündiger Film enthält ruhige Dialoge, schnelle Action und dunkle Szenen mit viel Rauschen, eine Leiter für alles bleibt ein Kompromiss.

Was Per-Shot-Encoding hinzufügt

Per-Shot-Encoding teilt das Video an den Schnitten und behandelt jeden Shot als eigene Encoding-Aufgabe. Jeder Shot bekommt genau die Bits, die seine Komplexität verlangt, nicht mehr und nicht weniger. Shots sind eine natürliche Einheit: Innerhalb eines Shots ist der Inhalt ähnlich, gewählte Einstellungen bleiben gültig, und ein Wechsel am Schnitt ist nicht sichtbar. Der gesamte Stream bleibt im Bandbreitenziel, ohne einzelne Szenen über- oder unterzuversorgen.

Netflix berichtet von rund 30 % Bitrateneinsparung mit seinem shot-basierten Dynamic Optimizer. Die Frage ist, wie man die richtigen Einstellungen pro Shot findet.

Die Convex-Hull-Methode und ihr Preis

Die übliche Antwort ist rohe Rechenkraft. Jeder Shot wird viele Male mit verschiedenen Auflösungen und Qualitätseinstellungen encodiert, jeder Probe-Encode wird mit VMAF gemessen, und die besten Punkte aller Proben bilden die konvexe Hülle, die beste erreichbare Qualität pro Bitrate. Aus dieser Hülle wird die endgültige Leiter gewählt.

Die Methode funktioniert, hat aber zwei Schwächen:

  • Rechenleistung, Zeit und Energie. Viele Probe-Encodes pro Shot vervielfachen den Aufwand, bevor der erste echte Encode überhaupt startet.
  • Sie vertraut dem Mittelwert. Die Punkte auf der Hülle werden meist nach dem mittleren VMAF gewählt. Mittelwerte verstecken kurze Qualitätseinbrüche, die Hülle kann also Bitraten wählen, die auf dem Papier gut aussehen, in der Praxis aber scheitern. Unser Guide zu VMAF-Mittelwerten zeigt, warum.

Per-Shot-Encoding in einem Durchgang

Wir erreichen dasselbe Ziel ohne Encoding-Schleifen. IRIS.ANALYST analysiert in einem Durchgang die räumliche und zeitliche Komplexität jedes Shots und den Rauschpegel. Es wählt automatisch das passende Rauschprofil, und seine Metadaten steuern die Encoder-Einstellungen für jeden Shot.

  1. Analysieren: IRIS.ANALYST misst Auflösung, Rauschpegel und räumliche Energie pro Shot.
  2. Bereinigen: Die IRIS-Entrauschung entfernt Rauschen und Korn, die allein bis zu 30 % des Bitratenbudgets beanspruchen. Der Encoder gibt seine Bits für echten Bildinhalt aus. Siehe Warum vor dem Encoding entrauschen?
  3. Encodieren: ein einziger Durchgang mit FFmpeg und Standardwerkzeugen, ohne proprietären Encoder. Massiv parallele Verarbeitung in Chunks nutzt alle verfügbaren CPU- und GPU-Ressourcen.
  4. Ausliefern: HLS oder DASH in H.264, HEVC oder AV1, optional mit AV1 Film Grain Synthesis.
  5. Prüfen: QBVE prüft jede Stufe auf Qualitätseinbrüche unter der Schwelle, als VMAF-basierte Kontrollinstanz statt einer Suchschleife.

Vergleich auf einen Blick

Feste LeiterPer-TitlePer-Shot, Convex HullPer-Shot, ein Durchgang (IRIS)
Passt sich anNichtsGanzen TitelJeden ShotJeden Shot, samt Rauschpegel
So werden Einstellungen gefundenFeste TabelleKomplexitätsanalyse oder Probe-EncodesViele Probe-Encodes pro ShotEin Analysedurchgang
RechenaufwandAm geringstenGering bis mittelHochGering
QualitätskontrolleKeineMeist mittlerer VMAFMeist mittlerer VMAFQBVE, Einbrüche unter der Schwelle
Umgang mit RauschenEncoder gibt Bits für Rauschen ausEncoder gibt Bits für Rauschen ausEncoder gibt Bits für Rauschen ausRauschen vor dem Encoding entfernt

Ergebnisse

Bei Netflix "Meridian" in UHD mit 59,94 fps lieferte IRIS Per-Shot-Encoding mit Entrauschung HEVC über HLS mit 7,54 Mbit/s, einem VMAF von 96,02 und einem QBVE von 5,06. Ein Standard-Encode desselben Materials bei vergleichbarer Bitrate erreichte einen QBVE von 9,46, fast die doppelte Fehlerenergie. Mit adaptivem Per-Shot-Encoding bleiben alle UHD-Streams unter 10 Mbit/s. Details auf der Seite zum Per-Shot-Encoding.

Mit Ihrem Material testen

Senden Sie uns eine Probe, und wir vergleichen Ihre aktuelle Leiter mit IRIS Per-Shot-Encoding, gemessen mit VMAF, PSNR und QBVE. Schreiben Sie an info@waveletbeam.com.

Häufige Fragen

Was ist der Unterschied zwischen Per-Title- und Per-Shot-Encoding?

Per-Title-Encoding baut eine Bitratenleiter für den ganzen Titel. Per-Shot-Encoding teilt das Video an den Schnitten und gibt jedem Shot genau die Bits, die er braucht.

Was ist Convex-Hull-Encoding?

Jeder Shot wird viele Male mit verschiedenen Auflösungen und Qualitätseinstellungen encodiert und mit VMAF gemessen, die besten Punkte bilden die konvexe Hülle. Das kostet viel Rechenleistung, Zeit und Energie und stützt sich meist auf den mittleren VMAF.

Geht Per-Shot-Encoding in einem Durchgang?

Ja. IRIS.ANALYST analysiert Komplexität und Rauschen jedes Shots in einem Durchgang, seine Metadaten steuern die Encoder-Einstellungen, Probe-Encodes sind nicht nötig. QBVE prüft danach das Ergebnis.