Comparação de desempenho de padrões de codificação de vídeo: uma perspectiva de streaming adaptável

por Joel Sole, Liwei Guo, Andrey Norkin, Mariana Afonso, Kyle Swanson e Anne Aaron

Netflix Technology Blog Blocked Unblock Seguir Seguindo 13 de dezembro de 2018

“Este é o meu conselho para as pessoas: aprender a cozinhar, experimentar novas receitas, aprender com seus erros, ser destemido e, acima de tudo, se divertir” – Julia Child (chef, autor e personalidade americanos)

Na Netflix, estamos refinando continuamente as receitas que usamos para exibir seus programas e filmes favoritos com a melhor qualidade possível. Um elemento essencial neste prato é a tecnologia de codificação de vídeo que usamos para transformar nosso conteúdo de vídeo em fluxos de bits compactados (adequado para qualquer largura de banda em que você esteja aproveitando o Netflix). Uma quantidade fantástica de trabalho foi feita pela comunidade de codificação de vídeo para desenvolver padrões de codificação de vídeo (codecs) com o objetivo de atingir taxas de compactação sempre melhores. Portanto, uma tarefa essencial é a avaliação da qualidade dos ingredientes que usamos e, na codificação de cozinha da Netflix, fazemos isso avaliando regularmente o desempenho dos codecs e codificadores de vídeo existentes e futuros. Selecionamos as tecnologias de codificação mais recentes e melhores para que você possa saborear nosso conteúdo, da cinematografia saciante de Sal Gordo Ácido Calor para as lindas fotos de comida da Mesa do Chef .

Mesa do Chef

Fatores em comparações de codec

Muitos artigos foram publicados comparando o desempenho dos codecs de vídeo. O leitor desses artigos pode ficar confuso com suas conclusões aparentemente contraditórias. Um artigo pode afirmar que o codec A é 15% melhor que o codec B, enquanto o próximo pode afirmar que o codec B é 10% melhor que o codec A.

Um mergulho mais profundo no tema revela que essas aparentes contradições devem ser esperadas. Por quê? Porque a metodologia e o conteúdo do teste desempenham um papel crucial na avaliação de codecs de vídeo. Uma seleção diferente das condições de teste pode levar a resultados discrepantes. Discutimos abaixo vários fatores que afetam a avaliação de codecs de vídeo:

  1. Implementação do codificador
  2. Configurações do codificador
  3. Metodologia
  4. Conteúdo
  5. Métricas

Onde aplicável, fazemos a distinção entre a abordagem de comparação tradicional e nossa abordagem de fluxo adaptativo.

Implementação do codificador

Os padrões de codificação de vídeo são instanciados em software ou hardware com objetivos tão variados quanto pesquisa, transmissão ou transmissão. Um 'codificador de referência' é uma implementação de software usada durante o processo de padronização de vídeo e para pesquisa, e como uma referência por implementadores. Geralmente, esta é a primeira implementação de um padrão e não é usada para produção. Posteriormente, os codificadores de produção desenvolvidos pela comunidade de código aberto ou entidades comerciais aparecem. Estas são implementações práticas implementadas pela maioria das empresas para as suas necessidades de codificação e estão sujeitas a restrições de velocidade e recursos mais rigorosas. Portanto, o desempenho dos codificadores de referência e de produção pode ser substancialmente diferente. Além disso, o perfil padrão e a versão específica influenciam o desempenho observado, especialmente para um novo padrão com implementações ainda imaturas. A Netflix implanta codificadores de produção ajustados para alcançar a mais alta qualidade subjetiva de streaming.

Configurações de codificação

Os parâmetros de codificação, como o número de passagens de codificação, ferramentas de paralelização, controle de taxa, ajuste visual e outros, introduzem um alto grau de variabilidade nos resultados. A seleção dessas configurações de codificação é principalmente orientada por aplicativos.

Os órgãos de padronização tendem a usar condições de teste que permitem comparar uma ferramenta com outra, geralmente maximizando uma determinada métrica objetiva e reduzindo a variabilidade em relação a diferentes experimentos. Por exemplo, as afinações visuais e de controle de taxa geralmente são desativadas, para focar na eficácia das ferramentas de codificação principais.

As receitas de codificação da Netflix se concentram em obter a melhor qualidade, habilitando as ferramentas de codificação disponíveis que aumentam a aparência visual e, portanto, dando menos peso a indicadores como a velocidade ou o tamanho do codificador que são cruciais em outras aplicações.

Metodologia

A metodologia de teste na padronização de codecs estabelece condições de teste comuns bem definidas para avaliar novas ferramentas de codificação e permitir a reprodutibilidade dos experimentos. As condições comuns de teste consistem em um conjunto relativamente pequeno de sequências de teste (tomadas individuais de 1 a 10 segundos) que são codificadas somente na resolução de entrada com um conjunto fixo de parâmetros de qualidade. Qualidade (PSNR) e taxa de bits são reunidos para cada um desses pontos de qualidade e usados para calcular a economia média de taxa de bits, a chamada taxa BD, conforme ilustrado abaixo.

Embora a metodologia em padrões tenha sido adequada à finalidade pretendida, outras considerações entram em cena no mundo da transmissão adaptativa. Notavelmente, a opção de oferecer várias representações do mesmo vídeo em taxas de bits e resoluções diferentes para corresponder à largura de banda da rede e aos recursos de processamento e exibição do cliente. O conteúdo, a codificação e as resoluções de exibição não estão necessariamente vinculados. Remover essa restrição implica que a qualidade pode ser otimizada pela codificação em diferentes resoluções.

Curvas de qualidade de taxa por resolução cruzam, portanto, há uma faixa de taxas para as quais cada resolução de codificação oferece a melhor qualidade. O 'casco convexo' é derivado pela seleção da curva ótima em cada taxa para todo o intervalo. Em seguida, a diferença da taxa de BD é calculada nos cascos convexos, em vez de usar as curvas de resolução única.

A flexibilidade na entrega de fluxos de bits no casco convexo, em oposição a apenas os de resolução única, leva a melhorias de qualidade notáveis. A metodologia do otimizador dinâmico (DO) generaliza esse conceito para seqüências com múltiplos disparos. O DO opera no casco convexo de todas as fotos de um vídeo para otimizar conjuntamente a distorção de taxa geral, encontrando o caminho de compactação ideal para uma codificação entre qualidades, resoluções e fotos.

DO foi introduzido neste blog de tecnologia . Ele mostrou uma economia de 25% na taxa de BD para vídeos de vários tiros. Três características que tornam o OD particularmente adequado para comparações de fluxo adaptável e codec são:

  1. É codec agnóstico, uma vez que pode ser aplicado da mesma forma a qualquer codificador.
  2. Ele pode usar qualquer métrica para guiar seu processo de otimização.
  3. Elimina a necessidade de controle de taxa de alto nível entre as fotos no codificador. O controle de taxa de nível inferior, como a quantização adaptativa dentro de um quadro, ainda é útil, porque o DO não opera abaixo do nível de disparo.

DO, como apresentado originalmente, é um algoritmo dispendioso computacionalmente em tempo não real. No entanto, devido à pesquisa exaustiva, DO pode ser visto como o desempenho de limite superior para algoritmos de controle de taxa de alto nível.

Conteúdo

Para uma comparação justa, o conteúdo do teste deve ser equilibrado, abrangendo uma variedade de tipos distintos de vídeo (natural vs. animação, movimento lento vs. alto, etc.) ou refletir o tipo de conteúdo para o aplicativo em questão.

O conteúdo do teste não deve ter sido usado durante o desenvolvimento do codec. A Netflix produziu e tornou públicas longas sequências de vídeo com vários planos, como "El Fuente" ou "Chimera", para estender os vídeos disponíveis para pesquisa e desenvolvimento e mitigar o problema de confundir treinamento e conteúdo de teste. Internamente, avaliamos extensivamente algoritmos usando títulos completos de nosso catálogo.

Métricas

Tradicionalmente, o PSNR tem sido a métrica de escolha, dada sua simplicidade, e corresponde razoavelmente às pontuações de opinião subjetiva. Outras métricas, como VIF ou SSIM, correlacionam-se melhor com as pontuações subjetivas. Métricas foram comumente computadas na resolução de codificação.

A Netflix confia muito no VMAF em todo o seu pipeline de vídeo. O VMAF é uma métrica de qualidade de vídeo perceptivo que modela o sistema visual humano. Ele se correlaciona melhor do que o PSNR com opinião subjetiva sobre um amplo intervalo de qualidade e conteúdo. O VMAF permite comparações confiáveis de codecs em toda a ampla gama de taxas de bits e resoluções que ocorrem em streaming adaptável. Esse blog de tecnologia é útil para saber mais sobre o VMAF e seu status atual de implantação.

Correspondência aproximada entre valores VMAF e opinião subjetiva

Dois aspectos relevantes ao empregar métricas são a resolução na qual eles são calculados e a média temporal:

  1. Escalados métrica: VMAF não é computado na resolução de codificação, mas a resolução da tela, o que melhor simula os nossos membros experiência de visualização. Isso não é exclusivo do VMAF, pois o PSNR e outras métricas podem ser aplicadas em qualquer resolução desejada, dimensionando adequadamente o vídeo.
  2. Média temporal: as métricas são calculadas em uma base por quadro. Normalmente, a média aritmética tem sido o método de escolha para obter a média temporal em toda a sequência. Empregamos a média harmônica, que dá mais peso a outliers do que a média aritmética. A justificativa para usar a média harmônica é que, se houver poucos quadros que pareçam muito ruins em uma cena de um show que você esteja assistindo, sua experiência não será tão boa, independentemente da qualidade do restante da cena. A sigla para o harmônico VMAF é HVMAF.

Resultados de comparação de codec

Colocando em prática os fatores mencionados acima, mostramos os resultados obtidos a partir das duas abordagens distintas de comparação de codec, a tradicional e a adaptativa de streaming.

Três padrões de codificação de vídeo comumente usados são testados: H.264 / AVC e H.265 / HEVC por ITU.T e ISO / MPEG e VP9 pelo Google. Para cada padrão, usamos o codificador de referência e um codificador de produção.

Resultados com a abordagem tradicional

A abordagem tradicional usa codificação QP (qualidade) fixa para um conjunto de sequências curtas.

  • As configurações do codificador estão listadas na tabela abaixo.
  • Metodologia : Cinco codificações de qualidade fixa por sequência na resolução de conteúdo são geradas.
  • Conteúdo : 14 sequências padrão do conjunto de Condições de Teste Comuns MPEG (principalmente do JVET) e 14 do conjunto de Aliança para Mídia Aberta (AOM). Todas as sequências são 1080p. Estes são clipes curtos: cerca de 10 segundos para o conjunto MPEG e 1 segundo para o conjunto AOM. Principalmente, eles são seqüências de tiro único.
  • Métricas : As economias de taxa BD são calculadas usando o PSNR clássico para o componente luma.

Os resultados estão resumidos na tabela abaixo. As taxas de BD são dadas em porcentagem em relação a x264. Os números positivos indicam um aumento médio da taxa de bits, enquanto os números negativos indicam a redução da taxa de bits.

Taxa BD (em%) usando PSNR dos 6 codificadores de vídeo ajustados por PSNR

Curiosamente, o uso do conjunto MPEG não parece beneficiar os codificadores HEVC ou o uso do conjunto AOM ajuda os codificadores VP9.

Resultados de uma perspectiva de streaming adaptável

Esta seção descreve um experimento mais abrangente. Ele se baseia na abordagem tradicional, modificando alguns aspectos em cada um dos fatores:

  • Configurações do codificador : as configurações são alteradas para incorporar as afinações de percepção. O restante das configurações permanece conforme definido anteriormente.
  • Metodologia : A codificação é feita em 10 resoluções diferentes para cada foto, de 1920×1080 até 256×144. O DO realiza a otimização geral de codificação usando o HVMAF.
  • Conteúdo : Um conjunto de 8 títulos completos da Netflix (como Orange é o New Black, House of Cards ou Bojack) é adicionado aos outros dois conjuntos de teste. Os títulos da Netflix são 1080p, 30fps, 8 bits / componente. Eles contêm uma ampla variedade de conteúdo em cerca de 8 horas de material em vídeo.
  • Métricas : O HVMAF é empregado para avaliar essas codificações ajustadas perceptivamente. A métrica é calculada sobre a faixa de qualidade relevante do casco convexo. O HVMAF é calculado após o escalonamento das codificações para a resolução de exibição (presumida como 1080p), que também corresponde à resolução do conteúdo de origem.

Além disso, dividimos os resultados em dois intervalos para visualizar o desempenho em diferentes qualidades. A faixa baixa refere-se a HVMAF entre 30 e 63, enquanto a faixa alta refere-se a HVMAF entre 63 e 96, o que se correlaciona com alta qualidade subjetiva.

As linhas destacadas na tabela HVMAF BD-rates são os pontos de operação mais relevantes para o Netflix.

Taxa BD (em%) usando HVMAF de 6 codificadores de vídeo ajustados para a qualidade perceptual. Porcentagens de taxas BD usam x264 como referência.

Takeaways

O codificador, as configurações de codificação, a metodologia, o conteúdo de teste e as métricas devem ser descritos detalhadamente em qualquer comparação de codec, pois influenciam muito os resultados. Como ilustrado acima, uma seleção diferente das condições de teste leva a diferentes conclusões sobre o desempenho relativo dos encoders. Por exemplo, o EVE-VP9 é cerca de 1% pior do que x265 em termos de PSNR para a abordagem tradicional, mas cerca de 12% melhor para o caso de alta faixa HVMAF.

Dada a grande quantidade de vídeo compactado e fornecido por serviços como o Netflix e que as abordagens de streaming tradicional e adaptável não necessariamente convergem para o mesmo resultado, seria benéfico se a comunidade de codificação de vídeo considerasse a perspectiva de fluxo adaptável nas comparações. Por exemplo, é relativamente fácil calcular métricas no casco convexo ou adicionar os números HVMAF às métricas reportadas.

Como grandes receitas, a codificação de vídeo também tem elementos essenciais; VMAF, otimização dinâmica e ótimos codecs. Com esses ingredientes e inovação contínua, estamos nos esforçando para aperfeiçoar nossa receita – vídeo de alta qualidade codifica com as taxas de bits mais baixas possíveis. Se esses problemas o empolgarem e você quiser contribuir para a construção do nosso pipeline de codificação de vídeo, confira os posts do Algoritmos de Vídeo ( aqui e aqui ).

Agradecimentos

Para obter informações técnicas e resultados mais detalhados, você pode conferir o documento ' Comparação de codecs de vídeo usando a estrutura do otimizador dinâmico ' de Ioannis Katsavounidis e Liwei Guo.

Gostaríamos de agradecer a Ioannis Katsavounidis por todo o trabalho técnico que levou a este blog, e a Jan De Cock, Chen Chao, Aditya Mavlankar, Zhi Li e David Ronca pelas suas contribuições.

Nossas experimentações foram executadas na plataforma Archer construída pela equipe de infraestrutura de mídia da Netflix. Nós sempre apreciamos seus esforços contínuos para tornar a inovação de mídia na Netflix uma experiência agradável.

Texto original em inglês.