Anforderungen an Videocodecs für die Meet Media API

Auf dieser Seite finden Sie die grundlegenden Anforderungen an Video-Codecs für Google Meet Media API-Clients, um eine gute Nutzerfreundlichkeit zu gewährleisten.

Funktionale Anforderungen

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

Funktion Anforderung
Profil AV1 VP9 VP8
Main Profile 0
Skalierbarkeit Der Decoder muss die zeitliche Skalierbarkeit, die räumliche Skalierbarkeit oder beides unterstützen, wenn dies in der Codierungsspezifikation für den jeweiligen Codec-Typ und das Profil erforderlich ist.
Rohvideoformat

Der Codec muss in der Lage sein, ungerade Auflösungen zu verarbeiten (z. B. wenn die Breite oder Höhe des Frames kein Vielfaches von 2 ist, z. B. 133 × 141). Bei unterabgetasteten Chroma-Formaten muss die Anzahl der Chroma- Samples pro Dimension aufgerundet werden, wenn sie aus der Anzahl der Luma-Samples abgeleitet wird.

Zuschneiden, Auffüllen oder Skalieren ist nicht zulässig. Die Auflösung des Ausgabeframes muss mit der Auflösung des Eingabeframes übereinstimmen.

Nutzungsvoraussetzungen

In diesem Abschnitt werden die Anforderungen für verschiedene Bedingungen beschrieben, unter denen der Video-Codec ausgeführt werden soll. Wenn diese Anforderungen nicht erfüllt werden, kann die Verwendung des Codecs auf eine Teilmenge von Szenarien beschränkt sein. Das bedeutet aber nicht unbedingt, dass er nicht verwendet werden kann. Wenn beispielsweise die maximale Anzahl von Codec-Instanzen geringer ist als erforderlich, kann der Codec trotzdem zusammen mit Codecs anderer Typen oder Implementierungen verwendet werden.

Parameter Anforderung
Mindestauflösung in Pixel ≤ 128 × 128
Maximale Auflösung in Pixel ≥ 2880 × 1800
Mindest-Framerate in FPS ≤ 1
Maximale Framerate in FPS ≥ 30
Minimale Bitrate in kbit/s ≤ 30
Maximale Bitrate in kbit/s ≥ 5000
Maximale Anzahl von Decoder-Instanzen ≥ 3
Maximaler Gesamtdurchsatz für die Decodierung in Pixel pro Sekunde ≥ 3 × 2880 × 1880 × 30

Anforderungen für „Performance“

In diesem Abschnitt werden die Anforderungen an die Codec-Leistung beschrieben. Wenn diese Anforderungen nicht erfüllt werden, kann dies die Nutzerfreundlichkeit erheblich beeinträchtigen und die Verwendung des Codecs fast sicher verhindern.

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 Frame-Verarbeitungszeit ist die Zeitdifferenz zwischen zwei Ereignissen: 1) Der Codec liefert den Frame und 2) der Codec empfängt den Frame. Die durchschnittliche Frame-Verarbeitungszeit wird über ein gleitendes Fenster von mindestens 10 Sekunden berechnet, das mindestens 10 Frames enthält. Die maximale Frame-Verarbeitungszeit ist der höchste Wert aller einzelnen Frame-Verarbeitungszeiten.

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

Testläufe

Hier sind einige Testläufe, die Sie verwenden können:

Tests
Durchsatz bei der Decodierung Decodieren Sie bis zu drei Streams mit 2880 × 1880 × 30 gleichzeitig und prüfen Sie, ob die Decoder die Leistungsanforderungen erfüllen.
Decoder-Konformität Decodieren Sie eine Reihe von vorcodierten Bitstreams. Die Ausgabe des Testdecoders muss mit der Ausgabe eines Referenzdecoders (libvpx für VP8 und VP9, libaom für AV1) übereinstimmen.
Zeitliche Skalierbarkeit Decodieren Sie Videos mit mehreren zeitlichen Ebenen (2 und 3). Die Ausgabe des Testdecoders muss mit der Ausgabe des Referenzdecoders übereinstimmen.
Räumliche Skalierbarkeit Decodieren Sie Videos mit mehreren räumlichen Ebenen (2 und 3). Die Ausgabe des Testdecoders muss mit der Ausgabe des Referenzdecoders übereinstimmen.