Esta página fornece os requisitos básicos para codecs de vídeo do 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 de codec.
Recurso | Requisito | ||
---|---|---|---|
Perfil | AV1 | VP9 | VP8 |
Main |
Profile 0 |
N/A | |
Escalonabilidade | O decodificador precisa ser compatível com escalonabilidade temporal, espacial ou ambas, se exigido pela especificação de codificação para 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 a altura do frame não são múltiplos de 2, como 133 × 141). Para formatos de croma subamostrados, o número de amostras de croma por dimensão precisa ser arredondado para cima quando derivado do número de amostras de luma. Não é permitido cortar, adicionar padding ou dimensionar. A resolução do frame de saída precisa corresponder à 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 impede necessariamente 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 | |||
Frame rate máximo, QPS | ≥ 30 | |||
Taxa de bits mínima, kbps | ≤ 30 | |||
Taxa de bits máxima, kbps | ≥ 5.000 | |||
Número máximo de instâncias de decodificador | ≥ 3 | |||
Capacidade total máxima de decodificação, 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 vai bloquear o uso do codec.
Parâmetro | Requisito |
---|---|
Tempo máximo de processamento entre frames, em segundos | ≤ 1 / max(30, encode_target_frame_rate_fps) |
Tempo máximo de processamento de frame principal, em segundos | ≤ 2 / max(30, encode_target_frame_rate_fps) |
O tempo de processamento do frame é a diferença entre dois eventos: 1) o codec entrega 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 de duração com pelo menos 10 frames. O tempo máximo de processamento de frames é o maior valor entre todos os tempos individuais.
O cálculo é feito dividindo o número de frames processados, incluindo os descartados, 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 alguns casos de teste que você pode usar:
Testes | |
---|---|
Capacidade de decodificação | Decodifique até três streams de 2880 × 1880 × 30 simultaneamente e verifique se os decodificadores não violam os requisitos de desempenho. |
Conformidade do decodificador |
Decodifica um conjunto de fluxos de bits 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 | Decodificar 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. |