Você está na página 1de 73

UNIVERSIDADE CATÓLICA DE PELOTAS

CENTRO DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS


MESTRADO EM ENGENHARIA ELETRÔNICA E COMPUTAÇÃO

Luis Frederico Tokumoto Sequeira

Exploração de Técnicas de Redução de Potência em Arquitetura de


Hardware da Transformada Discreta do Cosseno 2-D para o Padrão
H.265/HEVC

Pelotas
2019
UNIVERSIDADE CATÓLICA DE PELOTAS
CENTRO DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS
MESTRADO EM ENGENHARIA ELETRÔNICA E COMPUTAÇÃO

LUIS FREDERICO TOKUMOTO SEQUEIRA

Exploração de Técnicas de Redução de Potência em Arquitetura de Hardware


da Transformada Discreta do Cosseno 2-D para o Padrão H.265/HEVC

Dissertação apresentada como


requisito para o grau do Mestrado em
Engenharia Eletrônica e Computação.

Orientador: Prof. Dr. Eduardo Antonio César da Costa

Pelotas
2019
Dados&Internacionais&de&Catalogação&na&Publicação&(CIP)

S479 Sequeira, Luis Frederico Tokumoto


Exploração de técnicas de redução de potência em arquitetura de
hardware da transformada discreta do cosseno 2-D para o padrão
H.265/HEVC. / Luis Frederico Tokumoto Sequeira. – Pelotas: UCPEL, 2019.

70 f.
Dissertação (mestrado) – Universidade Católica de Pelotas, Programa de
Pós-Graduação em Engenharia Eletrônica e Computação, Pelotas, BR-RS,
2019. Orientador: Eduardo Antônio César da Costa.

1. transformada discreta do cosseno. 2. padrões de codificação de vídeo. 3.


Somadores compressores. 4. clock-gating. 5. data-gating. I. Costa, Eduardo
Antônio César da , or. II. Título.

CDD 620

Ficha catalográfica elaborada pela bibliotecária Cristiane de Freitas Chim CRB 10/1233
1
2

AGRADECIMENTOS

Agradeço primeiramente a Deus, à minha esposa Rebeca Recuero, meus


filhos Sara, Rafaela e Leonardo pelo apoio e carinho nesta etapa. Agradecimento à
minha mãe Rubia Tsuguie Tokumoto e ao meu falecido pai Frederico Cândido
Sequeira Júnior. Gostaria também aqui de deixar um agradecimento especial ao meu
orientador Prof. Dr. Eduardo Antonio César da Costa, por mesmo depois de tantas
dificuldades, jamais desistir da minha orientação e sempre estar buscando o melhor
para o meu trabalho de mestrado. Gostaria de deixar um agradecimento especial ao
professor Adenauer Yamin, que me contatou em e auxiliou com relação às atividades
a serem realizadas. Agradeço aos colegas da UFRGS, Leandro Rocha, Gustavo
Santana, Brunno Abreu e Guilherme Paim, que me conduziram no trabalho,
realizaram os experimentos necessários para a conclusão deste mestrado.
3

RESUMO
O presente trabalho apresenta soluções de hardware eficientes em energia
para a Transformada Discreta do Cosseno – DCT (​Discrete Cosine Transform​) para o
padrão H.265/HEVC. Uma das ferramentas mais utilizadas na melhoria da eficiência
de compressão em codificadores de vídeo é a DCT, sendo necessário um grande
esforço computacional para a sua aplicação em circuitos digitais. ​Os estágios da
transformada e quantização representam boa parte do tempo total de codificação do
padrão de codificação de vídeo, o que os colocam entre as operações mais demoradas
do padrão H.265/HEVC. Portanto, o projeto de arquiteturas de ​hardware dedicadas
de baixa potência para a DCT é vital para um alto desempenho e baixa potência para
o padrão de codificação de vídeo. Nesta dissertação, utilizam-se técnicas de redução
de dissipação de potência para o projeto de uma DCT eficiente em energia.
Inicialmente, utilizam-se somadores compressores 4-2 para o projeto de uma
arquitetura DCT de 8 pontos de baixa dissipação de potência. Após, implementa-se
uma multi-transformada com tamanhos 4x4, 8x8, 16x16 e 32x32. Para cada uma
dessas transformadas, usa-se a técnica MCM (​Multiple Constant Multiplication​) para
a redução da árvore de somas e deslocamentos da DCT. Para tal, utilizam-se
algoritmos da literatura para o projeto de estágios MCM eficientes. Também,
propõe-se uma estratégia MCM que se mostrou mais eficiente em termos de redução
de dissipação de potência para a DCT 32x32. Além disso, foram utilizados
somadores compressores 4-2, 8-2 e 16-2 para o projeto ainda mais eficiente em
redução de potência da multi-transformada. O uso dos somadores compressores,
juntamente com as técnicas ​clock-gating e ​data-gating propiciaram o projeto e a
implementação de uma DCT eficiente energeticamente, com reduções significativas
em dissipação de potência. Para as sínteses realizadas foram utilizadas entradas reais
de vídeo a partir do fluxo da ferramenta comercial da Cadence. Observou-se que os
trabalhos da literatura que propõem soluções para a DCT em síntese lógica, não
levam em consideração o fluxo de uma ferramenta comercial com entradas reais para
a avaliação de potência. Nesta dissertação, as sínteses realizadas levam em
consideração a análise de ​throughput realista para a avaliação da frequência de
operação, que leva à operação da multi-transformada em tempo real.
Palavras-chaves: ​Transformada Discreta do Cosseno, Padrões de
Codificação de Vídeo, Somadores Compressores, ​Clock-Gating​, ​Data-Gating.​
4

ABSTRACT
This work presents energy-efficient hardware solutions for the Discrete
Cosine Transform (DCT) for the H.265/HEVC standard. One of most used tools in
improving the compression efficiency in video encoders is the DCT, requiring a
tremendous computational effort for its application in digital circuits. The
transformation and quantization stages represent a considerable portion of the total
encoding time of the video coding standard, placing them among the most
time-consuming operations of the H.265/HEVC standard. Therefore, the design of
dedicated low-power hardware architectures for DCT is vital for high performance
and low-power for the video coding standard. In this dissertation, power dissipation
reduction techniques for the design of an energy-efficient DCT are employed.
Initially, we use 4-2 compressor adders for the design of an 8-point DCT architecture
with low-power dissipation. Then, there is the implementation of a multi-transform
with sizes 4x4, 8x8, 16x16 and 32x32. For each one of these transformations, MCM
(Multiple Constant Multiplication) techniques are used to reduce the tree of sums and
DCT displacements. For this task, we use algorithms of the literature for the design
of efficient MCM stages. In this work, we propose an MCM strategy that proved to
be more efficient regarding power dissipation reduction for 32x32 DCT. Besides, we
use 4-2, 8-2 and 16-2 compressor adders for the even more efficient multi-transform
power reduction design. The use of the addition of compressors along with
clock-gating and data-gating techniques led to the design and implementation of an
energy-efficient multi-transform, with significant power dissipation reduction. For
the synthesis performed, we used real video inputs in the Cadence commercial tool
flow. We noted that the works of the literature that propose solutions for the DCT in
logical synthesis ​do not take into account the flow of a commercial tool with real
inputs for the power evaluation. In this dissertation, the synthesis also take into
account the analysis of realistic throughput evaluating the needed operation
frequency for the multi-transform operation in real-time.

Keywords: ​Discrete Cosine Transform, Video Coding Patterns, Adders


Compressors, Clock-Gating, Data-Gating.
5

LISTA DE FIGURAS

Figura 1: Tempo de Codificação Relativo ao Total para cada Etapa do


Codificador ……………………………..……..………….………………………. 13
Figura 2: Aplicação da transformada DCT em uma imagem.................................. 21
Figura 3: Diagrama de blocos da estrutura do codificador de vídeos H.265/HEVC 24
Figura 4: Exemplo de matriz de entrada da DCT 8x8…………………………….. 25
Figura 5: Exemplo das TUs dentro de uma LCU…………………………………. 26
Figura 6: Unidades e Partições de Intra-predição para H.265/HEVC…………….. 27
Figura 7. Metodologia de síntese ASIC para a obtenção de resultados de dissipa-
ção de potência a partir de entradas reais de vídeo………………………………... 33
Figura 8: Células compressoras: (a) Compressor 3-2; (b) Compressor 4-2……….. 36
Figura 9: Somador compressor de N bits usando células compressoras 4-2……….37
Figura 10: Estrutura do somador compressor 8:2 usando compressores 4:2…….... 38
Figura 11: Estrutura do somador compressor hierárquico 16-2 usando a combina-
ção dos compressores 8-2 e 4-2……………………………………………………. 40
Figura 12: Estratégia de clock Gating……………………………………………... 41
Figura 13: Estrutura da DCT8 com somadores compressores 4-2………………… 47
Figura 14: Solução proposta para o MCM 32……………………………………... 50
Figura 15: Buffer otimizado com clock-gating e by-pass proposto para a multi-
transformada, exemplo de funcionamento de 8x8 e 4x4…………………………... 52
Figura 16: Resultados de probabilidades médias de transição de/para cada tama-
nho de bloco……………………………………………………………………….. 53
Figura 17: Estrutura da multi-transformada com somadores compressores e
MCM………………………………………………………………………………. 57
6

LISTA DE TABELAS

Tabela 1: Tabela verdade do circuito compressor 4-2…..…………..……………. 37


Tabela 2: Resumo comparativo dos trabalhos presentes na literatura……………. 45
Tabela 3: Resultados da Utilização de Somadores Compressores na DCT de 8
pontos: Área do Circuito e Dissipação de Potência à uma frequência de 200 MHz. 48
Tabela 4: Resultados de comparação de cada MCM normalizados pela solução da
ferramenta de síntese em comparação com a literatura e o MCM 32 proposto….. 51
Tabela 5: Análise de resultados de throughput considerando a latência de
transição para cada tamanho de transformada……………………………………. 54
Tabela 6: Resultados de dissipação de potência da implementação da
multi-transformada DCT com as técnicas propostas…..………………………… 58
7

LISTA DE ABREVIATURAS E SIGLAS

ASIC Application Specific Integrated Circuit

AVC Advanced Video Coding

CABAC Context-Based Adaptive Binary Arithmetic Coding

CD Compact Disk

CMOS Complementary Metal-Oxide-Semiconductor

CTC Common Test Condition

CTU Coding Tree Unit

CU Coding Unit

DBF Deblocking Filter

DCT Discrete Cosine Transform

DM Direct Mode

DSP Digital Signal Processing

DVD Digital Video Disk

GB Giga bytes (1073741824 bytes)

H.265/HEVC High Efficiency Video Coding

HD High Definition

HDL Hardware Description Language

HEVC High-Efficiency Video Coding

IDCT Inverse Discrete Cosine Transform

IEC International Electrotechnical Commission

ISO International Standards Organization

ITU International Telecommunication Union

JPEG Joint Photographic Experts Group

JVT Joint Video Team


8

KLT Karhunen–Loève Transform

LEF Library Exchange File

LM Linear Mode

MCM Multiple Constant Multiplication

ME Motion Estimation

MPEG Motion Picture Experts Group

MSE Mean Square Error

PSNR Peak Signal to Noise Ratio

PU Partition Unit

QP Quantization Parameter

RTL Register Transfer Level

SAIF Switching Activity Interchange Format

SD Standard Definition

SDF Standard Delay Format

TB Transposition Buffer

TCF Toggle Count Format

TU Transform Unit

VCD Value Change Dump

VCEG Video Coding Experts Group

VLC Variable Length Code

VLSI Very Large Scale Integration


9

SUMÁRIO

1 INTRODUÇÃO ................................................................................................... 10
1.1 Objetivos............................................................................................................. 12
1.2 Justificativa........................................................................................................ 13
1.3 Contribuições da Dissertação.............................................................................. 14
1.4 Organização da Dissertação……….................................................................... 15
2 CODIFICADOR DE VÍDEO DIGITAL………................................................ 16
2.1 Redundâncias……………...................................................................................17
2.2 Etapas da Codificação de Vídeo .........................................................................19
2.3 Resumo do Capítulo............................................................................................ 22
3 VISÃO GERAL DO PADRÃO DE CODIFICAÇÃO H.265/HEVC.……......23
3.1 Padrão de Codificação de Vídeo H.265/HEVC ................................................. 23
3.2 A Transformada Discreta do Cosseno (DCT) .................................................... 28
3.3 Resumo do Capítulo............................................................................................ 30
4 METODOLOGIAS DE AVALIAÇÃO E TÉCNICAS DE REDUÇÃO DE
POTÊNCIA PARA A DCT................................................................................... 31
4.1 Metodologia de avaliação de Potência Considerando Entradas Reais……........ 31
4.1.1 Fontes de Dissipação de Potência em Circuitos CMOS...................................31
4.1.2 Metodologia de Síntese ASIC para a Obtenção de Resultados de Potência... 32
4.2 Técnicas de Redução de Potência Usadas na DCT ............................................ 34
4.2.1 Somadores Compressores…............................................................................ 34
4.2.2 Estratégia de Data-gating................................................................................. 39
4.2.2 Estratégia de Clock-gating............................................................................... 40
4.3 Trabalhos Relacionados da Literatura................................................................. 42
4.4 Resumo do Capítulo............................................................................................ 46
5 ARQUITETURA DE BAIXA DISSIPAÇÃO DE POTÊNCIA PARA A
DCT 2-D DO PADRÃO H.265/HEVC COMBINANDO SOMADORES
COMPRESSORES COM DATA-GATING E CLOCK-GATING................... 47
5.1 Experimento da Transformada DCT de 8 Pontos Utilizando Somadores
Compressores............................................................................................................ 47
5.2 Multi-Transformada DCT para o H.265/HEVC Combinando Data-Gating,
Somadores Compressores e Clock-Gating ……....................................................... 49
5.3 Resumo do Capítulo……………….................................................................... 59
6 CONCLUSÕES E TRABALHOS FUTUROS ................................................. 60
6.1 Trabalhos Futuros…………………………………………………………….... 61
6.2 Publicação no Tema da Dissertação………………………………………….... 62
REFERÊNCIAS...................................................................................................... 63
.
10

1. INTRODUÇÃO

Com o atual avanço tecnológico e a diversidade de dispositivos digitais que


surgem, tais como televisão digital, computadores, ​set-top-boxes​, smartphones e
blu-ray ​players​, busca-se melhorar as resoluções de vídeos digitais por meio da
compressão de imagens digitais, para economizar volume de dados não apenas na
transmissão, mas também no seu armazenamento. Na maior parte dos dispositivos
móveis a fonte de energia é finita, logo a eficiência energética se torna um objetivo
crucial na busca por otimizações nas aplicações multimídia.
1
Os vídeos digitais, sem nenhum tratamento de compressão, apresentam um
grande volume de dados; por isso, a exploração de redundâncias temporais e locais
nos vídeos se torna essencial para alcançar uma taxa de compressão que possibilite o
armazenamento e transmissão em tempo real. Por exemplo, uma sequência de uma
hora de vídeo no formato Full HD (1920x1080 pixels) com 30 quadros por segundo
e 8 bits por pixel e 3 canais de cor requer 671GB para ser armazenado sem
compressão. Logo, é necessário empregar algoritmos de compressão de vídeos para
aliviar os requisitos de armazenamento e de banda de transferência.
Devido ao atual avanço tecnológico e a diversidade de dispositivos digitais
que surgem, tais como televisão digital, computadores, ​set-top-boxes​, smartphones e
blu-ray ​players​, busca-se melhorar as resoluções de vídeos digitais por meio da
compressão de imagens digitais, para economizar volume de dados não apenas na
transmissão, mas também no seu armazenamento. Na maior parte dos dispositivos
móveis a fonte de energia é finita, logo a eficiência energética se torna um objetivo
crucial na busca por otimizações nas aplicações multimídia.
Vários padrões de codificadores de vídeos foram desenvolvidos ao longo dos
anos para suprir a demanda crescente das resoluções de vídeo. O padrão
H.265/HEVC (​High Efficiency Video Coding​) surgiu em 2010 com a intenção de
superar o domínio do mercado que era até então do padrão H.264 / AVC (codificação
de vídeo avançada ou ​Advanced Video Coding​) (JCT-VC, 2010). O H.265/HEVC se

1
Um vídeo, de uma forma simples, é uma sequência de imagens estáticas (DIAS, 2006).
11

mostrou capaz de aumentar em 50% a compressão dos vídeos em relação ao padrão


H.264/AVC, mantendo a mesma qualidade de imagem (JESKE, 2013). Entretanto, o
aumento da capacidade compressão de vídeo está diretamente associado com o
aumento da complexidade do algoritmo, requerendo uma maior capacidade
computacional para que os vídeos possam ser processados em tempo real. Desta
forma, ainda que se tenha uma melhoria na qualidade e no processamento de altas
resoluções de vídeos, ainda existe uma desvantagem nestes novos padrões como o
alto consumo energético, que não é compatível com a capacidade de armazenamento
de energia dos dispositivos móveis que suportam vídeos de alta resolução. Processar
algoritmos de compressão de vídeo em tempo real com alta eficiência energética só é
possível através do desenvolvimento de arquiteturas de ​hardware dedicadas que
disponham de circuitos altamente otimizados.
A Figura 1 apresenta uma análise do tempo de codificação de vários estágios
do padrão H.265/HEVC, considerando um segundo de três sequências de vídeo de
diferentes resoluções. A análise foi realizada para o ​software de referência HM
(H.265/HEVC ​Model​). Percebe-se que os estágios da transformada e quantização
gastam uma média de 17,7% do tempo total de codificação, o que o torna uma das
operações mais demoradas do padrão H.265/HEVC. Portanto, o projeto de
arquiteturas de ​hardware dedicadas de baixa potência para a DCT é vital para um
alto desempenho e baixa potência para o padrão de codificação de vídeo.
A ​Transformada Discreta do Cosseno - ​Discrete Cosine Transform (DCT) ​é
baseada na transformada de Fourier e é muito usada na sua forma original ou em
variações que levam em conta a redução da complexidade da implementação e uma
melhor compressão (TEIXEIRA, 2014). ​Na codificação de imagem/vídeo, a DCT é
comumente utilizada pois possui como principal característica a distribuição dos
coeficientes transformados, assim, proporcionando um cenário propício para o uso de
técnicas de redução de redundâncias. De fato, o primeiro passo, na maioria dos
sistemas de compressão de imagens e vídeo, é identificar a presença de redundância
espacial (semelhança entre uma amostra e as amostras em sua vizinhança) em cada
imagem, campo ou frame do vídeo. ​A DCT utilizada no padrão H.265/HEVC é
12

DCT-2D (​Two Dimensional Discrete Cosine Transform​) que permite o


processamento das entradas em forma de matriz de tamanho 32x32, 16x16, 8x8 e
4x4. Entretanto, é necessário um grande esforço computacional ao calcular a
DCT-2D.
A DCT tem um papel crucial no processo de codificação, pois está presente
no laço de transformadas e quantização, cujo objetivo é preparar as amostras para o
processamento de filtro de entropia e alimentação da ME (​Motion Estimation​). Já no
laço de decodificação está presente a IDCT (​Inverse Discrete Cosine Transform​), que
é necessária para retornar as amostras para o domínio do tempo pois o bloco
codificado servirá como referência para o próximo quadro a ser codificado.

1.1 Objetivos

Este trabalho busca apresentar implementações em ​hardware da DCT-2D


com alta eficiência energética utilizando operadores aritméticos otimizados, tais
como somadores compressores. Os somadores compressores são utilizados pois
foram concebidos com a função de serem rápidos (reduzido caminho crítico) e com
menor dissipação de potência (compostos internamente por multiplexadores e portas
XOR). ​Para tal, será realizada uma análise de potência das implementações da
transformada DCT empregada no padrão de vídeo HEVC onde serão usadas entradas
reais de vídeo para uma análise de ​throughput para estimar a frequência necessária
para a síntese dos circuitos. A Figura 1 demonstra o tempo de cada algoritmo do
codificador de vídeo HEVC relativo ao total para codificar um vídeo de tamanho
1920x1080p à 30 frames por segundo.
13

Figura 1: Tempo de codificação relativo ao total para cada etapa do codificador.


FONTE: Silveira (2017).

1.2 Justificativa

Nas últimas décadas foi possível perceber um avanço das tecnologias digitais.
Cada vez mais, dispositivos móveis, como computadores, notebooks e tablets, se
tornam essenciais nas atividades cotidianas das pessoas. ​Com isso, canais de
comunicação precisam constantemente ter suas capacidades de transmissão
aumentadas. ​Além disso, os dispositivos móveis são cada vez mais utilizados para a
transmissão de vídeos em tempo real, o que por sua vez cria novos desafios para a
indústria de telecomunicações. Porém, estes dispositivos apresentam algumas
limitações como o limite de frequência de transmissão que as operadoras fornecem,
limitação na capacidade de processamento e a restrição energética devido ao recurso
finito de energia (FONSECA, 2008). Com isso, são buscadas técnicas mais
avançadas de codificação de sinais, capazes de transmitir vídeos em tempo real com
a maior resolução possível, utilizando a menor largura de banda pela maior
quantidade de tempo. Consequentemente, surgem novos estudos relacionados a
melhorias nos módulos de processamento dos codificadores de vídeo, a fim de
resultar em ganhos em eficiência energética e capacidade de processamento. ​Desse
modo, a busca pelo aperfeiçoamento de ​codificadores/decodificadores de vídeo é
uma atividade fundamental para as atuais demandas do mercado.
14

A compressão dos vídeos digitais é essencial para tornar viável a transmissão


e o armazenamento de mídias digitais. Porém, ainda que reduza a quantidade de
dados e informações das imagens, podem surgir certas dificuldades durante a
transmissão e armazenamento de dados dos vídeos, especialmente em altas
resoluções. Por exemplo, considerando um vídeo original com resolução de
1920x1080, sem passar por nenhum método de compressão, com uma taxa de 30
quadros (​frames​) por segundo com 24 bits para representar cada pixel, seriam
necessários os seguintes recursos: (i) 1,5 Gbps (Gigabits por segundo) para a
transmissão em tempo real e (ii) 1,3 TB (Tera Byte) para o armazenamento de uma
sequência de 10 minutos de vídeo (AGOSTINI, 2007). Sendo assim, percebe-se a
importância da compressão de vídeo para viabilizar a manipulação, transmissão e
armazenamento deste tipo de mídia (MONTEIRO, 2012).
Nos padrões de codificação de vídeo atuais, a transformada discreta do
cosseno é muito utilizada devido a semelhança com a Transformada de
Karhunen-Loève (KLT) que por sua vez compete uma altíssima eficiência em termos
de compressão, contudo impraticável em circuitos digitais (ALCAIM, 1999). Estas
transformadas modificam o domínio do sinal do tempo para frequência e, quando
aplicadas em imagens, resultam em uma concentração dos coeficientes mais
significativos no canto superior esquerdo da matriz, criando uma homogeneidade nos
valores e possibilitando uma maior eficiência da codificação de entropia. Assim, o
propósito de usar esta transformada ortogonal é tornar mais eficiente o processo de
remover as redundâncias espaciais através da concentração de energia do sinal em,
relativamente, poucos coeficientes.

1.3 Contribuições da Dissertação

As principais contribuições deste trabalho estão voltadas ao uso de estratégias


de redução de potência na Transformada Discreta do Coseno. Para tal, são usados
circuitos somadores compressores eficientes, bem como estratégias de ​clock gating e
data gating ​para a redução da potência dinâmica da DCT. São usadas estradas reais
15

de vídeo para uma estimativa realista da potência dissipada pela transformada. Desta
forma, as principais contribuições desta dissertação dizem respeito a:
● Um novo projeto de hardware VLSI para a transformada DCT do padrão de
vídeo H.265/HEVC DCT, empregando eficientes somadores compressores de
última geração, que avaliam os resultados da síntese com uma metodologia
precisa de extração de energia usando vetores de entrada reais;
● Um esquema que combina o uso de c​lock gating no ​buffer de transposição e
data gating na parte operativa do ​hardware​, sendo ambas as estratégias
habilitadas ao processar os casos de tamanhos menores da multi-transformada
2-D;
● Uma análise de ​throughput realista usando um conjunto de experimentos no
software do codificador de vídeo x265 H.265/HEVC em tempo real,
considerando todas as latências das múltiplas transformadas.

1.4 Organização da Dissertação

Esta dissertação está dividida em cinco capítulos da seguinte forma. O


Capítulo 2 apresenta as características gerais de um codificador de vídeo, com as
suas principais etapas. O Capítulo 3 aborda as principais características do padrão de
codificação de vídeo H.265/HEVC, com os seus blocos internos. Neste capítulo é
dada uma ênfase a Transformada Discreta do Cosseno (DCT), que é o bloco alvo
desta dissertação de mestrado. No Capítulo 4 são abordadas a metodologia de
avaliação de potência, bem como as técnicas de redução de potência a serem
empregadas na DCT (somadores compressores, ​data-gating e ​clock-gating​). Os
principais resultados obtidos na dissertação são apresentados no Capítulo 5.
Finalmente, o Capítulo 6 apresenta as principais conclusões desta dissertação, bem
como ideias para trabalhos futuros.
16

2. CODIFICADOR DE VÍDEO DIGITAL

Um codificador de vídeo é um sistema de processamento de vídeos que pode


ser implementado tanto em ​hardware como em ​software cujo intuito reside na
transformação do arquivo de vídeo original em um arquivo de vídeo comprimido de
menor tamanho. Tal tarefa é realizada a partir da execução de um algoritmo de
codificação cuja principal ferramenta é a busca de redundâncias temporais e
espaciais de blocos de pixels nos quadros de vídeo para que estas sejam comprimidas
através de uma representação usando um bloco de pixels e um vetor de movimento.
O codificador codifica e decodifica sinais digitalizados ou arquivos armazenados,
comumente utilizados nas transmissões digitais de dispositivos móveis, de televisão,
em vídeo conferências, etc.​ (DIAS, 2006).
Reduzir o volume de dados necessários para representar as imagens é
indispensável e utilizar algoritmos de compressão de imagens é uma solução comum
para esse tipo de problema. Em algoritmos ​de compressão dos vídeos mais eficientes
ocorre uma perda de informações durante a geração do vídeo comprimido, sendo
necessário uma análise criteriosa do sinal de vídeo com o intuito de retirar
informações irrelevantes ou não representativas para a compressão, mas não para a
visão. Assim, de acordo com (ROSA, 2010), algoritmos especializados devem ser
empregados no processo de codificação da imagem estática e vídeo, principalmente
quando o objetivo é explorar as redundâncias espaciais e temporais.
De acordo com (FONSECA, 2008), uma estratégia inicial para compressão
seria enviar apenas as diferenças existente entre os quadros. ​Convencionou-se
chamar de codificação Inter-quadros as técnicas existentes na literatura que abordam
a redundância temporal do sinal de vídeo (ITU-T, 1990; SAYOOD, 2000). O grande
desafio dessa abordagem é a codificação do primeiro quadro de uma sequência de
vídeo digital, o que pode ser resolvido através da exploração das redundâncias
espaciais presentes neste quadro. O conjunto de técnicas de busca e análise de
redundância dentro de um mesmo quadro denomina-se de codificação Intra-quadro.
17

Um codificador de vídeo é usualmente composto pela agregação de técnicas de


codificação Intra-quadro e Inter-quadros (FONSECA, 2008).
Um vídeo digital é composto por um conjunto de quadros que são formados
por uma série de pixels, variando de acordo com a resolução. A percepção de
movimento é alcançada com 30 quadros por segundo de taxa de amostragem dos
quadros (RICHARDSON, 2003).
As imagens digitais são representadas através de uma matriz retangular de
elementos de cor. Esta matriz é mapeada para um dispositivo de exibição onde cada
um dos elementos desta matriz representa uma informação de brilho ou cor de uma
pequena região do dispositivo de exibição. A cada um destes elementos é dada a
denominação pixel (em alusão à palavra inglesa ​picture element​) (ROSA, 2010).
Uma cena é composta por imagens vizinhas (ou quadros vizinhos) que são
aquelas imagens pertencentes a uma mesma cena de vídeo, temporalmente próximas.
Os codificadores de vídeo dividem os quadros (sequenciais) em blocos. Um
codificador de vídeo possui etapas que buscam contribuir para reduzir as
redundâncias das informações dos dados presentes no vídeo. Elas têm importância
para a aplicação de manipulação de vídeos digitais, pois por meio destas etapas do
codificador, um vídeo pode ser representado com um número reduzido de bits. De
acordo com Monteiro (2012), existem blocos que formam a matriz de cada quadro e
que são subdivididos em outros blocos de diferentes dimensões. Cada quadro é
formado por um conjunto de pontos (ou pixels). Do mesmo modo que os blocos, os
pixels, que podem ser representados por números ou um conjunto deles, pertencentes
à mesma cena, são chamados de pixels vizinhos (MONTEIRO, 2012).

2.1 Redundâncias

De acordo com (AGOSTINI, 2007), “a codificação de vídeos tem como


objetivo diminuir a quantidade de dados considerados redundantes na representação
computacional das informações da imagem ou vídeo”. Ou seja, é por meio dela que
todos aqueles dados que não contribuem com informações relevantes para a
representação da imagem são descartados, apresentando apenas o que é importante
18

para a melhoria da imagem. Há, então, os algoritmos de compressão de dados que


buscam identificar estas redundâncias entre elementos que se apresentam por meio
de certas propriedades (como correlações e repetições). Assim, apresentam-se os
tipos de redundâncias exploradas pela compressão de vídeos: a redundância espacial,
a redundância temporal, a redundância entrópica (AGOSTINI, 2007) e a redundância
psicovisual (GONZALES, 2003 e MONTEIRO, 2013).
● Redundância espacial ​(redundância intra-quadros, inter-pixels ou
intra-frame): tem a sua origem da correlação existente entre os pixels
espacialmente distribuídos em um mesmo quadro, ​causada pelo fato de pixels
vizinhos apresentarem uma tendência de possuir valores similares. Quanto
maior a resolução do vídeo, mais visível é essa redundância. ​Ela é reduzida
por meio da ação da codificação intra-quadros e é visível tanto no domínio
espacial quanto no das frequências.
● Redundância temporal (​redundância inter-quadros​): produz elevadas taxas
de compressão e é ocasionada pela correlação entre quadros temporalmente
próximos em um vídeo. Ela é eliminada pela ação da codificação
inter-quadros.
De acordo com (AGOSTINI, 2007), muitos blocos de pixels simplesmente
não mudam de valor de um quadro para outro em um vídeo, como por
exemplo, em um fundo que não foi alterado de um quadro para o outro.
Outros pixels apresentam uma pequena variação de valores causada, por
exemplo, por variação de iluminação. Por fim, também é possível que o bloco
de pixels simplesmente tenha se deslocado de um quadro para o outro, como
por exemplo, em um movimento de um objeto em uma cena (AGOSTINI,
2007). Em suma, a redundância temporal ocorre em diferentes situações,
principalmente quando um bloco de pixels não se desloca de um quadro para
outro.
● Redundância entrópica ​(​codificação de entropia​): é pautada a
probabilidades de ocorrência dos símbolos codificados. Ela se relaciona com
a maneira de representação dos dados (e não com o conteúdo da imagem).
19

Este tipo de redundância é uma medida da quantidade média de informações


transmitidas por um símbolo do vídeo que diminui à medida que a
probabilidade de ocorrência deste símbolo aumenta (AGOSTINI, 2007). Ou
seja, a redundância entrópica busca representar as informações mais
frequentes de um vídeo digital por meio de símbolos, a fim de gerar um
número menor de bits em sua respectiva representação quando exploram esta
redundância por meio de técnicas e algoritmos de compressão sem perdas.
● Redundância psicovisual: ​ela é levada em consideração apenas por alguns
autores e se foca no modelo do sistema visual humano (explora cores e
luminosidade). Devido ao fato de algumas informações terem menor
relevância em relação a outras, os codificadores de vídeo buscam explorar
esta característica com a finalidade de aumentar a eficiência de codificação
por meio da diminuição da taxa de amostragem dos componentes de
crominância em relação aos componentes de luminância, de acordo com
(MONTEIRO, 2013).

2.2 Etapas de Codificação de Vídeo

Cada quadro é dividido em blocos de diferentes tamanhos dependendo do tipo


de codificador e da decisão que é escolhida pelo codificador após analisar o quadro a
ser codificado.
A primeira etapa é a realização da codificação Inter-Quadros e da codificação
Intra-quadros para cada bloco. A Inter-quadros elimina a redundância temporal e,
para realizá-la, é preciso que exista pelo menos um quadro previamente processado
para ser utilizado como referência. A codificação Intra-Quadros, como já dito, busca
eliminar a redundância espacial. Ela é realizada no primeiro quadro do vídeo (quadro
I), visto que, de acordo com (JESKE, 2013), ela não depende de quadros previamente
codificados.
Posteriormente, o ​resíduo (subtração entre o bloco de referência e o bloco
que está sendo codificado) ​é enviado para o módulo das transformadas que
convertem os dados do domínio temporal para o domínio das frequências. De acordo
20

com (JESKE, 2013), nesse módulo é possível identificar as frequências menos


relevantes para o sistema visual humano e eliminá-las através do processo de
quantização, que é realizada por meio de uma divisão inteira dos coeficientes
transformados por constantes predefinidas. No processo de codificação desta etapa é
comum perderem-se informações imperceptíveis ao sistema visual humano (de
acordo com as configurações da codificação). Devido à aplicação da transformada e
da quantização, os dados não se assemelham mais com o bloco original, de modo que
o uso das transformadas e quantização inversa seja necessário para a reconstrução do
bloco original, que por sua vez, será utilizado como referência na codificação de
outros blocos. Por fim, para gerar o ​bitstream ​(sequência de bits que representam o
bloco codificado), ​tem-se a codificação de entropia que busca apresentar informações
com um menor número de bits através da utilização de técnicas e algoritmos de
compressão sem perdas.
As técnicas de compressão de vídeo aplicadas no processo de compressão,
visando justamente atuar sobre cada tipo de redundância a qual ele trabalha, são
apresentadas em (MONTEIRO, 2013). É importante ressaltar ainda, que estas
técnicas de compressão de dados podem ter perdas ou não de informações. Os
compressores de vídeo geralmente comprimem com perdas. A compressão com
perdas requer uma análise mais criteriosa do sinal de vídeo com o objetivo de
descartar informações que sejam irrelevantes ou não representativas para a
compressão, mas não para a visão. A literatura apresenta diversas alternativas para a
compressão de vídeo, entretanto, os codificadores híbridos (RICHARDSON, 2003)
como o H.264/AVC são aqueles que possuem o melhor compromisso entre
capacidade de compressão e complexidade computacional. Os codificadores híbridos
são assim ditos, pois, implementam tanto ferramentas de predição do sinal fonte
(temporal e espacial), quanto ferramentas que convertem e operam o sinal no
domínio das frequências (RICHARDSON, 2003). A partir deste ponto, o termo
codificador ou decodificador de vídeo será utilizado para caracterizar um codificador
ou decodificador com o objetivo de compressão no modelo híbrido (ROSA, 2010).
21

Em (ROSA, 2010), afirma-se que para a ​exploração da redundância espacial,


utiliza-se a conversão da imagem para o domínio das frequências, utilizando-se uma
matriz da transformada com tamanho típico de 8x8. Cada imagem da sequência de
vídeo é dividida em blocos do tamanho da matriz da transformada e esta é aplicada
para cada um dos blocos da imagem, sendo que, a transformada mais utilizada para a
codificação de cenas naturais estáticas e sequências de vídeo é a Transformada
Discreta de Cosseno.
A DCT é uma das transformadas mais utilizadas em padrões de compressão
de vídeo justamente pela sua capacidade de descorrelação e a eficiência na
compactação de energia. A descorrelação é a habilidade de uma transformada
converter um determinado conjunto de dados que são muito correlacionados em
outro conjunto de dados que são considerados relativamente independentes. Com
isso, reduz-se a redundância estatística. A eficiência de compactação de energia é a
habilidade de uma transformada conseguir compactar a energia de um sinal na menor
quantidade possível de coeficientes. Com isso, a DCT é bastante popular, afinal, ela é
uma transformada independente de dados e ainda possui uma disponibilidade de
implementações com baixa complexidade (WU e RAO, 2006). A Figura 2 mostra,
por meio de uma imagem, a aplicação da transformada DCT em um bloco 8×8 da
imagem (ROSA, 2010).

Figura 2: Aplicação da transformada DCT em uma imagem.


FONTE: Rosa (2010)

Por meio da ampliação, pode-se distinguir cada uma das amostras da matriz
original (as amostras são de 8 bits) e da matriz transformada (amostras de 16 bits),
onde apenas os 8 bits mais significativos foram convertidos para informação de
intensidade do resultado. Assim, o principal benefício da transformada é a
exploração da redundância psicovisual através da inserção de perdas controladas. Da
22

mesma forma que o olho humano possui menor acuidade para cores, também é
sabido que o olho humano é menos sensível a altas frequências (RICHARDSON,
2003). As amostras originais são quantizadas através da multiplicação ou divisão por
uma matriz de quantização (na verdade requantização, uma vez que a informação
digital é discreta e quantizada) e, com isso, inserir perdas. Para explorar as limitações
do sistema visual humano, os coeficientes da matriz de quantização são escolhidos de
forma a reduzirem mais intensamente a faixa dinâmica dos valores transformados de
alta frequência do que dos de baixa frequência. Para aplicações típicas, como o DVD
(​Digital Video Disc​), por exemplo, os valores do canto inferior direito da matriz
resultante terão grande probabilidade de terem valor zero (ROSA, 2010), tendo-se
assim uma oportunidade da exploração de técnicas que possam identificar e reduzir a
complexidade dos cálculos.

2.3 Resumo do Capítulo

Este capítulo abordou as principais características de um sistema de


codificação de vídeo. Os principais aspectos relacionados com a redundância de
informações, bem como os principais blocos de codificação de vídeo foram
abordados. Finalmente, foi mostrada a importância do uso da Transformada Discreta
do Cosseno na codificação de vídeo. A seguir serão abordados os principais aspectos
relacionados ao padrão de codificação de vídeo digital H.265/HEVC e da
transformada discreta do cosseno.
23

3. VISÃO GERAL DO PADRÃO DE CODIFICAÇÃO DE VÍDEO


H.265/HEVC

Este capítulo aborda as principais características do padrão de vídeo


H.265/HEVC, bem como os principais aspectos da transformada discreta do cosseno.

3.1 Padrão de Codificação de Vídeo H.265/HEVC

O padrão de codificação o H.265/HEVC - ​High Efficiency Video Coding


(JCT-VC, 2013) foi desenvolvido pelo grupo JCT-VC (​Joint Collaborative Team on
Video Coding​) a fim de aumentar em 50% a eficiência compressão dos vídeos em
relação ao seu antecessor o padrão H.264/AVC (​Advanced Video Coding​), mantendo
a mesma qualidade de imagem (JESKE, 2013). Este padrão também é conhecido
como HEVC/H.265 e foi aprovado como uma norma internacional em 13 de abril de
2013.
O H.265/HEVC pode ser considerado uma evolução do H.264/AVC, pois ele
visa atender às necessidades atuais de melhor e maior compressão de vídeos e
imagens (melhorando a resolução e o uso de arquiteturas que permitem o
processamento), assim como a interoperabilidade entre os sistemas (COSTA e
ALMEIDA, 2015). Desse modo, esse codec consegue incorporar metas como uma
maior eficiência de codificação, uma fácil integração em diferentes sistemas e o uso
de processamento paralelo.
Em seu trabalho, ​(JESKE, 2013) desenvolve otimizações algorítmicas focadas
na implementação em hardware das transformadas DCT 2-D de vários tamanhos
definidos pelo H.265/HEVC e também desenvolve um hardware para estes
algoritmos otimizados. Assim, o autor aborda técnicas otimizadoras de forma
conjunta e não sequenciais, implementando um algoritmo apropriado para
concretizar análises nas diferentes implementações possíveis, buscando uma solução
automática e melhorada em um menor hardware.
No H.265/HEVC para o processamento de uma imagem em forma de
macroblocos é utilizada uma estrutura de particionamento o chamado de ​Coding Tree
24

Units (​CTU), cujo tamanho neste padrão pode ser de 64x64 até uma dimensão menor
de 4x4, que ao serem maiores, contribuem para a redução do tempo de codificação,
aumentando a eficiência. As CTUs, quando divididas, chamam-se Unidade de
Codificação (CU), cada CU possui uma unidade de predição (PU) e uma unidade de
transformada (TU) , onde o seu formato é sempre quadrado, podendo assumir um
tamanho de 4x4, 8x8, 16x16 e 32x32 amostras. A CU pode ser dividido em TUs,
podendo atingir quatro tamanhos dependentes da matriz da Transformada Discreta de
Fourier (DFT), ou em CU, que armazena dados de predição, podendo ter diferentes
tamanhos (COSTA e ALMEIDA, 2015).​.
A Figura 3 mostra a estrutura geral do padrão de codificação de vídeo
H.265/HEVC, com os seus blocos constituintes.

Figura 3 : Diagrama de blocos da estrutura do codificador de vídeos H.265/HEVC.


FONTE: Própria

O módulo das transformadas é uma etapas que compõem o codificador


H.265/HEVC, pois é nela que os dados são convertidos do domínio espacial para o
25

domínio das frequências. Assim é ampliada a eficiência da quantização que amplia a


eficiência da codificação de entropia e eleva a taxa de compressão (JESKE, 2013).
No geral é usada a DCT com a finalidade de concentrar energia da imagem em
poucos coeficientes numéricos, de modo que nas próximas etapas (quantização e
codificação de entropia) possam ser aplicadas com mais eficiência.
A Figura 4 apresenta uma matriz de tamanho 8x8 que é composta por
resíduos provenientes da diferença entre o quadro de referência e o quadro atual,
gerados nas etapas anteriores do codificador.

Figura 4: Exemplo de matriz de entrada da DCT 8x8.

FONTE: Jeske (2013)

Na codificação entrópica o H.265/HEVC apresenta um melhoramento, pois


utiliza o CABAC (​Context Adaptive Binary Arithmetic Coding​) dividido em três
etapas: tornar binários os elementos de sintaxe; a modelação conforme o contexto e a
codificação binária aritmética. Em sua fase final, o H.265/HEVC possui duas fases
opcionais: uma filtragem em ​loop de ​deblocking (DBF) e um ​sample ​adaptive offset​.
Além disso, ainda tem três perfis principais, que vão comportando formatos distintos
(4:2:0, 4:2:2 e 4:4:4), do mesmo modo como profundidades de cor desde os 8-bit aos
12-bit por cor. Com a atualização, passaram a existir mais 24 perfis diferentes
(COSTA E ALMEIDA, 2015).
O H.265/HEVC é caracterizado por aplicar uma DCT aos resíduos de dados
descorrelatos. As unidades básicas para os processos da transformada e quantificação
são as TUs (unidades de transformada) e o tamanho e a forma de uma TU está
relacionado (depende) do tamanho de uma unidade de predição (PU) que a originou.
26

Por este motivo, ela pode ser tão pequena quanto 4:4 ou tão grande como 32:32 das
amostras de luma de uma imagem. Além disso, uma ou mais TUs podem estar
contidas em cada CU e cada quadrado de uma CU pode se dividir em TUs menores,
conforme é possível observar na Figura 5 a seguir, como exemplo.

Figura 5: Exemplo das TUs dentro de uma LCU.


FONTE: Própria

No padrão H.265/HEVC o tamanho dos blocos de predição podem, então,


variar de 4x8, 8x4 até 64x64 amostras. De acordo com Moreira (2015), os blocos de
predição grandes são a forma mais eficiente para codificar grandes áreas lisas (de
imagem simples), enquanto que os blocos de predição menores e transformadas
podem ser usados ​para alcançar a precisão em áreas que contêm uma série de
detalhes mais complexos na imagem.
Em comparação com o H.264/AVC, o H.265/HEVC possui uma
especificação que abrange mais modos de intra-predição, incluindo um modo para
aplanar e aproximar uma superfície de pixels vizinhos, e um outro plano com 35
modos de predição angulares (MOREIRA, 2015). É o que pode ser observado na
Figura 6 a seguir.
27

Figura 6: Unidades e Partições de Intra-predição para H.265/HEVC.


FONTE: Própria

O trabalho em (MOREIRA, 2015) também mostra que para melhorar o


desempenho da intra-predição são usados filtros de suavização de pixels adjacentes
chamados de MDIS (​Mode Dependent Intrasmoothing​) que são ativados com base no
tamanho da UP. Em geral, é utilizado para grandes tamanhos de UPs e em modos
direcionais.
O H.265/HEVC ainda possui seis ​modos de intra-predição de croma: Modo
direto (DM: ​Direct Mode​), Modo Linear (LM: Linear Mode), Vertical (Mode 0),
Horizontal (Mode 1), DC (Mode 2), e por fim o Plano (Mode 3).
De forma geral, DM e LM exploram a correlação dos componentes de
luminância e crominância. Como o tipo de correlação explorada por DM e LM são
diferentes, os dois modos se complementam nos termos da codificação de
desempenho. Devido a correlação existente entre luma e croma, DM e LM são os
modos mais utilizados para a melhoria da qualidade da intra-predição e croma. A
Predição para luma usa blocos de compensação de movimento com precisão de até
um quarto de pixel, enquanto a compensação de movimento dos componentes de cor
é realizada com precisão de um oitavo de pixel. A interpolação para pixels
fracionário s usa filtros de 7 e 8 ​taps ​para blocos de luminância e filtros de quatro
taps ​para as amostras de crominância (para cor) (MOREIRA, 2015).
28

3.2 A Transformada Discreta do Cosseno (DCT)

A Transformada Discreta do Cosseno (DCT - ​Discrete Cosine Transform​) é


amplamente utilizada e seus conceitos foram aplicados há muito tempo à codificação
de vídeo. Em termos de complexidade, uma vez que o cosseno apresenta
características simétricas, sua forma discreta possui essa mesma propriedade na
matriz da transformada. Portanto, a implementação da DCT de algoritmos rápidos e
de baixa complexidade não requer tempos de processamento longos ou esforços
computacionais elevados. Em termos de eficiência, de acordo com (CLARKE, 1981),
para descorrelacionar um sinal, provou-se tanto teoricamente como
experimentalmente que a DCT se aproxima da KLT (​Karhunen-Loeve Transform​)
ótima sob as condições de Markov de primeira ordem.
A DCT não é uma discretização direta da função cosseno. DCT é uma
solução da equação do oscilador harmônico sub-amortecido, juntamente com certas
condições de contorno. A DCT na base 2 (DCT-II) da equação normalizada da ordem
N​-form está formalizada como a Equação 1.

(1)

Uma vez que o cosseno é uma função par, apresenta uma simetria em relação
ao eixo ​Y​, evidente pelos coeficientes da transformada.
Para ​N​ = 8, a matriz da transformada é dada de acordo com (2).

(2)

Onde,
29

A transformada 1-D (unidimensional) é mostrada pela Equação 3.

(3)

Onde ​X​mn é o vetor de entrada ou bloco a ser processado com ​m linhas e ​n


colunas. A variável ​T é a matriz da transformada a ser aplicada, e ​Y​mn é a matriz
resultante. A operação 2-D (duas dimensões) é indicada pela Equação 4.

(4)

Onde ​X​mn é o bloco de entrada com ​m linhas e ​n colunas. ​C e ​R são as


matrizes da transformada a serem aplicadas em relação às colunas e linhas de ​X​mn,​
respectivamente. Seu tamanho é geralmente ​N × ​N para ​C e ​M × ​N para ​R​. A matriz
Y ​é a matriz resultante.
As fontes de imagem normalmente são 2-D e incertas, o que leva a uma
correlação ineficiente de todas as fontes de imagem quando o DCT usado de
tamanho fixo usado. Dado que o DCT de tamanho quadrado apresenta tais
limitações, equipes de pesquisadores estão trabalhando em formas de melhorar, a
eficiência da transformada, resultando em diferentes implementações que foram
propostas pela literatura. Atualmente, algumas dessas abordagens foram herdadas
com sucesso no novo padrão H.265/HEVC.
O tamanho do bloco da transformada no padrão de codificação de vários
vídeos não é fixo, geralmente variando de 4 × 4 a 64 × 64. Neste trabalho, nos
concentramos na Transformada Discreta do Cosseno de 8 pontos. O processo da
transformada direta e quadrada é definido pela Equação 5.

(5)
30

Onde ​T​M​, na matriz transposta de ​T​M,​ transformada do núcleo. A transformada


do kernel varia de acordo com o tamanho do bloco, para a questão da ilustração, este
trabalho apresenta o kernel para ​N​ = 4 e ​N​ = 8, de acordo com (6).

(6)

No caso de um bloco não quadrado, como 32 × 8, 8 × 32 ou 16 × 4, 4 × 16, a


seguinte sequência deve ser executada de acordo com a Equação 7.

(7)

Onde o índice ​M​1 representa a matriz 1, a primeira metade do bloco, e o


índice ​M​2​ representa a segunda metade do bloco.

3.3 Resumo do Capítulo

Este capítulo apresentou uma visão geral dos padrões de codificação de vídeo
atuais. foram mostradas as principais características dos padrões de codificação de
vídeo alvos deste trabalho: H.265/HEVC. Além das principais características,
também foram mostradas comparações entre os padrões em termos desempenho, ou
seja: ​bit-rate​, distorção e tempo de codificação e decodificação. A seguir serão
apresentados os principais conceitos de somadores compressores e da DCT.
31

4. METODOLOGIAS DE AVALIAÇÃO E TÉCNICAS DE REDUÇÃO DE


POTÊNCIA PARA A DCT

Este capítulo aborda metodologia de avaliação de potência para a DCT,


levando em conta entradas reais de vídeo. Também são abordadas as principais
técnicas de redução de dissipação de potência usadas para o projeto de uma DCT
eficiente em energia.

4.1 Metodologia de Avaliação de Potência Considerando Entradas Reais


A avaliação de potência pelo fluxo de síntese ASIC (​Application Specific
Integrated Circuits​), considera as fontes de dissipação de potência que integram um
circuito CMOS. A seguir são apresentados os principais aspectos que integram as
fontes de dissipação de potência, com ênfase para a fonte de dissipação de potência
dinâmica.

4.1.1 ​Fontes de Dissipação de Potência em Circuitos CMOS


Existem três fontes primárias de dissipação de potência em circuitos CMOS
sob operação normal (WES, 1994): (1) dissipação de energia causada por correntes
de fuga e correntes sub-limiares, (2) dissipação de energia por curto-circuito, que
ocorre devido ao fluxo de corrente contínua desde a fonte de alimentação ao terra
durante o processo de chaveamento no ​gate do transistor, e (3) dissipação de potência
dinâmica, que é o resultado da carga e descarga das capacitâncias dos circuitos. Um
maior detalhamento sobre os aspectos mais importantes na dissipação de potência
dos circuitos CMOS podem ser encontrados em (COSTA, 2002).
As técnicas de ​clock-gating e ​data-gating usadas nesta dissertação visa
principalmente a redução da dissipação de potência dinâmica na DCT. Embora a
potência estática venha alcançando patamares elevados de dissipação de potência,
principalmente em tecnologia abaixo de 90 nm, pode-se dizer que a potência
dinâmica ainda é a fonte predominante de dissipação de potência em circuitos
CMOS. A potência dinâmica e proporcional a tensão de alimentação (​V​dd),

frequência de operação (​f​), capacitância de carga (​C​L)​ e atividade de chaveamento


32

(​a​), como mostra a Equação 8. As técnicas de ​clock gating e ​data gating visam
reduzir a atividade de chaveamento que tem uma relação direta com a dissipação de
potência dinâmica.

(8)

4.1.2 ​Metodologia de Síntese ASIC para a Obtenção de Resultados de Potência


Transições de sinal causam dissipação dinâmica de energia em circuitos
integrados digitais. Em geral, ferramentas de síntese comercial geram valores
probabilísticos de entrada para estimar a potência dissipada pelo circuito. Essa
abordagem, no entanto, é frequentemente pessimista e raramente representa o
comportamento real que o circuito pode apresentar para o qual foi projetado.
Portanto, uma metodologia precisa de estimativa de potência é necessária para
representar o comportamento real da aplicação e fornecer ao projetista uma qualidade
confiável de resultados que poderão viabilizar a otimização de blocos críticos que
consomem muita energia.
A Figura 7 mostra a metodologia proposta para extração de dissipação de
energia. Primeiro, a descrição do nível de transferência de registradores (RTL -
Register Transfer Level​) é sintetizada usando uma ferramenta de síntese comercial -
como o Cadence Genus Synthesis Solution ou Synopsys Design Compiler - para uma
determinada tecnologia. Como subproduto, a ferramenta gera o circuito ​netlist na
linguagem de descrição de ​hardware Verilog, o arquivo SDF (​Standard Delay
Format​), que anota os atrasos específicos para portas lógicas e redes de interconexão
e os relatórios de projeto de área, dissipação de potência e caminho crítico. A
ferramenta de simulação - como Cadence Incisive e Synopsys VCS - simula a ​netlist
gerada com os arquivos ​testbench - escrita em VHDL / Verilog / SystemVerilog -
alimentando o circuito com dados de entrada de imagens de referência padrão ou
vídeos para gerar o arquivo ​dump que está em formatos de arquivo VCD (​Value
Change Dump​) ou TCF (​Toggle Count Format​).
33

Figura 7. Metodologia de síntese ASIC para a obtenção de resultados de dissipação


de potência a partir de entradas reais de vídeo.
FONTE: Própria.

Os dados de entrada usados ​como estímulos são extraídos de um software de


codec de vídeo e armazenados em arquivos de texto. Normalmente, as sequências de
vídeo processadas pelo software de codec são provenientes das condições de teste
comuns (CTCs - ​Common Test Conditions​) que são específicas para cada padrão de
codificação de vídeo. Com esses arquivos de texto, a ferramenta de simulação recebe
esses valores e executa o ​testbench com os arquivos ​netlist no nível de portas lógicas
e os arquivos de atraso SDF para gerar uma atividade de transição precisa. No final
da simulação, o arquivo ​dump é gerado contendo a atividade de transição de todos os
nós dentro do ​netlist​. Por fim, a ferramenta de síntese é executada uma segunda vez
com os mesmos parâmetros, exceto que, neste caso, o arquivo ​dump é alimentado no
software​ para gerar relatórios precisos de dissipação de potência.
As ferramentas de síntese modernas suportam a estimativa das penalidades de
interconexão de portas lógicas, em área, potência e tempo. A ferramenta de síntese
34

lógica de Cadence (CAD, 2018) dispõe do modo de estimativa de ​layout físico (PLE
- ​Physical Layout Estimation​) enquanto que, a ferramenta Synopsys Design
Compiler oferece o modo Topográfico para analisar o impacto das interconexões.
Essas ferramentas estimam o comprimento das redes e levam em conta os efeitos da
capacitância de carga na dissipação de potência, considerando uma estimativa de
roteamento de ​layout relativamente pessimista. Tal análise requer a inclusão dos
arquivos do formato Exchange (LEF - ​Layout Exchange Format​), que contêm
principalmente as informações de ​layout físico da biblioteca. A macro LEF inclui a
capacitância da célula da biblioteca interna, e a tecnologia LEF compreende a
capacitância de metal do processo para a estimativa de capacitância de interconexão
(MAN, 2018). Além disso, as bibliotecas de células padrão geralmente oferecem um
arquivo adicional, ou seja, tabela de capacitância, que descreve as capacitâncias da
tecnologia de maneira mais precisa e detalhada, considerando as variações do
processo (MAN, 2018).

4.2 Técnicas de Redução de Potência Usadas na DCT

As estratégias de redução de potência visam tirar proveito das características


das matrizes da Transformada Discreta do Cosseno que agregam operações de soma
e deslocamento. Para essas operações, utilizam-se circuitos somadores compressores
que são eficientes na redução da dissipação de potência, de acordo com a literatura
(TONFAT, 2012). Além disso, são usadas estratégias de ​clock-gating e ​data-gating
para reduzirem ainda mais a dissipação de potência na implementação eficiente da
DCT. A seguir, são mostradas as estratégias descritas, evidenciando o potencial de
cada uma delas para a aplicação na DCT.

4.2.1 ​Somadores Compressores

Com uma ampla utilização em diferentes circuitos digitais, o circuito somador


é um dos operadores aritméticos mais básicos. Ele pode ser utilizado em diversos
35

circuitos digitais, como nos circuitos multiplicadores, utilizados em circuitos da área


de Processamento Digital de Sinais (DSP – ​Digital Signal Processing​) (SILVEIRA,
2016). Visando a compressão de vídeo dos diferentes padrões de codificação já
mencionados, a utilização de circuitos somadores que sejam eficientes se torna
essencial, a fim de determinar não apenas a qualidade final do vídeo, como a
velocidade de operação do circuito como um todo.
Todo circuito somador binário permite apenas a soma de dois valores
simultaneamente. Assim, para múltiplas entradas é necessário o emprego de
múltiplos somadores binários que exigem a propagação de ​carry​, tornando a
execução da operação aritmética extremamente lenta. A solução mais empregada
para esse problema é o uso de uma representação redundante conhecida como
Carry-Save​. Nesta representação, as múltiplas entradas de ​N bits são processadas de
maneira que, ao final do processamento, restem apenas dois valores que, então, são
somados usando um circuito somador qualquer. A vantagem do método ​Carry-Save
é o fato de não haver a propagação de ​carry durante a combinação das entradas, isto
é, o caminho crítico necessário para processar as entradas depende apenas da
quantidade de entradas e não do tamanho das mesmas.
A implementação do método ​Carry-Save exige a adoção de circuitos
compressores que combinem as entradas de tal maneira que a quantidade de saídas
seja menor que a quantidade de entradas. O somador compressor mais básico
existente é o 3-2, ilustrado na Figura 8 (a). Este compressor comprime três entradas
(​A​, ​B,​ ​C​in​) em duas saídas (​Sum​, ​Cout​). Sua estrutura interna é construída com
exclusivos ou portas ou-exclusivo (XOR) e multiplexadores (MUX) ou também pode
ser implementado usando células somadoras do tipo ​Full-Adder​.
Em (WEINBERGER, 1981) foi apresentada uma estrutura de soma chamada
4-2 Carry-Save module na qual era possível a realização da soma simultânea de
quatro números. Esta estrutura foi posteriormente aperfeiçoada por (OKLOBDZIJA,
1996). Esta estrutura contém uma combinação de células de somadores completos
em conexão truncada na qual possibilita uma rápida compressão dos produtos
parciais.
36

Figura 8: Células compressoras: (a) Compressor 3-2; (b) Compressor 4-2


FONTE: Silveira (2017).

De maneira geral, cada somador compressor 4-2 possui cinco entradas (​A​, ​B,​
C​, ​D e ​C​in​) e quatro saídas (​Carry​, ​Sum​, ​C​out),
​ conforme apresentado na Figura 8 (b).

Todas as entradas possuem o mesmo peso ​i assim como a saída ​Sum enquanto as
saídas ​Carry e ​C​out possuem peso ​i+1​. É importante conceber o compressor de
maneira que ​C​out não dependa de ​C​in para evitar que haja propagação horizontal de
carry no mesmo estágio de compressão. Analisando a tabela verdade (Tabela 1) do
compressor 4-2 pode-se estabelecer que para se obter a soma final utilizando
compressores deve-se fazer.
37

Tabela 1: Tabela verdade do circuito compressor 4-2.


FONTE: (Silveira, 2017).

Para uma realização do somador compressor ​N​-bit 4-2, apresentada na Figura


9, os termos parciais ​Sum e ​Carry devem ser recombinados utilizando um somador
com propagação de ​carry​. A etapa de recombinação é, normalmente, responsável
pelo gargalo do somador compressor pois apresenta um grande caminho crítico uma
vez que o resultado da soma do bit ​N​-1 depende da computação dos ​carries dos ​N-​ 1
bits menos significativos.

Figura 9: Somador compressor de ​N​ bits usando células compressoras 4-2


FONTE: Silveira (2017).
38

O método ​Carry-Save pode ser estendido para uma infinidade de entradas.


Assim, haja visto o tamanho das matrizes das transformadas consideradas nesse
trabalho e a quantidade de somas requeridas pelas mesmas, torna-se primordial
explorar somadores compressores de ordem mais alta. Um compressor bastante
estudado é o compressor 8-2 também que pode ser construído utilizando três
somadores compressores 4-2, como mostrado na Figura 10. O compressor 8-2 é
composto por treze entradas, sendo oito delas primárias (A, B, C, D, E, F, G e H) e
cinco entradas de ​carry ​de entrada – C​in (C​in0​, C​in1​, C​in2​, C​in3 e C​in4​). A estrutura do
compressor apresenta sete saídas, sendo duas primárias (​Sum e carry​) e cinco para
carry ​de saída - C​out (C​out0​, C​out1​, C​out2​, C​out3 e C​out4​). Assim como no compressor 4-2, o
compressor 8-2 tem todas suas entradas e a saída Sum com peso ​i enquanto as saídas
restantes possuem um peso ​j+1​.

Figura 10: Estrutura do somador compressor 8:2 usando compressores 4:2.

FONTE: Silveira (2017).

Utilizando a abordagem hierárquica adotada no projeto do compressor 8-2, é


possível expandi-la para o desenvolvimento de um somador compressor 16-2 capaz
de realizar a adição simultânea de 16 operandos. O compressor 16-2 é composto por
29 entradas, sendo dezesseis delas primárias (A, B, C, D, E, F, G, H, I, J, L, M, N, O,
P e Q) e treze entradas de ​carry ​de entrada – C​in (C​in0​, C​in1​, C​in2​, C​in3​, C​in4​, C​in5​, C​in6​,
39

C​in7​, C​in8​, C​in9​, C​in10​, C​in11 e C​in12​). A estrutura também apresenta quinze saídas, sendo
duas primárias ​(Sum e carry) ​e treze para ​carry ​de saída - C​out (C​out0​, C​out1​, C​out2​, C​out3​,
C​out4​, C​out5​, C​out6​, C​out7​, C​out8​, C​out9​, C​out10​, C​out11​ e C​out12​), conforme ilustrado na Fig. 11.

Figura 11: Estrutura do somador compressor hierárquico 16-2 usando a


combinação dos compressores 8-2 e 4-2.

FONTE: Própria

4.2.2 ​Estratégia de​ ​Data-Gating

Circuitos combinacionais chaveiam as suas saídas e os seus nós internos


sempre que as entradas são alteradas, mesmo que tais dados não são válidos ou que
em determinado momento as saídas não são consideradas em nenhum
processamento. Nestes casos, percebe-se uma dissipação de potência que não é
aproveitada e, consequentemente, representa um grande desperdício de energia,
especialmente em dispositivos de alimentados por bateria.
Para evitar essa dissipação inútil de potência, emprega-se a técnica de ​data-
gating que consiste em inserir portas lógicas do tipo “AND” nas entradas do circuito.
Cada porta lógica é conectada a um sinal de dados e a um sinal de habilitação da
passagem daquele dado para o circuito, criando uma espécie de filtro para eliminar
transições indesejadas. Como função adicional, o princípio do data-gating pode ser
empregado para isolação de operandos em circuitos que permitem o ​power shut-off
(retirada total da alimentação) de certo blocos a fim de evitar o acúmulo de cargas
40

parasitas e transições indesejadas por cargas acumuladas em nós em alta impedância.


Assume-se que as entradas do circuito estão conectadas a um barramento no qual
apresenta uma frequente mudança dos dados sendo transmitidos. Vale salientar
também que o ​data-gating deve ser empregado o mais cedo possível na estrutura
lógica de um circuito a fim de maximizar os ganhos em potência dinâmica.
Circuitos aceleradores de ​hardware que desempenham multifunções ou que
apresentam múltiplos modos de operação são particularmente beneficiados por essa
técnica. Um acelerador de ​hardware capaz de computar transformadas DCT de
múltiplos tamanho é um excelente alvo para qual esta técnica pode ser integrada.
Dado que uma DCT 32x32 pode ser composta por DCTs menores (16x16, 8x8 e
4x4), é possível criar um único ​hardware com 4 modos de operação, o que diminui
os requisitos de ​die área e potência dissipada. Nesse caso, por exemplo, quando o
circuito está computando uma DCT 4x4, as entradas que não são utilizadas podem
ser cortadas através do ​data-gating​, evitando assim que haja uma dissipação de
potência nesses nós.

4.2.3 ​Estratégia de Clock-Gating

Clock-gating é uma estratégia que visa o desligamento do circuito em


momentos em que o mesmo não está em operação. A estratégia utiliza uma lógica
adicional para o desligamento da árvore de relógio. Desta forma, não há atividade de
chaveamento desnecessária, o que leva a redução da potência dinâmica, que é
diretamente proporcional a atividade de chaveamento (CHANDRAKASAN, 1995),
como mostra a Equação ​8.
Com o uso da estratégia ​clock-gating​, os sinais de relógio dos blocos
individuais são inibidos quando os mesmos se encontram inativos, o que proporciona
que a operação lógica desses blocos seja totalmente desabilitada. `A medida que
vários blocos não sofram atividade de transição, visto que estão desabilitados, logo
há uma tendência de uma economia substancial em dissipação de potência dinâmica.
A forma mais simples e mais comum da implementação da estratégia ​clock-
gating​, é o uso de uma porta logica “AND” juntamente com um latch, onde a função
41

“AND” desabilita o relógio de forma seletiva através de um sinal de controle, como


pode ser visto na Figura 12.

Figura 12: Estratégia de ​clock-Gating


FONTE: Própria

Por ser simples e eficiente, vários trabalhos da literatura têm usado a


estratégia clock gating em projetos de circuitos visando a baixa dissipação de
potência, como em (LI, 2010), (OLIVER, 2012), (RAO, 2014). O trabalho em
(SHARID, 2016) faz uma revisão nos avanços das técnicas de redução de potência
dinâmica como ​clock-gating​.
42

4.3 Trabalhos Relacionados da Literatura


Ao longo dos anos, diversos trabalhos da literatura tem focado na
implementação em hardware de estágios das transformadas para diversas aplicações
em padrões de compressão de imagens e vídeo (GONG, 2004), (CHIPER, 2005),
(HSIAO, 2005), (AN, 2008), (WU, 2009), (​HWANGBO​, 2010), (JESKE, 2012),
(DIAS, 2013), (DO, 2014), (LIU, 2014), (MEHER, 2014), (TAMSE, 2014),
(ZHANG, 2014), (JOJOA, 2015), (JRIDI, 2015), (MASERA, 2015), (PASTUSZAK,
2015), (ANSARI, 2016), (CHARTTERJEE, 2016), (CHEN, 2016), (GOEBEL,
2016), (JIA, 2016), (KALALI, 2016), (LIANG, 2016), (REVATHI, 2016),
(ABDELRASOUL, 2017), (BONATTO, 2017), (JRIDI, 2017), (MASERA, 2017),
(GARRIDO, 2018), (SUN, 2018).
Vários dos trabalhos mencionados apresentam implementações arquiteturais
da transformada DCT para o padrão de codificação de vídeo H.265/HEVC, como em
(JESKE, 2012), (DO, 2014), (LIU, 2014), (MEHER, 2014), (TAMSE, 2014),
(ZHANG, 2014), (JOJOA, 2015), (JRIDI, 2015), (MASERA, 2015), (PASTUSZAK,
2015), (CHARTTERJEE, 2016), (GOEBEL, 2016), (JIA, 2016), (KALALI, 2016),
(LIANG, 2016), (REVATHI, 2016), (ABDELRASOUL, 2017), (BONATTO,
2017), (JRIDI, 2017), (MASERA, 2017), (SALEEMI, 2017), (GARRIDO, 2018),
(SUN, 2018). Entretanto, apenas alguns trabalhos levam em consideração projeto
completo da DCT 2-D (GONG, 2004), (CHIPER, 2005), (AN, 2008), (​HWANGBO​,
2010), (JESKE, 2012), (DIAS, 2013), (MEHER, 2014), (TAMSE, 2014),
(PASTUSZAK, 2015), (ANSARI, 2016), (CHARTTERJEE, 2016), (CHEN, 2016),
(KALALI, 2016), (LIANG, 2016), (REVATHI, 2016), (MASERA, 2017),
(SALEEMI, 2017), (GARRIDO, 2018).
Em relação a estratégia de síntese, alguns trabalhos são voltados para FPGA,
tais como em (AN, 2008), (JESKE, 2012), (DIAS, 2013), (LIU, 2014), (ZHANG,
2014), (JOJOA, 2015), (JRIDI, 2015), (ANSARI, 2016), (CHARTTERJEE, 2016),
(REVATHI, 2016), (JRIDI, 2017), (SALEEMI, 2017), (GARRIDO, 2018).
Entretanto, para projetos visando estratégias de baixa dissipaçao de potência,
soluções ASIC são as mais apropriadas. Nesse contexto, alguns trabalhos da
43

literatura tem proposto soluções ASIC para o projeto da DCT, tais como (GONG,
2004), (​HWANGBO​, 2010), (MEHER, 2014), (TAMSE, 2014), (MASERA, 2015),
(PASTUSZAK, 2015), (CHEN, 2016), (GOEBEL, 2016), (KALALI, 2016),
(LIANG, 2016), (ABDELRASOUL, 2017), (BONATTO, 2017), (MASERA, 2017),
(SUN, 2018). Entretanto, apenas os trabalhos relacionados em (AN, 2008),
(MEHER, 2014), (KALALI, 2016), (LIANG, 2016), (BONATTO, 2017), (JRIDI,
2017), (MASERA, 2017), (SUN, 2018), levam em consideração resultados de
dissipação de potência.
Apesar dos trabalhos da literatura proporem diferentes estratégias para o
projeto eficiente da DCT, a maioria desses trabalhos não considera:
● O uso de somadores compressores eficientes para as implementações da
transformada e da multi-transformada;
● A combinação de um buffer baseado em ​clock-gating com o uso de estratégia
de ​data-gating​ na parte operativa da DCT;
● A avaliação do ​throughput real requerido para a transformada e
multi-transformada, considerando as latências causadas pelas transições do
software da aplicação usando vídeo real com resolução 1080p;
● O uso de entradas reais de vídeo para a análise de potência para o aumento da
precisão dos resultados obtidos.
Uma análise precisa da atividade de transição precisa levar em conta o
desenvolvimento de projetos de VLSI visando soluções de baixa dissipação de
potência. Portanto, é obrigatório que o ambiente de teste seja o mais próximo
possível de aplicações do mundo real para uma avaliação precisa, ou seja, o ambiente
deve levar em conta resultados realistas do comportamento da aplicação alvo. Uma
análise automática que não demonstre o comportamento da atividade de transição ao
longo de todas as redes de interconexão não pode provar a economia de energia que é
proveniente de todas os técnicas eficientes em redução de potência, que são
direcionadas a redução da atividade de chaveamento. A maioria dos trabalhos
relacionados da literatura, que reportam resultados de potência para arquiteturas
ASIC da DCT 2-D para o padrão de codificação de vídeo H.265/HEVC, não
44

apresentam resultados de dissipação de potência realista (devido ao fato de não


apresentarem a metodologia empregada) e também não consideram os seguintes
requerimentos mínimos:
● A frequência de operação mínima requerida para o ​throughput alvo,
considerando o impacto da latência no chaveamento de toda a transformada;
● Vetores reais de entrada extraídos da codificação de vídeo usando um arquivo
de estímulos realista;
● Transições realísticas para os diferentes tamanhos de transformadas,
fornecidas por um codificador de vídeo HEVC;
● Um modo de estimativa de potência que considere as tabelas de capacitância;
● Simulação no nível ​netlist considerando o arquivo de atrasos característicos
(SDF).
O trabalho em (BONATTO, 2017) é o único que promete uma arquitetura
DCT exata de vários tamanhos e menciona o uso de uma metodologia para obtenção
dos resultados de potência. Entretanto, o trabalho mencionado não mostra o ambiente
utilizado para os resultados de potência. Além disso, o trabalho não sugere
otimizações como as que estamos propondo neste trabalho. Pelo nosso entendimento,
nenhum dos trabalhos encontrados na literatura propõe a combinação de somadores
compressores, ​data-gating e ​clock-gating para a implementação de uma
transformada DCT 2-D inteira, como estamos propondo nesta dissertação de
mestrado. A Tabela 2 resume as principais contribuições dos trabalhos da literatura,
bem como as nossas estratégias propostas para o projeto eficiente da transformada
DCT 2-D.
45

Tabela 2: Resumo comparativo dos trabalhos presentes na literatura.


Sumário dos Trabalhos Relacionados.
Ref. A B C D E F G H I J K L M N O P Q R S T U

(ZHANG, 2014) FPGA ✓ − ✓ ✓ − 4 − − − − − 1-D − − − − − − − −

(AN, 2008) FPGA − − ✓ ✓ ✓ 4 ✓ − − − − 2-D − − − − − − − −

(GONG, 2004) ASIC − − ✓ ✓ − 4 ✓ − − − − 2-D − − − − − − − −

(CHIPER, 2005) − − − − − − 4 ✓ − − − − 2-D − − − − − − − −

(REVATHI, 2016) FPGA ✓ ✓ ✓ − − 8 ✓ − − − − 2-D − − − − − − − −(

SALLEMI, 2017) FPGA ✓ − ✓ ✓ − 8 ✓ − − − − 2-D − − − − − − − −

(WU, 2009) − − − − − − 8 ✓ − − − − 1-D − − − − − − − −

(JIA, 2016) ASIC ✓ ✓ ✓ ✓ − 4/8 ✓ − − − − 1-D − − − − − − − −

(CHATTERJEE, 2016) FPGA ✓ ✓ ✓ ✓ − 4/8 ✓ − − − − 2-D − − − − − − − −

(HWANGBO, 2010) ASIC − − ✓ ✓ − 4/8 ✓ − − − − 2-D − − − − − − − −

(CHEN, 2016) ASIC − ✓ ✓ ✓ − 4/8 ✓ − − − − 2-D − − − − − − − −

(JESKE, 2012) FPGA ✓ ✓ ✓ ✓ − 16 ✓ − − − − 1-D − − − − − − − −

(HSIAO, 2005) − − − − − − 8/16 ✓ − − − − 1-D − − − − − − − −

(SUN, 2018) ASIC ✓ ✓ ✓ ✓ ✓ 32 ✓ − − − − 1-D − − − − − − − −

(MASERA, 2017) ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 2-D − ✓ − ✓ − − − −

(LIANG, 2016) ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(LIU, 2014) FPGA ✓ ✓ ✓ − − 4/8/16/32 ✓ − − − − 1-D − − − − − − − −

(JOJOA, 2015) FPGA ✓ ✓ ✓ ✓ − 4/8/16/32 ✓ − − − − 1-D − − − − − − − −

(JRIDI, 2015) FPGA ✓ ✓ ✓ ✓ − 4/8/16/32 − − − − − 1-D − − − − − − − −

(JRIDI, 2017) FPGA ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 1-D − − − − − − − −

(DIAS, 2013) FPGA − − ✓ ✓ − 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(ANSARI, 2016) FPGA ✓ ✓ ✓ ✓ − 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(GARRIDO, 2018) FPGA ✓ − ✓ ✓ − 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(MASERA, 2015) ASIC ✓ ✓ − − − 4/8/16/32 − − − − − 1-D − − − − − − − −

(GOEBEL, 2016) ASIC ✓ − ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 1-D − − − − − − − −

(RENDA, 2017) ASIC − ✓ ✓ ✓ ✓ 4/8/16/32 − − − − − 1-D − − − − − − − −

(ABDELRASOUL, 2017) ASIC ✓ ✓ ✓ ✓ − 4/8/16/32 − − − − − 1-D − − − − − − − −

(BONATTO, 2017) ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − ✓ 1-D − − − − − − − −

(DO, 2014) − ✓ − − − − 4/8/16/32 ✓ − − − − 1-D − − − − − − − −

(PASTUSZAK, 2015) ASIC ✓ − ✓ ✓ − 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(TAMSE, 2014) ASIC ✓ ✓ ✓ − − 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(MEHER, 2014) ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

(KALALI, 2016) ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ − − − − 2-D − − − − − − − −

Proposta ASIC ✓ ✓ ✓ ✓ ✓ 4/8/16/32 ✓ ✓ ✓ ✓ ✓ 2-D ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓

(A) Dispositivo alvo para os resultados, (B) Voltado para o padrão H.265/HEVC, (C) Sem
multiplicador (MCM), (D) Análise de área do circuito, (E) Atraso dos caminhos críticos, (F)
Análise de dissipação de potência, (G) Suporte para diferentes tamanhos de transformadas, (H)
Sem perda de qualidade, (I) Análise realista do ​throughput considerando as latências, (J) Uso de
somadores compressores eficientes de tamanhos maiores (até 16-2) (K) ​Buffers d​ e transposição
com estratégia de ​clock gating​, (L) Parte operativa com estratégia de ​data-gating​, (M)
Implementação da DCT 2-D completa, (N) Uso de vetores de teste reais, (O) Simulaçoes no
nível ​netlist,​ (P) Simulaç​ã​o com arquivo de atrasos .SDF, (Q) Uso de arquivos de estímulos
.VCD, .TCF ou .SAIF, (R) Uso de arquivo de tabelas de capacitâncias, (S) Análise p​ó​s-síntese ou
do ​layout do circuito, (T) Uso de bibliotecas de processo industrial, (U) Consideração de
transições realistas para os diferentes tamanhos de transformadas.
46

4.4 Resumo do Capítulo

Este capítulo apresentou as principais estratégias de redução de dissipação de


potência a serem empregadas na DCT 2-D. Foram apresentados os conceitos
relativos aos somadores compressores, bem como as estratégias de ​clock-gating e
data-gating​. Também foram apresentados os principais trabalhos da literatura que
levam em conta o projeto de arquitetura DCT para o padrão de codificação de vídeo
HEVC. O próximo capítulo apresenta os resultados obtidos com as estratégias
utilizadas para o projeto eficiente da DCT 2-D.
47

5 ARQUITETURA DE BAIXA DISSIPAÇÃO DE POTÊNCIA PARA A DCT


2-D DO PADRÃO H.265/HEVC COMBINANDO SOMADORES
COMPRESSORES COM ​DATA-GATING​ E ​CLOCK-GATING

Neste trabalho apresentam-se inicialmente os resultados de análises de DCT


de 8 pontos utilizando somadores compressores. As transformadas foram descritas
em Verilog HDL (​Hardware Description Language​) com o mesmo nível de
paralelismo, processando oito coeficientes por ciclo. A síntese foi realizada para
ASIC na ferramenta ​Cadence RTL Compiler tool usando a biblioteca de células
padrão ST de 65nm (ST, 2017) a uma fonte de tensão de 1,0 V e um alvo de
frequência de 100 MHz. Esta frequência alvo é suficiente para processar 4k (3840 ×
2160p) @ 30 quadros por segundo, para uma taxa de sub-amostragem 4: 2: 0.
Foram utilizados os coeficientes a,b,c,d,e,f,g do padrão H.265/HEVC. A
síntese foi realizada de maneira realística, utilizando atraso (.SDF) e entradas (.VCD)
retiradas do software de referência HM 16.7.

5.1 Experimento da Transformada DCT de 8 Pontos com Somadores Compressores

Na Figura 13, tem-se a DCT8 desenvolvida. Neste caso, otimizam-se 12


somadores substituindo por 4 compressores 4-2.

Figura 13: Estrutura da DCT8 com somadores compressores 4-2.

FONTE: Própria.
48

Na Figura 17, a área sinalizada em amarelo representa a geração das entradas


P e N, sendo que P = a + b e N = a - b. A área vermelha é a parte a ser otimizada
com o uso de compressores (do lado direito em vermelho na figura). A Tabela 3
mostra os resultados de área e potência para a DCT8 desenvolvida.

Tabela 3: Resultados da Utilização de Somadores Compressores na DCT de 8


pontos: Área do Circuito e Dissipação de Potência à uma frequência de 200 MHz.
Dissipação de Potência à 200 MHz

Estática Dinâmica Total Redução

Vídeo Arquitetura (µ​W​) (µ​W​) (µ​W​) (%)


DCT 8

Basketball (+) 27.09 4720.92 4748.02 -


Drive
(compressores) 25.65 4130.71 4156.37 12.47%

(+) 27.10 4803.65 4830.75 -


Cactus
(compressores) 25.65 4162.70 4188.36 13.29%

(+) 27.10 4747.67 4774.77 -


Tennis
(compressores) 25.65 4137.80 4163.46 12.80%

(+) 27.12 4677.73 4704.84 -


ParkScene
(compressores) 25.65 4138.94 4164.60 11.48%

(+) 27.09 4185.61 4212.70 -


BQTerrace
(compressores) 25.65 3982.60 4008.26 4.84%

(+) 27.10 4562.21 4589.32 -


Kimono
(compressores) 25.66 4105.68 4131.34 9.98%

Observam-se na Tabela 3, os ganhos em área e potência na DCT8


proporcionados pelo uso de compressores. De fato, como os somadores compressores
apresentam um reduzido caminho crítico, isto contribui para a redução de potência
em relação ao uso de somador ‘+’ da ferramenta da Cadence. Observa-se que isso é
verdade, principalmente em termos da potência dinâmica, que tem a maior parcela de
dissipação de potência na DCT8.
49

Os resultados apresentados na Tabela 3 são promissores em relação ao uso de


outros somadores compressores em outras DCTs dos diferentes padrões de vídeo
atuais. Desta forma, as próximas etapas do trabalho deverão aprofundar ainda mais o
uso de somadores compressores nas DCTs dos padrões de vídeo.

5.2 Multi-Transformada DCT para o H.265/HEVC Combinando ​Data-Gating​,


Somadores Compressores e ​Clock-Gating

Esta seção explora otimizações low-power na multi-transformada DCT


completa, de tamanhos 4x4, 8x8, 16x16 e 32x32.
Em circuitos digitais, a multiplicação não é apenas uma operação
computacionalmente intensiva, mas também demanda hardware excessivo, o que
demanda maior área do circuito e maior dissipação de energia. A DCT do padrão
H.265/ HEVC utiliza coeficientes constantes em sua matriz, e, portanto, as
multiplicações podem ser otimizadas. Neste caso, as operações de multiplicação por
constantes podem ser substituídas por operações mais simples de somas e
deslocamentos. Essas operações são denominadas MCM (​Multiple Constant
Multiplications​). Neste trabalho, exploram-se cinco algoritmos MCM: Hcub
(VONORENKO, 2007), RAG-n (DEMPSTER, 1995), BHM (BULL, 1991), um
algoritmo apresentado em (DO, 2014) e um algoritmo apresentado em (MEHER,
2014). Além disso, a ferramenta de síntese também fornece sua implementação para
múltiplas multiplicações constantes. Os coeficientes utilizados nas DCTs de
diferentes tamanhos são os seguintes:

a=64; b=83; c=36; d=89; e=75; f=50; g=18; h=90; i=87; j=80; k=70; l=57;
m=43; n=25; o=9 ; p=90; q=90; r=88; s=85; t=82; u=78; v=73; w=67; x=61;
y=54; z=46; A=38; B=31; C=22; D=13; E=4 ;

Os coeficientes utilizados na multiplicação para cada tamanho de DCT são


diferentes, mas os coeficientes de transformada de tamanho mais baixo podem ser
reutilizados nas transformadas de maior tamanho. Como há quatro tamanhos de
50

transformada (4x4, 8x8, 16x16, 32x32), são necessários quatro blocos MCM, ou seja,
um para cada tamanho de transformada. Cada bloco MCM tem multiplicações de
constantes N/2, sendo duas constantes para o MCM da transformada de 4 pontos
(denominado MCM 4); quatro constantes para o MCM da transformda de 8 pontos
(MCM 8); oito constantes para o MCM da transformada de 16 pontos (MCM 16); e
dezasseis constantes para o MCM da transformada de 32 pontos (MCM 32). A
Figura 9 mostra as constantes associadas a cada tamanho de MCM.
Juntamente com os cinco algoritmos MCM usados nas comparações, também
propõe-se uma solução para o MCM 32. Ao analisar as constantes usadas
especificamente para o padrão H.265/HEVC, desenvolve-se um módulo específico
de multiplicação por constantes, que explora totalmente o compartilhamento de
recursos de hardware (compartilham-se as constantes o máximo possível). A Figura
14 mostra a solução proposta nesta dissertação para o MCM 32.

Figura 14: Solução proposta para o MCM 32.


FONTE: Própria

Dois aspectos importantes foram levados em consideração ao desenvolver a


solução MCM 32 proposta. Primeiro, a reutilização dos coeficientes existentes o
máximo possível permite que implementação proposta tenha uma área de circuito
51

reduzida. Como pode ser observado na figura, coeficientes como x9 são usados até
oito vezes. O segundo ponto que deve ser levado em consideração é um número
reduzido de somadores no caminho crítico. Para tal, a solução proposta combina o
uso de somadores 3-2. A Tabela 4 mostra os resultados de potência para cada uma
das soluções MCM. Para cada caso, a melhor solução está destacada em verde.

Tabela 4: Resultados de comparação de cada MCM normalizados pela solução da


ferramenta de síntese em comparação com a literatura e o MCM 32 proposto.

Resultados para ASIC Normalizados


Área do Potência Potência Potência
Circuito Estática Dinâmica Total
Ferramenta 1.00 1.00 1.00 1.00
Hcub 1.25 1.02 1.43 1.43
BHM 1.14 0.92 1.08 1.08
MCM 4
RAG-n 1.09 0.93 1.09 1.09
(DO, 2014) 0.91 0.86 0.94 0.94
(MEHER, 2014) 0.91 0.86 0.94 0.94
Ferramenta 1.00 1.00 1.00 1.00
Hcub 0.88 0.86 1.14 1.14
BHM 0.82 0.89 1.14 1.14
MCM 8
RAG-n 0.88 0.86 1.14 1.14
(DO, 2014) 0.90 0.90 1.15 1.15
(MEHER, 2014) 0.84 0.89 1.10 1.10
Ferramenta 1.00 1.00 1.00 1.00
Hcub 0.91 0.91 1.31 1.31
BHM 0.91 0.88 1.41 1.41
MCM 16
RAG-n 0.91 0.91 1.31 1.31
(DO, 2014) 0.96 0.93 1.36 1.36
(MEHER, 2014) 0.38 0.42 0.83 0.83
Ferramenta 1.00 1.00 1.00 1.00
Hcub 1.14 1.00 1.28 1.28
BHM 0.89 0.88 1.13 1.13
MCM 32 RAG-n 1.14 1.00 1.28 1.28
(DO, 2014) 0.80 0.86 1.02 1.02
(MEHER, 2014) 0.78 0.77 1.13 1.13
Este Trabalho 0.76 0.76 0.97 0.97
MCM: Multiplicação por Multiplas Constantes

Um ​buffer de transposição (TB - ​Transposition Buffer​) organiza as operações


das matrizes de forma correta. Esse ​buffer funciona da seguinte maneira: primeiro,
considere que o TB foi preenchido em linha e, conseqüentemente, a leitura deve ser
em coluna. Assim que os primeiros dados são lidos, todo o ​buffer desloca seu
52

conteúdo um lugar para a direita, liberando a coluna mais à esquerda, que agora pode
receber a saída da primeira transformada. Quando o ​buffer é preenchido novamente,
o mecanismo de acesso a dados é alterado para linha e o multiplexador (MUX) de
saída seleciona o conteúdo da última linha e a informação proveniente de xn é
armazenada na primeira linha. Esse intercâmbio ocorre a cada quatro ciclos de
relógio, desde que o buffer esteja em uso. A Figura 15 mostra um exemplo do ​buffer
de transposição.

Figura 15: ​Buffer​ otimizado com ​clock-gating​ e ​by-pass​ proposto para a


multi-transformada, exemplo de funcionamento de 8x8 e 4x4.

FONTE: Própria

Foi realizada uma análise de ​throughput para estimar a frequência necessária


para que a arquitetura implementada funcione em tempo real. Para tal, conta-se o
número de chamadas realizadas pelo software do codificador x265 em cada um dos
tamanhos de DCT (4, 8, 16 a 32). Essa análise foi realizada para sequências de vídeo
Full HD (1080p) e Ultra HD (2160p), considerando uma taxa de transferência de 30
53

quadros por segundo, usando QPs (Parâmetros de Quantização) de 22, 27, 32 e 37,
conforme indicado pelas ​Common Test Conditions (CTCs). O codificador foi
executado na predefinição padrão (média), portanto, não foram necessárias
otimizações para atingir uma taxa de transferência em tempo real.
Ao usar arquiteturas multi-transformadas, é necessário considerar que o
codificador não calcula todos os blocos possíveis de um tamanho específico antes de
iniciar o cálculo para os próximos tamanhos de transformadas, ou seja, codificadores
reais calculam transformadas de forma alternada. Assim, transições entre os
diferentes tamanhos de transformadas irão ocorrer. Essas transições afetarão a
arquitetura devido à latência exigida pelas transições. A arquitetura proposta também
foi projetada com base na minimização dos impactos da latência que poderiam
ocorrer. No entanto, algumas paradas de ​pipeline ainda são necessárias para as
transições entre alguns tamanhos. Portanto, para uma análise de taxa de transferência
mais realista, precisa-se considerar a probabilidade de transições entre cada tamanho
de transformada em um codificador real.
Com as considerações acima, além de obter o número de chamadas normais
de transformada, obtém-se o número de transições entre cada uma das transformadas
do software do codificador x265. Cada um desses valores foi dividido pela soma das
transições para seu tamanho específico para obter a probabilidade de transição. Esses
valores são apresentados na Figura 15, para a resolução de 1080p.

Figura 16: Resultados de probabilidades médias de transição de/para cada tamanho


de bloco.

FONTE: Própria
54

Utilizando o ​buffer de transposição proposto neste trabalho, ao realizar a


transição de uma transformada de um tamanho maior para um tamanho menor, não é
necessária latência. No entanto, no caso oposto, tem-se que esperar um número de
ciclos equivalente à diferença entre os dois tamanhos. Com as probabilidades e o
número de chamadas de transformada para cada tamanho, pode-se estimar
realisticamente o número de ciclos necessários para que a arquitetura funcione. A
arquitetura proposta em (KALALI, 2016) não permite leituras e gravações
simultâneas, portanto nesse caso a diferença é que cada transição custa um número
de ciclos equivalente à transformada que está sendo executada. A Tabela 5 mostra o
número de ciclos necessários para cada tamanho de transformada de forma isolada
bem como na multi-transformada considerando a latência de troca de tamanho de
bloco. A multi-transformada proposta possui uma otimização no buffer de
transposição em relação ao trabalho de (KALALI,2016). Esta otimização permite
uma redução de até 36% no número total de ciclos necessários para atingir a
resolução FullHD 1080p. A redução no número de ciclos é proporcional à redução de
frequência, que por sua vez, também é proporcional à economia na dissipação de
potência seguindo a Equação 8.

Tabela 5: Análise de resultados de ​throughput​ considerando a latência de transição


para cada tamanho de transformada, FONTE: Própria.
Nº de chamadas sem multi-transformada (​×​10​6​) Nº de ciclos para a Nº de ciclos para a
4​×​4 8​×​8 16​×​16 32​×​32 multi-transformada multi-transformada*
Proposta (KALALI, 2016)
Resolução Vídeo MC PC MC PC MC PC MC PC MC PC MC PC
BBDrive 6.15 16.85 7.66 20.87 10.94 15.14 7.15 6.52 39.75 75.24 63.82 118.76
BQTerrace 3.56 22.63 3.79 25.52 7.89 13.04 6.05 4.12 26.12 82.87 42.58 130.6
Cactus 5.32 20.04 6.70 24.82 9.71 15.55 6.47 5.78 35.05 84.46 56.40 132.3
1080p
Kimono 8.31 15.66 11.17 20.85 13.83 16.91 8.49 7.94 52.77 78.08 83.59 122.71
ParkScene 4.61 12.59 5.58 16.12 9.01 13.64 6.25 6.47 31.47 61.90 50.89 97.64
Tennis 7.42 13.94 10.01 18.74 12.62 14.45 7.66 6.24 47.52 67.89 75.41 106.77

MC: Melhor Caso, PC: Pior Caso, entre QPs 22,27,32,37;


*Chamadas das multi-transformada incluem as latências
das arquiteturas causadas pelas transições.

A Figura 17 mostra a arquitetura de ​hardware 1-D final proposta utilizando


circuitos somadores compressores e ​data-gating para reduzir a dissipação de
55

potência. A arquitetura proposta é composta primeiro por butterflies, blocos MCM,


finalizando com somadores compressores.

Ao invés de uma arquitetura de hardware dedicada para cada tamanho de


DCT (4, 8, 16, 32), apresenta-se um projeto de transformada capaz de processar
qualquer um dos tamanhos de transformada suportadas no padrão H.265/HEVC. Esta
abordagem multi-transformada permite uma significativa economia de área de
circuito, bem como economia de potência dissipada quando comparado a se ter uma
transformada de ​hardware​ dedicada para cada tamanho.

A maioria das otimizações possíveis vem do compartilhamento de recursos,


pois uma transformada maior pode ser projetada utilizando tamanhos menores.
Portanto, a multi-transformada é essencialmente uma arquitetura de tamanho 32x32
com roteamento adicional para permitir a execução de transformadas de menor
tamanho. Para realizar uma transformada 4x4, várias partes do circuito podem ser
desativadas, e apenas as partes necessárias da transformada 32x32, para executar a
transformada 4x4, precisam ser alimentadas. Este esquema se repete para outros
tamanhos de transformadas.
A estrutura do tipo borboleta é usada em todo o projeto para permitir a
reutilização intermediária dos dados disponíveis ao executar transformadas de
tamanho menor. No primeiro estágio (primeira coluna na Figura 17), agrupamentos
de duas entradas são adicionados e subtraídos na forma de x​i ± x​33-i​. Como as
entradas mais baixas são usadas na transformada de menor tamanho, essa
adição/subtração gradual e progressiva dos operandos permite a reutilização em todo
o projeto.
Para cada estágio subseqüente, os operandos ​N​/2 inferiores são usados ​no
módulo MCM, enquanto a outra metade é usada para as borboletas restantes
necessárias para as transformadas de menor tamanho. Na segunda coluna na Figura
17, a metade inferior dos operandos é usada no módulo MCM 32 para computar
parte da transformada 32x32, enquanto os operandos da metade superior são usados
​em outra rodada de borboletas, cujas saídas são usadas no próximo estágio. Os
56

estágios seguintes repetem a divisão ​N​/2 para as operações MCM e borboleta, até
restar apenas a transformada 4x4 .
Supondo que se quer executar uma transformada 8x8, o início do processo
seria com entradas de dados de x​9 até x​32​, o que reduz bastante a atividade de
chaveamento em todo o circuito. Em seguida, as linhas e colunas de 9 a 32 do ​buffer
de transposição seriam bloqueadas pelo relógio, reduzindo efetivamente a dissipação
de energia. Usando essas técnicas, combinadas com o projeto proposto, a arquitetura
de múltiplas transformadas produziria os resultados para a transformada 8x8. Para
mudar para outro tamanho de transformada, tudo o que é necessário para mudar são
sinais de habilitação internos que controlam a operação de multi-transformada.
A extensa reutilização de recursos de ​hardware​, combinada com relógio e
data-gating​, permite que o projeto proposto da multi-transformada opere em
qualquer tamanho de transformada e mude para qualquer tamanho de transformada
suportada em tempo real durante a execução do bloco de transformada dentro do
padrão de codificação de vídeo H.265/ HEVC. A Tabela 6 mostra os resultados de
potência para as diferentes versões da multi-transformada DCT, para diferentes
videos de entrada. A versão V0 representa a versão com o somador da ferramenta de
síntese, a versão V1 (V1-DG) representa a DCT com ​data-gating​, a versão V2
(V2-DG+SC) representa a DCT com ​data-gating e somadores compressores e,
finalmente a versão V3 (V3 - DG+SC+CG) representa a DCT com ​data-gating​,
somadores compressores e ​clock-gating​. Como pode ser observado, o simples uso de
data-gating faz com que a DCT tenha uma redução considerável de potência.
Entretanto, a combinação de ​data-gating com somadores compressores e com
clock-gating, faz com que haja ainda mais reduções de potência. Isso se deve
principalmente devido a redução de potência dinâmica habilitada pelas técnicas
utilizadas. Particularmente, a versão V3 que envolve a combinação de todas as
estratégias (​data-gating + somadores compressores + ​clock-gating​) agrega reduções
de potência bem consideráveis, sendo a versão preferível para ser utilizada no padrão
de codificação de vídeo H.265/HEVC.
57

Figura 17: Estrutura da multi-transformada com somadores compressores e MCM.

FONTE: Própria.
58

Tabela 6: Resultados de dissipação de potência da implementação da


multi-transformada DCT com as técnicas propostas.

Potência (µW)
Vídeo Versões
Estática Dinâmica Total Redução
V0 693.7 104155.6 104849.2 -
V1 - DG 677.2 62944.2 63621.4 39.3%
Basketball Drive
V2 - DG + SC 1204.2 50165.6 51369.7 51.0%
V3 - DG + SC + CG 1209.9 30570.2 31780.1 69.7%
V0 693.2 89481.0 90174.2 -
V1 - DG 676.3 56155.3 56831.6 37.0%
BQTerrace
V2 - DG + SC 1203.1 43778.0 44981.1 50.1%

V3 - DG + SC + CG 1209.0 24786.2 25995.2 71.2%

V0 693.7 106645.5 107339.2 -


V1 - DG 677.2 63558.3 64235.5 40.2%
Cactus
V2 - DG + SC 1204.2 50807.1 52011.3 51.5%
V3 - DG + SC + CG 1210.0 31080.2 32290.2 69.9%
V0 693.7 102064.5 102758.2 -
V1 - DG 677.3 62202.7 62879.9 38.8%
ParkScene
V2 - DG + SC 1204.3 49448.2 50652.5 50.7%
V3 - DG + SC + CG 1210.1 29952.4 31162.5 69.7%
V0 693.7 105362.6 106056.4 -
V1 - DG 677.3 63193.1 63870.3 39.8%
Kimono1
V2 - DG + SC 1204.3 50596.2 51800.5 51.2%
V3 - DG + SC + CG 1210.1 30982.8 32192.8 69.6%
V0 693.7 105040.0 105733.7 -
V1 - DG 677.2 63390.4 64067.6 39.4%
Tennis
V2 - DG + SC 1204.2 50618.3 51822.5 51.0%

V3 - DG + SC + CG 1210.0 31011.1 32221.0 69.5%

V0 693.6 102124.9 102818.5 -


V1 - DG 677.1 61907.3 62584.4 39.1%
Média
V2 - DG + SC 1204.0 49235.6 50439.6 50.9%
V3 - DG + SC + CG 1209.8 29730.5 30940.3 69.9%
59

5.3 Resumo do Capítulo

Este capítulo apresentou os principais resultados obtidos no âmbito desta


dissertação de mestrado. Inicialmente, foram mostrados resultados de área e potência
para uma DCT de 8 pontos. Após, foram mostradas estratégias MCM para a
implementação de uma multi-transformada de tamanhos 4x4, 8x8, 16x16 e 32x32.
Mostrou-se que, para a DCT 32x32, a estratégia MCM proposta nesta dissertação foi
a mais eficiente com menos dissipação de potência. Também, foi realizada uma
análise de resultados de ​throughput considerando a latência de transição para cada
tamanho de transformada. Finalmente, mostraram-se os resultados de uma
multi-transformada proposta com técnicas de ​data-gating​, ​clock-gating e somadores
compressores. A seguir são apresentadas as principais conclusões desta dissertação,
bem como ideias para trabalhos futuros.
60

6 CONCLUSÕES E TRABALHOS FUTUROS

Este trabalho apresentou o projeto de Transformadas Discretas do Cosseno


(DCT) eficientes para o padrão de codificação de vídeo H.265/HEVC. Inicialmente
foram mostradas as principais características do padrão de codificação de vídeo alvo
deste trabalho: H.265/HEVC. Esse estudo inicial serviu de embasamento para o
entendimento do papel das transformadas no padrão de codificação de vídeo.
Foram abordados tópicos relativos a metodologia de avaliação de potência,
bem como as técnicas de redução de potência usadas na DCT. Foi realizado um
grande estudo da literatura para a identificação dos trabalhos relacionando que levam
em conta o projeto das transformadas DCT para o padrão de codificação de vídeo
HEVC. Foi possível verificar que nem todos os trabalhos da literatura implementam
a transformada DCT 2-D completa. Além disso, nem todos os trabalhos são voltados
para a implementação ASIC, o que inviabiliza uma estimativa de potência
consistente. Além disso, nem todos os trabalhos voltados para ASIC apresentam
resultados de potência, e os que apresentam, não mostram a metodologia usada para
uma estimativa realista da potência, como estamos propondo nesta dissertação. O
mais importante de tudo e que nenhum trabalho da literatura combina estratégias do
uso de somadores compressores eficientes com o uso das estratégias de ​clock-gating
e ​data-gating para a redução da atividade de chaveamento, e, consequentemente, a
dissipação de potência dinâmica
A estrutura interna da DCT possibilita o uso de somadores compressores
eficientes. Inicialmente foram utilizados somadores compressores 4-2 em uma DCT
de 8 pontos. Os resultados mostraram a eficiência do uso do compressor na DCT,
visto que o compressor tem um reduzido caminho crítico e efetua a soma simultânea
de 4 operandos com o uso apenas de portas XOR e MUX, o que é benéfico para a
redução de dissipação de potência.
Foi implementada uma multi-transformada DCT com tamanhos 4, 8, 16 e 32.
Como há quatro tamanhos de transformada (4, 8, 16, 32), foi utilizada a técnica
MCM (​Multiple Constant Multiplication​) para encontrar a melhor árvore de
61

deslocamentos e somas para cada tamanho de transformada. Para cada tamanho,


foram utilizadas estratégias da literatura, bem como a nossa estratégia proposta. Foi
verificado que para a transformada de 32 pontos, a nossa estratégia se mostrou mais
eficiente, com menor resultado de potência em relação às outras estratégias
utilizadas. Nass MCMs foram usados somadores compressores 4-2, 8-2 e 16-2.
Foi realizada uma análise de ​throughput foi realizada para estimar a
frequência necessária para que a arquitetura implementada funcione em tempo real.
Para tal, contou-se o número de chamadas realizadas pelo software codificador x265
em cada um dos tamanhos DCT, variando de 4x4, 8x8, 16x16 e 32x32. Essa análise
foi realizada para sequências de vídeo Full HD (1080p) e Ultra HD (2160p),
considerando um  ​taxa de transferência de 30 quadros por segundo. Assim,
estabeleceu-se o número de ciclos de relógio requeridos para a multi-transformada
operar em tempo real.
A DCT foi implementada com as estratégias de redução de potência
(​data-gating​, somadores compressores e ​clock-gating​). Os resultados mostraram que,
o simples uso de ​data-gating já habilita uma significativa redução de potência, em
relação a DCT com o uso do somador (+) da ferramenta comercial. Entretanto, a
combinação de ​data-gating,​ somadores compressores e ​clock-gating apresentou
reduções de potência substancial para diferentes sequências de vídeo, sendo assim a
alternativa preferida para o uso no padrão de codificação de vídeo H.265/HEVC.

6.1 Trabalhos Futuros

De acordo com os resultados obtidos nessa dissertação, abre-se uma frente de


possibilidades de novos trabalhos futuros visando o projeto da Transformada
Discreta do Cosseno com baixa dissipação de potência. Desta forma, os novos
desafios devem levar em conta as seguintes estratégias:

● Uso de uma estratégia ainda mais eficiente para a técnica MCM da DCT de
32 pontos. Embora a nossa estratégia tenha sido a mais eficiente para a DCT
62

de 32 pontos, comprando-se com outras estratégias da literatura, pode-se usar


algoritmos eficientes para buscar soluções ótimas para o MCM, tais como a
apresentada em (AKSOY, 2011), (AKSOY, 2012). O uso desses algoritmos
nas MCMs de 8 e 16 pontos podem possibilitar novos ganhos nas DCTs.
● Uso da codificação Híbrida na Multi-Transformada. Em (COSTA, 2002) foi
proposta uma nova codificação para operandos, que combina a eficiência de
propagação de ​carry da codificação binária com a eficiência da redução da
atividade de chaveamento da codificação Gray. Esta codificação (chamada de
codificação Híbrida) deverá ser testada na implementação da
multi-transformada, pois visa a redução da atividade de chaveamento dos
operadores aritméticos.
● Teste da DCT otimizada no padrão de codificação de vídeo H.265/HEVC. A
estratégia consistirá em verificar dinamicamente o impacto do uso da DCT
otimizada dentro do padrão de codificação de vídeo e estabelecer um
relacionamento entre a potência dissipada e a qualidade de compressão de
vídeo.

6.2 Publicação no Tema da Dissertação

De acordo com os resultados obtidos ao longo da dissertação, foi possível publicar


um trabalho científico em uma conferência internacional qualificada com a seguinte
referência bibliográfica:

Luis F. Sequeira, Gustavo Santana, Guilherme Paim, Leandro Rocha, Brunno Abreu,
Eduardo Costa, Sergio Bampi. ​Low-Power HEVC 8-point 2-D Discrete Cosine
Transform Hardware Using Adder Compressors. ​2018 16th IEEE International
New Circuits and Systems Conference (NEWCAS). June 2018, Montreal, pp.
309-312.
63

7. REFERÊNCIAS BIBLIOGRÁFICAS

ABDELRASOUL, M., SAYDE, M., and GOULART, V. Real-time unified


architecture for forward/inverse discrete cosine transform in high efficiency video
coding. ​IET Circuits, Devices Systems​, vol. 11, no. 4, pp. 381–387, 2017.

AGOSTINI, Luciano Volcan. ​Desenvolvimento de Arquiteturas de Alto


Desempenho Dedicadas à Compressão de Vídeo Segundo o Padrão H. 264/AVC​.
Tese de Doutorado. PPGC, UFRGS, Porto Alegre, 2007.

AKSOY, L., COSTA, E., FLORES, P., MONTEIRO, J. Finding the Optimal
Tradeoff Between Area and Delay in Multiple Constant Multiplications.
Microprocessors and Microsystems​. Vol. 35. 2011. pp. 729-741.

AKSOY, L., COSTA, E., FLORES, P., MONTEIRO, J. Optimization Algorithms for
the Multiplierless Realization of Linear Transforms. ​ACM Transactions on Design
Automation of Electronic Systems​. Vol. 17. 2012. pp. 1-27.

ALCAIM, Abraham. ​Processamento de voz e imagem​. Rio de Janeiro, 1999.

AN, S., and WANG, C. Recursive algorithm, architectures and FPGA


implementation of the two-dimensional discrete cosine transform. ​IET Image
Processing​, vol. 2, no. 6, pp. 286–294, December 2008.

ANSARI, A., MANSOURI, A., and AHAITOUF, A. ​An efficient VLSI


architecture design for integer DCT in HEVC standard​. In: 2016 IEEE/ACS 13th
International Conference of Computer Systems and Applications (AICCSA), Nov
2016, pp. 1–5.

BONATTO, L., RAMOS, F., ZATT, B., PORTO, M. and BAMPI, S. ​Low-power
multi-size HEVC DCT architecture proposal for QFHD video processing​. In:
2017 30th Symposium on Integrated Circuits and Systems Design (SBCCI), Aug
2017, pp. 41–46.

BOSSEN, F., BROSS, B., SUHRING, K., FLYNN, D. HEVC Complexity and
Implementation Analysis, ​IEEE Transactions on Circuits and Systems for Video
Technology​, vol. 22, No. 12, pp. 1685-1696, December 2012.

BULL, D., HORROCKS, D. Primitive Operator Digital Filters. ​IEE Proceedings G​,
vol. 138, no. 3, pp. 401–412, 1991.

CADENCE EDA tools. ​Cadence. Disponível em: <http://www.cadence.com>.


Acesso em: 7 dez. 2017.

CHANDRAKASAN, A., BRODERSEN, W. Low Power Digital CMOS Design.


64

Springer Science + Business Media. New York. 1995.

CHANG, C.-H., J. GU, e M. ZHANG, Ultra low-voltage low-power CMOS 4-2 and
5-2 compressors for fast arithmetic circuits. ​IEEE Transactions on Circuits and
Systems​, vol. 51, no. 10, pp. 1985–1997, Oct 2004.

CHATTERJEE, S., and SARAWADEKAR, K. ​A low cost, constant throughput


and reusable 8x8 DCT architecture for HEVC​. In: 2016 IEEE 59th International
Midwest Symposium on Circuits and Systems (MWSCAS), Oct 2016, pp. 1–4.

CHEN, Y., TSENG, Y. Low-cost multi-standard video transform core using


time-distribution scheme. ​Electronics Letters​, vol. 52, no. 24, pp. 1980–1982, 2016

CHIPER, D., SWAMY, M., AHMAD, M., and Stouraitis, T. Systolic algorithms and
a memory-based design approach for a unified architecture for the computation of
DCT/DST/IDCT/IDST. ​IEEE Transactions on Circuits and Systems I: Regular
Papers​, vol. 52, no. 6, pp. 1125–1137, June 2005.

CLARKE, R. J. Relation between the Karhunen Lo x00E8;ve and co- sine


transforms. Communications, Radar and Signal Processing, IEE Proceedings F, vol.
128, no. 6, pp. 359–360, November 1981. ​CORREIA, Pedro F.; SILVA, Vítor
Mendes; ASSUNÇÃO, Pedro A. ​Amado. Adaptação de Vídeo Comprimido para
Comunicações Multimédia em Redes Heterogéneas​. 2003.

COSTA, E. ​Operadores aritméticos de baixo consumo para arquiteturas de


circuitos DSP​. Tese de doutorado. Universidade Federal do Rio Grande do Sul.
2002.

COSTA e ALMEIDA. Vídeo de ultra alta definição. Comunicação de áudio e vídeo


1º semestre 2014/2015. ​MEEC – técnico Lisboa. Disponível em:
<http://www.img.lx.it.pt/~fp/cav/ano2014_2015/Trabalhos_MEEC_2014_2015/Artig
o4/HTML-trabalho4/Artigo_final.pdf>. Acesso em: 7 nov. 2017.

DEMPSTER, A., MACLEOD, M. Use of Minimum-Adder Multiplier Blocks in FIR


Digital Filters. IEEE Transactions on Circuits and Systems-II: Analog and
Digital Signal Processing​ , vol. 42, no. 9, pp. 569–577, 1995

DIAS, T., ROMA, N., SOUSA, L. ​High performance multi-standard


architecture for DCT computation in H.264/AVC High Profile and HEVC
codecs​. In: 2013 Conference on Design and Architectures for Signal and Image
Processing, October 2013, pp. 14–21.

DINIZ, Cláudio Machado. Dedicated and reconfigurable hardware accelerators for


high efficiency video coding standard. ​Thesis (PhD) — Universidade Federal do
Rio Grande do Sul​, 2015.
65

DO, T., TAN, Y., YEO, C. ​High-throughput and low-cost hardware-oriented


integer transforms for HEVC​. In: 2014 IEEE International Conference on Image
Processing (ICIP) , Oct 2014, pp.2105–2109.

GARRIDO, M., PESCADOR, F., CHAVARRAS, M., LOBO, P., and SANZ, C. A
High Performance FPGA-Based Architecture for the Future Video Coding Adaptive
Multiple Core Transform. I​EEE Transactions on Consumer Electronics​, vol. 64,
no. 1, pp. 53–60, Feb 2018.

GOEBEL, J. PAIM, G., AGOSTINI, L., ZATT, B., PORTO, M. ​An HEVC
multi-size DCT hardware with constant throughput and supporting
heterogeneous CUs​. In: 2016 IEEE International Symposium on Circuits and
Systems (ISCAS)​, ​May 2016, pp. 2202–2205.

GONG, D., HE, Y., Cao, Z. New cost-effective VLSI implementation of a 2-D
discrete cosine transform and its inverse. ​IEEE Transactions on Circuits and
Systems for Video Technology​, vol. 14, no. 4, pp. 405–415, April 2004.

GOOGLE, Inc. ​VP9 Video Codec Summary​. Disponível em:


<http://www.webmproject.org/vp9>. Acesso em: 22 de jul. 2013.

GROIS, D., MARPE, D., MULAYOFF A., and HADAR, O. Performance


Comparison of H.265 / MPEG-HEVC , VP9 , and H.264/MPEG-AVC Encoders.
Marpe. Vol. 2013. 2013. Disponível em:
<http://iphome.hhi.de/marpe/download/Performance_HEVC_VP9_X264_PCS_2013
_preprint.pdf>. Acesso em: 1 nov. 2017.

HE, Zhichu. Framework of AVS2-video coding. In: Image Processing (ICIP), 2013
20th IEEE International Conference on. ​IEEE​, 2013. p. 1515-1519.

HSIAO, S., HU, Y., JUANG, T., and LEE, C. Efficient VLSI implementations of
fast multiplierless approximated DCT using parameterized hardware modules for
silicon intellectual property design. ​IEEE Transactions on Circuits and Systems I:
Regular Papers​, vol. 52, no. 8, pp. 1568–1579, August 2005.

HWANGBO, W., and KYUNG, C. A Multitransform Architecture for H.264/AVC


High-Profile Coders. IEEE Transactions on Multimedia, vol. 12, no. 3, pp. 157–167,
April 2010.

ITU-T. ​Video codec for audiovisual services at p x 64 kbit/s. [S.l.], November


1990.

ITU-T. ​H.265​(V2). Disponível em: <http://handle.itu.int/11.1002/1000/12296>.


Acesso em: 3 nov. 2017.

JESKE, R. SOUZA, J., WREGE, G., CONCEIÇÃO, R. GRELLERT, M., MATTOS,


66

J. and AGOSTINI, L. ​Low cost and high throughput multiplierless design of a 16


point 1-D DCT of the new HEVC video coding standard​. In: 2012 VIII Southern
Conference on Programmable Logic , March 2012, pp. 1–6.

JIA, R., CHEN, R. LIN, C., GUO, Z., and YANG, H. Low Cost 1D DCT Core for
Multiple Video Codec. ​Chinese Journal of Electronics​, vol. 25, no. 6, pp.
1052–1057, 2016.

JRIDI, M., ALFALOU, and MEHER, P. A Generalized Algorithm and


Reconfigurable Architecture for Efficient and Scalable Orthogonal Approximation of
DCT. ​IEEE Transactions on Circuits and Systems I: Regular Papers​, vol. 62, no.
2, pp. 449–457, Feb 2015.

JRIDI, M., and MEHER, P. Scalable Approximate DCT Architectures for Efficient
HEVC-Compliant Video Coding. ​IEEE Transactions on Circuits and Systems for
Video Technology​, vol. 27, no. 8, pp. 1815–1825, Aug 2017.

JOJOA, D., and MEDINA, J. Efficient hardware design of N-point 1D-DCT for
HEVC​. In: 2015 20th Symposium on Signal Processing, Images and Computer
Vision (STSIVA), Sept 2015, pp. 1–6.

JVT of ISO/IECMPEG and ITU- TV CEG. ​Advanced Video Coding for Generic
Audiovisual Services​. [S.l.], March 2005.

KALALI, E., MERT, A. and HAMZAOGLU, I. A computation and energy reduction


technique for HEVC Discrete Cosine Transform. ​IEEE Transactions on Consumer
Electronics​, vol. 62, no. 2, pp. 166–174, May 2016

KIM, Il-Koo et al. Coding efficiency comparison of new video coding standards:
HEVC vs VP9 vs AVS2 video. In: Multimedia and Expo Workshops (ICMEW),
2014 ​IEEE International Conference​ on. IEEE, 2014. p. 1-6.

LIANG, H., WEIFENG, H., GUANGHUI, H., and ZHIGANG, M. Area-efficient


HEVC IDCT/IDST architecture for 8K 4K video decoding. ​IEICE Electronics
Express​, vol. 13, no. 6, pp. 1–12, 2016.

LI, L., WANG, W., CHOI, K., PARK, S., and CHUNG, M.-K. ​SeSCG: Selective
sequential clock gating for ultra-low-power multimedia mobile processor
design​. iEEE International Conference on Electro/Information Technology (EIT).
2010. pp. 1–6.

LIU, S., YU, HUANG, H., and YANG, H. ​Unified algorithms for computation
of different points integer 1-D DCT/IDCT for the HEVC standard​. In:
International Conference on Software Intelligence Technologies and Applications
International Conference on Frontiers of Internet of Things 2014, Dec 2014, pp.
207–211.
67

MA, Siwei; KUO, C.-C. Jay. High-definition video coding with super-macroblocks.
In: ​Proc. SPIE​. 2007. p. 650816.

MA, Siwei et al. AVS2? Making video coding smarter [standards in a


nutshell]. ​IEEE Signal Processing Magazine​, v. 32, n. 2, p. 172-183, 2015.

MALVAR, H. S. et al. Low-Complexity transform and quantization in H.264/AVC.


IEEE Transactions on Circuits and Systems for Video Technology​, v. 13, n. 13,
p. 590–603, July 2003.

MAHSA T. POURAZAD, COLIN DOUTRE - HEVC: The New Gold Standard for
Video Compression, ​IEEE CONSUMER ELECTRONICS MAGAZINE​. Julho
2012, pág. 36 a 47.

MASERA, M., FIORENTIN, L., MARTINA, M., MASERA, G., and MASALA, E.
Optimizing the transform complexity-quality tradeoff for hardware-accelerated
HEVC video coding. In: 2015 Conference on Design and Architectures for Signal
and Image Processing (DASIP), Sept 2015, pp. 1–6.

MASERA, M., MARTINA, M., MASERA, G. Adaptive Approximated DCT


Architectures for HEVC. I​EEE Transactions on Circuits and Systems for Video
Technology​, vol. 27, 2017.

MEHER, P, PARK, S., PARK, Y., MOHANTY, K., LIM, S., YEO, C. Park, B.
K. Mohanty, K. S. Lim, and C. Yeo. Efficient Integer DCT Architectures for
HEVC. ​IEEE Transactions on Circuits and Systems for Video Technology​, vol.
24, no. 1, pp. 168–178, Jan 2014.

MONTEIRO, Eduarda Rodrigues. ​Implementação e análise de algoritmos para


estimação de movimento em processadores paralelos tipo GPU (Graphics
Processing Units). 2012. Disponível em:
<http://www.lume.ufrgs.br/bitstream/handle/10183/61975/000868115.pdf?sequence
=1>. Acesso em: 10 jul. 2017.

MONTEIRO, Estêvão Chaves; SANTOS, Lucas Alberto Souza; TECNOLÓGICA,


Infraestrutura. Modernização dos Sistemas Audiovisuais do Governo Baseada em
Software Livre. ​ConSempro - Congresso Serpro de Tecnologia e Gestão
aplicadas a Serviços Públicos. Regional São Paulo​ - 3-6 de dezembro de 2013.

MOREIRA, Tom Jones. ​Conceitos e Fundamentos do HEVC/H. 265​. 2015.


Disponível em: <
http://www.set.org.br/revista-da-set/conceitos-e-fundamentos-do-hevch-265-2/>.
Acesso em: 27 nov. 2017.

OHM, G. J. SULLIVAN, H. SCHWARZ, T. K. TAN, T. WIEGAND. Comparison


of the Coding Efficiency of Video Coding Standards—Including High Efficiency
68

Video Coding (HEVC), ​IEEE Transactions on Circuits and Systems for Video
Technology​, Vol. 22, No. 12, pp. 1669-1684, December 2012.

OKLOBDZIJA, V., VILLEGER, D., LIU, S. A Method for Speed Optimized Partial
Product Reduction and Generation of Fast Parallel Multipliers Using an Algorithmic
Approach. ​IEEE Transactions on Computers​, Vol. 45, No. 3, pp. 294-306, March
1996.

OLIVER, J., CURTO, J., BOUVIER, D., RAMOS, M., and BOEMO, E. ​Clock
gating and clock enable for FPGA power reduction​. VIII Southern Conference on
Programmable Logic (SPL). 2012. pp. 1–5.

PASTUSZAK, G. Hardware architectures for the H.265/HEVC discrete cosine


transform. ​IET Image Processing​, vol. 9,no. 6, pp. 468–477, 2015.

RAO, D., PALE, T. Low Power Register Design with Integration Clock Gating and
Power Gating. ​International Journal of Application or Innovation in
Engineering & Management (IJAIEM)​. Volume 3, Issue 10, October 2014. pp.
117-122.

RERÁBEK, M., EBRAHIMI, T. ​Comparison of compression efficiency between


HEVC/H.265 and VP9 based on subjective assessments​. Disponível em:
http://infoscience.epfl.ch/record/200925/files/article-vp9-submited-v2.pdf>. Acesso
em: 21 nov. 2017.

REVATHI,, K. and MALAR, J. ​Efficient diagonal data mapping for large size 2D
DCT/IDCT using single port SRAM based transpose memory​. In: 2016
International Conference on Electrical, Electronics, and Optimization Techniques
(ICEEOT), March 2016, pp. 4894–4898.

RICHARDSON, I. E. G. ​H.264 and MPEG-4 Video Compression. [S.l.]: John


Wiley & Sons Ltd, 2003.

ROSA, Vagner Santos da. ​Arquiteturas de hardware dedicadas para


codificadores de vídeo H.264​: filtragem de efeitos de bloco e codificação aritmética
binária adaptativa a contexto. 2010.

ROSA, Vagner Santos da​. Arquiteturas de Hardware Dedicadas para


Codificadores de Vídeo H.264 – Filtragem de Efeitos de Bloco e Codificação
Aritmética Adaptativa ao Contexto [manuscrito] / Vagner Santos da Rosa. – 2010.

SALLEMI, Z., and RAJA, G. ​Requirement based transform coefficient coding


architecture for DCT/DST for HEVC​. In: 2017 International Symposium on
Wireless Systems and Networks (ISWSN), Nov 2017, pp. 1–5.

SAYOOD, K. ​Introduction to Data Compression. [S.l.]: Morgan Kuffmann


69

Publishers, 2000.

SHARABAYKO, M. P. Next generation video codecs: HEVC, VP9 and


DAALA. ​Traffic​, v. 2560, n. 1600, p. 30, 2013. Disponível em:
<http://www.lib.tpu.ru/fulltext/c/2013/C04/010.pdf>. Acesso em: 1 nov. 2017.

SHARID, A., ARIF, S. Power Optimization Using Clock Gating and Power Gating:
A Review. ​Innovative Research and Applications in Next-Generation High
Performance Computing​. p. 1-20. 2016

SILVEIRA, Bianca dos Santos da. ​Exploração Arquitetural nas Métricas de


Similaridade para Codificadores de Vídeo do Padrão HEVC. ​Dissertação de
mestrado. Universidade Católica de Pelotas. 2016.

SILVEIRA, Bianca; PAIM, Guilherme; ABREU, Brunno; GRELLERT, Mateus;


DINIZ, Claudio; COSTA, Eduardo; BAMPI, Sergio. ​Power-Efficient Sum of
Absolute Differences Hardware Architecture Using Adder Compressors for
Integer Motion Estimation Design​. IEEE TRANSACTIONS ON CIRCUITS AND
SYSTEMS I-REGULAR PAPERS, v. 1, p. 1-12, 2017.

SULLIVAN, Gary. J.; TOPIWALA, Pankaj; LUTHRA, Ajay. ​The H.264/AVC


Advanced Video Coding Standard​: Overview and Introduction to the Fidelity
Range Extensions . 2004.

ST ​Microelectronics​. Disponível em: <http://www.st.com/>, 2017.

SULLIVAN, G. J. OHM, J.-R., HAN, W.-J. WIEGAND, T. Overview ofthe High


Efficiency Video Coding (HEVC) Standard, ​IEEE Transactions on Circuits and
Systems for Video Technology​, Vol. 22, No. 12, pp. 1649-1668, December 2012.

SUN, H., CHENG, Z., GHAREHBAGHI, A., KIMURA, S. and FUJITA, M.


Approximate DCT Design for Video Encoding Based on Novel Truncation. ​IEEE
Transactions on Circuits and Systems-I: Regular Papers​, 2018.

TAMSE, A., LEE, H., RHEE, C. ​Reusable DCT architecture for parallel
processing of Y, U and V transforms in HEVC​. In: The 18th IEEE International
Symposium on Consumer Electronics (ISCE 2014), June 2014, pp. 1–2

TEIXEIRA, Gabriel Diego. ​Desenvolvimento de uma arquitetura de hardware de


um estimador de vetores de movimento de precisão sub-pixel seguindo o padrão
HEVC. HEVC​. 2014. Disponível em:
<http://www.lume.ufrgs.br/handle/10183/110733>. Acesso em: 9 dez. 2017.

TONFAT, J., REIS, R. Low power 3–2 and 4–2 adder compressors implemented
using ASTRAN. ​In: ​2012 IEEE 3rd Latin American Symposium on Circuits and
Systems (LASCAS)​, February/March, 2012, pp. 1-4.
70

VONORENKO, Y., PURSCHEL, M. Multiplierless Multiple Constant


Multiplication. ​ACM Transactions on Algorithms​, vol. 3, no. 2, 2007.

VORTMANN, João A. et al. Codificador de Entropia Segundo o Perfil Baseline do


padrão H. 264/AVC de Compressão de Vídeo. ​HÍFEN​, v. 30, n. 58, 2006.

WANG, S., ZHU, X., DING, D., e YU, L. Transform coding in AVS2. In: ​2014
IEEE International Conference on Multimedia and Expo Workshops
(ICMEW)​, July 2014, pp. 1–5.

WEINBERGER, A. Carry-Save Adder Module. ​IBM Technical Disclosure Bulletin


Vol. 23, No. 8, 1981, pp. 3811-3814.

WU, Z., SHA, J., WANG, Z., LI, L., and GAO, M. Gao. An improved scaled DCT
architecture. ​IEEE Transactions on Consumer Electronics​, vol. 55, no. 2, pp.
685–689, May 2009.

ZHANG, S., SHEN, Y., YANG, C. A stochastic computation based integer DCT
implementation in HEVC. In: ​2014 IEEE International Conference on Signal
Processing, Communications and Computing​, Aug., 2014,pp. 153–157.

Você também pode gostar