Simplificações algorítmicas e desenvolvimento de hardware para o In-loop filter do padrão HEVC - Rediess, Fabiane Konrad (2015)
O processo de filtragem na codificação de vídeos é uma ferramenta relevante devido ao seu objetivo que é o de suavizar artefatos inseridos pelas demais etapas da compressão qualificando a percepção visual dos vídeos codificados. O padrão High Efficiency Video Coding (HEVC) trouxe a proposta de dois novos filtros para o Inloop Filter, o Adaptive Loop Filter (ALF) e o Sample Adaptive Offset (SAO), que são o foco deste trabalho. Apenas o filtro SAO foi inserido na versão final do padrão, mas com o objetivo de melhor explorar as potencialidades do ALF, ele também foi inserido na investigação apresentada neste trabalho. É apresentada inicialmente uma revisão bibliográfica destes dois filtros e após este embasamento teórico, é realizada uma análise dos algoritmos destes filtros buscando simplificações que resultassem em uma redução da complexidade computacional, objetivando a sua implementação em hardware. O filtro ALF envolve uma série de operações matemáticas com dados em ponto flutuante, ponto crítico para uma implementação em hardware. Portanto, a simplificação proposta foi a substituição destas operações em ponto flutuante por operações em ponto fixo. Os resultados dos experimentos mostraram que o impacto desta simplificação é um aumento de apenas 0,05% no bitrate para manutenção da mesma qualidade em comparação à aplicação do ALF com dados em ponto flutuante. Entretanto, a simplificação ainda alcança uma redução de 3,38% no bitrate quando comparado a não aplicação do ALF. Foram propostas ainda, neste trabalho, arquiteturas para os núcleos do ALF das versões 3 e 5 do HEVC Test Model (HM), além de uma versão configurável da versão 3 do HM, em que a arquitetura usa a mesma estrutura para processar qualquer um dos três formatos de filtro. Resultados de síntese para FPGA mostraram que estas arquiteturas alcançaram uma taxa de processamento mínima de 30 quadros UHD 4K por segundo. Para o SAO, além da simplificação baseada na substituição dos dados em ponto flutuante por dados inteiros, propôs-se também a utilização de precisão fracionária com ponto fixo. Outra simplificação proposta para o SAO foi a eliminação de multiplicadores e divisores completos através da aplicação da técnica de loop unrolling à função de custo interna do SAO. Os resultados demonstraram que, com a utilização de dados inteiros, há um aumento no bitrate de aproximadamente 0,05% e para dados utilizando ponto fixo com precisão fracionária de 8 bits, houve um ganho de 0,0005% no bitrate para manutenção da mesma qualidade. Com base nestas simplificações, foi proposta uma arquitetura para a função de custo, a qual alcançou uma taxa de processamento de 1.634 quadros UHD 4K por segundo. Também foi proposta uma arquitetura para a realização das etapas de classificação e levantamento estatístico necessárias para a geração dos offsets. Esta arquitetura alcançou uma taxa de processamento de 45 quadros UHD 4K por segundo.