Portal de Eventos do IFRS, 7º SALÃO DE PESQUISA, EXTENSÃO E ENSINO DO IFRS

Tamanho da fonte: 
Processamento em memória aplicado à compensação de movimento na decodificação de vídeos digitais
Garrenlus de Souza, Felipe Martin Sampaio

Última alteração: 21-11-2022

Resumo


Com o advento e a popularização de conexões banda larga, soluções multimídia de streaming ganharam grande destaque. Um dos grandes desafios neste contexto é encontrar meios de reduzir o custo computacional (tempo de execução, ciclos, energia) envolvido na tarefa de compressão de vídeos digitais, mantendo-se certos níveis de qualidade. O desafio de pesquisa deste trabalho combina hardware e software através da proposta de uma dinâmica de processamento especulativa focada na etapa de decodificação de um vídeo digital, a qual é responsável por restaurar o vídeo codificado para ser exibido ao espectador. Como oportunidade para aceleração do desempenho da codificação de vídeo, uma plataforma de processamento em memória será explorada, a qual se baseia em elementos de processamento integrados em chips de memória, os quais são capazes de processar os dados sem que sejam transmitidos pelo barramento CPU-memória. Com base em análises anteriores, observou-se a concentração de grande parte do processamento na etapa de Compensação de Movimento, a qual é responsável pela decodificação do vídeo explorando o movimento dos objetos presentes nos quadros. Neste contexto, foi desenvolvida, com base na linguagem C++, uma proposta de implementação dos filtros de interpolação, etapa de maior complexidade do módulo de Compensação de Movimento, considerando as especificações do padrão estado-da-arte Versatile Video Coding (VVC). Estes kernels foram implementados para a arquitetura de processamento em memória Vector In Memory Machine (VIMA). Esta implementação tem por objetivo aproveitar-se da alta concentração de vetores de movimento diferenciais nulos para realizar interpolações de grandes regiões de quadros de forma especulativa, realizando eventuais correções quando necessário. Utilizou-se de uma metodologia trace-driven como meio de obter-se uma perspectiva objetiva das decisões tomadas ao longo do processo de decodificação. Os traços de execução foram coletados através da execução do kernel sob a instrumentação da ferramenta Intel Pin, produzindo traços a nível de instrução de processador. Tais informações serviram de entrada ao simulador OrCS, auferindo estatísticas de execução, como a quantidade de ciclos de máquina. Observou-se, em comparação com uma implementação de referência utilizando a ISA AVX 256, acelerações de desempenho entre 1,9x e 22x. Para além da proposta de implementação dos filtros, uma métrica denominada coalescência foi também introduzida como meio de caracterizar objetivamente a oportunidade de utilização da estratégia proposta baseada em processamento em memória. Dentre os próximos passos está o refinamento da métrica de coalescência, bem como a introdução de inúmeras outras métricas, assim como a exploração de outros kernels no que se refere ao deploy do processamento em memória (VIMA). Os resultados obtidos excedem as expectativas iniciais e terminam por validar a utilização de propostas de processamento em memória no domínio de codificação de vídeo, algo ainda pouco explorado na literatura.

Palavras-chave


Decodificação de Vídeos Digitais; Compensação de Movimento; Processamento em Memória

Texto completo: PDF