Anforderungen an Videocodecs für die Meet Media API

Auf dieser Seite finden Sie die grundlegenden Anforderungen an die Videocodecs der Google Meet Media API-Clients, die für eine gute Nutzererfahrung erforderlich sind.

Funktionale Anforderungen

In diesem Abschnitt werden die Anforderungen an die Codec-Typen und -Funktionen angegeben.

Funktion Anforderung
Profil AV1 VP9 VP8
Main Profile 0
Skalierbarkeit Der Decoder muss zeitliche oder räumliche Skalierbarkeit oder beides unterstützen, sofern dies von der Codierungsspezifikation für den jeweiligen Codec-Typ und das jeweilige Profil gefordert wird.
Rohes Videoformat

Der Codec muss in der Lage sein, ungerade Auflösungen zu verarbeiten, z. B. wenn die Framebreite oder -höhe kein Vielfaches von 2 ist, z. B. 133 × 141. Bei untergeordneten Chroma-Formaten muss die Anzahl der Chroma-Stichproben pro Dimension aufgerundet werden, wenn sie von der Anzahl der Luma-Stichproben abgeleitet wird.

Zuschneiden, Padding oder Skalieren ist nicht zulässig. Die Auflösung des Ausgabeframes muss der Auflösung des Eingabeframes entsprechen.

Betriebsanforderungen

In diesem Abschnitt werden Anforderungen für verschiedene Bedingungen angegeben, unter denen der Videocodec voraussichtlich verwendet wird. Ein Verstoß gegen diese Anforderungen kann die Verwendung des Codecs auf eine Teilmenge von Szenarien beschränken, verhindert aber nicht unbedingt seine Verwendung. Wenn die maximale Anzahl von Codec-Instanzen beispielsweise unter der erforderlichen Anzahl liegt, kann der Codec trotzdem zusammen mit Codecs anderer Typen oder Implementierungen verwendet werden.

Parameter Anforderung
Mindestauflösung, Pixel ≤ 128 × 128
Maximale Auflösung, Pixel ≥ 2880 × 1800
Mindest-Framerate, FPS ≤ 1
Maximale Framerate, FPS ≥ 30
Minimale Bitrate, kbit/s ≤ 30
Maximale Bitrate, Kbit/s ≥ 5.000
Maximale Anzahl von Decoderinstanzen ≥ 3
Maximaler Gesamtdurchsatz bei der Dekodierung, Pixel pro Sekunde ≥ 3 × 2.880 × 1.880 × 30

Anforderungen für „Performance“

In diesem Abschnitt werden die Anforderungen an die Codec-Leistung beschrieben. Verstöße gegen diese Anforderungen können sich erheblich auf die Nutzerfreundlichkeit auswirken und führen fast mit Sicherheit dazu, dass die Nutzung des Codecs blockiert wird.

Parameter Anforderung
Maximale Verarbeitungszeit zwischen Frames in Sekunden ≤ 1 / max(30, encode_target_frame_rate_fps)
Maximale Verarbeitungszeit für Keyframes in Sekunden ≤ 2 / max(30, encode_target_frame_rate_fps)

Die Frameverarbeitungszeit ist die Zeitdifferenz zwischen zwei Ereignissen: 1) Der Codec liefert den Frame und 2) der Codec empfängt den Frame. Die durchschnittliche Frameverarbeitungszeit wird über ein bewegliches Fenster mit einer Dauer von mindestens 10 Sekunden und mindestens 10 Frames berechnet. Die maximale Frameverarbeitungszeit ist der höchste Wert aller einzelnen Frameverarbeitungszeiten.

Der Durchsatz wird berechnet als die Anzahl der verarbeiteten Frames, einschließlich der ausgesetzten, geteilt durch die Zeitdifferenz zwischen den beiden Ereignissen: 1) Der Codec liefert den letzten Frame und 2) der Codec liefert den ersten Frame.

Testläufe

Sie können die folgenden Testfälle verwenden:

Tests
Decodierungsdurchsatz Dekodiere bis zu drei Streams mit 2.880 × 1.880 × 30 gleichzeitig und überprüfe, ob die Dekoder die Leistungsanforderungen erfüllen.
Decoder-Konformität Eine Reihe von vorab codierten Bitstreams decodieren. Die Ausgabe des Test-Decoders muss mit der Ausgabe eines Referenz-Decoders übereinstimmen (libvpx für VP8 und VP9, libaom für AV1).
Zeitliche Skalierbarkeit Video mit mehreren stapelbaren Zeitebenen (2 und 3) decodieren Die Ausgabe des Test-Decoders muss mit der Ausgabe des Referenz-Decoders übereinstimmen.
Räumliche Skalierbarkeit Video mit mehreren räumlichen Ebenen (2 und 3) decodieren Die Ausgabe des Test-Decoders muss mit der Ausgabe des Referenz-Decoders übereinstimmen.