Na tej stronie znajdziesz podstawowe wymagania dotyczące kodeków wideo klienta interfejsu API Google Meet Media, które pozwolą zapewnić użytkownikom wygodę.
Wymagania funkcjonalne
W tej sekcji znajdziesz wymagania dotyczące typów i funkcji kodeków.
Cecha | Wymaganie | ||
---|---|---|---|
Profil | AV1 | VP9 | VP8 |
Main |
Profile 0 |
Nie dotyczy | |
Skalowalność | Dekoder musi obsługiwać skalowalność czasowa, skalowalność przestrzenna lub obie te funkcje, jeśli jest to wymagane przez specyfikację kodowania dla danego typu i profilu kodeka. | ||
Nieprzetworzony format wideo |
Kodek musi być w stanie przetwarzać nieparzyste rozdzielczości (np. gdy szerokość lub wysokość kadru nie jest wielokrotnością 2, na przykład 133 × 141). W przypadku formatów z podpróbkowaną chrominancją liczba próbek chrominancji na wymiar musi być zaokrąglana w górę, gdy pochodzi z liczby próbek luminacji. Przycinanie, dodawanie wypełnień i skalowanie są niedozwolone. Rozdzielczość wyjściowego obrazu musi być taka sama jak rozdzielczość wejściowego obrazu. |
Wymagania operacyjne
W tej sekcji określono wymagania dotyczące różnych warunków, w których ma działać kodek wideo. 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 można nadal używać 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 | ≤ 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 dekoderów | ≥ 3 | |||
Maksymalna łączna przepustowość dekodowania w pikselach na sekundę | ≥ 3 × 2880 × 1880 × 30 |
Wymagania dotyczące wydajności
W tej sekcji znajdziesz wymagania dotyczące wydajności kodeka. Naruszenie tych wymagań może znacząco wpłynąć na wygodę użytkowników i prawie 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 ramki to różnica między dwoma zdarzeniami: 1) koder przekazuje ramkę i 2) koder odbiera ramkę. Średni czas przetwarzania klatki jest obliczany na podstawie ruchomego okna o długości co najmniej 10 sekund zawierającego co najmniej 10 ramek. Maksymalny czas przetwarzania ramki to najwyższa wartość spośród wszystkich wartości czasu przetwarzania poszczególnych klatek.
Przepustowość jest obliczana jako liczba przetworzonych klatek, w tym pominiętych, podzielona przez różnicę czasową między dwoma zdarzeniami: 1) kodek dostarcza ostatnią klatkę i 2) kodek dostarcza pierwszą klatkę.
Przypadki testowe
Oto testy, których możesz użyć:
Testy | |
---|---|
Przepustowość dekodowania | Dekoduj jednocześnie do 3 strumieni 2880 × 1880 × 30 i sprawdź, czy dekodery nie naruszają wymagań dotyczących wydajności. |
Zgodność dekodera |
dekodować zestaw zakodowanych wcześniej strumieni bitów; Dane wyjściowe testowanego dekodera 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 testowego dekodera muszą być takie same jak dane wyjściowe dekodera referencyjnego. |
Skalowalność przestrzenna | Dekodowanie filmu z wieloma warstwami przestrzennymi (2 i 3). Dane wyjściowe testowego dekodera muszą być takie same jak dane wyjściowe dekodera referencyjnego. |