Nome do Projeto
Exploração de Computação Aproximada e Armazenamento Aproximado para Sistemas de Codificação de Vídeo Energeticamente Eficientes
Ênfase
Pesquisa
Data inicial - Data final
01/10/2020 - 31/07/2024
Unidade de Origem
Coordenador Atual
Área CNPq
Ciências Exatas e da Terra
Resumo
O projeto de pesquisa descrito neste texto apresenta uma nova etapa nas investigações desenvolvidas pelo proponente na área de codificação de vídeos, com o principal foco sendo a redução do consumo energético em sistemas de codificação de vídeo. O projeto detalha a relevância do desenvolvimento do projeto no cenários científico e industrial, destacando os trabalhos que já foram desenvolvidos nos temas do projeto proposto. Além disso, o projeto apresenta uma série de desafios de pesquisa que seguem em aberto e que serão alvos deste projeto. O objetivo do projeto é utilizar os conceitos de computação aproximada e armazenamento aproximado para o desenvolvimento de soluções em software e hardware para as principais etapas de processamento de codificadores de vídeo modernos e para o desenvolvimento de projetos de memórias dedicadas para os subsistemas em codificadores de vídeo. Todas as soluções propostas têm como foco principal a redução no consumo energético em sistemas de codificação de vídeo mantendo a alta eficiência de codificação proporcionada por codificadores atuais. Por fim o texto descreve os resultados esperados com a execução deste projeto. Os resultados são apresentados considerando diferentes perspectivas entre formação de recursos humanos, produção científica e tecnológica e consolidação do Programa de Pós-Graduação em Computação da UFPel como um centro de pesquisa qualificado nas áreas de microeletrônica, sistemas digitais embarcados e codificação de vídeo. Finalmente, os resultados do projeto estão alinhados com as prioridades de pesquisa em tecnologias para o desenvolvimento do país recentemente definidas pelo Ministério da Ciência, Tecnologia e Inovações (MCTI).

Objetivo Geral

principal objetivo deste projeto é gerar contribuições científicas para a redução do consumo de energia em sistemas de codificação de vídeo considerando duas abordagens principais: (1) utilização de computação aproximada no desenvolvimento algoritmos e arquiteturas de hardware dedicadas para as principais etapas presentes em codificadores de vídeo modernos; e (2) utilização de armazenamento aproximado no projeto de memórias dedicadas para sistemas de codificação de vídeos. Além de serem energeticamente eficientes, as soluções desenvolvidas neste projeto não devem comprometer a alta eficiência de codificação proporcionada por codificadores de vídeos atuais, ou seja, baixa taxa de bits e alta qualidade visual.
Outro objetivo deste projeto é na linha de formação de recursos humanos capacitados para realizar pesquisa e desenvolver soluções para a redução do consumo de energia em sistemas de codificação de vídeo. Alunos de iniciação científica, mestrado e doutorado irão participar no desenvolvimento das diversas etapas propostas neste projeto. Nesse sentido, trabalhos de conclusão de curso, dissertações de mestrado e teses de doutorado serão focadas nos objetivos deste projeto.
Finalmente, o projeto também tem como objetivo aumentar a qualidade da pesquisa que é realizada nas áreas de microeletrônica e codificação de vídeo nos grupos de pesquisa Video Technology Research Group (ViTech) e Grupo de Arquiteturas e Circuitos Integrados (GACI) da UFPel. Além disso, contribuir com a pesquisa realizada no Centro de Engenharias e no Programa de Pós-Graduação em Computação (PPGC) da UFPel, da qual este coordenador é membro permanente.

Justificativa

vídeos digitais, estão cada vez mais presentes no dia-a-dia da população através de redes sociais como Facebook, Instagram e TikTok, bem como serviços de streaming de vídeo, tais como YouTube, Netflix, Amazon Prime e vários outros que modificaram os padrões atuais de entretenimento. Recentemente, com a pandemia da COVID-19, a utilização destes tipos de aplicação ficou ainda mais em destaque devido a necessidade de implementação massiva de trabalho remoto e educação à distância. Somente a transmissão via mídias sociais cresceu 32,6% (em Abril de 2020) desde o início da pandemia (STATISTA, 2020a) e, no mesmo período, o tráfego de dados na internet cresceu 71% relacionado a jogos online (VERIZON, 2020). Além disso, em 2023, é previsto que 90% do tráfego de dados na internet seja relacionado a aplicações de vídeo (CISCO, 2020).
Toda a atual demanda por vídeos digitais se torna ainda maior com a crescente utilização de maior realismo dessas aplicações. Vídeos 3D, vídeos com visão 360 graus e altas resoluções para além de Full HD, como 4k e 8k, aumentam os desafios relacionados com transmissão em tempo real e armazenamento deste tipo de dado. Os sistemas de codificação de vídeo necessitam de um alto poder computacional para habilitar a eficiência de compressão necessária para o sucesso das aplicações que manipulam vídeo, principalmente considerando requisitos de tempo real e alta qualidade visual. Esta alta demanda computacional se traduz diretamente em alto consumo energético nos dispositivos que necessitam realizar o processo de codificação e decodificação de vídeo de maneira eficiente (com altas taxas de compressão e alta qualidade visual) e este alto consumo energético é principalmente crítico quando consideramos que a maioria dos dispositivos que manipulam vídeos são alimentados por bateria. Sendo assim, existe a necessidade do desenvolvimento de soluções para sistemas de codificação de vídeo que sejam energeticamente eficientes habilitando aplicações que manipulem vídeos de alta qualidade em dispositivos alimentados por bateria.

Metodologia

Metodologia para o desenvolvimento de soluções que exploram computação aproximada

Primeiramente serão identificadas as principais etapas do processo de codificação de vídeos em termos de processamento através de uma avaliação estatística dos tempos de processamento de cada etapa para os codificadores VVC e AV1. Em seguida, será realizada a análise de resiliência a erros de cada uma dessas etapas do ponto de vista de processamento dos dados. A análise de resiliência será realizada considerando diferentes níveis da aplicação (nos dados, nas operações numéricas, no conjunto de possibilidades de codificação para um mesmo bloco de pixels, e etc…) a cada etapa de codificação para observar a resiliência a erros de cada etapa. A resiliência a erros será medida de acordo com as perdas em eficiência de codificação geradas pela inserção da computação aproximada nas diferentes etapas. Com essas duas análises realizadas, poderá iniciar em paralelo: (1) o desenvolvimento de algoritmos e (2) o desenvolvimento de arquiteturas de hardware utilizando computação aproximada para a redução do consumo de energia.
Para o desenvolvimento de algoritmos aproximados para reduzir a complexidade computacional e o consumo de energia das etapas que mais demandam processamento, serão considerados os codificadores AV1 e VVC. Os algoritmos serão desenvolvidos utilizando múltiplos níveis de aproximação com dois focos. O primeiro, é tornar os algoritmos configuráveis para permitir diferentes perfis de energia e qualidade na aplicação de codificação de vídeo. O segundo, é desenvolver algoritmos que utilizam os múltiplos níveis de aproximação de maneira adaptativa ao contexto dos dados que estão sendo processados. Heurísticas que consideram informações dos dados e da aplicação serão propostas para aplicar as estratégias de computação aproximada de maneira adaptativa. Além disso, Técnicas de Machine Learning (ML) também serão utilizadas para o desenvolvimento dos algoritmos adaptativos. O framework WEKA (HALL; FRANK; HOLMES; PFAHRINGER et al., 2009), que possui mais de 100 algoritmos de Machine Learning, e a biblioteca scikit-learn (PEDREGOSA; VAROQUAUX; GRAMFORT; MICHEL et al., 2011) para Python serão utilizadas nesta etapa.
As arquiteturas de hardware desenvolvidas neste projeto serão especificadas focando nas etapas de codificação de vídeo que mais demandam processamento. As implementações em hardware utilizarão como base os algoritmos definidos nos codificadores AV1 e VVC. Todas as arquiteturas serão desenvolvidas utilizando computação aproximada, que no caso do desenvolvimento de hardware será explorada a nível de circuitos lógicos (nas operações aritméticas básicas: somadores, subtratores) e a nível arquitetural (onde alguns módulos podem ser ativados e desativados em tempo de projeto ou em tempo de execução). Além da computação aproximada, também serão exploradas outras técnicas de desenvolvimento de hardware, tais como variação no nível de paralelismo, pipeline, redução de multiplicações em somas e deslocamentos, compartilhamento de subexpressões (quando for o caso), clock gating, etc. O objetivo é que as arquiteturas tenham baixo consumo energético sendo capazes de processar vídeos de alta resolução (1080p, 4k e 8k). Após especificadas, as arquiteturas serão descritas em VHDL e serão sintetizadas para FPGA, utilizando a ferramenta Quartus II da Altera (INTEL, 2013) e para standard-cells utilizando a ferramenta RTL Compiler da Cadence (CADENCE, 2018). Em seguida, serão realizadas verificações comportamentais das arquiteturas utilizando a ferramenta ModelSim da Mentor Graphics (MENTOR GRAPHICS, 2018). Testbenches serão descritos em VHDL para gerenciar as entradas e saídas das arquiteturas. No fim, serão extraídos dados de dissipação de potência, consumo de energia, recursos de hardware utilizados e frequência de operação.
Para realizar a avaliação estatística e de resiliência e a avaliação dos resultados dos algoritmos e arquiteturas desenvolvidos serão utilizadas as condições comuns de teste (Common Test Conditions - CTCs) propostas em cada codificador. É importante salientar que é necessário avaliar a eficiência de codificação para todas as soluções algorítmicas e de hardware propostas neste projeto, pois como elas utilizarão computação aproximada, haverá impacto nos resultados quando comparada com os codificadores originais. As CTCs guiam as condições de teste para avaliar tempo, taxa de bits e qualidade visual para um conjunto de sequências de vídeo, facilitando o processo de comparação entre dois codificadores diferentes, normalmente o primeiro codificador representando o golden model e o segundo codificador representando o golden model modificado para um determinado fim (por exemplo, reduzir a complexidade computacional da codificação). Neste projeto o golden model para os codificadores AV1 e VVC serão as implementações em software (C++) disponibilizadas pelos desenvolvedores de cada codificador, o AOM (Alliance for Open Media) (AOM, 2020a) e o VTM (VVC Test Model) (JVET, 2020). Cada sequência de teste será codificada utilizando quatro diferentes parâmetros de quantização (QP). O parâmetro de quantização permite que a codificação seja realizada para diferentes taxas de bits e qualidades. Com os resultados da codificação para os quatro QPs, é possível utilizar a métrica BD-Rate, para obter um valor numérico que compara a diferença de eficiência de codificação entre dois codificadores, informando a variação de taxa de bits de um codificador em relação a outro para uma mesma qualidade visual.

Metodologia para o desenvolvimento de soluções que exploram armazenamento aproximado

A primeira etapa no desenvolvimento de soluções que exploram armazenamento aproximado para o projeto de memórias dedicadas em sistemas de codificação de vídeo será a realização de uma avaliação estatística para identificar quais etapas do codificador de vídeo mais realizam comunicação com a memória. Em seguida, será realizada uma avaliação de resiliência a erros nos dados que estão armazenados nas principais estruturas de dados identificadas na avaliação anterior.
Para essas duas avaliações, o projeto prevê a utilização do software PIN da Intel (LUK; COHN; MUTH; PATIL et al., 2005). O PIN é um framework que permite realizar instrumentação diretamente no código binário compilado das aplicações em tempo de execução, facilitando a criação de ferramentas de análise dinâmica de programas, as chamadas Pintools. Para a identificação das etapas que mais demandam comunicação com a memória, será desenvolvida uma Pintool para a contagem de acessos a memória considerando as diferentes estruturas de dados utilizadas nos softwares dos codificadores AV1 e VVC. Para a avaliação de resiliência a erros, será desenvolvida uma Pintool que realiza inserção de erros nos acessos (leituras e escritas) às estruturas de dados identificadas como principais na avaliação anterior. Os erros serão inseridos a nível de bits e serão gerenciados por uma rotina de inserção de erros aleatória que será controlada por um parâmetro externo, o Bit Error Rate (BER), que será definido de acordo com a tecnologia de memória e valores disponíveis na literatura.
Com o entendimento das etapas que demandam mais comunicação com a memória e com a análise de resiliência para cada etapa definida, serão especificadas diferentes arquiteturas de memórias dedicadas para sistemas de codificação de vídeo considerando armazenamento aproximado e diferentes tecnologias de memória. Para auxiliar o projeto das memórias dedicadas será desenvolvido um simulador de consumo de energia de alto nível, novamente utilizando o PIN. O simulador de consumo de energia deverá ser parametrizável considerando diferentes tecnologias de memória que possuem diferentes custos energéticos por acesso (leitura e escrita), além da variação destes custos dependendo da estratégia de armazenamento aproximado utilizada (por exemplo, redução da corrente e tensão de alimentação das células de memória). Os valores de consumo de potência em memória serão extraídos de ferramentas como o CACTI (MURALIMANOHAR; BALASUBRAMONIAN; JOUPPI, 2009) para memórias SRAM e DRAM e o NVSim (DONG; XU; XIE; JOUPPI, 2012) para tecnologias emergentes não-voláteis (eDRAM, STT-MRAM, ReRAM, etc…). Com o simulador energético de alto nível e os traces de memória obtidos pela Pintool que conta os acessos, será possível observar o comportamento energético para diferentes configurações de memória em cada etapa do codificador para verificar quais configurações são melhores em cada etapa. As configurações irão variar de acordo com a tecnologia utilizada em cada nível na hierarquia de memória.
Para analisar o impacto da utilização de armazenamento aproximado na eficiência de codificação, novamente os softwares AOM do AV1 e VTM do padrão VVC serão utilizados. Com o auxílio da Pintool que insere erros nos acessos à memória, os software dos codificadores serão instrumentalizados para simular erros nos acessos às estruturas de dados que foram alvo do projeto de memórias dedicadas para coletar o impacto desses erros no resultado final da eficiência de codificação. A metodologia que utiliza as condições comuns de teste para cada codificadores de vídeo (mencionadas na seção 5.1) serão novamente utilizadas para verificar o impacto na eficiência de codificação.

Indicadores, Metas e Resultados

Esta seção apresenta o conjunto de resultados esperados com a execução deste projeto em diferentes perspectivas. Primeiramente, espera-se que este projeto resulte na consolidação da pesquisa no estado da arte para sistemas de codificação de vídeo na UFPel. Outro resultado importante da execução deste projeto é o fortalecimento da pesquisa no Centro de Engenharias e no Programa de Pós-Graduação em Computação (PPGC) da UFPel, que possui cursos de Mestrado e Doutorado. Com a execução deste projeto, espera-se ampliar a visibilidade do PPGC da UFPel no cenário nacional e internacional, principalmente nas linhas de pesquisa de microeletrônica e sistemas digitais e embarcados.
Outro importante resultado esperado neste projeto é a capacitação de recursos humanos nas áreas de microeletrônica e codificação de vídeos, que são áreas estratégias para o país. É esperado a formação qualificada de pessoas, trabalhando na fronteira do conhecimento tecnológico, incluindo bolsistas de iniciação científica, alunos de mestrado e doutorado e os pesquisadores envolvidos no projeto.
Com o desenvolvimento do projeto, se espera alcançar resultados técnicos e científicos. Os resultados técnicos serão as próprias soluções desenvolvidas neste projeto das quais serão documentadas em registros de software e patente. Os resultados científicos serão os artigos publicados em conferências e periódicos nacionais e internacionais com os avanços obtido. Também se espera o desenvolvimento de monografias de conclusão de curso, dissertações de mestrado e tese de doutorado.
Os resultados esperados discutidos acima devem ser atingidos a partir do conjunto de entregáveis específicos listado abaixo:
UM software para análise de comunicação com a memória;
UM software para inserção de falhas na comunicação com a memória;
UM simulador de consumo de energia para memórias;
QUATRO algoritmos aproximados para redução de complexidade computacional para as principais etapas de um codificador de vídeo;
TRÊS arquiteturas de hardware aproximadas para redução do consumo de energia em sistemas de codificação de vídeo;
QUATRO projetos de memórias para os subsistemas de predição inter-quadros, predição intra-quadro, transformadas e codificador de entropia;
UMA solução integrada entre arquitetura dedicada com computação aproximada e projeto de memória dedicado com armazenamento aproximado;
TRÊS artigos publicados ou submetidos com os resultados obtidos na execução do projeto em periódicos qualificados com JCR (TCSVT, TCAS-I, TMM, JRTIP ou JEI);
SEIS artigos publicados em conferências internacionais qualificadas (DAC, DATE, ISCAS, ICIP, ICASSP ou ICME);
TRÊS dissertações de mestrado concluídas ou em andamento nas linhas de pesquisa do projeto proposto;
DUAS teses de doutorado em andamento nas linhas de pesquisa do projeto.

Equipe do Projeto

NomeCH SemanalData inicialData final
ADSON ILEON RIPINSKI DUARTE
BERNARDO RIBEIRO BELING
BRUNO ZATT2
DANIEL MUNARI VILCHEZ PALOMINO10
FELIPE MARTIN SAMPAIO
GUILHERME RIBEIRO CORRÊA2
LEONARDO LUIS DOS SANTOS SOMAVILLA
LUCIANO VOLCAN AGOSTINI2
LUIZ CEZAR MOREIRA DE CAMPOS NETO
MARCEL MOSCARELLI CORREA
MARCELO SCHIAVON PORTO2

Página gerada em 03/12/2020 22:58:39 (consulta levou 0.179275s)