Requisitos de codec de vídeo para a API Meet Media

Esta página apresenta os requisitos básicos para codecs de vídeo de cliente da API Google Meet Media para garantir uma boa experiência do usuário.

Requisitos funcionais

Esta seção especifica os requisitos para os tipos e recursos do codec.

Recurso Requisito
Perfil AV1 VP9 VP8
Main Profile 0 N/A
Escalonabilidade O decodificador precisa oferecer suporte à escalonabilidade temporal, à escalonabilidade espacial ou a ambas, se exigido pela especificação de codificação para um determinado tipo e perfil de codec.
Formato de vídeo bruto

O codec precisa ser capaz de processar resoluções ímpares (por exemplo, quando a largura ou altura do frame não é múltiplo de 2, por exemplo, 133 × 141). Para formatos de croma subamosados, o número de amostras de croma por dimensão precisa ser arredondado para cima quando derivado do número de amostras de luminância.

Não é permitido cortar, adicionar padding ou dimensionar. A resolução do frame de saída precisa corresponder à resolução do frame de entrada.

Requisitos operacionais

Esta seção especifica os requisitos para várias condições em que o codec de vídeo deve operar. A violação desses requisitos pode restringir o uso do codec a um subconjunto de cenários, mas não necessariamente impedir que ele seja usado. Por exemplo, se o número máximo de instâncias de codec for menor do que o necessário, o codec ainda poderá ser usado com codecs de outros tipos ou implementações.

Parâmetro Requisito
Resolução mínima, pixels ≤ 128 × 128
Resolução máxima, pixels ≥ 2880 × 1800
Frame rate mínimo, QPS ≤ 1
Taxa de frames máxima, QPS ≥ 30
Taxa de bits mínima, kbps ≤ 30
Taxa de bits máxima, kbps ≥ 5.000
Instâncias máximas do decodificador ≥ 3
Taxa de decodificação total máxima, pixels por segundo ≥ 3 × 2880 × 1880 × 30

Requisitos de desempenho

Esta seção especifica os requisitos de desempenho do codec. A violação desses requisitos pode afetar significativamente a experiência do usuário e quase certamente bloquear o uso do codec.

Parâmetro Requisito
Tempo máximo de processamento de inter frame, em segundos 1 / max(30, encode_target_frame_rate_fps)
Tempo máximo de processamento de frames-chave, em segundos 2 / max(30, encode_target_frame_rate_fps)

O tempo de processamento do frame é a diferença de tempo entre dois eventos: 1) o codec envia o frame e 2) o codec recebe o frame. O tempo médio de processamento de frames é calculado em uma janela deslizante de pelo menos 10 segundos com pelo menos 10 frames. O tempo máximo de processamento de frames é o valor mais alto entre todos os valores individuais de tempo de processamento de frames.

O throughput é calculado como o número de frames processados, incluindo os descartados, dividido pelo delta de tempo entre os dois eventos: 1) o codec entrega o último frame e 2) o codec entrega o primeiro frame.

Casos de teste

Confira a seguir os casos de teste que você pode usar:

Testes
Capacidade de decodificação Decodificar até três streams de 2880 × 1880 × 30 simultaneamente e verificar se os decodificadores não violam os requisitos de desempenho.
Conformidade do decodificador Decodificar um conjunto de bitstreams pré-codificados. A saída do decodificador de teste precisa corresponder à saída de um decodificador de referência (libvpx para VP8 e VP9, libaom para AV1).
Escalonabilidade temporal Decodificar vídeo com várias camadas temporais (2 e 3). A saída do decodificador de teste precisa corresponder à saída do decodificador de referência.
Escalonabilidade espacial Decodifique o vídeo com várias camadas espaciais (2 e 3). A saída do decodificador de teste precisa corresponder à saída do decodificador de referência.