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. |