• Nenhum resultado encontrado

Soluções para redução de complexidade da transcodificação de vídeos HEVC para AV1

N/A
N/A
Protected

Academic year: 2021

Share "Soluções para redução de complexidade da transcodificação de vídeos HEVC para AV1"

Copied!
113
0
0

Texto

(1)

Programa de Pós-Graduação em Computação

Dissertação

Soluções para Redução de Complexidade da Transcodificação de Vídeos HEVC para AV1

Alex Machado Borges

(2)

Alex Machado Borges

Soluções para Redução de Complexidade da Transcodificação de Vídeos HEVC para AV1

Dissertação apresentada ao Programa de Pós-Graduação em Computação da Universidade Federal de Pelotas, como requisito parcial à obtenção do título de Mestre em Ciência da Computação

Orientador: Prof. Dr. Guilherme Ribeiro Corrêa Coorientadores: Prof. Dr. Marcelo Schiavon Porto

Prof. Dr. Bruno Zatt

(3)
(4)
(5)

BORGES, Alex Machado. Soluções para Redução de Complexidade da Trans-codificação de Vídeos HEVC para AV1. 2019. 112 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2019.

O atual estado da arte em codificação de vídeos, o HEVC, foi desenvolvido para abarcar vídeos em alta definição (HD). No entanto, apesar de oferecer suporte para vídeos em ultra alta resolução (UHD), suas ferramentas não são eficientes para tratar esse tipo de mídia. Mesmo assim, é o HEVC que melhor oferece resultados de compressão de vídeos atualmente. Entretanto, o HEVC possui elevados custos de utilização (royalties), principalmente para empresas de streaming de vídeos. A fim de oferecer um padrão de codificação de vídeo a um preço acessível para as empresas de streaming, a Alliance for Open Media (AOMedia) foi fundada. A AOMedia desenvolveu o AOMedia Video 1 (AV1), que é focado em vídeos UHD para streaming, e lançou no início de 2018 a sua primeira especificação de bitstream. O AV1 é computacionalmente intensivo para uso comercial, pois trabalhos apontam um tempo de codificação que supera em 50 vezes o tempo de codificação do HEVC. Mesmo o AV1 necessitando de otimizações para permitir processamento de vídeo em tempo aceitável, é do interesse da indústria de streaming de vídeos que seus produtos sejam oferecidos com menor custo aos seus clientes. Para tanto, modificar o formato dos vídeos se torna crucial numa estratégia empresarial por diversas razões, como tornar o custo do serviço mais acessível ou permitir uma compatibilidade maior entre cliente e servidor. Para tanto, utilizam-se técnicas de transcodificação de vídeos, no qual o arquivo codificado é transformado em outro formato. Este trabalho apresenta um conjunto de soluções para permitir uma aceleração do tempo de trans-codificação dos vídeos codificados em HEVC para o AV1. Essas transcodificações fazem uso do reaproveitamento de informações de particionamentos do bitstream do HEVC para simplificar decisões durante o processo de recodificação do AV1. Foram desenvolvidas quatro propostas que atingem diferentes níveis de redução de complexidade através do uso de diferentes níveis de agressividade. Utiliza-se de um conceito denominado nível de profundidade para limitar o processamento em cada uma das propostas. Dentre as propostas apresentadas, destaca-se a solução que apresentou menor aumento de BD-Rate por porcentagem de tempo reduzida na transcodificação, que apresentou uma redução de 35% do tempo de codificação do AV1 a um custo de aumento médio de 5,7% do BD-rate do vídeo. Os testes foram realizados com vídeos em três resoluções diferentes (HD720, HD1080 e UHD4K). Palavras-Chave: transcodificação de vídeo; hevc; av1

(6)

ABSTRACT

BORGES, Alex Machado. Solutions for Reducing the Complexity of Video Transcoding HEVC for AV1. 2019. 112 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvi-mento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2019.

As computer systems and network infrastructures evolve, video technologies evolve together. The current state-of-the-art video coding standard, the High Efficiency Video Coding (HEVC), is focused on the encoding of high-definition (HD) videos. Although it supports ultra-high definition (UHD) videos as well, HEVC tools are not efficient at handling such media. Even so, HEVC is still the standard that achieves the best com-pression results currently. However, the use of HEVC incurs in non-negligible costs due to royalty policies, especially for video streaming companies. This way, in order to provide an affordable video format for streaming companies, the Alliance for Open Media (AOMedia) was founded. AOMedia developed the AOMedia Video 1 (AV1) for-mat, which is focused on UHD videos for streaming, and launched in early 2018 its first bitstream specification. AV1 is computationally intensive for commercial use, because its encoding time exceeds in 50 times the encoding time of HEVC. Despite of that, it is in the interest of the video streaming industry that the content is offered with no royalty costs to customers. To do so, modifying the format of current content becomes cru-cial in a business strategy, such as making the cost of the service more accessible or allowing greater compatibility between client and server. To do so, video transcoding techniques are used, in which the encoded file is transformed into another format. This work presents a set of solutions to allow the acceleration of the transcoding process between HEVC and AV1. These solutions are based on the reuse of HEVC bitstream partitioning information to simplify decisions during the AV1 reencoding process. Four proposals have been developed that reach different levels of transcoding time reduc-tion through the use of different aggressiveness levels. A concept called depth level is used to limit the encoder operation in each solution. The most prominent of these four proposals is able to achieve an transcoding time reduction of 35% at an average BD-rate increase of 5.7%. The tests were performed with videos in three different res-olutions (HD720, HD1080 and UHD4K) and the best results were achieved precisely in ultra-high resolution videos, the main focus of AV1.

(7)

Figura 1 Linha do tempo dos principais codificadores de vídeo . . . 12

Figura 2 Comparação entre as camadas de cor nos padrões RGB e YCbCr para uma mesma imagem . . . 18

Figura 3 Exemplo de duas curvas taxa de bits x PSNR, o espaço destacado em verde é a diferença calculada pelo BD-Rate . . . 21

Figura 4 Fluxograma do codificador AV1 . . . 22

Figura 5 Apresentação de todas as partições possíveis no AV1 . . . 25

Figura 6 Fluxo de execução de um transcodificador (homogêneo ou hetero-gêneo) em tandem . . . 27

Figura 7 Relação SI-TI das sequências de vídeos HD1080 do conjunto objective-2-fast . . . 34

Figura 8 Associação visual entre os Níveis de Profundidade (NP) no HEVC e no AV1 . . . 44

Figura 9 Mapa de calor do quadro intra e do primeiro quadro inter (a) do vídeo Netflix_TunnelFlag em resolução HD1080 codificado nos padrões (b) AV1 e (c) HEVC . . . 47

Figura 10 Mapa de calor do quadro intra e do primeiro quadro inter (a) do vídeo Netflix_Narrator em resolução HD1080 codificado nos padrões (b) AV1 e (c) HEVC . . . 48

Figura 11 Fluxo de execução do transcodificador HEVC para AV1 proposto . . 49

Figura 12 Representação em alto nível do funcionamento de AL1 . . . 52

Figura 13 Pseudo-código para a Proposta AL1 . . . 53

Figura 14 Pseudo-código para a Proposta AL2 . . . 54

Figura 15 Representação em alto nível do funcionamento de AL3 . . . 57

Figura 16 Pseudo-código para a Proposta AL3 . . . 58

(8)

LISTA DE TABELAS

Tabela 1 Relação dos tamanhos de blocos existentes no AV1 . . . 25 Tabela 2 Apresentação dos vídeos UHD4K utilizados para experimentos das

propostas a serem apresentadas ao longo desta dissertação . . . . 35 Tabela 3 Apresentação dos vídeos HD1080 utilizados para experimentos das

propostas a serem apresentadas ao longo desta dissertação . . . . 36 Tabela 4 Apresentação dos vídeos HD720 utilizados para experimentos das

propostas a serem apresentadas ao longo desta dissertação . . . . 37 Tabela 5 Comparação entre os codificadores de vídeo HEVC e AV1 . . . 42 Tabela 6 Correspondência entre tamanhos de CU do HEVC e de blocos do

AV1 para Níveis de Profundidade (NP) . . . 45 Tabela 7 Correlação entre os níveis de profundidade escolhidos nos

codifica-dores de HEVC e AV1 . . . 46 Tabela 8 Definição do Mapa de Calor obtido dos arquivos descrevendo os

Níveis de Profundidade dos codificadores . . . 47 Tabela 9 Relação de Acertos e Erros ao aplicar a primeira proposta nos

da-dos correlacionais . . . 51 Tabela 10 Acertos e erros ao aplicar a proposta AL2 nos dados analisados . . 54 Tabela 11 Acertos e Erros ao aplicar a proposta AL3 . . . 55 Tabela 12 Acertos e Erros ao aplicar a proposta AL4 . . . 59 Tabela 13 Relações objetivas dos vídeos de resolução HD720 para solução AL1 61 Tabela 14 Relações objetivas dos vídeos de resolução HD1080 para solução

AL1 . . . 62 Tabela 15 Relações objetivas dos vídeos de resolução UHD4K para solução AL1 63 Tabela 16 Relações objetivas dos vídeos de resolução HD720 para solução AL2 64 Tabela 17 Relações objetivas dos vídeos de resolução HD1080 para solução

AL2 . . . 64 Tabela 18 Relações objetivas dos vídeos de resolução UHD4K para solução AL2 65 Tabela 19 Relações objetivas dos vídeos de resolução HD720 para solução AL3 66 Tabela 20 Relações objetivas dos vídeos de resolução HD1080 para solução

AL3 . . . 67 Tabela 21 Relações objetivas dos vídeos de resolução UHD4K para solução AL3 67 Tabela 22 Relações objetivas dos vídeos de resolução HD720 para solução AL4 69 Tabela 23 Relações objetivas dos vídeos de resolução HD1080 para solução

(9)

Tabela 26 Nova correlação entre os níveis de profundidade nos codificadores de HEVC e AV1 . . . 72 Tabela 27 Cópia da Tabela 7 . . . 72 Tabela 28 Novas relações objetivas dos vídeos de resolução HD1080 para

so-lução AL1 . . . 73 Tabela 29 Novas relações objetivas dos vídeos de resolução HD1080 para

so-lução AL2 . . . 74 Tabela 30 Novas relações objetivas dos vídeos de resolução HD1080 para

so-lução AL3 . . . 75 Tabela 31 Novas relações objetivas dos vídeos de resolução HD1080 para

so-lução AL4 . . . 76 Tabela 32 Comparação direta das quatro propostas apresentadas em seus

(10)

SUMÁRIO

1 INTRODUÇÃO . . . . 11

1.1 Histórico . . . . 11

1.2 Alliance for Open Media . . . . 13

1.3 Objetivos . . . . 15 2 CODIFICAÇÃO DE VÍDEO . . . . 16 2.1 Conceitos Gerais . . . . 16 2.2 AOMedia Video 1 . . . 22 2.2.1 Classificação de Quadros . . . 23 2.2.2 Estruturas de Particionamento . . . 24 2.2.3 Etapas de Codificação . . . 25 2.3 Transcodificação de Vídeo . . . . 27 3 METODOLOGIA . . . . 29

3.1 Definições das Condições de Teste do AV1 . . . . 29

3.2 Condições de Teste Utilizadas . . . 33

4 COMPARAÇÕES E CORRELAÇÕES ENTRE HEVC E AV1 . . . . 39

4.1 Comparação Prévia entre HEVC e AV1 . . . . 39

4.2 Trabalhos de Transcodificação Envolvendo AV1 . . . . 40

4.3 Particionamentos de Quadros no HEVC e no AV1 . . . . 41

4.3.1 Traduções para NP . . . 44

4.3.2 Análise Comparativa dos NPs . . . 45

5 SOLUÇÕES DE TRANSCODIFICAÇÕES PROPOSTAS . . . . 49

5.1 Organização Padrão das Soluções Propostas . . . . 49

5.2 Primeira Proposta de Transcodificação HEVC para AV1 – Aggressive-ness Level 1 (AL1) . . . . 50

5.3 Segunda Proposta de Transcodificação HEVC para AV1 – Aggressi-veness Level 2 (AL2) . . . . 53

5.4 Terceira Proposta de Transcodificação HEVC para AV1 – Aggressive-ness Level 3 (AL3) . . . . 54

5.5 Quarta Proposta de Transcodificação HEVC para AV1 – Aggressive-ness Level 4 (AL4) . . . . 57

6 RESULTADOS EXPERIMENTAIS . . . . 60

6.1 Resultados para a Solução AL1 . . . . 61

6.2 Resultados para a Solução AL2 . . . . 63

(11)

6.6 Pós-Defesa de Dissertação . . . 71

7 CONCLUSÕES . . . . 78

REFERÊNCIAS . . . . 81

APÊNDICE A PARÂMETROS DO CODIFICADOR AOM . . . . 86

APÊNDICE B RESULTADOS PARA O CODIFICADOR AOM ORIGINAL . . . 88

APÊNDICE C RESULTADOS PARA A SOLUÇÃO AL1 . . . . 93

APÊNDICE D RESULTADOS PARA A SOLUÇÃO AL2 . . . . 98

APÊNDICE E RESULTADOS PARA A SOLUÇÃO AL3 . . . 103

(12)

1

INTRODUÇÃO

Desde a utilização de meios digitais para divulgação e armazenamento de vídeos, mostrou-se necessário estudar técnicas que possibilitassem armazenar e enviar os dados para o usuário final com a maior qualidade possível. Em meados da década de 1980, principalmente com o advento do computador pessoal, foram criadas as pri-meiras técnicas padronizadas de redução do tamanho de dados de um vídeo bruto para que este coubesse em mídias de armazenamento da época. Tal redução pode-ria se dar com ou sem perda, dependendo dos algoritmos utilizados no processo de compressão. Surgiam então os primeiros codificadores de vídeo.

O advento de novas formas de mídia e de tecnologia para assistir vídeos, requisitou que padrões1mais adaptados às novas exigências tecnológicas fossem apresentados.

Alguns dos padrões foram desenvolvidos para usos exclusivos em ambientes fecha-dos, como videogames, cujas variações de cena são previsíveis. Já outros padrões ou formatos de vídeos foram desenvolvidos com escopo maior, tornando-se mais adapta-dos para grandes imprevisibilidades. Com isso, desenvolveu-se uma larga quantidade de codificadores de vídeo, desde o lançamento do primeiro codificador. Por isso, será abordada de forma breve o histórico de alguns codificadores de vídeos e de suas estruturas internas de funcionamento.

1.1

Histórico

No ano de 1984, o primeiro padrão comercial de codificação de vídeo foi oficial-mente lançado no mercado pela International Telecommunication Union (1988a), que futuramente criou uma subdivisão dedicada ao gerenciamento e desenvolvimento de codificadores de vídeo, a Visual Coding Expert Group (VCEG). A International Organi-zation for StandardiOrgani-zation (ISO) também possui seu braço desenvolvedor em padrões de codificação e vem cooperando junto com a VCEG no desenvolvimento de padrões

1Na área de codificação de vídeo, é definido como padrão aquele que possui um documento formal,

e aprovado pela comunidade, que descreve o bitstream de um arquivo, permitindo-se que ele seja lido e decodificado. E, consequentemente, define-se como deve ser a saída do codificador, já determinando as ferramentas que podem ser utilizadas

(13)

de vídeo através do Moving Picture Experts Group (MPEG). A VCEG e MPEG de-senvolvam alguns dos padrões mais utilizados ao longo dos últimos 30 anos. O mais atual é o h.265 (BROSS et al., 2013), também denominado High Efficient Video Co-ding (HEVC), lançado em 2013. É importante mencionar que o sucessor do HEVC, h.266 ou Versatile Video Coding (VVC), já se encontra em desenvolvimento, embora ainda não possua uma documentação finalizada (BROSS; CHEN; LIU, 2018).

Na Figura 1 estão relacionados alguns padrões de codificadores de vídeos. Pa-drões conectados com linhas de traço sólido representam codificadores que evoluíram diretamente de um padrão anterior. Os conectados por traços pontilhados represen-tam novos padrões que tiveram como base tecnologias anteriores. Os marcados em vermelho não chegaram a ser finalizados, por razões diversas, e os marcados em azul são aqueles que foram finalizados e disponibilizados livremente de royalties.

Figura 1 – Linha do tempo dos principais codificadores de vídeo

A figura mostra, na parte inferior, os codificadores da VCEG/MPEG. É possível ob-servar que o primeiro, h.120 (International Telecommunication Union, 1988a), deu ori-gem ao h.261 (International Telecommunication Union, 1988b) quatro anos mais tarde. No entanto, o padrão com maior contribuição da indústria e da academia, em números de publicações, foi o h.264/AVC (International Telecommunication Union, 2003), sendo até hoje em dia estudado. O Sistema Brasileiro de Televisão Digital utiliza técnicas de compressão provenientes deste padrão (RODRIGUES, 2008). Atualmente o estado da arte em codificação de vídeos é o h.265/HEVC, cujo foco é codificar vídeos de alta resolução, como HD720 (1280x720 pixels) e HD1080 (1920x1080 pixels), além de oferecer suporte para vídeos em ultra-resolução como o UHD8K (8192x4320 pixels).

(14)

desenvol-13

vidos por diferentes empresas além das famílias de codificadores da VCEG e MPEG. Por exemplo a Microsoft, tendo como base uma das primeiras versões do MPEG-4 e o seu DirectX, desenvolveu o Windows Media Video - 7 (WMV-7) (SRINIVASAN et al., 2004) e o WMV-9 (SRINIVASAN et al., 2004). A China também entrou no desen-volvimento de codificadores de vídeo, principalmente para não depender de padrões alheios. O padrão chinês Audio Video Standard (AVS1) (TAO; CAIXIA; XIN, 2016) é, em termos gerais, muito parecido com seu concorrente ocidental, o h.264/AVC, assim como o seu sucessor AVS2 (WANG; ZHAO, 2006) tem grandes similariedades com o HEVC.

Todavia, o principal foco dessa dissertação está numa família de codificadores que iniciou com o TrueMotion-S (Sega Retro, 2004), um codificador desenvolvido direta-mente em hardware pela Duck Corporation especialdireta-mente para ser utilizado nas tran-sições cinematográficas de videogames. Ao longo dos anos esse codificador evoluiu até a empresa trocar de nome para On2 Technology, que reformulou o seu padrão e criou a família VPx de codificadores, iniciando pelo VP3 em 2000. Apenas quando a Google adquiriu a empresa On2 Technology em 2008, juntamente com o lançamento do VP8, a academia deu atenção a essa família de codificadores e trabalhos, como BANKOSKI; WILKINS; XU (2011) e BANSAL et al. (2012), começaram a surgir. A partir do VP8, a academia e a indústria impulsionaram estudos provendo melhorias no codificador que, futuramente permitiram o desenvolvimento e lançamento do VP9, que veio a se tornar o principal codificador da Google e de suas aplicações de transmissão de vídeo.

1.2

Alliance for Open Media

Tendo em vista o cenário mundial de codificadores de vídeos, juntamente com a previsão de que o consumo de vídeos por streaming sofra um aumento projetado de até 82%, tanto em redes locais como em redes móveis (Cisco, 2018), utilizar os atuais codificadores estado-da-arte pode acabar se tornando deveras oneroso, para as em-presas que disponibilizam serviços de streaming de vídeo, o que acaba aumentando o custo para os usuários finais. Uma das maiores críticas da indústria quanto ao uso do HEVC se deve justamente ao seu alto custo de utilização comercial (VAUGHAN, 2015).

Entretanto, codificadores sem custos de royalties ou mesmo gratuitos, como o Da-ala, não são capazes de obter a mesma eficiência de compressão que os codifica-dores da VCEG. A título de exemplo, o Daala atinge um valor médio de BD-Rate2

de 40% em comparação ao h.264/AVC (SHARABAYKO; MARKOV, 2016) para uma

2Métrica de comparação de taxa de bits por qualidade entre dois codificadores ou duas versões do

(15)

mesma qualidade de vídeo, o que é um valor criticamente negativo, pois implica que o arquivo de vídeo comprimido com Daala é 40% maior que o arquivo comprimido com o h.264/AVC. Logo, o usuário terá que consumir uma maior largura de banda para assistir um vídeo com o mesmo nível de qualidade. Por outro lado, o HEVC é capaz de obter uma redução média de taxa de bits de 50% em relação ao h.264/AVC, o que o torna ainda mais eficiente que o Daala.

Desta forma, várias empresas temendo a elevação dos custos de seus serviços de-vido aos royalties cobrados pela utilização dos padrões mais eficientes, uniram suas forças para a criação de uma aliança que visa ao desenvolvimento de um padrão livre de royalties e de patentes proprietárias, de código aberto e que possa competir dire-tamente com a evolução do HEVC. Essa aliança foi nomeada Alliance for Open Media (AOMedia), e é encabeçada por empresas como Google, Amazon, Netflix, Facebook e outras oito empresas cofundadoras, tendo mais de 28 empresas associadas, até a presente data3. A AOMedia foi fundada em primeiro de setembro de 2015,

anunci-ando como principal objetivo o desenvolvimento de seu primeiro codificador de vídeo, o AOMedia Video 1 (CHEN et al., 2018), com intenção de publicá-lo em até um ano e meio.

O AV1 teve como base de desenvolvimento a fusão de outros três codificadores de código aberto e livre de royalties, os quais tiveram suas patentes liberadas para essa fusão; o Daala (XIPH, 2012), o Theora (GILES, 2004) e o VP10 (MUKHERJEE et al., 2015). As melhores técnicas presentes no Daala e no Theora foram selecionadas para compor o codificador VP10, que estava, na época da fundação do AOMedia, sendo desenvolvido pela Google. Desta forma, ao unir técnicas e ampliar suas capacidades, deu-se origem ao novo codificador AV1.

Alguns trabalhos recentemente realizaram testes comparando o AV1 com outros codificadores do mercado, como em LAYEK et al. (2017), AKYAZI; EBRAHIMI (2018) e GROIS; NGUYEN; MARPE (2016a). As análises mostraram que o AV1 é superior ao HEVC em algumas situações específicas em termos de eficiência de codificação. No entanto, o tempo necessário para codificar vídeos simples tem se mostrado de-sestimulante, chegando a durar mais de 50 vezes o tempo observado no codificador HEVC, para a mesma qualidade e resolução de vídeo (LAYEK et al., 2017). É impor-tante observar que os artigos utilizam uma versão antiga do software de referência do AV1, pois muito esforço se tem dispendido recentemente para tornar esse codificador comercialmente viável.

O lançamento da primeira versão do software de referência do AV1, o AOM (AO-MEDIA, 2015), foi postergado por várias vezes devido a inconsistências com o código, principalmente devido ao exagerado tempo de codificação. Um ano e meio após a previsão inicial, em 25 de junho de 2018 foi finalmente lançada a versão 1.00 do AOM.

(16)

15

Um problema que acomete algumas empresas de vídeo, é optar por algum padrão de codificação para armazenar os seus vídeos e, futuramente, descobrir um outro mais adequado para as suas necessidades. No entanto, por não possuir mais o vídeo original, não será possível codificar ele para esse novo formato. Todavia, é possível modificar o padrão de codificação de um vídeo ao utilizar um processo conhecido como transcodificação. Ao longo dos últimos anos, muito material foi codificado com HEVC e VP9 e agora, com a finalização do AV1, há o interesse de muitas empresas para migrar os seus conteúdos para esse novo padrão, principalmente pelas empresas associadas ao AOMedia.

A transcodificação de vídeos é um tópico relevante na indústria, já que envolve mais poder computacional que uma codificação simples, apesar de seu processo ser facilmente explicável. Além do processo de decodificação de um vídeo, é adicionada uma etapa de codificação após a decodificação, a fim de se obter o vídeo transcodifi-cado. Isso eleva a complexidade computacional do processo, principalmente quando esse codificador é baseado no AV1. Em resumo, a transcodificação demandando mais tempo e energia para processar um vídeo que uma codificação comum.

1.3

Objetivos

Dado o exposto até o presente momento, o objetivo primordial dessa dissertação é apresentar os trabalhos pelo autor em transcodificação de vídeos do padrão de codificação HEVC para o recente formato de codificação AV1, com foco em redução do tempo de processamento. Logo, serão propostas soluções para redução do tempo de codificação do AV1 através de heurísticas baseadas em análises estatísticas do particionamento da estrutura de blocos entre os codificadores alvo, HEVC e AV1. E, por consequência, serão apresentados um pouco da estrutura desse novo formato de codificação de vídeos.

Desta forma, evidenciam-se os objetivos específicos desta dissertação:

1. Apresentar superficialmente o formato de codificação AV1;

2. Apresentar Trabalhos atuais do AV1;

3. Desenvolver soluções que acelerem o processo de transcodificação de HEVC para AV1.

(17)

Este capítulo apresenta os conceitos básicos sobre vídeo digital e a operação de um codificador de vídeo genérico. Apresentando brevemente as ferramentas e técni-cas que compõem o codificador AV1 e, quando necessário para comparação, algumas ferramentas do codificador HEVC. As informações apresentadas são baseadas no ar-tigo (CHEN et al., 2018), que apresenta uma visão geral do AV1, no documento que descreve e especifica o bitstream do AV1 (RIVAZ; HAUGHTON, 2018) e, por fim, no software de referência do AV1, denominado AOM (AOMEDIA, 2015).

2.1

Conceitos Gerais

Todo vídeo é composto porquadros (imagens estáticas) e é a exibição em sequên-cia deles que cria uma cena em movimento. Para que a sensação de movimento possa ocorrer de forma natural para nós, os quadros devem ser executados em uma deter-minada frequência por segundo. Em geral, quanto mais rápido, maior a fluidez da cena. A essa frequência dá-se o nome deresolução temporal, a qual é medida em quadros por segundo, do inglês frames per second (fps).

Cada quadro é, na realidade, uma matriz cujo tamanho é denominadoresolução espacial. Essa resolução em formato de matriz é composta por um elemento pri-mordial que é o pixel, que representa a intensidade de cor em uma região capturada da cena original. Quanto maior o número de pixels em um quadro, menor será a re-presentatividade daquele pixel, tornando a cena muito mais nítida e fiel ao original capturado. As resoluções espaciais são definidas por documentos internacionais e convenções da indústria, e atualmente as mais conhecidas e utilizadas são divididas em duas famílias: High Definition (HD) e Ultra High Definition (UHD). Há duas resolu-ções principais para o HD: o HD720 (1280x720 pixels) e o HD1080 (1920x1080 pixels). Já para o UHD há três principais: UHD2K (2160x1440 pixels), UHD4K (3840x2160 ou 4096x2160 pixels) e UHD8K (7680x4320 pixels). Não apenas uma resolução maior permite que se possa representar a cena capturada com maior fidelidade, mas um mesmo objeto pode ganhar detalhes que poderiam ser perdidos após uma

(18)

codifica-17

ção, como veremos adiante.

O pixel é a menor parte de um quadro, no entanto, ele próprio é composto por informações independentes relacionadas às camadas de cor. Tradicionalmente são definidos três camadas de cor para representar uma cor capaz de ser processada pelo sistema visual humano. Existem diversos padrões de representação de cor, sendo o padrão RGB o mais utilizado (MYSZKOWSKI; MANTIUK; KRAWCZYK, 2008), pois nossos reprodutores de vídeo, seja uma tela de computador seja um projetor, normal-mente utilizam esse padrão. No entanto, para a codificação de vídeos em si, esse padrão não é utilizado, já que cada camada de cor é dependente da outra para possi-bilitar a composição real da cena, tornando os processos de codificação menos efici-entes.

Assim sendo, utiliza-se outro padrão de cor, o YCbCr (MYSZKOWSKI; MANTIUK; KRAWCZYK, 2008), por permitir que cada camada seja independente da outra, princi-palmente em dois aspectos principais: luminância e crominância. E com isso há uma vantagem em relação a uma característica do sistema visual humano: somos mais adaptados a perceber detalhes de intensidades da luz sobre algum objeto do que as cores que ele possui. Desta forma, separar a camada de luminância das camadas de crominâncias agilizam o processo de codificação, pois redundâncias podem ser facilmente encontradas utilizando-se apenas uma camada de cor. A fim de mostrar a diferença entre esses padrões, a Figura 2 nos apresenta no topo uma imagem sem separação das camadas de cor, e abaixo as camadas separadas. À esquerda temos a imagem em RGB e à direita em YCbCr.

Como o sistema visual humano é mais sensível a detalhes luminosos do que deta-lhes de cor, é comum realizarmos uma técnica de descarte das informações de cores de uma cena, principalmente quando se faz uso de padrões de cor que separam a camada de luz das cores, como o YCbCr. Essa técnica de descarte, denominada subamostragem de pixels, mantém todos os valores das camadas de luminância e a cada conjunto de n pixels apenas uma informação de crominância é mantida. A subamostragem mais comum é a 4:2:0, onde a cada quatro pixels há somente uma in-formação de crominância associada a eles. Com isso, o tamanho do vídeo é reduzido em 50%, e o sistema visual humano percebe pouca ou nenhuma diferença. O vídeo sem nenhum descarte de informação apresenta uma subamostragem denominada 4:4:4.

Durante o processo de codificação de um vídeo, normalmente os pixels são pro-cessados em conjunto de forma a permitir que técnicas de codificação possam ser melhores elaboradas e aplicadas. Esses conjuntos de pixels normalmente são de tamanho quadrado ou retangulares e são denominados blocos. Cada padrão de co-dificação de vídeo define quais são os tamanhos de blocos que farão parte do rol de suas ferramentas, mas tradicionalmente o menor bloco é de tamanho 4x4 pixels.

(19)

Figura 2 – Comparação entre as camadas de cor nos padrões RGB e YCbCr para uma mesma imagem

Quando observamos os quadros, podemos notar que entre eles, e mesmo den-tro de um mesmo quadro, há muita repetição de informação. Imaginemos uma cena de telejornal clássico, com um apresentador na frente de um fundo estático. Em um vídeo sem compressão, cada quadro terá as informações que reconstruirão o fundo desse telejornal, possuindo uma grande quantidade de pixels iguais que serão trans-mitidos. Essas pixels são informações repetidas que denominamos redundâncias, e os codificadores foram desenvolvidos para procurar e explorar essas redundâncias. Dentre as redundâncias existentes há três categorias principais: redundância tem-poral, referindo-se a repetição de informações localizados na mesma região do vídeo e ao longo de vários quadros,redundância espacial, que trata sobre a repetição de informações repetidas em um único quadro, compartilhando valores de pixels em uma região vizinha, e por fim redundância entrópica, que é a informação gerada após o processo de codificação.

A fim de lidar com essas redundâncias, os codificadores de vídeo buscam explo-rar essas redundâncias através de um conjunto de técnicas denominadaspredições. Aspredições intra-quadro são desenvolvidas para lidar com a redundância espacial, enquanto as redundâncias temporais são identificadas porpredições inter-quadros.

(20)

19

A função dessas predições é criar umbloco predito similar ao original, todavia, utili-zando menos bits de informação para representar essa região do quadro.

A predição intra-quadro utiliza técnicas que utilizam os pixels de blocos vizinhos a fim de criar o bloco predito, já a predição inter-quadros faz uso de regiões de qua-dros vizinhos para criar esse bloco. A grande vantagem dessa predição frente à intra-quadro é a sua capacidade de conseguir reconstruir áreas grandes do intra-quadro (através de blocos grandes) com poucas informações, mesmo sendo uma área com muita hete-rogeneidade de informações. É graças a essa predição que grandes taxas de bits são reduzidas nos codificadores modernos. Para tanto, a predição inter-quadros busca em algum quadro vizinho um bloco igual ou similar ao bloco atual, tirando proveito da alta redundância temporal que existe em um vídeo.

Através desse bloco predito, faz-se uma subtração com o bloco original, a fim de manter somente as diferenças entre eles. Essa subtração é chamada de bloco re-sidual, e é ele que é passado para as demais etapas de um codificador que visam reduzir ainda mais esses dados e informações auxiliares, que por fim gera um arquivo binário que obedece à estrutura descrita pelo padrão. Essa estrutura é denominada de bitstream e varia de padrão para padrão, mesmo que as técnicas suportadas sejam parecidas. Os órgãos ou grupos padronizadores em geral publicam (não obrigatoria-mente) dois elementos que definem um padrão de codificação de vídeo:

1. A descrição do bitstream, que descreve como deve ser a estrutura dos arqui-vos binários, permitindo que um decodificador possa reconstruir o vídeo. Desta forma, qualquer pessoa poderá desenvolver o seu codificador que segue o pa-drão em questão, desde que obedeça a estrutura do bitstream;

2. Um software de referência, que exemplifica como um vídeo pode ser codificado, de acordo com o padrão. A sua saída é um bitstream. O software de referência não necessariamente precisa ser seguido para que um bitstream compatível com o padrão seja gerado.

Outros conceitos fundamentais para serem compreendidos são as métricas utiliza-das para determinar a qualidade de um vídeo. Aplicar testes subjetivos, com pessoas avaliando o vídeo original contra o vídeo decodificado, geralmente resulta em dados mais confiáveis de diferença qualitativa entre os vídeos. No entanto, não é viável que se realize testes subjetivos para cada pequena mudança feita nos codificadores, de-vido ao elevado custo para preparação para a sua realização, seja financeiro, seja de tempo. Por essa razão, geralmente são utilizadas métricas objetivas com intuito de re-tornar algum valor próximo do que observaríamos em um teste subjetivo. Há diversas métricas objetivas existentes.

A mais tradicional das métricas objetivas é o Peak Signal-to-Noise Ratio (PSNR) (EGIAZARIAN et al., 2006), que utiliza uma escala logarítmica em decibéis para

(21)

mos-trar o nível de ruído (erro) entre dois vídeos, onde zero significa totalmente ruidoso. Na Equação (1) se é apresentado a fórmula aplicada para calular o PSNR, onde M AXI é

o maior valor possível de uma camada de cor (em vídeos de 8bits esse valor é 256), I(i, j) e K(i, j) são, respectivamente, pixels do quadro original e do quadro recons-truído. Para cada camada de cor se é aplicado o PSNR, desta forma, é possível obter a qualidade de cada camada de cor isoladamente. Todavia, considera-se apenas os valores de PSNR da camada de luminância (PSNR-Y) por não possuir subamostra-gem, ou da média de todas as camadas (PSNR-YUV).

P SN R = 10 ∗ log10 M AX2 I 1 m∗n Pi=0 m−1 Pj=0 n−1[I(i, j) − K(i, j)] 2 ! (1)

Existem outras métricas, como a Structural Similarity (SSIM) (WANG et al., 2004), que mostra o nível de similaridade entre os vídeos com base em características es-truturais da imagem, ou a desenvolvida pela Commission Internationale de l’Éclairage (CIE), a CIEDE2000 (CIE, 2001) que retorna a distância entre as cores de todas as camadas e suas variações luminosas, ou ainda a Video Multimethod Assessment Fu-sion (VMAF) desenvolvida pela Netflix (AARON et al., 2015), que utiliza o aprendizado de máquina para simular o sistema visual humano usando valores logarítmicos e tri-gonométricos.

A eficiência de codificação precisa ser medida não apenas em termos de quali-dade, mas também em termos do nível de compressão (ou taxa de bits) atingido. Para isso, BJONTEGAARD (2001) desenvolveu uma métrica que faz uso de duas variáveis: taxa de bits média por segundo de vídeo (bitrate) e nível de qualidade logarítmica, normalmente o PSNR, mas segundo (DAEDE; NORKIN; BRAILOVSKIY, 2018) a mé-trica VMAF também pode ser utilizada. Essa mémé-trica, denominada Bjontegaard Delta Data-Rate (BD-Rate), realiza uma operação de diferença aproximada entre as áreas das duas curvas interpoladas em um gráfico cartesiano dividido pela área aproximada da segunda curva, vide Equação (2). Nesa equação, RA(D) e RB(D) representam

as áreas aproximadas das duas curvas, conforme são apresentadas em TAN et al. (2016), cujo valor se é obtido através da Equação (3). Os valores ˆrAe ˆrArepresentam

valores interpolados dos pontos presentes no gráfico, e DH e DH são limites

mensu-ráveis e comuns entre as duas curvas. O leitor pode se aprofundar mais sobre esse cálculo em TAN et al. (2016).

∆RD = RB(D) − RA(D) RA(D) (2) ∆ROverall ≈ 10 1 DH −DL RDH DL [ˆrB(D)−ˆrA(D)]dD − 1 (3)

(22)

21

em BD-PSNR, variação da qualidade da imagem dado uma mesma taxa de bits. Es-sas curvaturas são obtidas com um gráfico de dispersão, ao sobreporem-se valores de taxa de bits (do inglês bitrate, tamanho médio do arquivo por segundo de vídeo) no eixo X com a qualidade logarítmica obtida (normalmente PSNR-Y) no eixo Y. São necessários ao menos três pontos no gráfico para permitir uma interpolação, e, quanto mais pontos, maior é a precisão dessa curva. Todavia, os trabalhos acadêmicos nor-malmente utilizam quatro pontos desse gráfico para gerar uma curvatura e calcular o BD-Rate.

A Figura 3 exemplifica esse gráfico de BD-PSNR, mostrando duas curvas geradas de dois codificadores quaisquer. É possível observar através desse gráfico a existên-cia de uma correlação entre a taxa de bits com a qualidade visual. Normalmente, há uma tendência de aumento da qualidade da imagem conforme se aumenta a taxa de bits.

Figura 3 – Exemplo de duas curvas taxa de bits x PSNR, o espaço destacado em verde é a diferença calculada pelo BD-Rate

A correta forma de interpretar o valor resultante do BD-Rate, é ter em mente que, dados dois vídeos com a mesma qualidade visual, o quanto (em porcentagem) a taxa de bits do segundo vídeo é menor ou maior que a do primeiro vídeo. Em caso de BD-Rate positivo, os resultados obtidos para a segunda curva (Curva-B) são piores que o da primeira curva (Curva-A), como é o caso ilustrado na figura. Caso o BD-Rate seja negativo, a segunda curva apresenta melhores resultados. Vale salientar que cada ponto em uma mesma curva é gerado com o mesmo software, variando-se apenas o

(23)

parâmetro de ajuste de qualidade ou de taxa de bits.

2.2

AOMedia Video 1

O AV1, assim como os codificadores estado-da-arte do VCEG, segue o fluxo de execução padrão dos codificares de vídeo híbridos. Normalmente, estes são dividi-dos nas seguintes etapas: predição intra, predição inter, transformada, quantização e entropia, como mostra a Figura 4. É possível observar um fluxo inverso após a quan-tização, deve-se isso à predição inter. A predição intra-quadros utiliza informações de quadros já processados para como áreas de referência para a sua técnica preditiva. Por essa razão, é preciso alimentar o codificador com quadros de referência iguais ao que serão originados durante a decodificação, já que os quadros processados nor-malmente divergem dos quadros originais do vídeo. Também é notório na Figura 4 a utilização de dois tipos de linhas, as sólidas representam os dados do vídeo em si, seja os dados originais ou os residuais, já as linhas tracejadas representam as informações laterais geradas durante as etapas de codificação.

Figura 4 – Fluxograma do codificador AV1

Como é possível notar na figura, há várias etapas e todas elas são interconectadas. Por isso, se faz necessário subdividir esta seção em partes menores, a fim de facilitar a melhor compreensão do fluxo. Primeiramente, a Figura 4 apresenta no início do fluxo a divisão do quadro. No entanto, é preciso compreender que existem diferentes

(24)

23

tipos de quadros. Além disso, há um processamento realizado pelo codificador AOM que não influencia diretamente na geração do bitstream e nem é necessário para a execução do decodificador de vídeo AV1, a qual é chamada de análise estatística. Como a análise estatística não é relevante para a compreensão deste trabalho, não será apresentada nesta dissertação.

2.2.1 Classificação de Quadros

O vídeo é composto por uma sequência de quadros que são divididos em partes menores para acelerar o processo de predição. Há duas predições básicas: intra (usa informações autocontidas) ou inter (usa referências a outros quadros). O processo de predição tenta reconstruir o bloco original através de técnicas próprias. Da predição resulta o bloco residual, referente à diferença entre o bloco original e o bloco predito. A técnica preditiva a ser aplicada varia conforme a classificação dos quadros, e nos padrões há uma série de classificações internas próprias. No HEVC há três tipos de quadros: Quadro I, que só permite técnicas de predição intra, Quadro P, que permite técnicas de predição intra e inter com uma única referência, e Quadro B, similar ao Quadro P com possibilidades de predições inter com duas referências (bipredição).

Já no AV1 o quadro de predições intra é denominado KeyFrame. A sua existência é fundamental, pois ao menos um único quadro de um vídeo deve ser processado sem a utilização de referências temporalmente dependentes. No entanto, um vídeo processado inteiramente com KeyFrames vai resultar em um vídeo com alta taxa de bits por segundo. Por isso utilizamos os quadros do tipo inter. No AV1 é obriga-ção do KeyFrame a determinaobriga-ção de subdivisões do vídeo em conjunto de quadros. Essas subdivisões permitem que conjuntos de um mesmo vídeo, sob diferentes ní-veis de qualidade, possam ser enviados ao usuário em diferentes momentos de uma transmissão de vídeo. Essa técnica serve para permitir uma experiência interrupta na visualização de um vídeo.

No entanto, há momentos em que enviar para um usuário um KeyFrame pode prejudicar a experiência dele, devido ao tamanho desse quadro. Para aliviar esse processo, o AV1 criou o S-Frame, um quadro do tipo inter que usa apenas referências futuras para compor as suas predições. Também foi criado para o AV1 o GoldenFrame, um quadro especial e invisível, que armazena informações temporalmente redundan-tes ao longo de um sub-grupo de quadros no qual ele faça parte. Esse quadro é utilizado como referência fixa para os quadros inter. Além disso, cada quadro do tipo inter pode utilizar no total oito referências: KeyFrame ou S-Frame, GoldenFrame, até três quadros no passado e até três quadros no futuro. Por padrão, os quadros inter do AV1 funcionam como o Quadro-B do HEVC, isso significa que as predições po-dem utilizar tanto quadros no passado como no futuro. Inclusive podendo fazer uma composição de ambos, para permitir obter um melhor resultado.

(25)

2.2.2 Estruturas de Particionamento

Predizer um quadro inteiro não é eficiente, ainda mais em altas resoluções. Desta forma, divide-se o quadro em partes menores a fim de tornar mais eficiente as técnicas de predição. Tanto o AV1 como o HEVC possuem uma unidade básica de divisão do quadro. No HEVC a unidade básica é a Coding Tree Unit (CTU) que possui a capacidade de representar uma área de 64x64 pixels. No AV1, é o SuperBlock (SB), capaz de representar uma região de 128x128 pixels. Em ambos os casos, é possível subdividir as unidades básicas em partes menores, a fim de possibilitar uma maior eficiência na predição aplicada.

Dividir o quadro em unidades de processamento (seja CTU seja SB) auxilia na divisão da tarefa de codificação em vários núcleos de processamento (paralelismo). Sobre a divisão interna de um SB, ele pode ser subdividido em partes menores, recur-sivamente quadráticas, até optar por algum particionamento que pode assumir alguns formatos particulares de blocos. A organização desses blocos é denominada de es-trutura de blocos e é composta por blocos simétricos ou assimétricos.

Diferentemente do que ocorre no HEVC, onde a CTU é subdividida em partes menores chamadas de Coding Units (CU), que possuem tamanhos quadráticos, e depois em Partition Units (PU), que determinam o tamanho e o tipo de bloco a ser utilizado, no AV1 essa divisão clara não existe. Durante a codificação, uma árvore é criada tendo como raiz o SB e este é dividido em quatro ramos recursivamente até ser definido um particionamento e, consequentemente, uma microestrutura de blocos que compõem a estrutura total daquele SB. Mais adiante nessa dissertação abordaremos um pouco mais sobre essas estruturas.

Em relação aos blocos do AV1, basicamente eles possuem três formatos distin-tos: quadráticos (1:1 pixels), retangulares de um-meio (1:2 pixels) e de um-quarto (1:4 pixels). Partindo de um bloco quadrático de igual tamanho ao SB, 128x128 pixels, o bloco poderá ser dividido recursivamente de forma quadrada em partes menores até o tamanho mínimo de 4x4 pixels. O codificador AV1, antes de decidir pela divisão qua-drática do bloco (internamente, o particionamento é chamado de SPLIT) ele realiza uma série de análises de custo para viabilizar algum particionamento mais adequado ou dividir quadraticamente de uma vez. Há outros particionamentos, como o None, que é um formato onde o codificador decide não dividir o bloco e manter o tamanho quadrático atual. O codificador também pode optar por um particionamento com dois blocos 1:2 (Vert ou Horz). Há ainda a divisão do bloco em três partes (VertA, VertB, HorzA e HorzB), onde há um bloco retangular 1:2 maior e outros dois blocos quadráti-cos de tamanho menor. Por exemplo, em uma região de 32x32 pixels onde é aplicado o modo VertA, conterá um bloco 32x16 e dois blocos 16x16 ao lado deste. Ainda há uma última possibilidade, quando o codificador decide utilizar um particionamento re-tangular de quatro partes (Vert4 ou Horz4), utilizando os blocos 1:4, que são especiais

(26)

25

Tabela 1 – Relação dos tamanhos de blocos existentes no AV1 Presentes na versão 1.00 Quadráticos 128x128, 64x64, 32x32, 16x16, 8x8, 4x4 Retangulares 1:2 128x64, 64x128, 64x32, 32x64, 32x16, 16x32, 16x8, 8x16, 8x4, 4x8 Retangulares 1:4 64x16, 16x64, 32x8, 8x32, 16x4, 4x16 deste padrão.

Na Figura 5 há uma representação de todas as partições e seus formatos, seguida da Tabela 1 que mostra todos os tamanhos de blocos existentes na atual versão do AV1.

Figura 5 – Apresentação de todas as partições possíveis no AV1

2.2.3 Etapas de Codificação

Como visto na Figura 4 há algumas etapas que são realizadas no processo de codificação de um vídeo. A primeira delas é a predição de quadros, que pode ser feita de duas formas: intra-quadros ou inter-quadros. A predição intra-quadro utiliza o bloco referência para identificar uma composição padrão dos pixels de forma a obter um bloco residual adequado. Essa identificação pode ser através de predições direcionais, onde os pixels de blocos vizinhos são utilizados para criar uma trajetória, ou através de predições não-direcionais, onde os pixels dos blocos vizinhos são combinados de diversas formas. Pode-se ver mais sobre a predição intra em CHEN et al. (2018).

(27)

aquele bloco candidato que seja mais parecida com o bloco original. Para tanto, esse tipo de predição faz uso de vetores de movimento para identificar a localização do bloco utilizado como referência. No AOM existem dois vetores de movimento auxiliares que informam o deslocamento do quadro atual em relação ao anterior e o efeito de zoom. Uma diferença que há no AV1 em relação ao HEVC é o nível de precisão das predições inter-fracionárias, que é de um-oitavo frente ao um-quarto do HEVC.

Decidido qual a melhor predição a ser aplicada, os dados residuais devem sofrer uma alteração na forma como eles são armazenados. E é a transformada a etapa de codificação de vídeo que modifica a representatividade dos dados de um domínio es-pacial, onde cada pixel representa a intensidade de luz/cor de uma posição cartesiana específica, para um domínio de frequências, onde cada valor nessa matriz representa a intensidade de uma determinada onda de luz. Existem diversos algoritmos que reali-zam essa transformação de dados. O AV1 utiliza quatro algoritmos, e os combina para serem aplicados verticalmente e horizontalmente aos dados residuais, totalizando 16 combinações de transformadas possíveis. Os algoritmos de transformadas são: DCT, ADST, flipADST e IDTX. Se é abordado mais sobre as transformadas em CHEN et al. (2018).

Após a etapa de transformadas, a quantização é aplicada de forma a remover frequências de dados nos blocos residuais que podem ser consideradas pouco per-ceptíveis ao sistema visual humano, através de uma filtragem do tipo passa-baixa. O nível de quantização é definido no momento da codificação do vídeo, e varia entre os codificadores. O HEVC possui o Quantization Parameter (QP) que varia de zero (menos intenso) à 51 (mais intenso). O AV1 possui o Constant Quality (CQ) que varia de zero (sem perda de qualidade) até 63 (máxima perda de qualidade).

Depois de todas as etapas de codificação, a entropia vêm para fazer duas coisas: juntar todos os blocos residuais (já transformados e quantizados) e os dados laterais de predição (intra, inter, seus modos e vetores), de transformada e de quantização num conjunto sequencial e lógico conforme é descrito no bitstream do formato de ví-deo, seja ele AV1, HEVC ou outro qualquer. Outra função da entropia é aplicar um processo de compressão dos dados residuais e laterais, a fim de fazer reaproveita-mento das redundâncias entrópicas, isso é, das repetições de dados gerados pelos processos de codificação.

A última das etapas de codificação é a de filtros. Durante o processo de codifi-cação, erros são gerados nos dados. A fim de suavizar esses erros, são aplicados diversas técnicas de filtragem. Alguns dos filtros do AV1 são herdados do VP9 (GOO-GLE, 2012), e há alguns novos como pode ser visto mais em MIDTSKOGEN; VALIN (2018), MUKHERJEE et al. (2017) e CHEN et al. (2018). E com isso, finalizamos as etapas de um codificador híbrido.

(28)

27

2.3

Transcodificação de Vídeo

Além de utilizar os codificadores para comprimir arquivos de vídeo recém captura-dos ou em processamento após edição cinematográfica, também é comum a recodifi-cação de vídeo com o objetivo de alterar alguns parâmetros do vídeo ou mesmo mo-dificar o padrão utilizado para a sua codificação. A essas recodificações/conversões chamamos de transcodificação de vídeo.

O funcionamento básico da transcodificação é simples e segue o fluxo apresentado na Figura 6. Um bitstream de vídeo codificado com algum padrão A é entregue ao decodificador daquele padrão, gerando um vídeo decodificado. Este arquivo é então processado pelo codificador B, gerando um novo bitstream. O codificador B pode ou não seguir o mesmo padrão que o decodificador A. Esse método também é conhecido como transcodificador trivial ou tandem1, pois funciona de forma sequencial.

Figura 6 – Fluxo de execução de um transcodificador (homogêneo ou heterogêneo) em tandem

Há duas categorias de transcodificação: homogênea e heterogênea. Ambas são essencialmente iguais, diferenciando-se apenas se o padrão B, do fluxo apresentado, é igual ou não ao padrão A. Se forem iguais, a transcodificação é homogênea; caso contrário, a transcodificação é heterogênea. A transcodificação homogênea modifica parâmetros internos do bitstream, normalmente visando a redução do tamanho final do arquivo. Ela também é conhecida como transrating, quando o foco da transcodificação é alterar a taxa de bits do vídeo. Já a transcodificação heterogênea modifica o próprio padrão codificador, alterando completamente o formato do bitstream.

Existem algumas razões para a utilização de um transcodificador, desde permitir que o tamanho de um arquivo ocupe menos espaço até que o vídeo seja adequado a uma transmissão online em tempo real. Plataformas onlines, como o Youtube, fazem uso frequente do transrating para permitir que seus vídeos possam ser assistidos para as mais diversas qualidades de internet existentes (Ombura Jr., 2019), afinal, não é possível manter em um servidor diferentes qualidades de imagem para um mesmo vídeo. Soluções de transrating em tempo real é muito desejado para essas situações. A transcodificação heterogênea é principalmente utilizada para permitir a atualização de mídias para novas tecnologias. Não se restringindo apenas a isso, como bem

1Segundo o dicionário Michaelis,tandem é um substantivo masculino que identifica um conjunto de

(29)

exemplificado por VIDEOCOIN (2018), há a necessidade de se realizar uma conver-são de formatos de codificação de vídeo durante uma transmisconver-são ao vivo. A origem de gravação utiliza um sistema próprio de codificação que não é compatível com a plataforma utilizada pelo usuário receptor. Dessa forma, a transcodificação heterogê-nea é crucial para permitir que mais pessoas tenham acesso ao conteúdo gerado. E, principalmente, que esse conteúdo possa ser compartilhado em tempo real.

No entanto, a transcodifição trivial não é eficiente, principalmente quando o foco é o tempo-real, pois todo o processo de decodificação e re-codificação é feito sem qualquer interferência um do outro. Considerando que o AOM é um software muito lento, realizar a transcodificação desta forma torna o processo muito custoso em ter-mos de recursos computacionais, tempo de codificação e, por conseguinte, custos energéticos.

Portanto, esta dissertação propõe apresentar estratégias eficientes para transco-dificação de vídeos heterogêneos do padrão HEVC para o AV1, gerando uma con-tribuição para a comunidade científica na área de codificação de vídeo. O HEVC foi escolhido por ser o estado-da-arte em codificadores de vídeo. Logo, é o padrão que apresenta a melhor eficiência de compressão em relação à qualidade de vídeo final. E o AV1 foi o escolhido por ser o mais recente formato de codificação de vídeo no mer-cado, estando como alvo de aplicação por diversas empresas de tecnologia. Como o HEVC é oneroso para empresas de streaming de vídeo, e o AV1 é livre de royalties, essa transcodificação se torna relevante para o mercado. Além disso, é importante apresentar soluções que obtenham um tempo de transcodificação mais ágil que a codificação do AV1 por si só, pelas razões apresentadas nos parágrafos anteriores.

Assim exposto, as estratégias propostas nesta dissertação buscam acelerar o pro-cesso de execução do codificador AV1 através de informações obtidas na decodifica-ção do HEVC. Com isso, espera-se tornar o processo de transcodificadecodifica-ção mais rápido, mesmo que não se obtenha o resultado ótimo de compressão que normalmente se obteria com a transcodificação original. Em outras palavras, essa dissertação propõe soluções de transcodificações heterogêneas inteligentes, através da troca de infor-mação entre o decodificador HEVC e o codificador AV1, visando acelerar o processo completo. Para permitir que essas soluções possam ser desenvolvidas, é necessário identificar informações passíveis de serem compartilhadas entre essas duas etapas da transcodificação.

(30)

3

METODOLOGIA

Neste capítulo serão apresentadas as condições de testes que nortearão os traba-lhos e experimentos ao longo desta dissertação. Tais condições permitem a confiabili-dade dos resultados, a revalidação deles por terceiros e a comparação com eventuais trabalhos relacionados futuros.

3.1

Definições das Condições de Teste do AV1

É comum entre os codificadores modernos, com ampla investigação e desenvol-vimento por parte da comunidade acadêmica, que exista um documento auxiliando e padronizando a execução de experimentos. Desta forma permite-se que trabalhos diferentes possam ser comparados de forma igualitária. No HEVC essa padronização é definida pelo documento de BOSSEN et al. (2013). Já no AV1, esse documento fica a cargo do órgão Internet Video Codec (NETVC), que lança periodicamente docu-mentos abordando recomendações e condições de testes ideais a serem executados entre os diferentes codificadores de código aberto, a fim de possibilitar uma igualdade comparativa entre eles. Cada um desses documentos possui uma validade estipulada, na qual espera-se que haja um novo documento para substituir o atual até o fim da validade deste. No momento da finalização deste texto, o documento de padronização mais recente é o NETVC-Testing-07 (DAEDE; NORKIN; BRAILOVSKIY, 2018).

Dentre algumas recomendações ali presentes, encontram-se metodologias para realizar testes subjetivos, como comparar vídeos e a melhor forma de calcular as va-riáveis estatísticas, como o p-value, e de realizar a pontuação de opiniões subjetivas. Quanto aos resultados objetivos, o documento cita as seis métricas válidas a serem utilizadas e como interpretá-las. As métricas objetivas são: PSNR, PSNR-HVS-M, SSIM, Multi-Scale SSIM, CIEDE2000 e VMAF.

Outras recomendações feitas são sobre as formas de realizar as comparações entre softwares diferentes ou versões diferentes do codificador AV1. o documento recomenda que os resultados sejam apresentados através de gráficos de dispersão com duas variáveis (scatter ), onde apresenta-se a correlação entre a taxa de bits no

(31)

eixo X (com valores linearmente espaçados) e a métrica de qualidade objetiva no eixo Y (com valores em decibéis). Apesar dos gráficos mostrarem com clareza a diferença entre softwares ou versões de codificadores, se faz necessária a utilização de um valor que indique claramente essa diferença. Para isso, se faz uso da métrica Bjontegaard Rate Difference (BD-Rate).

Para possibilitar o cálculo de BD-Rate, se faz necessário o uso de alguns pontos de medição para permitir traçar uma curva por interpolação. Esses pontos são definidos pela modificação do experimento, seja ele qual for, de um único parâmetro ou de vários, que controle a quantização no codificador. No AV1, como já mencionado, esse valor é o CQ. O documento recomenda o uso de no mínimo quatro CQs (20, 32, 43 e 55 para o AV1), mas afirma que um experimento mais longo com dez pontos de quantização (20, 24, 28, 32, 36, 39, 43, 47, 51 e 55) é o mais adequado para se obter um BD-Rate apropriado.

O documento (DAEDE; NORKIN; BRAILOVSKIY, 2018) faz recomendações de ví-deos1 a serem utilizados para realização dos experimentos, divididos em algumas

categorias. Abaixo estão apresentadas as categorias e uma descrição de cada uma, seguidas das sequências de vídeos recomendadas, separadas por resolução.

1. Vídeos utilizados para testes básicos de regressão (regression-1). Testes de regressão são modalidades de Testes de Softwares, empregadas no desenvolvi-mento de programas para garantir que todo o software esteja funcionando como o esperado, mesmo após modificações realizadas neste software:

(a) Resolução: 4096x2160, profundidade: 10 bits, subamostragem: 4:2:0, nú-mero de quadros a utilizar: 15, vídeo: Narrarator ;

(b) Resolução: 1920x1080, profundidade: 8 bits, subamostragem: 4:2:0, nú-mero de quadros a utilizar: 60, vídeo: CSGO;

(c) Resolução: 1280x720, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 60, vídeo: FourPeople;

(d) Resolução: 640x360, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 60, vídeo: kirlandvga.

2. Vídeos utilizados para testes completos mais abrangentes (objective-2-slow). São sequências com alta variabilidade de características usadas para testes re-ais com longa duração, utilizados em conjunto com os 10 pontos de CQ:

(a) Resolução: 4096x2160, profundidade: 10 bits, subamostragem: 4:2:0, número de quadros a utilizar: 60, vídeo: Netflix_BarScene, Net-flix_BoxingPractice, Netflix_Dancers, Netflix_Narrator, Netflix_RitualDance, Netflix_ToddlerFountain, Netflix_WindAndNature, street_hdr_amazon;

(32)

31

(b) Resolução: 1920x1080, profundidade: 8 bits, subamostragem: 4:4:4, nú-mero de quadros a utilizar: 60, vídeo: CSGO, DOTA2, MINECRAFT, STAR-CRAFT, EuroTruckSimulator2, Hearthstone, wikipedia, pvq_slideshow ; (c) Resolução: 1920x1080, profundidade: 8 bits, subamostragem: 4:2:0,

nú-mero de quadros a utilizar: 60, vídeo: aspen, crowd_run, ducks_take_off, guitar_hdr_amazon, life, Netflix_Aerial, Netflix_Boat, Netflix_Crosswalk, Netflix_FoodMarket, Netflix_PierSeaside, Netflix_SquareAndTimelapse, Netflix_TunnelFlag, old_town_cross, pan_hdr_amazon, park_joy, pedes-trian_area, rush_field_cuts, rush_hour, seaplane_hdr_amazon, station2, touchdown_pass;

(d) Resolução: 1280x720, profundidade: 8 bits, subamostragem: 4:2:0, nú-mero de quadros a utilizar: 120, vídeo: boat_hdr_amazon, dark, Four-People, gipsrestat, Johnny, KristenAndSara, Netflix_DinnerScene, Net-flix_DrivingPOV, Netflix_FoodMarket2, Netflix_RollerCoaster, Netflix_Tango, rain_hdr_amazon, vidyo1, vidyo3, vidyo4;

(e) Resolução: 640x360, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 120, vídeo: blue_sky, controlled_burn, desktop2, kirland, mmstationary, niklas, rain2_hdr_amazon, red_kayak, riverbed, shi-elds2, snow_mnt, speed_bag, stockholm, tacomanarrows, thaloundeskmtg, water_hdr_amazon;

(f) Resolução: 426x240, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 120, vídeo: bqfree, bqhighway, bqzoom, chairlift, dirt-bike, mozzoom.

3. Vídeos utilizados para testes rápidos e abrangentes [objective-2-fast]. Essas sequências originam-se das sequências anteriores, de forma resumida. São uti-lizados para testes mais rápidos e espera-se que sejam reauti-lizados em conjunto com 4 CQs:

(a) Resolução: 1920x1080, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 60, vídeo: aspen, ducks_take_off, life, Netflix_Aerial, Netflix_Boat, Netflix_FoodMarket, Netflix_PierSeaside, Netflix_SquareAndTimelapse, Netflix_TunnelFlag, rush_hour, sea-plane_hdr_amazon, touchdown_pass;

(b) Resolução: 1290x1080, profundidade: 8 bits, subamostragem: 4:2:0, nú-mero de quadros a utilizar: 60, vídeo: DOTA2, MINECRAFT, STARCRAFT, wikipedia;

(c) Resolução: 1280x720, profundidade: 8 bits, subamostragem: 4:2:0, nú-mero de quadros a utilizar: 120, vídeo: boat_hdr_amazon, dark, gipsrestat,

(33)

KristenAndSara, Netflix_DrivingPOV, Netflix_RollerCoaster, vidyo1, vidyo4; (d) Resolução: 640x360, profundidade: 8 bits, subamostragem: 4:2:0, número

de quadros a utilizar: 120, vídeo: blue_sky, controlled_burn, kirland, ni-klas, rain2_hdr_amazon, red_kayak, riverbed, shields2, speed_bag, tha-loundeskmtg;

(e) Resolução: 426x240, profundidade: 8 bits, subamostragem: 4:2:0, número de quadros a utilizar: 120, vídeo: bqfree, bqzoom, dirtbike.

Além desses, o documento cita outros vídeos que eram utilizados em testes an-tigos, mas foram desaconselhados devido à variabilidade de configurações, o que tornava a execução dos experimentos mais trabalhosa.

Além dos vídeos, ainda é preciso definir os parâmetros gerais de configuração do AOM, visando permitir que ambientes de teste diferente possam estar corretamente adequados às capacidades do codificador. Por isso, foram criados quatro ambientes principais de teste, os parâmetros de cada um desses ambientes estão apresentados por extenso no Apêndice A:

1. High Latency CQP: Serve para avaliar modificações no codificador ou comparar codificadores semelhantes. A sua aplicabilidade é focada para processar vídeos sob-demanda, transmissões ao vivo em alta qualidade visual e codificação de vídeos para armazenamento fixo. As suas codificações contam com o diferencial de permitir um atraso intrínseco nos quadros. Deve-se utilizar o parâmetro de quantização CQ.

2. Low Latency CQP: O objetivo de codificações com essa configuração é permitir a transmissão de vídeos ao vivo com baixa qualidade visual, videoconferências e acesso remoto. Diferente do que ocorre com o High Latency CQP, esta confi-guração não permite nenhum atraso intrínseco.

3. Unconstrained High Latency : Quando o codificador precisa ser executado com sua melhor performance, como em situações de armazenamento de arquivos sem intenção de realizar comparações, onde o codificador poderá obter a melhor taxa de bits por qualidade. Pode ser utilizado o controle de qualidade CQ ou controle de taxa de bits (VBR) acompanhado, opcionalmente, de uma taxa de bits alvo.

4. Unconstrained Low Latency : Quando o codificador precisa executar da melhor maneira possível, como no caso anterior, mas com algumas limitações. Não é permitido o retardo ou buffering de quadros.

Além dessas quatro configurações específicas, há alguns parâmetros gerais que são compartilhados entre eles, listados abaixo:

(34)

33

1. Parâmetros Gerais para o AV1: na atual versão do software-referência do AV1 os seguintes parâmetros já estão configurados nativamente, no entanto, é im-portante garantir que eles sejam mantidos sempre iguais caso a configuração padrão do AOM mude. De forma geral, deve-se evitar o uso de multiprocessa-mento, já que o paralelismo dificulta a comparação entre trabalhos relacionados.

2. Parâmetros informativos de saída: definem como os resultados de avaliação objetiva são obtidos. Um desses parâmetros auxilia no acompanhamento dos resultados ao longo da execução do software, quadro-a-quadro, enquanto outro apenas apresenta os dados de métricas objetivas após o fim da execução do processo de codificação.

3. Parâmetros de entrada e saída: informam o nome do arquivo do vídeo codificado e o nome do arquivo de vídeo não codificado, e seus parâmetros descritivos, caso não estiverem inclusos no vídeo. Tais como, altura, largura, subamostra-gem e quadros-por-segundo.

3.2

Condições de Teste Utilizadas

A partir das condições de teste recomendadas no documento (DAEDE; NORKIN; BRAILOVSKIY, 2018) para o software AOM, foram definidas as configurações que guiam o restante deste trabalho. Em relação aos vídeos utilizados, há três resolu-ções mais relevantes na atualidade, 4096x2160 (UHD4K), 1920x1080 (HD1080) e 1280x720 (HD720). Essas resoluções são importantes, pois o foco principal das atu-ais transmissões de vídeo é para altas resoluções, não fazendo sentido obter resulta-dos para resoluções pequenas, como a 426x240. Para os vídeos em UHD4K foram utilizados os vídeos recomendados pelo conjunto objective-2-slow, por ser o único a possuir um conjunto de sequências nesta resolução, totalizando oito vídeos. E foram escolhidos mais 16 vídeos para resolução HD, tanto HD720 como HD1080, e foram selecionados a partir do conjunto de vídeos recomendados em objective-2-fast. As oito sequências de vídeos recomendados para HD720 foram selecionados, no entanto, a resolução HD1080 possui 12 sequências recomendadas. Por isso utilizou-se o soft-ware analítico SI-TI (ITU-R P.910, 1992), que calcula e relaciona os vídeos em dois ei-xos de informação: variabilidade de dados em um mesmo quadro (Spatial Information – SI) e variabilidade de dados ao longo de todos os quadros (Temporal Information – TI). A análise resultou na Figura 7 onde foram escolhidos os vídeos com valores mais extremos, garantindo a utilização de vídeos espacialmente e temporalmente re-presentativos, sendo selecionados aqueles marcados em vermelho. As Tabelas 2, 3 e 4 mostram todos os vídeos selecionados, seus valores de SI-TI, assim como uma breve descrição deles.

(35)

Figura 7 – Relação SI-TI das sequências de vídeos HD1080 do conjunto objective-2-fast

Seguindo as recomendações apresentadas na seção anterior, será utilizado o AOM com os parâmetros em Low Latency CQP. A escolha do Low Latency CQP se dá, pois, é a configuração ideal para video conferências, isso é, transmissões de vídeo ao vivo. E considerando um ambiente onde seja necessário a transcodificação próximo do tempo real, esta configuração acaba por oferecer o melhor caso de teste. Todavia, será feito uma única modificação na configuração padrão do Low Latency CQP. As soluções propostas nesta dissertação envolvem o uso de informações oriundas do decodificador HEVC, logo, a fim de equiparar os tipos de quadros entre ambos os codificadores e manter a compatibilidade entre eles, optou-se por limitar o AV1 para apenas um único KeyFrame.

Abaixo apresenta-se a linha de comando que será aplicada no codificador AOM. Durante o processo de transcodificação, serão utilizados vídeos oriundos da deco-dificação do HEVC, logo, este arquivo não possui informações de configuração do vídeo, sendo necessário informá-los. Tais informações como, largura (W), altura (H), quadros-por-segundo (F) e nome do arquivo (A). Além disso, serão utilizados quatro CQs recomendados pelo DAEDE; NORKIN; BRAILOVSKIY (2018): 20, 32, 43 e 55, representados pela variável CQ. Sendo utilizado a versão 1.00 do AOM2.

./aomenc --verbose --psnr --frame-parallel=0

--tile-columns=0 --cpu-used=0 --threads=1 --end-usage=q 2código hash: e33e1243bd0ea470a60ac43a0125321d019259f3, baixado no dia 20 de novembro de

(36)

35

Tabela 2 – Apresentação dos vídeos UHD4K utilizados para experimentos das propos-tas a serem apresentadas ao longo desta dissertação

Nome Original Adaptação

do Nome Spatial Informa-tion (SI) Temporal Informa-tion (TI) Descrição Netflix_BarSce ne_4096x2 160_60fps_10bi t_420_60f NetflixBarS cene

11,70 3,97 Pessoa joga curling de mesa, câmera fixa com leve alteração de foco Netflix_BoxingPr actice_4096x21 60_60fps_10bit _420_60f NetflixBoxin gPractice

32,56 17,05 Pessoas treinam boxe, câmera faz leve movimento para a direita Netflix_Dancers _4096x2160_ 60fps_10bit _420_60f NetflixDanc ers

9,57 6,00 Cena escura, dançarinos de branco se aproximam para dançar Netflix_Narrator _4096x2160_60 fps_10bit_420_60f NetflixNarra tor 18,25 5,85 Pessoas caminham em um calçadão na praça Netflix_RitualDan ce_4096x21 60_60fps_10 bit_420_ 60f NetflixRitual Dance

20,28 16,19 Pessoa batuca e outra dança na frente do sol, há

pessoas no fundo. Câmera se eleva levemente Netflix_ToddlerF oun-tain_4096x2160 _60fps_10bi t_420_60f NetflixToddl erFountain

42,53 27,38 Bebê corre por fontes de uma praça. Câmera se desloca para esquerda

Netflix_WindAnd Nature_4096x2160 _60fps_10bi t_420_60f NetflixWind AndNature

34,45 7,14 Câmera fixa com mini cata-ventos se movendo

street_hdr_amaz on_2160p

StreetHDR Amazon

25,36 4,58 Câmera fixa em uma rua arborizada. Árvores balançam ao vento e um

(37)

Tabela 3 – Apresentação dos vídeos HD1080 utilizados para experimentos das pro-postas a serem apresentadas ao longo desta dissertação

Nome Original Adaptação do Nome Spatial Informa-tion (SI) Temporal Informa-tion (TI) Descrição ducks_take_ off_1080p50 _60f DucksTake Off

62,84 10,84 Patos nadam em um lago cheio de ondas life_1080p30

_60f

Life 67,06 15,60 Animação, pessoas

numa lanchonete, câmera se desloca ao redor deles Netflix_Boat_ 1920x1080_ 60fps_8bit_4 20_60f

NetflixBoat 77,66 17,49 Placa fixa de madeira colorida com fundo em árvores se deslocando Netflix_Food Mar-ket_1920x10 80_60fps_8b it_420_60f NetflixFood Market

31,51 14,20 Mercado de flores de rua com pessoas se movendo e câmera se aproximando deles Netflix_Squa reAndTime-lapse_1920x 1080_60fps_ 8bit_420_60f NetflixSqua reAndTime-Lapse

54,51 18,77 Festival com muitas pessoas, câmera se desloca para esquerda

Netflix_Tunne lFlag_1920x1 080_60fps_8 bit_420_60f NetflixTunne lFlag

81,80 52,59 Câmera se desloca para o interior de um túnel aberto com armações de

metal rush_hour_

1080p25_60f

RushHour 20,86 11,19 Câmera fixa em um engarrafamento com distorções de calor seaplane_hd r_amazon_10 80p SeaPlaneH DRAmazon 40,93 7,89 Hidroavião inicia processo de decolagem,

câmera se desloca para direita

Referências

Documentos relacionados

ed è una delle cause della permanente ostilità contro il potere da parte dell’opinione pubblica. 2) Oggi non basta più il semplice decentramento amministrativo.

Quando conheci o museu, em 2003, momento em foi reaberto, ele já se encontrava em condições precárias quanto à conservação de documentos, administração e organização do acervo,

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-

O CES é constituído por 54 itens, destinados a avaliar: (a) cinco tipos de crenças, a saber: (a1) Estatuto de Emprego - avalia até que ponto são favoráveis, as

Para Souza (2004, p 65), os micros e pequenos empresários negligenciam as atividades de planejamento e controle dos seus negócios, considerando-as como uma

Em pesquisa realizada pelo Instituto Brasileiro de Opinião Pública e Estatística (IBOPE), em 2011 o consumo de artigos infantis movimentou cerca de R$26,2 bilhões, sendo que mais

- Tratamento igualitário entre os empregados da Sede e da Unidade; - Melhor apoio da Sede às demandas da Unidade; - Oferta de treinamentos de melhor qualidade e para todos

Neste sentido, o presente artigo tem por objetivo delimitar a área de contribuição do reservatório de Furnas, bem como as áreas de contribuição dos parques