Codificação Por Titulos- Os segredos por traz do OTT da Netflix

Primeiro uma explicação : O que é Codificação por titulo ?

Uma codificação regular simplesmente segue as regras que você define em suas configurações de stream, codec- e muxing. Uma codificação por título em comparação, não apenas usa a configuração fornecida, mas avalia o próprio recurso. Com base nesses dados, o algoritmo ajusta os parâmetros largura, altura e taxa de bits, otimizando sua escala de taxa de bits para aumentar a qualidade e, ao mesmo tempo, reduzir a largura de banda necessária para entregá-la.

Então o objetivo da codificação por título, é otimizar a escala de taxa de bits para cada codificação, e então tentar encaixar o resultado na faixa relativamente estreita que o sistema perceptivo humano pode ver.

Portanto, existe uma balança: Se pendermos para além do sistema visual humano, perderemos muitos bits em codificações. Porém seformos abaixo disso, criaremos muitos artefatos que serão perceptíveis aos usuários.

Em última análise, o que a Codificação Por Titulo nos permite fazer é tentar reduzir o custo e melhorar a qualidade que podemos colocar em cada codificação.

O gráfico abaixo compara o chamado Convex Hull (basicamente um envelope das regiões onde certas combinações de resolução / taxa de bits funcionam melhor) de uma escala de taxa de bits padrão (não dinâmica) ePor Título.



Fig.1 - Comparação entre por título e perfil padrão em termos de qualidade e taxa de bits ( fonte : https://bitmovin.com/docs/encoding/faqs/what-is-per-title-encoding)

O Perfil por Título é capaz de alcançar uma qualidade muito melhor usando bitrates mais baixos na faixa de percepção BRLBTChumana (aproximadamente entre 35dB e 45dB). Além disso, remove as tuplas de resolução / taxa de bits acima de 45dB, o que não leva mais a uma melhoria da qualidade visual.

Dito isso, podemos seguir.

O que começou como um ajuste de taxa de dados unidimensional que refletia a realidade simples de que todos os vídeos eram codificados de maneira diferente, agora é uma análise complexa que incorpora taxa de quadros, resolução, gama de cores e faixas dinâmicas, bem como, redes de distribuição e dados relacionados ao dispositivo.

Ao longo do caminho, as métricas de qualidade de vídeo (VQM) também avançaram, para fornecer os dados relacionados à qualidade que alimenta os algoritmos por título.

Neste artigo, vou procurar mostrar o histórico das tecnologias de codificação por título, como forma de dar subsídios de quais recursos procurar ao escolher uma tecnologia e / ou provedor de serviços.

Embora a Netflix seja geralmente creditada com a invenção da codificação por título, desde que publicou seu artigo em dezembro de 2015 , intitulado "Otimização de codificação por título"(1).

A verdade é quevárias tecnologiasja existiam antes disso, como por exemplo a :

ContentAdaptiveBitrate (CABR) e Constant Rate Factor (CRF) da Beamr(2),que hoje estão presentes em codecs como H264, H265 e VP9.



Fig.2 –Diagrama do CABR do Beamr ( fonte: Beamr.com)

O CABR do Beamr é uma codificação interativa quadro a quadro, que mantém a codificação em parâmetros cada vez mais agressivos, desde que a qualidade do quadro seja "perceptivelmente idêntica" à qualidade do arquivo original, que émedida pelo VQM Beamr (Vision QualityMeasure, que é altamente correlacionado com a visão humana).

Assim que a qualidade ficar abaixo disso, o codificador reverte para a codificação anterior e segue para o próximo quadro.

Já Constant Rate Factor(CRF) é mais completo e para explicar sua operação, podemos recorrer ao seguinte cenário :

Na maioria dos encoders , você pode especificar um valor de bit rate total , como por exemplo: umbitrate = 5Mbps, e ocodificador ira gerar, exatamente isso ,um arquivo de 5Mbps.

Dai se o conteúdo for de jornalismo, ou “aulas paradas”, a qualidade será boa; porém se o conteúdofor uma partida de futebol, a qualidade para essa taxa de bitrate, pode ser duvidosa, pois no modo de taxa de dados fixo (também chamado de Constante BitRate) , o codificador varia a qualidade para atender a taxa de dados.

Com o CRF, você especifica um nível de CRF de 0 a 51, por exemplo, CRF = 25, e o codificador produz um arquivo com nível de qualidade de CRF 25. Se o conteúdo for apenas uma aula ,ou jornalismo de estúdio, a taxa de dados pode ser de 2 Mbps; e caso seja como falado antes uma partida de futebol, ou uma corrida da Formula 1, o mesmo pode ser de 15 Mbps.

Dessa forma no modo CRF, o codificador varia a taxa de dados para fornecer a qualidade solicitada.

O CRF tem um bom desempenho como tecnologia por título, quando implantado com um limite de taxa de dados (você pode por exemplo configura-lo para que codifique na qualidade CRF = 25, mas que não exceda 5 Mbps). Este modo é chamado de CRF limitado, e é usado por fornecedores como Vimeo e outros produtores de VideoOnDemand(VOD).

Em geral, as tecnologias de otimização são a única maneira prática de ajustar a taxa de dados do arquivo durante eventos ao vivo.

Por esse motivo, que tecnologias de codificação ao vivo como a Constant Rate Factor daAWS Elemental, ou a Quality-DefinedVariableBitrate (QVBR), ou ainda a EyeQ da Harmonic, são todas chamadas de tecnologias de otimização.

Porém nem tudo são flores, sabemos hoje que todas as tecnologias de otimização têm uma limitação muito séria: elas não podem alterar nenhum aspecto do arquivo ou da escala de codificação além da taxa de bits.

Sendo bem objetivo, observe que sempre que avaliamos uma tecnologia de codificação por título, normalmente a comparamos com uma escala de codificação fixa.

Conforme demonstrado na Figura 1, com a escala fixa à esquerda e duas tecnologias por título à direita. Vemos que a tabela B é uma tecnologia de otimização; isso é observado uma vez que aoalimentarmos a tabela com o número de variaçõesde resoluções da tabela de codificação original, vemos como resultado direto que o algoritmoreajusta a taxa de dados - e apenas a taxa de dados - desses diversos “degraus” da tabela original.



Fig3 – Comparação entre tecnologias

Em contraste a tudo isso, ao alimentarmos a tabela da tecnologia A , com o mesmo arquivo original, vemos que ela decide quantos degraus a escala de codificação precisa, bem como qual sua taxa de dados e resolução. Na figura, podemos ver que a tecnologia A, não apenas reduz o número de degraus (e os custos de codificação), mas também aumenta as resoluções desses degraus e a qualidade de Video associada, a isso chamamos de :Multimethod Assessment Fusion (VMAF) .

Como as tecnologias de otimização só podem ajustar a taxa de dados, não o número de degraus ou sua resolução, elas normalmente não funcionam tão bem,quanto outras tecnologias por título, que podem ajustar todas as três variáveis.

Ainda assim, as tecnologias de otimização eram tudo o que existia até a Netflixestrear sua tecnologia de codificação por título, em dezembro de 2015.

Ela usa uma técnica de codificação de força bruta, que codifica cada arquivo de origem em centenas de combinações de resolução e taxa de dados para encontrar o que a Netflix chama no artigo de "Converx Hull", que é a forma que limita de forma mais eficiente todos os pontos de dados,conforme demonstrado na Figura 2.



Fig4 –Convex Hull ( fonte netflixblog.com)

Curiosamente, a métrica que originalmente impulsionou o mecanismo de decisão da Netflix foi a relação sinal-ruído de pico (PSNR), que é uma métrica de imagem estática que não incorpora o conceito de movimento.

A Netflix substituiu o PSNR pelo VMAF em junho de 2016. Resumidamente, o VMAF combina quatro métricas de qualidade, incluindo uma métrica de movimento simples. Quando lançado, o Netflix postou dados mostrando que o VMAF tinha uma correlação mais alta com avaliações subjetivas do que o PSNR.

No início de 2016, ficou claro que muitas outras organizações vinham trabalhando na implementação por título há algum tempo, o próprio YouTube apresentou um artigo que detalhou sua abordagem para o problema de forma bem diferente.

Enquanto aNetflix codifica comparativamente poucos vídeos, mas a maioria é assistida por milhões de clientes pagantes, o que justifica seu caro esquema de codificação que oferece a melhor qualidade absoluta com a menor taxa de bits possível.

OYouTube estava recebendo aproximadamente mais de 300 horas de vídeo por minuto, com alguns assistidos por milhões de telespectadores, mas a maioria assistida por números bem menores. Isso exigia uma implementação por título muito mais rápida e econômica. Curiosamente, a técnica do YouTube combinou Inteligencia Artificial (IA) com dados de complexidade de arquivos fornecidos por uma único arquivo de origem codificado em CRF 240p.

Também em 2016, a Capella Systems lançou um recurso chamado SABL (Source Adaptive Bitrate Ladder), em seu encoder para VOD: o Cambria FTC.

Essa técnica de SABL usa o CRF para medir a complexidade do arquivo, com scripts disponíveis para ajustar o número de degraus na escada e sua resolução, dependendo dos resultados medidos pelo CRF.

Em 2018, a Netflixdeu mais um passo afrente e estreou seu DynamicOptimizer baseado em cena. Conforme mostrado na Figura 3, em vez de dividir o vídeo em GOPs ou segmentos arbitrários de 2 ou 3 segundos, a otimização dinâmica divide o vídeo em cenas e codifica cada cena separadamente. Enquanto isso cria um GOP dinâmico e comprimentos de segmento, a comutação de fluxo de taxa de bits adaptável (ou Adaptive Bit Rate -ABR) continua a funcionar efetivamente porque todos os degraus de escala compartilham o mesmo GOP e comprimentos de segmento.



Fig.5- Otimização Dinamica baseada em cenas- ( fonte netflix blog)

Intuitivamente, a codificação baseada em cena faz muito sentido. A personalização dos parâmetros de codificação para uma cena individual deve ser mais eficiente do que tentar encontrar a configuração de codificação ideal para um segmento que contém duas ou mais cenas que podem incluir um conteúdo totalmente diferente. Além disso, alterar os parâmetros de codificação em uma mudança de cena obviamente seria menos perceptível do que alterar os parâmetros em uma cena.

Por fimos números de eficiência computadas pelas Netflix demonstraram; conforme medido pelo VMAF, que a otimização dinâmica permitiu a redução das taxa de bits de H264, VP9 e H265 em 28,04%, 37,61% e 33,51%, respectivamente, mantendo a mesma qualidade.

Embora o título baseado em tomadas seja atraente, ele cria problemas significativos no lado do player ou decodificador, especialmente para aplicativos que envolvem a inserção de publicidade. No mínimo, você precisará de players / aplicativos personalizados em praticamente todas as plataformas e, mesmo assim, pode ser muito complicado inserir anúncios quando mais precisar.

Definitivamente, a melhor estratégia aqui é verificar qual o estatus dos players/decoders antes de começar a mexer no lado da codificação.

Continuando,o próximo avanço veio de uma direção completamente diferente e responde afirmativamente à seguinte pergunta: "Você criaria sua escala de codificação de forma diferente se soubesse quais dispositivos estão reproduzindo seu conteúdo e em quais velocidades de conexão?"

Técnicas de codificação por título que incorporaram dados de reprodução surgiram de três empresas diferentes, quase que ao mesmo tempo: Brightcove, Mux e EpicLabs, agora de propriedade da Haivision.

A melhor descrição é fornecida em um white paper intitulado "Otimizando a entrega de vídeo em várias telas em grande escala"(3), de autoria YuriyReznik e outros três colegas da Brightcove.

O documento descreve a tecnologia Context-Aware Encoding (CAE) da Brightcove, que analisa o conteúdo "e as estimativas das probabilidades de carregamento do fluxo em cada taxa para cada cliente".

E continua,

"No cálculo da expressão de custo de otimização final, o gerador CAE agrega estimativas obtidas para cada tipo de cliente de acordo com a distribuição de uso, também fornecida pelo módulo analítico. Em outras palavras, a geração de perfil CAE é realmente um processo de otimização de ponta a ponta para entregar em vários dispositivos e telas. "

O artigo analisa os três padrões de uso mostrados à esquerda na Figura 4 e apresenta a escala de codificação exclusiva criada para cada padrão de uso do mesmo conteúdo. O primeiro padrão de uso é centrado em dispositivos móveis, o segundo é de uso mais geral e o terceiro é centrado em IP-TV, com 100% de toda a distribuição para TVs com uma largura de banda média de cerca de 36 Mbps. Embora a diferença entre as duas primeiras escalas de codificação seja muito sutil, a terceira escala se destaca por ter o menor número de degraus, a menor taxa de bitrate total, além de ter o degrau superior de mais alta qualidade. Isso reduz os custos de codificação e armazenamento e melhora a qualidade da experiência (QoE).

 


Fig.6 Tabelas de comparação 

( fonte : https://www.researchgate.net/publication/333040039)

Fatorar os dados de reprodução na análise de criação de escala faz sentido, mas onde obter os dados e de que forma? Para a Brightcove, que implanta uma plataforma de ponta a ponta para a maioria dos clientes, isso é obviamente fácil, já que possui todos os dados.

Portanto, embora o conceito seja atraente, como você o implementaria fora de um serviço proprietário? Também é muito provável que a maioria dos produtos e serviços de codificação existentes que não estão conectados a uma solução ponta a ponta, provavelmente nem mesmo estejam considerando esse tipo de integração.

Outra variável abordada no artigo da Brightcove são as implementações de codecs múltiplos.

Aqui, o artigo afirma:

Uma das características do gerador de perfil CAE é a capacidade de gerar perfis ABR para a pluralidade de codecs existentes. Nesse caso, o gerador também usa informações sobre o suporte de tais codecs por diferentes categorias de dispositivos receptores. Essas informações são fornecidas como parte das estatísticas de uso do operador e largura de banda, fornecidas pelo mecanismo de análise.”

O uso da geração de perfis multi-codec leva a economias adicionais no número total de renderizações e ganhos de qualidade alcançáveis ​​por clientes que podem alternar entre os codecs. (por exemplo H264 e HEVC). Incorporar vários codecs em uma única escala também faz muito sentido, a produção de uma única escada híbrida economiza custos de codificação e armazenamento, tornando-a a melhor opção para a maioria dos produtores que oferecem ambos os codecs, tornando a capacidade de criar, escalas de codificação de codec híbrida, um recurso valioso para tecnologias por título.

Porém mais uma vez, quem no mercado esta olhando para isso ?

Muitos serviços de conteúdo premium distribuem vídeo de alta faixa dinâmica (do inglês :high dynamic range - HDR) a 60 quadros por segundo (fps) ou mais rápido.

Embora as considerações de faixa dinâmica sejam comparativamente novas, os produtores têm reduzido as taxas de quadros dos degraus mais baixos de seus níveis de codificação já faz algum tempo.

No entanto, nenhuma das tecnologias por título discutidas até agora, destacou a capacidade de ajustar automaticamente a taxa de quadros dos degraus da escala. Esse problema é agravado por vídeos de 50/60 fps, ondeduas ou três opções de taxa de quadros podem ser necessárias para representar uma progressão suave da qualidade das taxas de bits mais altas, para as mais baixas.

Outro problema semelhante está relacionado à faixa dinâmica. Embora o HDR seja claramente preferível nos degraus superiores da escala de codificação, ele pode ser incompatível com os degraus inferiores. Dessa forma é importante queas técnicas de codificação por título ( que tratam de conteúdo premium) com altas taxas de quadros e HDR, também devem abordar como escalar a taxa de quadros e a faixa dinâmica, junto com todos os outros parâmetros discutidos anteriormente, em uma única escala de codificação.

E esse é um desafio enorme para os fabricantes de encoders, e podemos encontrar uma primeira tentativa de se fazer isso, ao olharmos para um paper da francesa ATEME, que aborda a taxa de quadros e a adaptação de faixa dinâmica , intitulado: "Codificação de Conteúdo voltado para a próxima geração de UHD, HDR, WCG, HFR"(4), de autoria de Thomas Guionnet e outros dois colegas.

O artigo explora o impacto da adaptação da taxa de quadros primeiro, usando o Índice de Qualidade ATEME (do inglês: ATEME QualityIndex-AQI) para traçar as curvas mostradas na Figura 6, que rastreia a qualidade dos fluxos que variam em resoluções de 960x540 a 4K,e com taxas de quadros que variam de 25 a 100 fps,além de taxas de dados que variam cerca de 1 Mbps a 80 Mbps.

No artigo, os pesquisadores detalham que as métricas ATEME, incorporam resolução, taxa de quadros, faixa dinâmica e gama de cores; e essas técnicas são independentes doscodecs; pois usam a otimização de treliça para produzir os degraus ideais para a escala de codificação.

Fig.6 -CONJUNTO DE CURVAS DE QUALIDADE DE TAXA PARA A VARIAÇÃO DE RESOLUÇÕES DE 960X540 A 4K E FRAMERATE DE 25 A 100 FPS.

( fonte: Ateme )

Por exemplo, o artigo sita que se trabalharmos com uma entrada de 8K a 50fps HDR Hybrid Log-Gamma (HLG),( no caso um vídeo da Polinésia), o sistema ira produziruma escala de codificação, com resultados mostrados na tabela 1, que delineia pontos de troca para taxa de dados e faixa dinâmica.


Tabela 1 –CONTEÚDO ADAPTADO DE CONJUNTO DE PERFIS PARA SEQUÊNCIA POLYNÉSIE( Fonte: Ateme )


Os autores explicam:

Como ilustração de sua flexibilidade, o frameworkfoi aplicado em duas sequências... O codec foi corrigido para HEVC ,e uma máximaresolução obrigatória em conjunto com uma taxa de bits mínima, foram fornecidas como restrições. Dessa forma a resolução, taxa de quadros e a faixa dinâmica foram deixadas para que o frameworkas configura-se automaticamente... A escala de perfis parece normal, exceto para a resolução que abrange uma faixa muito ampla. A resolução vai diminuindo suavemente junto com a taxa de bits, enquanto a taxa de quadros é reduzida apenas para os perfis mais baixos. ”

Os autores do ATEME, aindaargumentam que o sistema também pode abordar outros fatores-chave de configuração, afirmando que além de taxa, resolução, taxa de quadros e adaptação da faixa dinâmica, o framework proposto poderia até mesmo lidar com comutação de codec se necessário.

Agora para finalizar precisamos falar de qualidade.

E no mundo dos algoritmos você é tão bom quanto a sua métrica de qualidade o permita ser.

Isto significa que se a sua métrica de qualidade de vídeo (do inglês: videoqualitymetrics –VQM) não for boa, você não pode usar essa métrica para gerenciar o VQM entregue a audiência.

Por exemplo, respeitando a taxa de quadros, suponha que você esteja comparando dois arquivos de 3 Mbps codificados de uma fonte de 60 fps.

Assim um encoder esta em 1080p a 30 fps,e o outro esta em 720p a 60 fps.

Como visto anteriormente para produzir uma pontuação VMAF (MultimethodAssessmentFusion).

ou PSNR, (se preferir o método antigo da Netflix) para o arquivo 1080p, você tera que converter a fonte de 60 fps para 30 fps.

Dessa forma você poderá medir a qualidade do quadro e até mesmo alguma qualidade de movimento (com VMAF),porém não estará medindo a principal vantagem, que é suavidade que os 60 fps oferecemem comparação aos 30 fps do outro arquivo. Portanto, não se recomenda usar o VMAF para decidir qual dos dois arquivos oferece uma melhor experiência de visualização, afamosa:Qualityofexperience (QoE) .

Resumindo você não pode usar o VMAF para escolher as melhores taxas de quadros para arquivos que estão em uma escala de taxa de quadros híbrida, pois as conversões exigidas deturpam o resultado.

A mesmaideia pode ser aplicada ao HDR, para exibir as imagens digitais na tela, os players de exibição( celulares, televisores, monitores ) precisam converter os valores de pixel em valores de luz correspondentes. Este processo geralmente não é linear e é chamado de EOTF (Função de transferência eletro-óptica ). Diferentes tipos de 'Funções de transferência' são suportados em diferentes dispositivos de exibição. Por exemplo : o vídeo SDR usa a função de transferência BT.709, que é limitada a 100 nits (cd / m2), e os monitores HDR usam a função de transferência Perceptual Quantizer (PQ) ou HLG, que pode estender até 10.000 nits (embora a maioria dos monitores HDR produza cerca de 1.000 nits), então, estamos falando aqui de escalas bem grandes e ao menos que um VQM suporte essas funções de transferência HDR, as pontuações que ela produzir medirão apenas o componente SDR do vídeo, o que significa que terá uma correlação baixa com as classificações subjetivas desse mesmo vídeo.

Novamente, a VQM se torna inútil para comparar vídeos SDR e HDR, e para determinar os pontos de mudança relevantes.

Dessa forma existem hoje (se não for falha na pesquisa para esse artigo), apenas dois fabricantes :ATEME, que criou sua própria métrica, o Índice de Qualidade ATEME, para fornecer as análises necessárias para seu mecanismo de codificação por título, e aBrightcove, que fez o mesmo, usando seu SIM perceptualmente ponderado para alimentar seu mecanismo de codificação por título.

Para finalizar podemos deixar aqui uma provocação, dizendo que :

A melhor tecnologia de codificação por título seria aquela capaz de:

Poder mudar o número de degraus na escala de decodificação, assim como alterar a resolução dos degraus dessa mesma escala, enquanto oferece suporte para alterar as taxas de dados dos degraus na escala.

Não podemos esquecer ainda a capacidade de dividir o vídeo em pequenas tomadas para codificação, ao em vez de usarGOPs.E já que estamos sonhando, a capacidade de poderutilizar vários codecs, com base nos dadosrecebidos pelos dispositivos dos usuários, também é algo desejável.

Dessa forma poderíamos incorporar a suas métricas, analises de desempenho de rede, e ajustar a taxa de quadros, a faixa dinâmica e a gama de cores, baseado na capacidade desse desempenho medido.

Não temos algo assim, ainda... mas espero voltar aqui para dar essa boa noticia em breve !






Referencias e artigos citados:

Referências:


1 -Gary J. Sullivan, , Jens-Rainer Ohm, Woo-Jin Han, e Thomas Wiegand- Overview of the High Efficiency Video Coding (HEVC) Standard, Dez 2012

2 -JCT-VC, “Encoder-side description of test model under consideration,”in Proc. JCT-VC Meeting, Geneva, Switzerland, Julho 2010,

3 -Mahsa T. Pourazad, Colin Doutre -HEVC: The New Gold Standard for Video Compression, IEEE CONSUMER ELECTRONICS MAGAZINE ^ Julho 2012, pg 36 a 47

4 -TK Tan; Marta Mrak; Vittorio Baroncini; Naeem Ramzan (2014-05-18). "Report on HEVC compression performance verification testing". JCT-VC. Maio 2014.

5-https://netflixtechblog.com/per-title-encode-optimization7e99442b62a2

6 -https://beamr.com/cabr_library

7—https://www.researchgate.net/publication/333040039_Optimizing_Mass-Scale_Multi-Screen_Video_Delivery-8

8-https://mile-high.video/files/mhv2019

pdfday1/1_06_Burnichon_Paper.pdf


Comentários

Postagens mais visitadas deste blog

Conhecendo EAPOL (Extensible Authentication Protocol Over LAN)

Gráficos Burn-Up: o que são e como criar um?