Wymagania dotyczące kodeka wideo w Meet Media API

Na tej stronie znajdziesz podstawowe wymagania dotyczące kodeków wideo klienta interfejsu Google Meet Media API, które zapewniają dobrą jakość obsługi.

Wymagania funkcjonalne

Ta sekcja określa wymagania dotyczące typów i funkcji kodeków.

Funkcja Wymaganie
Profil AV1 VP9 VP8
Main Profile 0 Nie dotyczy
Skalowalność Dekoder musi obsługiwać skalowalność czasową, przestrzenną lub obie te funkcje, jeśli jest to wymagane przez specyfikację kodowania dla danego typu kodeka i profilu.
Format surowego wideo

Kodek musi być w stanie przetwarzać rozdzielczości nieparzyste (np. gdy szerokość lub wysokość klatki nie są wielokrotnością 2, np. 133 × 141). W przypadku formatów podpróbkowania chrominancji liczba próbek chrominancji w każdym wymiarze musi być zaokrąglana w górę, gdy jest obliczana na podstawie liczby próbek luminancji.

Przycinanie, dodawanie marginesów ani skalowanie nie są dozwolone. Rozdzielczość klatki wyjściowej musi być zgodna z rozdzielczością klatki wejściowej.

Wymagania operacyjne

Ta sekcja określa wymagania dotyczące różnych warunków, w których kodek wideo ma działać. Naruszenie tych wymagań może ograniczyć użycie kodeka do podzbioru scenariuszy, ale niekoniecznie uniemożliwia jego użycie. Jeśli na przykład maksymalna liczba instancji kodeka jest mniejsza niż wymagana, kodek nadal może być używany razem z kodekami innych typów lub implementacji.

Parametr Wymaganie
Minimalna rozdzielczość (w pikselach) ≤ 128 × 128
Maksymalna rozdzielczość (w pikselach) ≥ 2880 × 1800
Minimalna liczba klatek na sekundę ≤ 1
Maksymalna liczba klatek na sekundę ≥ 30
Minimalna szybkość transmisji bitów (kb/s) ≤ 30
Maksymalna szybkość transmisji bitów (kb/s) ≥ 5000
Maksymalna liczba instancji dekodera ≥ 3
Maksymalna łączna przepustowość dekodowania, piksele na sekundę ≥ 3 × 2880 × 1880 × 30

Wymagania dotyczące wydajności

Ta sekcja określa wymagania dotyczące wydajności kodeka. Naruszenie tych wymagań może znacząco wpłynąć na wygodę użytkowników i niemal na pewno uniemożliwić korzystanie z kodeka.

Parametr Wymaganie
Maksymalny czas przetwarzania między klatkami (w sekundach) 1 / max(30, encode_target_frame_rate_fps)
Maksymalny czas przetwarzania klatki kluczowej w sekundach 2 / max(30, encode_target_frame_rate_fps)

Czas przetwarzania klatki to różnica czasu między 2 zdarzeniami: 1) kodek dostarcza klatkę i 2) kodek odbiera klatkę. Średni czas przetwarzania klatki jest obliczany w okresie co najmniej 10 sekund, w którym znajduje się co najmniej 10 klatek. Maksymalny czas przetwarzania klatki to najwyższa wartość spośród wszystkich czasów przetwarzania poszczególnych klatek.

Przepustowość jest obliczana jako liczba przetworzonych klatek, w tym odrzuconych, podzielona przez różnicę czasu między 2 zdarzeniami: 1) kodek dostarcza ostatnią klatkę i 2) kodek dostarcza pierwszą klatkę.

Przypadki testowe

Oto przykłady testów, które możesz przeprowadzić:

Testy
Przepustowość dekodowania Dekoduj jednocześnie maksymalnie 3 strumienie o rozdzielczości 2880 × 1880 × 30 i sprawdź, czy dekodery nie naruszają wymagań dotyczących wydajności.
Zgodność dekodera dekodować zestaw wstępnie zakodowanych strumieni bitów; Dane wyjściowe dekodera testowego muszą być zgodne z danymi wyjściowymi dekodera referencyjnego (libvpx w przypadku VP8 i VP9, libaom w przypadku AV1).
Skalowalność czasowa Dekodowanie wideo z wieloma warstwami czasowymi (2 i 3). Dane wyjściowe dekodera testowego muszą być zgodne z danymi wyjściowymi dekodera referencyjnego.
Skalowalność przestrzenna Dekodowanie filmów z wieloma warstwami przestrzennymi (2 i 3). Dane wyjściowe dekodera testowego muszą być zgodne z danymi wyjściowymi dekodera referencyjnego.