Anforderungen an Videocodecs für die Meet Media API

Auf dieser Seite finden Sie die grundlegenden Anforderungen an die Videocodecs von Google Meet Media API-Clients, um eine gute Nutzererfahrung zu gewährleisten.

Funktionale Anforderungen

In diesem Abschnitt werden die Anforderungen für die Codec-Typen und ‑Funktionen beschrieben.

Funktion Anforderung
Profil AV1 VP9 VP8
Main Profile 0
Skalierbarkeit Der Decoder muss die temporale und/oder räumliche Skalierbarkeit unterstützen, wenn dies durch die Codierungsspezifikation für den jeweiligen Codec-Typ und das jeweilige 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 Chroma-Formaten mit Subsampling muss die Anzahl der Chroma-Samples pro Dimension aufgerundet werden, wenn sie aus der Anzahl der Luma-Samples abgeleitet wird.

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

Betriebliche Anforderungen

In diesem Abschnitt werden die Anforderungen für verschiedene Bedingungen angegeben, unter denen der Videocodec funktionieren soll. Bei einem Verstoß gegen diese Anforderungen kann die Verwendung des Codecs auf eine Teilmenge von Szenarien beschränkt werden. Die Verwendung wird dadurch aber nicht unbedingt verhindert. Wenn die maximale Anzahl von Codec-Instanzen beispielsweise geringer ist als erforderlich, 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 für die 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. Ein Verstoß gegen diese Anforderungen kann die Nutzerfreundlichkeit erheblich beeinträchtigen und führt mit hoher Wahrscheinlichkeit dazu, dass der Codec nicht verwendet werden kann.

Parameter Anforderung
Maximale Verarbeitungszeit zwischen Frames in Sekunden ≤ 1 / max(30, encode_target_frame_rate_fps)
Maximale Verarbeitung von Keyframes in Sekunden ≤ 2 / max(30, encode_target_frame_rate_fps)

Die Frame-Verarbeitungszeit ist die Zeitdifferenz zwischen zwei Ereignissen: 1) Codec liefert den Frame und 2) Codec empfängt den Frame. Die durchschnittliche Zeit für die Verarbeitung von Frames wird über ein gleitendes Fenster von mindestens 10 Sekunden mit mindestens 10 Frames berechnet. Die maximale Frame-Verarbeitungszeit ist der höchste Wert unter allen einzelnen Frame-Verarbeitungszeiten.

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

Testläufe

Im Folgenden finden Sie Testfälle, die Sie verwenden können:

Tests
Decodierungsdurchsatz Decodiere bis zu drei Streams mit 2880 × 1880 × 30 Pixeln gleichzeitig und prüfe, ob die Decoder die Leistungsanforderungen erfüllen.
Decoder-Konformität Eine Reihe von vorcodierten Bitstreams decodieren. Die Ausgabe des Testdecoders muss mit der Ausgabe eines Referenzdecoders übereinstimmen (libvpx für VP8 und VP9, libaom für AV1).
Zeitliche Skalierbarkeit Dekodieren von Videos mit mehreren temporären Ebenen (2 und 3). Die Ausgabe des Testdecoders muss mit der Ausgabe des Referenzdecoders übereinstimmen.
Räumliche Skalierbarkeit Dekodieren von Videos mit mehreren räumlichen Ebenen (2 und 3). Die Ausgabe des Testdecoders muss mit der Ausgabe des Referenzdecoders übereinstimmen.