Como o VP9 entrega valor para o esports ao vivo do Twitch

Yueshi Shen Blocked Desbloquear Seguir Seguindo 19 de dezembro de 2018

Por: Akrum Elkhazin , Arquiteto de Algoritmo de Vídeo, NGCodec, akrum.elkhazin@ngcodec.com
Avinash Ramachandran , Arquiteto de Software de Vídeo, NGCodec, avinash.ramachandran@ngcodec.com
Roshan Baliga , gerente de produto do Google, rdb@google.com
Jai Krishnan , gerente de produto, Google, jaikk@google.com
Tarek Amara , Especialista Sênior em Vídeo, Twitch, amatarek@twitch.tv
Alex Converse , Engenheiro de Software Sênior, Twitch, alexconv@twitch.tv
Yueshi Shen , Engenheiro Principal de Pesquisa, Twitch, yshen@twitch.tv

Resumo: A VP9 em breve ajudará o Twitch a oferecer uma melhor experiência de visualização para esports premium e canais parceiros

A compactação de vídeo é a chave para o fornecimento bem-sucedido de vídeo digital em vários aplicativos, como transmissão, teleconferência, vigilância e serviços de streaming on-line. Desde 2003 (ou seja, 15 anos atrás ), o H.264 tem sido o formato de compressão de vídeo de última geração e habilitado sites de vídeo HDTV, Blu-ray Disc, Internet (por exemplo, YouTube, Twitch) e assim por diante. . No entanto, de acordo com a análise recente do Twitch, o H.264 atingiu seu limite de desempenho de compressão, particularmente para a codificação em tempo real de conteúdo de jogos na resolução HD (1080p60). Por outro lado, os padrões de vídeo de última geração, VP9, HEVC e AV1, mostram ganhos significativos de compressão, o que pode trazer benefícios comerciais consideráveis às plataformas de conteúdo (por exemplo, oferecer aos espectadores melhor qualidade de vídeo, reduzir o tempo de carregamento de vídeo e buffering). taxa, aumentando o alcance do cliente, diminuindo o custo de trânsito IP).

Atualmente, embora a decodificação e a reprodução de vídeo VP9 sejam amplamente suportadas em dispositivos e navegadores usados pelo público do Twitch, a codificação de conteúdo de vídeo em jogos com alta eficiência e desempenho em tempo real é um desafio substancial devido à alta complexidade do VP9. Através de um rigoroso estudo de viabilidade, nós finalmente selecionamos FPGA como a plataforma de hardware para codificação VP9 em tempo real e estamos implantando para transmitir nossos eSports premium e canais de parceiros em um futuro próximo (por favor, assista a apresentação dada pelo Engenheiro Principal de Pesquisa do Twitch, Dr Yueshi Shen e o CEO da Xilinx, Victor Peng, durante o discurso de abertura do Xilinx Developer Forum 2018 ).

O Engenheiro Principal de Pesquisa da Twitch, Dr. Yueshi Shen, e o CEO da Xilinx, Victor Peng, participaram do Xilinx Developer Forum 2018

Neste artigo, mostraremos que a codificação VP9 em tempo real baseada em FPGA pode fornecer pelo menos 25% de economia de taxa de bits em comparação com os codificadores H.264 de qualidade mais alta implantados na produção do Twitch atualmente. Além disso, nos aprofundaremos nas ferramentas de compactação do VP9 para explicar como esses recursos são usados na implementação do codificador para obter a melhoria no desempenho da compactação prometida pelas simulações durante o processo de padronização.

Eficiência de Compressão do VP9 para Codificação ao Vivo de 1080p60: Podemos Conseguir pelo Menos 25% de Economia de Taxa de Bits

No estudo a seguir, não estamos realizando uma avaliação acadêmica do padrão de compactação VP9, mas comparando uma implementação prática do codificador VP9 em tempo real de 1080p60 com um codificador H.264 em tempo real comercial de última geração.

Âncora H.264

Para a âncora, escolhemos o codificador x264 de código aberto executado na CPU Intel Xeon E5-2697 V4 (18 núcleos, 2,3GHz, 145W). A configuração do x264 é:

  • predefinição média
  • alto perfil,
  • modo de taxa de bits constante (CBR),
  • GOPs de 2 segundos,
  • lookahead de 1 segundo, e
  • Buffer VBV de 1 segundo.

Com base em nosso conhecimento sobre o desempenho do codificador e o conteúdo / ponto operacional do Twitch (resolução, taxa de quadros, taxa de bits), descobrimos que a configuração x264 acima pode oferecer uma qualidade de vídeo comparável ou superior, comparada à maioria dos codificadores de vídeo com qualidade de broadcast profissional. mercado. Além disso, a execução de uma predefinição x264 de alta qualidade (como slow, veryslow) não pode atingir a meta de 25% de taxa de bits nem atingir a codificação em tempo real (consulte o resultado da nossa experiência abaixo).

Qualidade de vídeo e velocidade de codificação de x264 em várias predefinições

Conteúdo de teste

Em nossa comparação, usamos os seguintes cinco clipes de jogos de 1080p60:

  • EuroTruckSimulator 2,
  • Ferrugem,
  • Witcher 3,
  • CSGO e
  • Fallout 4.

O vídeo bruto não comprimido pode ser baixado da página oficial das seqüências de teste da Alliance for Open Media (AOM) (busca “Twitch”). Esses cinco títulos abrangem um amplo conjunto de características de conteúdo (por exemplo, movimento rápido, alta textura, cores saturadas e contraste grande) e são muito desafiadores para a codificação de vídeo, na verdade, muito mais difícil do que o vídeo filmado por câmera. Abaixo está uma imagem do jogo Witcher 3, e você pode encontrar a imagem com alto contraste, bordas afiadas e muitos detalhes.

Uma captura de tela do jogo Witcher 3

Resultados subjetivos e de testes de objetos

Com um teste de visualização subjetivo no ponto operacional do Twitch, concluímos que o VP9 pode oferecer a mesma ou melhor qualidade de vídeo do que o H.264 a 6Mbps, usando apenas 4,5Mbps. Abaixo está uma captura de tela de H.264 6Mbps (esquerda) vs. VP9 4.5Mbps (direita). O VP9 tem uma superfície de estrada mais limpa e tem menos ruído de mosquito em torno da borda do texto, mas o H.264 tem um pouco mais de textura na árvore e na grama.

Comparação de qualidade de vídeo de H.264 6Mbps (esquerda) vs. VP9 4.5Mbps (direita)

Você pode baixar o vídeo de demonstração de 1080p60 H.264 6Mbps vs. VP9 4.5Mbps aqui .

Para a análise objetiva, usamos tanto o PSNR quanto o VMAF e a taxa de bits do vídeo é varrida de 2Mbps para 12Mbps. Os valores médios de PSNR e VMAF sobre os 5 títulos são fornecidos na tabela abaixo. Ambas as métricas mostram que, na faixa de 4Mbps a 6Mbps, o VP9 oferece uma economia de taxa de bits de aproximadamente 25% em relação ao H.264. Além disso, o VP9 mantém uma vantagem significativa de eficiência de compressão sobre o H.264 para todas as taxas de bits.

Economias de taxa de bits de VP9 contra H.264 com base em PSNR ou VMAF, em várias taxas de bits de referência H.264

Aqui estão as curvas PSNR e VMAF para x264 e NGCodec VP9.

Comparação média do PSNR de H.264 vs. VP9 Comparação média do VMAF de H.264 vs. VP9

Usando o VMAF, com uma pontuação de 80 ou superior, a qualidade de vídeo do Twitch é comparável à do vídeo com qualidade de transmissão. Algumas análises sugerem que, em geral, uma pontuação de 90 ou superior indica uma alta qualidade de vídeo. No entanto, devido à alta textura do conteúdo dos jogos (como explicado na seção anterior de “Conteúdo do Teste”), a pontuação de 80 realmente reflete uma qualidade muito boa para os títulos do Twitch.

Mergulho Profundo nos Recursos do VP9: Novas Ferramentas de Compressão Requerem Implementações Eficazes e Pesquisa Exaustiva (Habilitada por FPGA) para Proporcionar a Economia da Taxa de Bits

O ganho de compressão reivindicado na seção anterior deriva de um número de ferramentas de codificação novas ou aprimoradas definidas no padrão VP9. Nesta seção, demonstraremos o efeito dessas novas ferramentas que foram implementadas em nosso codificador FPGA VP9 por meio de sofisticados algoritmos de compactação de vídeo.

Escolha mais ampla de tamanhos maiores de blocos de previsão

O VP9 divide uma imagem em regiões 64×64 conhecidas como superblocos que podem ser subdivididos em uma estrutura quadtree em regiões menores até 4×4 para previsão. Partições retangulares como 32×16 ou 4×8 também são suportadas. Tamanhos de blocos de previsão maiores são particularmente úteis para salvar bits entre quadros em conteúdo previsível (por exemplo, área plana). Minimizando a sobrecarga de sinalização, tamanhos de bloco maiores também fornecem boa eficiência de compactação para conteúdo de maior resolução.

Como pode ser visto abaixo para um quadro de amostra no clipe EurotruckSimulator , o codificador VP9 usa tamanhos de bloco maiores para áreas relativamente planas como o céu, estradas e pavimentos e tamanhos menores de blocos em áreas altamente texturizadas para preservar detalhes finos. Enquanto o H.264 usa o macrobloco 16×16 para toda a imagem, o que desperdiça bits em áreas planas e sacrifica a qualidade de vídeo em áreas altamente texturizadas.

Tamanhos de bloco maiores até 64×64 usados no codificador VP9 Tamanhos de bloco menores até 16×16 usados no codificador H.264

Escolha mais ampla de tamanhos maiores de transformação

Juntamente com tamanhos maiores de blocos de previsão, o VP9 também suporta tamanhos de transformações até o tamanho do bloco de previsão ou 32×32, o que for menor. Portanto, o tamanho da transformação pode ser 4×4, 8×8, 16×16 e 32×32. Em comparação, o H.264 suporta apenas a transformação 4×4 em toda (transformação 8×8 somente no perfil alto) e uma transformação especial em duas etapas para previsão 16×16 intra. As figuras abaixo mostram os tamanhos de transformação usando uma grade azul do clipe EurotruckSimulator . Tamanhos de transformações maiores, atingindo 32×32 de chumbo para melhor preservação de detalhes nas áreas suaves, como o céu e texturas regulares, como a estrada. Por outro lado, tamanhos menores de transformações são mais capazes de captar detalhes finos da estrada, postes de luz e construções à distância, bem como as reflexões cambiantes na lateral do caminhão.

Tamanhos de transformação baseados em complexidade até 32×32 usados no codificador VP9 Tamanhos de transformada fixos de 4 x 4 ou 8 x 8 usados no codificador H.264

Pesquisa de modo completo para otimização de distorção de taxa (RDO)

Para aproveitar totalmente os tamanhos maiores de previsão e transformação, o codificador VP9 usa aceleração FPGA de hardware dedicada para calcular a decisão do modo RDO mais ideal, avaliando as opções de todos os modos intra e uma lista abrangente de candidatos entre modos, bem como todos predição e transformar tamanhos de bloco.

A avaliação exaustiva de RDO garante a seleção dos melhores modos de previsão e transformação, o que explica diretamente o ganho de eficiência de compressão de vídeo descrito na seção anterior de "Resultados de testes subjetivos e de objetos". Por exemplo, na figura abaixo, a saída do VP9 é consistentemente mais nítida na superfície da estrada devido aos grandes tamanhos de previsão e de transformação, e possui detalhes mais precisos do lado do caminhão devido a uma mistura de tamanhos grandes e pequenos de transformada. Todas estas decisões de modo são optimamente escolhidas através da pesquisa exaustiva do modo RDO, que só é possível por FPGA.

O codificador VP9 mostrado à direita produz maior fidelidade em regiões difíceis do que o codificador H.264, devido às suas decisões de modo otimizado usando a pesquisa RDO completa

Otimizações de controle de taxa: Algoritmos inteligentes sabem onde gastar ou salvar bits

Além de encontrar a maneira mais eficiente de prever pixels, outro aspecto importante da melhoria da compactação do codificador é planejar e executar o gasto de bits de maneira inteligente, por exemplo, para dar mais bits às áreas mais sensíveis aos olhos humanos, para evitar a qualidade do vídeo. flutuação que pode ser irritante para os espectadores. Nesta seção, mostramos duas implementações poderosas no codificador NGCodec VP9 que orçam e controlam a alocação de bits entre os blocos dentro de um quadro e entre vários quadros em uma sequência de vídeo.

Quantização Adaptativa Aprimorada (AQ)

O codificador NGCodec VP9 possui avançados algoritmos AQ espaciais e temporais acoplados a um processo de dupla passagem para análise de conteúdo de cena e condições de iluminação. Essas tecnologias ajudam a calcular e otimizar a alocação dos bits no nível do bloco, com base na complexidade da cena. No exemplo ilustrado abaixo, áreas planas como o céu ou o lado do caminhão não custam tantos pedaços quanto áreas complexas como a estrada, a parede ou o prédio. No entanto, essas áreas podem exibir artefatos de bloqueio aos quais os olhos humanos são mais sensíveis, principalmente quando não são alocados com bits suficientes.

Uma cena que possui áreas planas (céu, caminhão) e áreas complexas (estrada, construção) O mapa de calor do bloco quant mostrando o codificador VP9 pode identificar com precisão as áreas planas e complexas

No VP9, os deslocamentos quant são mapeados para um dos oito segmentos que permitem uma qualidade espacial equilibrada em toda a imagem. O mapeamento AQ é representado na figura acima, em que os valores do segmento são mapeados para um mapa de calor da luma. Como explicado acima, áreas mais planas como o céu e o caminhão (mostradas em um tom mais claro) recebem mais bits com um deslocamento de quant negativo, evitando artefatos visuais. Por outro lado, áreas texturizadas mais altas, como os logotipos e o lado do prédio (mostrados em uma tonalidade mais escura) recebem compensações quantificadas positivas.

Controle Avançado de Taxa

Além da quantização adaptativa em nível de bloco dentro de um quadro, a alocação de bits em vários quadros é ainda mais crítica para obter um desempenho de compactação decente. O objetivo de um algoritmo de controle de taxa é evitar a violação do modelo Video Buffer Verifier (VBV) e maximizar a qualidade geral de uma seqüência de vídeo alocando a quantidade adequada de bits a diferentes quadros de vídeo (por exemplo, quadros de referência / não referência, frames em cena muda). Em outras palavras, VBV é o modelo matemático que define como a taxa de bits de uma sequência de vídeo pode ser considerada constante.

O sistema de controle de taxa robusto do codificador NGCodec VP9 usa técnicas de Aprendizado de Máquina para obter uma qualidade de vídeo mais consistente que x264, especialmente após mudanças de cena, a situação mais desafiadora para controle de taxa. O algoritmo foi validado em uma ampla gama de parâmetros de conteúdo e codificação e é particularmente otimizado para conteúdo de jogos.

O codificador NGCodec VP9 demonstra uma qualidade de vídeo mais estável (ou seja, parâmetro médio de quantização de quadros) do que o fraco gerenciamento de buffer VBV de x264 x264 causa alta QP (ou seja, baixa qualidade de vídeo) após o frame 35

As duas figuras acima mostram o parâmetro de quantização de quadros (QP) do codificador NGCodec VP9 e x264 e seu nível de buffer VBV correspondente, durante uma situação de mudança de cena na sequência de vídeo de Witchers 3. Observe que os níveis do quantificador VP9 são mapeados para o equivalente H 0,264 valores QP no primeiro diagrama acima. Podemos ver que em torno do frame 35, o controle de taxa do x264 entra em pânico desnecessariamente, o que empurra seu QP 51 levando a uma qualidade visual muito ruim (veja o lado esquerdo da figura abaixo). Por outro lado, o controle de taxa do codificador NGCodec VP9 escolhe manter o QP estável e evitar que o nível do buffer VBV atinja 0% (ou seja, buffer underflow).

Esquerda: o x264 resulta em artefatos devido ao baixo desempenho do controle de taxa em uma mudança de cena; Direita: O codificador NGCodec VP9 oferece qualidade visual consistente na mudança de cena

Texto original em inglês.