44
UNIVERSIDADE CATÓLICA DE PELOTAS ESCOLA DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Um Estudo Sobre o Padrão H.264/AVC de Compressão de Vídeo por André Marcelo Coelho da Silva Trabalho Individual I TI-2007/2-02 Orientador: Prof. Dr. Eduardo Antônio César da Costa Co-orientador: Prof. Dr. Sérgio José Melo de Almeida Pelotas, dezembro de 2007

Um Estudo Sobre o Padrão H.264/AVC de Compressão de Vídeoppginf.ucpel.tche.br/TI-arquivos/2007/PPGINF-UCPel-TI-2007-2-02.pdf · 4.1.1 A Transformada Discreta do Cosseno (DCT)

  • Upload
    phambao

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

UNIVERSIDADE CATÓLICA DE PELOTAS

ESCOLA DE INFORMÁTICA

PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

Um Estudo Sobre o Padrão H.264/AVCde Compressão de Vídeo

porAndré Marcelo Coelho da Silva

Trabalho Individual ITI-2007/2-02

Orientador: Prof. Dr. Eduardo Antônio César da CostaCo-orientador: Prof. Dr. Sérgio José Melo de Almeida

Pelotas, dezembro de 2007

AGRADECIMENTOS

Nesta primeira etapa dos trabalhos realizados agradeço muito a minha família,onde encontro apoio incondicional para realização das minhas tarefas e também com-preensão e incentivo nas horas de maior necessidade.

Agradeço também aos meus colegas do mestrado e também aos colegas doLAMIPS que contribuiram de alguma forma para a realização deste trabalho inicial. E umespecial agradecimento ao meu orientador, Prof. Eduardo Costa, e ao meu co-orientador,Prof. Sérgio Almeida, pela dedicação e significativas contribuições para a realização destetrabalho.

SUMÁRIO

LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . . . 7

RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 CONCEITOS BÁSICOS DA COMPRESSÃO DE VÍDEO . . . . . . . . . 132.1 Vídeo Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Espaço de Cores e Sub-Amostragem de Cores. . . . . . . . . . . . . . . 152.3 Redundância de Dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.1 Redundância Espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . .172.3.2 Redundância Temporal . . . . . . . . . . . . . . . . . . . . . . . . . . .172.3.3 Redundância Entrópica . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3 O PADRÃO H.264/AVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1 Histórico do padrão H.264/AVC . . . . . . . . . . . . . . . . . . . . . . . 193.2 Conceitos básicos do padrão H.264/AVC. . . . . . . . . . . . . . . . . . 203.3 Perfis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213.4 Formato dos Dados Codificados. . . . . . . . . . . . . . . . . . . . . . . 223.5 Os Módulos do Codec H.264/AVC. . . . . . . . . . . . . . . . . . . . . . 233.5.1 Módulo de Predição Inter-Quadro . . . . . . . . . . . . . . . . . . . . .233.5.2 Módulo de Predição Intra-Quadro . . . . . . . . . . . . . . . . . . . . .243.5.3 O Módulo das Transformadas Diretas (T) e das Transformadas Inversas

(T−1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263.5.4 O Módulo da Quantização (Q) . . . . . . . . . . . . . . . . . . . . . . .273.5.5 O Módulo da Quantização Inversa (Q−1) . . . . . . . . . . . . . . . . . . 273.5.6 O Módulo da Codificação de Entropia . . . . . . . . . . . . . . . . . . .273.5.7 O Módulo do Filtro de Deblocagem . . . . . . . . . . . . . . . . . . . .273.6 Padrão H.264/AVC: Estado da Arte . . . . . . . . . . . . . . . . . . . . 28

4 AS TRANSFORMADAS DO PADRÃO H.264/AVC . . . . . . . . . . . . . 304.1 O Módulo das Transformadas Diretas (T) . . . . . . . . . . . . . . . . . 304.1.1 A Transformada Discreta do Cosseno (DCT) . . . . . . . . . . . . . . . .304.1.2 A Transformada Hadamard . . . . . . . . . . . . . . . . . . . . . . . . .314.2 O Módulo das Transformadas Inversas (T−1) . . . . . . . . . . . . . . . 324.2.1 A Transformada Discreta do Cosseno Inversa (IDCT) . . . . . . . . . . .334.2.2 A Transformada Hadamard Inversa . . . . . . . . . . . . . . . . . . . . .334.3 Arquiteturas para a Transformada Hadamard Inversa . . . . . . . . . . 344.3.1 Arquitetura Serial com Separabilidade . . . . . . . . . . . . . . . . . . .344.3.2 Arquitetura Serial sem Separabilidade . . . . . . . . . . . . . . . . . . .354.3.3 Arquitetura Parcialmente Paralela . . . . . . . . . . . . . . . . . . . . . .354.3.4 Arquitetura Paralela com Pipeline . . . . . . . . . . . . . . . . . . . . .364.3.5 Aruitetura Paralela Combinacional . . . . . . . . . . . . . . . . . . . . .37

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

6 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

LISTA DE FIGURAS

Figura 2.1 Possíveis Partições de um Macrobloco . . . . . . . . . . . . . . . . .13Figura 2.2 Possíveis Partições de um Sub-Macrobloco . . . . . . . . . . . . . .14Figura 2.3 Divisão de um Quadro com Várias Partições . . . . . . . . . . . . .14Figura 2.4 Mostra da Sub-amostragen no Formato 4:2:0 . . . . . . . . . . . . .16

Figura 3.1 Diagrama de Blocos do Codificador do Padrão H.264/AVC . . . . . .21Figura 3.2 Diagrama de Blocos do Decodificador do Padrão H.264/AVC . . . .21Figura 3.3 Estrututa dos Perfis Atuais do Padrão H.264 . . . . . . . . . . . . . .22Figura 3.4 Seqüência de Unidades NAL . . . . . . . . . . . . . . . . . . . . . .23Figura 3.5 Quadro do Vídeo Antes da MC . . . . . . . . . . . . . . . . . . . .24Figura 3.6 Quadro do Vídeo Após a MC . . . . . . . . . . . . . . . . . . . . .25Figura 3.7 Quadro de Luminância Resídual . . . . . . . . . . . . . . . . . . . .25Figura 3.8 Nove modos de predição Intra-Quadro para Blocos de 4x4Pixels . . 26Figura 3.9 Quatro modos de predição Intra-Quadro para Blocos de 16x16Pixels 26

Figura 4.1 Equação da DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . .30Figura 4.2 Equação da Transformada Hadamard 4x4 . . . . . . . . . . . . . . .31Figura 4.3 Equação da Transformada Hadamard 4x4 . . . . . . . . . . . . . . .32Figura 4.4 Ordem de Processamento de Amostras pelo Módulo T . . . . . . . .32Figura 4.5 Equação da IDCT . . . . . . . . . . . . . . . . . . . . . . . . . . . .33Figura 4.6 Equação da Hadamard 4x4 Inversa . . . . . . . . . . . . . . . . . . .33Figura 4.7 Arquitetura da Transformada Serial com Separabilidade . . . . . . .35Figura 4.8 Arquitetura da Transformada Serial sem Separabilidade . . . . . . .36Figura 4.9 Arquitetura da Transformada Parcialmente Paralela . . . . . . . . . .38Figura 4.10 Arquitetura da Transformada Paralela com Pipeline . . . . . . . . . .38Figura 4.11 Arquitetura da Transformada Paralela Combinacional . . . . . . . . .39

LISTA DE TABELAS

Tabela 4.1 Algoritmo Utilizado para o Cálculo da Hadamard 2-D 4x4. . . . . . .37

LISTA DE ABREVIATURAS E SIGLAS

1-D Uma Dimensão

2-D Duas Dimensões

AC Alternate Current

AVC Advanced Video Coding

CABAC Context-Based Adaptative Binary Arithmetic Coding

CD Compact Disk

Codec Codificador/Decodificador

CAVLC Context-Based Adaptative Variable Length Coding

DC Direct Current

DCT Discrete Cosine Transform

DCT-2D Discrete Cosine Transform in Two-Dimensions

DPCM Differential Pulse Code Modulation

DVD Digital Versatile Disk

FDCT Forward Discrete Cosine Transform

FDCT-2D Forward Discrete Cosine Transform in Two-Dimensions

FRExt Fidelity range Extensions

HD Hard Disk

HDTV High Definition Digital Television

HD-DVD High Density Digital Versatile Disc

HSI Hue, Saturation, intensity

HT Hadamard Transform

IDCT Inverse Discrete Cosine Transform

IDCT-2D Inverse Discrete Cosine Transform in Two-Dimensions

IEC International Electrotechnical Commission

IHT Inverse Hadamard Transform

ISO International Organization for Standardization

ITU-T International Telecommunication Union - Telecommunication

JVT Joint Video Team

MB Macrobloco

MC Motion Compesation

ME Motion Estimation

MPEG Moving Picture Experts Group

NAL Network Abstraction Layer

Q Quantização

Q−1 Quantização Inversa

QP Parâmetro de Quantização

RAM Random Access Memory

RBSP Raw Byte Sequence Payload

RGB Red, Green, Blue

SBTVD Sistema Brasileiro de Televisão Digital

T Transformada

T−1 Transformada Inversa

VCEG Video Coding Experts Group

VCL Video Coding Layer

YCbCr Luminance, Chrominance Blue, Chrominance Red

RESUMO

Este trabalho apresenta um estudo sobre vídeo digital, compressão de vídeo e tam-bém do padrão H.264/AVC de compressão de vídeo. Primeiramente são mostrados algunsconceitos básicos dos vídeos digitais. Depois são apresentadas as principais característi-cas da compressão de vídeo, bem como, o seu princípio de funcionamento. Então, é feitoum estudo do codificador e do decodificador (codec) do padrão H.264/AVC, onde sãodetalhados os principais módulos que compõem o seu codec. O estudo também abordaoutras características do padrão como: perfis existentes, formato de dados codificados,espaço e sub-amostragem de cores utilizado e outros. Dentre os módulos do padrão foidada ênfase no módulo das transformadas diretas (T) e das Transformadas Inversas (T−1).No módulo das Transformadas Diretas se encontram a DCT (Transformada Discreta doCosseno) e a Transformada Hadamard e no módulo das Transformadas Inversas se encon-tram a IDCT (Transformada Discreta do Cosseno Inversa) e a Transformada HadamardInversa. Estas quatro transformadas citadas são especialmente importantes para este tra-balho, pois, as suas arquiteturas serão exploradas em trabalhos futuros que estão direta-mente relacionados com o estudo inicial apresentado neste trabalho.

Palavras-chave:Compressão de Vídeo, H.264/AVC, Vídeo Digital, Transformadas.

ABSTRACT

TITLE: “STUDY ABOUT H.264/AVC VIDEO COMPRESSION STANDARD”

The main goal of this work is to present a study about digital video, video com-pression and also the H.264/AVC video compression standard. First of all it is shownsome basic concepts of digital video. After that the main features of video compression,as well as its principle of operation are presented. A study of the encoder and decoder(codec) H.264/AVC standard is also presented, where are detailed the main modules thatcomposes its codec. This study also addresses other features of the standard such as: ex-isting profiles, encoded data format, space and sub-sampling of colors used and others.Among the modules of the standard we have emphasized the modules of Direct Trans-form (T) and the Inverse Transform (T-1). The module of the Direct Transform takesinto account the DCT (Discrete Transformed the Cosine) and the Hadamard Transform.On the other hand, in the module of the Inverse Transform we can achieve the IDCT(Transform Inverse Discrete Cosine) and the Inverse Hadamard Transform. These fourmentioned Transforms have a great importance for this work because we will explore dif-ferent dedicated architectures for them as future work. Thus, the study of these transformsare directly related to the initial study presented in this Individual work of research.

Keywords: Video Compression, H.264/AVC, Digital Video, Transforms.

11

1 INTRODUÇÃO

Vídeos digitais possuem cada vez mais uma maior demanda, sendo utilizados emvárias aplicações diferentes, como na web, videoconferências, em transmissões em broad-cast, e também na SBTVD que entrará em funcionamento no próximo ano entre outrasáreas que utilizam vídeos digitais.

Para poder manipular estes vídeos para que possam ser transmitidos com eficiênciaé necessário geralmente fazer a compressão do vídeo, que tem como objetivo a reduçãodo número de bits necessários para representar um vídeo digital sem que tenha perda deinformações significativas para a representação do vídeo. Isto é feito através da explo-ração de uma propriedade existente nas seqüências de vídeo: a redundância. Que faz comque grande parte dos dados necessários para representar um vídeo digital seja supérflua.

E para tal fim o padrão de compressão de vídeo H.264/AVC (WIEGAND et al.,2003), que é o mais recente padrão de compressão de vídeo, se mostra mais eficiente queos outros padrões existentes, tais como MPEG-2 (ITU-T; ISO/IEC, 1994) e H.263 (ITU-T, 2000). Esta eficiência de compressão foi obtida a custa de um acréscimo computacionalno seu codec fazendo com que a complexidade computacional de alguns módulos dopadrão H.264/AVC tivesse um acréscimo significativo em relação aos padrões anteriores.

Além da utilização da compressão de vídeos para a transmissão via rede de com-putadores, principalmente a Web, ela também é muito importante do ponto de vista doarmazenamento, pois contribui para otimizar o uso de recursos geralmente utilizados paratal finalidade, tais como DVDs, CDs, HDs e etc.

Com tudo isso, a compressão de vídeo e o padrão H.264/AVC são assuntos queestão sendo amplamente estudados por pesquisadores do meio academico e da indústria eonde muitas contribuições significativas podem ainda serem dadas.

Junto com esta crescente utilização dos vídeos digitais teve um aumento significa-tivo do uso de dispositivos móveis, como por exemplo palmtops, câmeras e filmadorasdigitais portáteis, telefones celulares enter outros. E aplicações com vídeos digitais paraestes dispositivos serão cada vez mais utilizadas. No entanto, para este tipo de aplicaçãoum fator de extrema importância, além de um codec eficaz, é o consumo de potência, poisdispositivos móveis não podem apresentar aquecimento elevado em seus circuitos, paranão comprometer o seu funcionamento e a sua utilização pelos usuários.

Neste sentido, é muito importante ter implementações para os blocos do padrãoque corresponda às exigências de desempenho, utilização de recursos e principalmentede consumo de potência, pois são fatores críticos para o projeto do codec do padrãoH.264/AVC voltado para a utilização em dispositivos móveis.

Com isto, este trabalho tem como objetivo estudar e implementar técnicas de re-

12

dução de potência (COSTA, 2002) existentes na literatura em cima do codec do padrãoH.264/AVC, e assim obter ganhos de potência nos circuitos implementados, viabilizandoa sua utilização em dispositivos móveis.

Com a realização deste trabalho foi possível localizar no padrão H.264/AVC váriospontos onde podem ser dadas contribuições para a redução do consumo de potência e tam-bém para o aumento do desempenho dos módulos. Este é o caso do módulo das transfor-madas diretas (T), que é formado pela DCT (Transformada Discreta do Cosseno) e pelaTransformada Hadamard, e o módulo das transformadas inversas (T−1), que é formadopela IDCT (Transformada Discreta do Cosseno Inversa) e pela Transformada HadamardInversa, que será por onde nos trabalhos de exploração começará, mas para isso, seránecessário numa próxima etapa do trabalho o estudo aprofundado das ténicas de reduçãode potência existentes na literatura, a fim de, localizar aquelas que melhor se adequarãoas características do padrão.

Este trabalho foi dividido da seguinte forma. No capítulo dois deste trabalho éapresentada uma breve introdução aos conceitos de compressão de vídeo e também sobrevídeo digital. O capítulo três será dedicado ao histórico do padrão de compressão devídeo H.264/AVC, no capítulo quatro é feita uma abordagem aprofundada do módulorefrente as transformadas direta e inversas do padrão H.264/AVC e mostarada algumasalternativas arquiteturais para a transfromada Hadamard 2-D 4x4 direta. Já o capítulocinco é direcionado para as conclusões obtidas com o trabalho. E por fim são apresentadosos trabalhos futuros.

13

2 CONCEITOS BÁSICOS DA COM-PRESSÃO DE VÍDEO

Este capítulo apresentará, resumidamente, alguns conceitos básicos sobre vídeosdigitais, compressão de vídeos digitais e também sobre a sua forma de representação, quefacilitará o entendimento dos demais capítulos deste trabalho.

2.1 Vídeo DigitalUm vídeo digital é formado por uma seqüência de quadros (frames), que, por sua

vez, são formados por pontos (pixels). Cada quadro do vídeo é dividido emslices, que sãodivididos em macroblocos. Os macroblocos podem ser divididos em sub-macroblocos eblocos. O padrão H.264/AVC é o primeiro que prevê a utilização de macroblocos comtamanhos variáveis (16x16, 16x8, 8x16 ou 8x8pixels). Uma partição 8x8 é chamadasub-macrobloco, um sub-macrobloco com partição 8x8 pode ser particionado em blocosde 8x8, 8x4, 4x8 ou 4x4pixels (PURI; CHEN; LUTHRA, 2004). As Figuras 2.1 e 2.2demonstram esta divisão.

A escolha do tamanho da partição depende de alguns fatores, porém nas áreas doquadro do vídeo digital onde tem mais movimento o tamanho de partição escolhido serámenor que aqueles escolhidos para áreas onde se tem um menor movimento. Isto ocorredevido ao fato de se tentar reduzir ao máximo o resíduo gerado pela etapa de predição. Oresíduo é diferença dos elementos de luminância entre o quadro de referência e o quadrode vídeo atual (que está sendo codificado), este resíduo passará pelo módulo das transfor-madas após a etapa de predição para eliminar informações que não são relevantes para oolho humano.

A Figura 2.3 mostra um quadro de resíduos gerados sem compensação de movi-

Figura 2.1: Possíveis Partições de um Macrobloco

14

Figura 2.2: Possíveis Partições de um Sub-Macrobloco

Figura 2.3: Divisão de um Quadro com Várias Partições

mento, ou seja, através da predição intra-quadro, onde o codificador escolhe a melhorpartição de acordo com as mudanças existentes entre quadros, onde a menos mudançasa partição escolhida é 16x16pixels, enquanto em áreas com mais mudanças partiçõesmenores são selecionadas.

Em um vídeo digital existe muita redundância na informação decorrente da sim-ilaridade existente entre pontos vizinhos e também entre quadros vizinhos. Pontos viz-inhos são pontos que pertencem ao mesmo quadro e que são espacialmente vizinhos.Quadros vizinhos são quadros pertencentes ao mesmo vídeo e que são temporalmentevizinhos.

A compressão de vídeos é uma técnica que utiliza algoritmos (codecs) paradiminuir o tamanho de uma imagem através da redução destas informações redundantesque formam a imagem (SILVA, 2006).

15

2.2 Espaço de Cores e Sub-Amostragem de CoresA representação digital de um vídeo colorido está associada à interpretação das

cores pelo sistema visual humano. O sistema humano de visão possui elementos sensíveisà luz chamados bastonetes e cones. Os bastonetes são sensíveis à intensidade luminosa,enquanto os cones são sensíveis às cores primárias (GONZALES; WOODS, 2003). Emfunção desta estrutura do sistema visual humano, todas as cores são vistas como combi-nações variáveis das três cores primárias: vermelho (R -red), verde (G -green) e azul (B- blue). O sistema visual humano é capaz de discernir milhares de cores distintas a partirde combinações de intensidades distintas das cores primárias. Por outro lado, o sistemavisual humano não consegue distinguir mais do que duas dúzias de tons de cinza que, naverdade, indicam a intensidade luminosa da imagem (GONZALES; WOODS, 2003).

Existem muitas formas de representar as cores de forma digital. Um sistema pararepresentar cores é chamado de espaço de cores e a definição do espaço de cor a serutilizado para representar um vídeo é essencial para a eficiência da codificação destevídeo.

São vários os espaços de cores usados para representar imagens digitais, tais como:RGB, HSI e YCbCr (SHI; SUN, 1999). O espaço de cores RGB é um dos mais comuns,tendo em vista que é este o espaço de cores utilizado nos monitores coloridos. O RGBrepresenta, em três matrizes distintas, as três cores primárias captadas pelo sistema visualhumano: vermelho, verde e azul. Daí advém o nome deste espaço de cores (do inglêsred, green blue- RGB). No espaço de cores YCbCr as três componentes utilizadas sãoluminância (Y), que define a intensidade luminosa ou o brilho, crominância azul (Cb) ecrominância vermelha (Cr) (MIANO, 1999).

Os componentes R, G e B possuem um elevado grau de correlação, tornando difícilo processamento de cada uma das informações de cor de forma independente. Por isso, acompressão de vídeos é aplicada para espaços de cores do tipo luminância e crominância,como o YCbCr (RICHARDSON, 2002).

Outra vantagem do espaço de cor YCbCr sobre o espaço RGB é que no espaçoYCbCr a informação de cor está completamente separada da informação de brilho. Destemodo, estas informações podem ser tratadas de forma diferenciada pelos compressoresde imagens estáticas e vídeos.

O sistema visual humano possui cerca de 240 milhões de bastonetes e 13 milhõesde cones (GONZALES; WOODS, 2003). Deste modo, o sistema visual humano é muitomais sensível a informações de luminância do que as informações de crominância. Destaforma, é conveniente que os padrões de compressão de imagens estáticas e vídeos explo-rarem esta característica psicovisual humana para aumentar a eficiência de codificação,o que se dá através da redução da taxa de amostragem dos componentes de crominânciaem relação aos componentes de luminância (RICHARDSON, 2002). Esta operação échamada de sub-amostragem de cores e é realizada sobre o espaço de cores YCbCr nospadrões de compressão de vídeos atuais.

Existem várias formas de relacionar os componentes de crominância com o com-ponente de luminância para realizar a sub-amostragem. Os formatos mais comuns são o4:4:4, o 4:2:2 e o 4:2:0. No formato 4:4:4, para cada quatro amostras de luminância (Y),existem quatro amostras de crominância azul (Cb) e quatro amostras de crominância ver-melha (Cr). Por isso, os três componentes de cor possuem a mesma resolução e existe umaamostra de cada elemento de cor para cadapixel da imagem e, assim, a sub-amostragemnão é aplicada. No formato 4:2:2, para cada quatro amostras de Y na direção horizontal,

16

Figura 2.4: Mostra da Sub-amostragen no Formato 4:2:0

existem apenas duas amostras de Cb e duas amostras de Cr. Neste caso, as amostras decrominância possuem a mesma resolução vertical das amostras de luminância, mas pos-suem metade da resolução horizontal. No formato 4:2:0, para cada quatro amostras deY, existe apenas uma amostra de Cb e uma amostra de Cr. Neste caso, as amostras decrominância possuem metade da resolução horizontal e metade da resolução vertical doque as amostras de luminância. A nomenclatura 4:2:0 é usada por motivos históricos, poisos números não representam a relação lógica entre os componentes de cor, a qual deveriaser 4:1:1 (RICHARDSON, 2003).

A sub-amostragem de cor aumenta significativamente a eficiência da compressão,uma vez que parte da informação da imagem é simplesmente descartada, sem causar im-pacto visual perceptível ao olho humano. Considerando o formato 4:2:0 como exemplo,uma vez que cada componente de crominância possui exatamente um quarto das amostraspresentes no componente de luminância, então um vídeo YCbCr no formato 4:2:0 irá uti-lizar exatamente a metade das amostras necessárias para um vídeo RGB ou YCbCr noformato 4:4:4. Isso implica em uma taxa de compressão de 50%, considerando apenas asub-amostragem.

O padrão H.264/AVC considera que os dados do vídeo de entrada estão no espaçode cores YCbCr (PURI; CHEN; LUTHRA, 2004). Sub-amostragens de cor nos formatos4:2:0, 4:2:2 e 4:4:4 são permitidos, a Figura 2.4 mostra o formato 4:2:0 que é o maisutilizado. Os círculos com preenchimento em branco são amostras de luminância (Y),enquanto os círculos em cinza e preto, representam as amostras de Crominância vermelha(Cr) e Crominância azul (Cb) respectivamente.

17

2.3 Redundância de DadosO objetivo da compressão de vídeo é eliminara as informações que são redun-

dantes em um vídeo digital, e assim, diminuir o número de bits necessários para a suarepresentação. Os padrões de compressão de vídeo exploram justamente uma caracterís-tica dos vídeos digitais que são os vários tipos de redundância. Existem basicamente trêstipos de redundâncias que são exploradas na compressão de vídeos (AGOSTINI, 2007),são elas:

2.3.1 Redundância Espacial

A redundância espacial é, também, chamada de redundância intra-quadro(GHANBARI, 2003) ou redundância interpixel e advém da correlação existente entreospixelsespacialmente distribuídos em um quadro. Esta correlação pode ser percebida,tanto no domínio espacial, quanto no domínio das freqüências. Esta correlação é vi-sualmente percebida no domínio espacial quando são observadospixelsvizinhos em umquadro, que tendem a possuir valores semelhantes. Neste caso, a redundância pode serreduzida através da operação chamada de codificação intra-quadro, presente em algunspadrões de codificação de vídeo atuais. No domínio das freqüências a operação realizadapara reduzir a redundância espacial é chamada de quantização. Para aplicar a quantiza-ção, antes as informações da imagem devem ser transformadas do domínio espacial parao domínio das freqüências. A quantização é uma divisão inteira dos coeficientes gera-dos pela transformação e reduz grande parte dos coeficientes à zero. Esta operação éirreversível, pois o resto da divisão não é armazenado e, deste modo, a quantização geraperdas no processo de codificação. Mas é importante ressaltar que estas perdas tendem ainterferir de forma nula ou pouco significativa na qualidade perceptual da imagem.

2.3.2 Redundância Temporal

A redundância temporal, também chamada de redundância inter-quadros (GHAN-BARI, 2003), é causada pela correlação existente entre quadros temporalmente próximosem um vídeo. Na verdade, a redundância temporal poderia ser classificada como apenasmais uma dimensão da redundância espacial, como faz (GONZALEZ, 2003). Muitos blo-cos depixelssimplesmente 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 outro. Out-ros pixelsapresentam uma pequena variação de valores causada, por exemplo, por umavariação de iluminação. Por fim, também é possível que o bloco depixelssimplesmentetenha se deslocado de um quadro para o outro, como por exemplo, em um movimento deum objeto em uma cena. Todos os padrões atuais de codificação de vídeo visam reduzir aredundância temporal. A exploração eficiente da redundância temporal conduz a elevadastaxas de compressão, o que é fundamental para o sucesso dos codificadores.

2.3.3 Redundância Entrópica

A redundância entrópica está relacionada com as probabilidades de ocorrência dossímbolos codificados. A entropia é uma medida da quantidade média de informação trans-mitida por símbolo do vídeo (SHI,1999). A quantidade de informação nova transmitidapor um símbolo diminui na medida em que a probabilidade de ocorrência deste símboloaumenta. Então, os codificadores que exploram a redundância entrópica têm por objetivo

18

transmitir o máximo de informação possível por símbolo codificado e, deste modo, repre-sentar mais informações com um número menor de bits. A codificação de entropia, comoé chamada, utiliza diferentes técnicas e algoritmos de compressão sem perdas para atingireste objetivo.

Além destes três tipos de redundância existe um outro tipo de redundância tambémexplorada pelo padrão H.264/AVC, que diz respeito as características do sistema visualhumano, que fazem com que não consigamos captar alguns tipos de informações na im-agem. Além disso, algumas informações da imagem, como o brilho, por exemplo, sãomais importantes para o sistema visual humano do que outras, como a crominância. Estetipo de redundância de informação é chamado de redundância psicovisual.

Este tipo de redundância é explorada pelo padrão na sub-amostragem de coresutilizadas pelo vídeo digital, pois utilizando um sub-espaço de amostragem do tipo YCbCr4:2:0, já existe um eliminação das informações de cor do vídeo, fazendo com que o vídeojá esteja representado com uma compressão referente a este tipo de redundância.

19

3 O PADRÃO H.264/AVC

Este capítulo traz um breve histórico e alguns conceitos sobre o padrãoH.264/AVC de compressão de vídeo. Também são abordados os detalhes sobre o blocode compensação de movimento, o que ajudará a contextualizar melhor a relevância destamonografia.

3.1 Histórico do padrão H.264/AVCO padrão de compressão de vídeo H.264/AVC, foco deste trabalho, é o mais novo

padrão de compressão de vídeo e foi desenvolvido com o objetivo de dobrar a taxa decompressão em relação aos demais padrões existentes até então. O padrão H.264/AVCfoi desenvolvido pelo JVT (ITU-T, 2000) que foi formado a partir de uma união entreos especialistas do VCEG da ITU-T (ITU-T, 2003) e do MPEG da ISO/IEC (ISO/IEC,1993). A primeira versão do H.264/AVC foi aprovada em 2003.

O padrão H.264/AVC foi desenvolvido por um período de aproximadamente qua-tro anos. As raízes deste padrão estão no projeto H.26L da ITU-T, que foi iniciado peloVCEG (ITU-T, 2005), que construiu a chamada para propostas no início de 1998 e quecriou o primeiro rascunho deste novo padrão em agosto de 1999. O objetivo do projetoH.26L era dobrar a eficiência de codificação atingida pelo padrão H.263 (ITU-T, 2000).

Antes do padrão H.264/AVC surgir, alguns outros padrões já haviam sido criadose já estavam consolidados, servindo de base para o desenvolvimento do H.264/AVC. Oprimeiro padrão relevante para a construção do H.264/AVC foi o H.261 da ITU-T (ITU-T, 1990). Este padrão lançou as bases do que é usado até hoje na maioria dos padrões decompressão de vídeo: DPCM com estimação de movimento na direção temporal, transfor-mada discreta do cosseno aplicada no resíduo e quantização linear seguida de codificaçãopor entropia. Após o padrão H.261, surgiu o padrão MPEG-1 da ISO/IEC (ISO/IEC,1993) seguido do padrão MPEG-2 da ISO/IEC, que também foi padronizado pela ITU-T como H.262 (ITU-T; ISO/IEC, 1994). Este padrão se tornou um padrão popular e émuito usado até a atualidade em diversas aplicações. Apesar do grande sucesso do padrãoMPEG-2, a evolução dos padrões de compressão de vídeo não parou. O padrão H.263(ITU-T, 2000) foi lançado e incorporou alguns avanços obtidos pelos padrões MPEG-1e MPEG-2, bem como técnicas novas que vinham sendo pesquisadas intensamente tantopela indústria quanto pela academia.

Em 2001 o grupo MPEG da ISO/IEC finalizou o desenvolvimento do seu maisrecente padrão, conhecido como MPEG-4 Parte 2 (ISO/IEC, 1999). Então, ainda nesteano, o MPEG construiu uma nova chamada de propostas, similar à do H.26L da ITU-

20

T, para melhorar ainda mais a eficiência de codificação atingida pelo MPEG-4. Então oVCEG, da ITU-T resolveu submeter seu rascunho em resposta à chamada de propostas doMPEG e propôs a união de esforços para completar o trabalho. Analisando as respostaspara sua chamada de propostas, o MPEG chegou a conclusões que afirmaram as escolhasde desenvolvimento realizadas pelo VCEG no H.26L:

• A estrutura de compensação de movimento com a transformada discreta do cosseno(DCT) era melhor do que as outras.

• Algumas ferramentas de codificação de vídeo que foram excluídas no passado (doMPEG-2, do H.263 ou do MPEG-4 Parte 2) por causa da sua complexidade com-putacional, poderiam ser reexaminadas para inclusão no próximo padrão, devidoaos avanços na tecnologia de hardware.

• Para maximizar a eficiência de codificação, a sintaxe do novo padrão não poderia sercompatível com os padrões anteriores. Então, para permitir um avanço mais aceler-ado na construção do novo padrão e para evitar duplicação de esforços, o ITU-T e oISO/IEC concordaram em unir esforços para desenvolverem, em conjunto, a próx-ima geração de padrão para codificação de vídeo e concordaram em usar o H.26Lcomo ponto de partida. Então, foi criado, em dezembro de 2001, o JVT (ITU-T,2005), formado por especialistas do VCEG e do MPEG. O JVT tinha o objetivo decompletar o desenvolvimento técnico do padrão até o ano de 2003. A ITU-T decidiuadotar o padrão com o nome de ITU-T H.264/AVC e a ISO/IEC decidiu adotar opadrão com o nome de MPEG-4 parte 10 - AVC (Advanced Video Coding - Codifi-cação de Vídeo Avançada). O padrão H.264/AVC teve seu rascunho final (ITU-T,2003) aprovado em outubro de 2003 (SULLIVAN; WIEGAND, 2005). Em julhode 2004, o JVT adicionou algumas novas funcionalidades ao padrão H.264/AVCatravés de uma extensão do padrão chamada deFidelity Range Extensions(FRExt)(ITU-T, 2005).

3.2 Conceitos básicos do padrão H.264/AVCO padrão H.264/AVC atingiu seu objetivo de alcançar as mais elevadas taxas de

processamento dentre todos os padrões existentes. Mas para isso, foi necessário umgrande aumento na complexidade computacional das operações dos codecs que seguemo padrão H.264/AVC em relação aos demais padrões disponíveis na atualidade. Este au-mento de complexidade impede, pelo menos na tecnologia atual, a utilização de codecsH.264/AVC implementados em software quando as resoluções são elevadas e/ou quandose deseja tempo real, com 30 quadros por segundo, por exemplo. A intratabilidade doproblema via software somado pelo enorme interesse comercial que reside neste padrão,têm impulsionado equipes de pesquisa e desenvolvimento ao redor do mundo a trataremdeste tema visando otimizações algorítmicas e/ou implementações em hardware para queos requisitos das aplicações sejam atendidos.

Existem muitas aplicações potenciais para codecs H.264/AVC, que vão de celu-lares à televisão digital e, por isso, a indústria está extremamente ativa nesta área e algu-mas soluções para HDTV já estão disponíveis, principalmente para decodificadores (quesão mais simples). Estas soluções comerciais costumam conter muitos segredos industri-ais, de modo que muitas destas soluções não estão reportadas em detalhes na literatura. Do

21

Figura 3.1: Diagrama de Blocos do Codificador do Padrão H.264/AVC

Figura 3.2: Diagrama de Blocos do Decodificador do Padrão H.264/AVC

ponto de vista da academia, existem muitas equipes espalhadas pelo mundo trabalhandocom o H.264/AVC, buscando soluções de software e/ou hardware para atacar o problemada complexidade elevada do padrão. Vários trabalhos têm sido publicados nos últimosdois anos, mas a área encontra-se ainda repleta de problemas sem solução e, conseqüen-temente, muitas contribuições inovadoras poderão ser descobertas e implementadas. AFigura 3.1 mostra o diagrama de blocos do codificador e a Figura 3.2 mostra o diagramade blocos do decodificador do padrão H.264/AVC.

3.3 PerfisO padrão H.264/AVC contém um grande conjunto de ferramentas de codificação

de vídeo, contudo, não é necessário a implementação de todas as ferramentas para to-das as aplicações. Por exemplo, as ferramentas de resiliência erros, podem não seremnecessárias para armazenamento de vídeos ou CDs. Se todos os decodificadores fossemobrigados a implementar todas as ferramentas, eles seriam muito complexos desneces-sariamente. Assim, o padrão define subconjuntos de ferramentas de codificação, que sãoimplementadas de acordo com a classe de aplicação. Um decodificador pode escolher porimplementar somente um subconjunto (perfil) de ferramentas. Primeiramente o padrãodefiniu três perfis:Baseline, Main eExtended.

O perfil Baselineé direcionado a aplicações como vídeotelefonia, videoconfer-ência e vídeo sem fio. O perfilBaselinesuporta codificação intra-quadro e inter-quadro(usando somenteslicesI e P) e uma codificação de entropia com códigos de comprimento

22

Figura 3.3: Estrututa dos Perfis Atuais do Padrão H.264

de palavra variável adaptativos ao contexto (CAVLC). O perfilMain é focado na trans-missão de televisão e no armazenamento de vídeo (AGOSTINI, 2005).Slicesdo tipo I(intra), sãoslicesformados por macroblocos que foram codificados utilizando a prediçãointra-quadros. Osslicesdo tipo P (Preditivos), são osslicesformados por macroblocosdo tipo I e P, macroblocos do tipo P foram codificados através da predição inter-quadro eutilizam apenas um quadro do vídeo como referência. Osslicesdo tipo B (Bi-preditivos),podem conter macroblocos do tipo I e B, os do tipo B são formados através da codificaçãointer-quadro e possuem até dois quadros como referência. Estes três perfis inicialmentepropostos pelo padrão H.264/AVC não incluíram suporte para vídeos com qualidade maiselevada, como as necessárias em ambientes profissionais. Para responder às exigênciasdeste tipo de aplicação, uma continuação do projeto JVT foi realizada para adicionar no-vas extensões para as capacidades do padrão original. Estas extensões foram chamadasde extensões para alcance de fidelidade (fidelity range extensions- FRExt). O FRExtproduziu um grupo de quatro novos perfis chamados coletivamente de perfisHigh (SUL-LIVAN, 2004). A Figura 3.3 mostra a estrutura de divisão entre os perfis do padrãoH.264/AVC.

3.4 Formato dos Dados Codificados

O H.264/AVC faz uma distinção entre e a Camada de Codificação de Vídeo (VCL)e a Camada de Abstração de Rede (NAL). A saída do processo de codificação é o dado

23

Figura 3.4: Seqüência de Unidades NAL

VCL (uma seqüência de bits que representam os dados do vídeo codificado) que são ma-peados para a unidade NAL para uma posterior transmissão ou armazenamento. Cadaunidade NAL contém umRaw Byte Sequence Payload(RBSP), que é um conjunto dedados correspondentes ao dado do vídeo codificado ou são informações de cabeçalho.Uma seqüência de vídeo codificado é representado por uma seqüência de unidades NAL,como mostra a Figura 3.4, e pode ser transmitida através de uma rede baseada em pa-cotes, com uma transmissão em bitstream or armazenada em um arquivo. O propósitode especificação separada entre a VCL e a NAL, é de fazer uma clara distinção entre ascaracterísticas de codificação (VCL) das características de transporte (NAL).

3.5 Os Módulos do Codec H.264/AVCNesta seção iremos detalhar os principais módulos que formam o codificador e o

decodificador do padrão H.264/AVC, e que estão sendo mostrados nas Figura 3.1 e 3.2 .

3.5.1 Módulo de Predição Inter-QuadroNeste módulo estão contidos os módulos de estimação de movimento (ME) e com-

pensação de movimento (MC) que juntos realizam um processo de predição de umarrayretangular depixels, que pode ser um macrobloco ou bloco, através da escolha de umoutroarray retangular similar de algum quadro de referência que já foi previamente cod-ificado, e mapeando esta escolha através de um vetor de movimento (MV). Como jáfoi dito anteriormente no padrão H.264/AVC estearray retangular pode ter os seguintestamanhos: 4x4, 4x8, 8x4, 8x8, 16x8, 8,16 e 16x16pixels. O módulo da estimação demovimento está presente apenas nos codificadores. Este módulo é o que apresenta a maiorcomplexidade computacional dentre todos os módulos de um codificador H.264/AVC(PURI; CHEN; LUTHRA, 2004). Este grande custo computacional é função das ino-vações inseridas neste módulo do padrão, que tiveram o objetivo de atingir elevadas taxasde compressão. Residem nos módulos da ME e MC as principais fontes de ganhos doH.264/AVC em relação aos demais padrões de compressão de vídeo (RICHARDSON,2003). A estimação de movimento deve prover as ferramentas de codificação capazes delocalizar, nos quadros de referência, qual macrobloco mais se assemelha ao macroblocoatual. Assim que o macrobloco é encontrado, a ME deve gerar um vetor indicando aposição deste macrobloco no quadro de referência. Este vetor é chamado de vetor demovimento e deve ser inserido junto com a codificação do macrobloco. Para a realiza-ção da estimação de movimento é considerado apenas o componente de luminância domacrobloco. Cada componente de crominância possui a metade da resolução horizontal evertical do componente de luminância, então os componentes horizontal e vertical de cadavetor de movimento são divididos por dois para serem aplicados aos blocos de crominân-cia (AGOSTINI, 2007). A compensação de movimento é o processo de compensaçãopara o deslocamento de objetos movidos de um quadro para outro. O Compensador deMovimento (MC) no codificador H.264/AVC é uma etapa precedida pela etapa de Esti-

24

Figura 3.5: Quadro do Vídeo Antes da MC

mação de Movimento (ME). É função da compensação de movimento, a partir do vetorde movimento gerado na ME, localizar os blocos de melhor casamento na memória dequadros anteriormente codificados (quadros passados e/ou futuros) e montar o quadropredito. Este quadro será subtraído do quadro atual para gerar o quadro de resíduos quepassará pela transformada. As Figuras 3.5, 3.6 e 3.7 mostram o mesmo quadro de umvídeo antes e depois da compensação de movimento e também um quadro de resíduo dasluminâncias, utilizando uma partição de macrobloco de 16x16pixels (SILVA, 2006).

Na Figura 3.6 fica nítida as bordas dos blocos de 16x16pixels, após a recon-strução da imagem pelo compensador de movimento, isto acontece devido ao fato do"casamento"entre blocos vizinhos não acontecer perfeitamente, fazendo com que sejagerado o chamado Efeito de Bloco. Para suavizar este efeito é utilizado um filtro dedeblocagem, este filtro é detalhado na seção 3.5.7.

A compensação de movimento é realizada tanto no codificador quanto no decodi-ficador. A MC no codificador pode ser simplificada, tendo em vista as possíveis simplifi-cações que podem ser realizadas na ME no codificador. Por outro lado, no decodificador,a compensação de movimento deve ser completa, isto é, deve estar apta a operar sobretodas as funcionalidades do padrão (SILVA, 2006).

3.5.2 Módulo de Predição Intra-Quadro

A predição intra-quadro é realizada através da interpolação de valores dospixelsdas bordas de blocos espacialmente vizinhos que foram anteriormente codificados. Estainterpolação é realizada direcionalmente, com múltiplos modos, cada um empregado emuma direção espacial diferente, o padrão H.264/AVC define nove modos diferentes de

25

Figura 3.6: Quadro do Vídeo Após a MC

Figura 3.7: Quadro de Luminância Resídual

26

predição intra-quadro (PURI; CHEN; LUTHRA, 2004) para blocos de luminância 4x4,estes nove modos estão mostrados na Figura 3.8, onde a direção espacial é indicada peladireção da seta (AGOSTINI, 2007).

Contudo, a predição intra-quadro ppode ocorrer com blocos de luminância comtamanho de 16x16pixels. Neste caso, existem quatro modos posíveis de se realizar apredição, conforme está apresentado na Figura 3.9. Os modos 0 e 1 são simples cópias navertical ou na horizontal das amostras reconstruídas das bordas. O modo 2 é o modo DCe é formado por uma média simples dos elementos das bordas, cujo resultado é copiadopara todas as posições do bloco. O modo 3 aplica uma função linear que considera asamostras horizontais e verticais (H e V na Figura 3.9) das bordas.

Figura 3.8: Nove modos de predição Intra-Quadro para Blocos de 4x4Pixels

Figura 3.9: Quatro modos de predição Intra-Quadro para Blocos de 16x16Pixels

3.5.3 O Módulo das Transformadas Diretas (T) e das TransformadasInversas (T−1)

Com este trabalho de investigação conseguimos localizar alguns módulos em queas técnicas de redução de potência podem ser empregadas (ver capítulo 5 ou 6), dois

27

destes módulos são os das Transformadas Diretas (T) e o das Transformadas Inversas(T−1). Portanto, este estudo dedicará um capítulo para estes dois módulos.

3.5.4 O Módulo da Quantização (Q)

O módulo Q realiza a quantização direta e a correção da escala do cálculo dastransformadas. Este módulo está presente apenas no codificador H.264/AVC. A quanti-zação é também chamada descalingno padrão H.264/AVC. O fator de escala para cadaelemento em cada bloco varia em função do parâmetro de quantização (QP) associadocom o MB que contem o bloco, e com uma função de posição do elemento dentro dobloco. Um algoritmo de controle no codificador do padrão controla o valor do parâmetrode quantização (PURI; CHEN; LUTHRA, 2004).

3.5.5 O Módulo da Quantização Inversa (Q−1)

O módulo Q−1, realiza a quantização inversa e a correção da escala do cálculodas transformadas. Alguns autores defendem que não é correto chamar este bloco dequantização inversa, uma vez que a quantização direta é um processo irreversível. Destemodo, estes autores utilizam o termorescalingao invés do termo quantização inversa(AGOSTINI, 2007). O módulo Q−1 esta presente nos codificadores e nos decodificadoresH.264/AVC.

3.5.6 O Módulo da Codificação de Entropia

Na codificação de entropia, que está presente nos codificadores e decodificadores opadrão H.264/AVC introduz algumas ferramentas que aumentam bastante a sua eficiênciade codificação. Nos níveis hierárquicos superiores (quadros,etc.), os elementos sintáticossão codificados usando códigos binários fixos ou de comprimento variável. A partir donível deslicesou abaixo (macroblocos, blocos, etc.), os elementos sintáticos são codifica-dos usando a codificação aritmética adaptativa ao contexto (CABAC) (RICHARDSON,2003) ou códigos de comprimento variável (VLC).

No caso do uso de VLC, a informação residual (coeficientes das transformadasquantizados) é codificada usando a codificação de comprimento variável adaptativa aocontexto (CAVLC) ( (RICHARDSON, 2003), enquanto que as demais unidades de cod-ificação são codificadas usando códigos Exp-Golomb. A opção pelo CABAC não estádisponível nos perfisbaselineeextended. A principal inovação introduzida na codificaçãode entropia do padrão H.264/AVC, tanto na codificação aritmética quanto na codificaçãoVLC é o uso de codificação adaptativa baseada em contextos. Nela, a maneira com quesão codificados os diversos elementos sintáticos depende do elemento a ser codificado,da fase em que se encontra o algoritmo de codificação e dos elementos sintáticos que jáforam codificados (AGOSTINI, 2007).

3.5.7 O Módulo do Filtro de Deblocagem

O objetivo deste filtro é suavizar o efeito de bloco do quadro reconstruído antes deele ser usado para fazer a predição de um novo macrobloco do tipo inter-quadro.

O filtro de deblocagem opera sobre um macrobloco após a compensação de movi-mento e da codificação residual, ou sobre um macrobloco após a predição intra-quadro ea codificação residual, dependendo se o macrobloco é codificado através da codificação

28

intra-quadro ou inter-quadro. O resultado na saída do filtro de deblocagem é armazenadopara ser usado como quadro de referência, exceção para aquelas figuras que não serãousadas como quadro de referência.

O filtro atua nas bordas do macrobloco e do bloco, a operação do filtro de de-blocagem é adaptativa em relação a um conjunto de vários fatores, entre eles estão oparâmetro de quantização do macrobloco atual e dos macroblocos vizinhos, a magnitudedo vetor de movimento e o tipo de codificação do macrobloco. Também é levado emconsideração os valores dospixelsque serão filtrados, tanto do macrobloco atual como osvalores dos macroblocos vizinhos.

3.6 Padrão H.264/AVC: Estado da ArteComo já foi citado neste trabalho existe muita pesquisa sendo realizada sobre

o padrão H.264/AVC, tanto pela comunidade acadêmica quanto pela indústria, pois, oH.264/AVC está sendo adotado como o padrão para as mais diversas aplicações, desde aTV Digital, onde as informações da imagem do vídeo serão transmitidas na forma digital(bit) ao invés da forma analógica tradicional, até o Blu-Ray que é um formato de discoóptico da nova geração para vídeo de alta definição e armazenamento de dados de altadensidade e que compete para se converter no padrão de discos ópticos sucessor do DVDtendo como seu rival o HD-DVD.

Portanto esta seção tem como objetivo mostrar alguns trabalhos de pesquisa queestão sendo feitos na área e que permitem a utilização deste padrão em várias aplicações.

No trabalho de (JIN; JUNG; LEE, 2007), é proposta uma execução em pipelinepara a codificação Intra-Quadro 4x4, a fim de diminuir as dependências entre blocos con-secutivos. Além disso o trabalho cita que esta execução da predição Intra-Quadro compipeline pode ser integrado com outras operações da codificação Intra-Quadro, permitindouma execução em paralelo. O trabalho também mostra que com esta implementação otempo de execução é diminuido em até 41% quando comparado com trabalhos anteriores.

Em (HWANGBO; KIM; KYUNG, 2007), uma arquitetura para a transformadainversa 2-D do decodificador do H.264/AVC é proposta. A arquitetura utiliza um blocode multiplicação e permutação de matrizes. Pela utilização da permutação de matrizes,a matriz da IDCT é regularizada e a transformada Hadamard inversa é inserida na IDCTcom uma menor modificação. Com isto, esta arquitetura proposta eliminou oarray deregistradores de transposição para fazer a transformada direta 2-D possível com a latênciamínima de um ciclo de clock.

No trabalho de (AZEVEDO et al., 2007), é apresentado o desenvolvimento deuma arquitetura para a compensação de movimento bi-preditiva para o decodificador doH.264/AVC (MoCHA). O projeto da arquitetura caracterizou uma hirarquia de memóriapara reduzir a largura de banda e o número de ciclos de acesso a memória. A arquiteturausa umdatapathsimples para processar áreas com referências bi-preditivas e processaamostras de luminância e chrominância em paralelo.

Em (CHAO et al., 2007), é proposta uma arquitetura de decodificação combi-nada e o projeto de transformada flexível com um altothroughputpara a decodificaçãodo resíduo dos decodificadores do H.264/AVC. A quantização inversa é combinada com aCAVLC para conseguir uma simplificação no decodificador. Além disso, é também pro-posta uma arquitetura para a transformada flexível que realiza a computação de todas astransformadas que são utilizadas no decodificador do padrão H.264/AVC. Assim, todas

29

as transformadas são realizadas na mesma arquitetura.Este trabalho tem como objetivo estudar estas arquiteturas que forma implemen-

tadas para as transformadas e são utilizadas pelo padrão H.264/AVC, e também outrasalternativas arquiteturais existentes na literatura como em (AGOSTINI, 2005). Com esteestudo serão propostas melhorias nestas arquiteturas, incluindo técnicas de redução depotência.

30

4 AS TRANSFORMADAS DO PADRÃOH.264/AVC

Este capítulo traz um revisão dos principais conceitos das transformadas utilizadasno padrão H.264/AVC e que compõe os módulos das Transformadas Diretas (T) e tambémdas Transformads Inversas T−1.

4.1 O Módulo das Transformadas Diretas (T)O módulo T é responsável pelas transformadas diretas e está presente apenas

nos codificadores H.264/AVC. As entradas para o módulo T são blocos 4x4 de resíduosgerados pela etapa de predição. Neste módulo está contida a DCT e a TransformadaHadamard.

4.1.1 A Transformada Discreta do Cosseno (DCT)

A DCT 2-D direta (FDCT 2-D) é aplicada a todas as amostras de entrada, tantode luminância quanto de crominância. A FDCT 2-D do padrão H.264/AVC é uma aprox-imação inteira da DCT 2-D real. Esta aproximação foi realizada para reduzir a complex-idade do cálculo e evitar erros de casamento entre o codificador e o decodificador. Ocálculo da FDCT 2-D é aplicado sobre todos os dados de entrada, tanto de luminânciaquanto de crominância, e a sua equação é definida como mostra a Figura 4.1 (AGOS-TINI, 2007).

Figura 4.1: Equação da DCT

Na Figura 4.1, X é a matriz 4x4 de entrada, a primeira matriz é da FDCT inteiraem uma dimensão, a segunda matriz é a transposta da matriz da DCT e a terceira e última

31

matriz é a dos fatores de escala. As letras "a"e "b", que estão presentes na terceira matriz,são constantes definidas em 4.1.

a = 1/2, b =√

2/5 (4.1)

4.1.2 A Transformada Hadamard

No caso de amostras com informação de crominância ou com informação de lu-minância cuja predição tenha sido do tipo intra-quadro 16x16, um cálculo adicional coma transformada Hadamard é realizado sobre os coeficientes DC resultantes da FDCT 2-D.A transformada Hadamard é uma inovação do padrão H.264/AVC e foi inserida com o ob-jetivo de atingir ainda mais compressão em áreas homogêneas do vídeo. A transformadaHadamard explora uma correlação residual que ainda permaneça sobre os coeficientes daFDCT 2-D (RICHARDSON, 2002).

Os coeficientes DC dos blocos de luminância cuja predição tenha sido intra-quadro16x16 são submetidos a uma transformada Hadamard 4x4 direta. Por outro lado, umatransformada Hadamard 2x2 direta é aplicada sob os coeficientes DC dos blocos decrominância. Então os 16 elementos DC dos 16 blocos do macrobloco irão formar amatriz 4x4 WD de entrada para a Hadamard direta 4x4 como mostra a equação da Figura4.2.

Figura 4.2: Equação da Transformada Hadamard 4x4

Como pode ser observado na Figura 4.2, os elementos das matrizes possuem ape-nas valores -1 e 1. Deste modo, apenas somas e subtrações são necessárias para realizaros cálculos relativos a esta transformada. A divisão por dois realizada em todos os ele-mentos da matriz de resultados é um simples deslocamento de uma casa binária para adireita (AGOSTINI, 2007).

A transformada Hadamard 2x2 é aplicada apenas para amostras DC de crominân-cia. Esta transformada é utilizada tanto para Cb quanto para Cr. Em função da relaçãode entrada 4:2:0 para Y, Cb e Cr, cada macrobloco possui 16x16 amostras de luminân-cia, 8x8 amostras de Cb e 8x8 amostras de Cr. As amostras de crominância passam pelaFDCT 2-D em blocos de 4x4 amostras. Então, cada matriz 8x8 de entrada é formada porquatro matrizes 4x4. Os quatro elementos DC das quatro matrizes resultantes da FDCT2-D passam pela Hadamard 2-D 2x2. O cálculo da Hadamard 2x2 definido pelo padrãoH.264/AVC está apresentado na Figura 4.3.

Pode ser observado na fórmula abaixo que os cálculos da Hadamard 2x2 sobre asamostras DC de Cb e Cr são muito simples, consistindo de poucas somas e subtrações.O módulo T, sendo formado pelas três transformadas que estão apresentadas, deve sin-cronizar a operação entre elas, de modo a gerar o fluxo correto de dados na sua saída. A

32

Figura 4.3: Equação da Transformada Hadamard 4x4

ordem de processamento está apresentada na Figura 4.4. Inicialmente, o macrobloco deluminância (Y na Figura 4.4) passa pela FDCT 2-D.

Se o modo é intra-quadro 16x16, então, como foi explicado, os coeficientes DCsdas matrizes 4x4 resultantes da FDCT 2-D passam pela Hadamard 4x4 direta. Nestecaso, primeiramente é enviado para saída o bloco -1 na Figura 4.4, com os resultadosda Hadamard 4x4 direta, e depois os elementos AC são enviados para a saída (blocos 0a 15 na Figura 4.4). Se o modo não é intra-quadro 16x16, então os blocos 0 a 15 sãoenviados diretamente para a saída e a Hadamard 4x4 não é aplicada. Seguindo os 16blocos de luminância, são processados quatro blocos de crominância Cb e quatro blocosde crominância Cr. Os blocos de crominância passam pela FDCT 2-D e, sob os elementosDC dos resultados, é aplicada a Hadamard 2-D 2x2. Então é enviado para a saída obloco 16 na Figura 4.4, com os resultados da Hadamard 2x2 para o componente Cb,depois é enviado o bloco 17, com os resultados da Hadamard 2x2 para Cr. Finalmente, oscoeficientes AC de crominância são enviados para a saída, primeiro os de Cb (blocos 18a 21) e depois os de Cr (blocos 22 a 25) (AGOSTINI, 2005).

Figura 4.4: Ordem de Processamento de Amostras pelo Módulo T

4.2 O Módulo das Transformadas Inversas (T−1)O bloco T−1 do padrão H.264 por fazer as operações inversas ao bloco T, possui

muitas características idênticas a este bloco. O bloco T−1 está presente nos codificadorese nos decodificadores H.264. O curioso é que o padrão H.264 definiu que a operaçãodo bloco T−1 seja fracionada em duas partes. A primeira é realizada diretamente sobreos resultados da quantização direta (Q) e envolve as transformadas Hadamard 2x2 e 4x4inversas. Este resultado é, então, entregue para a quantização inversa (Q−1). Então, osresultados da quantização inversa são entregues novamente para o bloco T−1, que realiza

33

a última etapa de seus cálculos, aplicando a DCT 2-D inversa (IDCT).O bloco T−1, sendo formado pelas três transformadas inversas que estão apresen-

tadas acima, deve sincronizar a operação entre elas, de modo a gerar o fluxo correto dedados na sua saída. A ordem de processamento é exatamente a mesma apresentada nadescrição do bloco T.

4.2.1 A Transformada Discreta do Cosseno Inversa (IDCT)A transformada IDCT 2-D está definida na equação da Figura 4.5, de acordo com

o padrão H.264, onde X é a matriz 4x4 de entrada, Ci é a matriz da IDCT inteira em umadimensão, CiT é a transposta de da matriz da IDCT e Ei é a matriz de fatores de escala.O símbolo na equação indica uma multiplicação escalar. As letras a e b na matriz Ei sãoas mesmas constantes definidas para a DCT 2-D direta. O cálculo da IDCT 2-D transferea tarefa de realizar a multiplicação escalar por Ei (do mesmo modo que para o cálculo daDCT 2-D) para o bloco de quantização inversa (Q−1), que é o passo que antecede a IDCTna compressão H.264. Esta tarefa adicional não implica em aumento na complexidade dobloco Q−1.

Figura 4.5: Equação da IDCT

Como pode ser observado na Figura 4.5, as matrizes CiT e Ci possuem apenasvalores 1 e1

2, positivos e negativos. Isso implica na realização de operações de somas e

subtrações e um deslocamento de uma casa para a direita, no caso do cálculo utilizar ovalor 1

2. O cálculo da IDCT 2-D é aplicado sobre todos os dados que são entregues pela

quantização inversa (Q−1).

4.2.2 A Transformada Hadamard InversaPara amostras com informação de crominância ou com informação de luminân-

cia cuja predição tenha sido do tipo intra-quadro 16x16 é aplicada a Hadamard 4x4 in-versa nos coeficientes DC dos blocos de luminância, enquanto que, para os blocos decrominância, é aplicada a Hadamard 2x2 inversa nos coeficientes DC dos blocos 4 x 4 decrominância.

Figura 4.6: Equação da Hadamard 4x4 Inversa

Como pode ser observado na equação da Figura 4.6, o cálculo da Hadamard 4x4

34

inversa é muito parecido com o cálculo da Hadamard 4x4 direta que foi apresentada naFigura 4.2, na descrição do bloco T. As matrizes possuem apenas valores 1, positivos enegativos, como na Hadamard 4x4 direta. Isso implica na realização apenas de operaçõesde somas e subtrações. A diferença entre a Hadamard 4x4 direta e inversa está na divisãopor dois, que não existe na Hadamard 4x4 inversa. A transformada Hadamard 2x2 inversaé aplicada apenas para amostras DC de crominância. É utilizada tanto para Cb quanto paraCr. O cálculo da Hadamard 2x2 inversa é idêntico ao cálculo da Hadamard 2x2 direta,que foi apresentado na Figura 4.3 (AGOSTINI, 2005).

4.3 Arquiteturas para a Transformada Hadamard In-versaEm (AGOSTINI, 2005) foi feita uma exploração no espaço de projeto da trans-

formada Hadamard 2-D 4x4, pois foi constatado que todas as arquiteturas que processammatrizes de entrada de 4x4 elementos(FDCT 2-D, IDCT 2-D, Hadamard 2-D direta e in-versa) possuem uma organização similar e, deste modo, podem ser descritas com umaorganização muito parecida. Portanto, a aplicação das alternativas investigadas com aHadamard 2-D direta podem facilmente ser aplicadas para as demais transformadas queprocessam matrizes de entrada de 4x4 elementos.

Em (AGOSTINI, 2005) cinco alternativas de implementação para a Hadamard2-D 4x4 foram realizadas, com duas implementações de arquiteturas seriais e três ar-quiteturas paralela. As Figuras 4.7, 4.8, 4.7, 4.7 e 4.7 mostram as arquiteturas destascinco alternativas.

Nas próximas etapas este trabalho explorará outras alternativas de projeto paraa transformada Hadamard 2-D 4x4, tendo como base as implementações realizadas em(AGOSTINI, 2005). Estas novas propostas de implementação teram técnicas de reduçãode consumo de potência, pois o principal objetivo dos próximos trabalhos será o de aper-feiçoar estas arquiteturas com a finalidade delas poderem ser aproveitadas no codec dopadrão H.264/AVC quando este for focado para dispositivos móveis. Portanto, as cincoalternativas de implementação são mostradas a seguir.

4.3.1 Arquitetura Serial com Separabilidade

A primeira alternativa explorada para a Hadamard 4x4 direta considera entradasseriais (isto é, uma amostra é processada a cada ciclo de clock) e usa a propriedade daseparabilidade da transformada, calculando duas transformadas em uma dimensão paraobter o resultado da transformada em duas dimensões, onde o resultado da primeira étransposto e a segunda transformada é, então, aplicada.

A implementação das transformadas Hadamard 1-D foi projetada para operar emum pipeline de dois estágios, sendo que cada estágio consome quatro ciclos de clockpara finalizar seus cálculos. Apenas um operador aritmético é utilizado por estágio emultiplexadores são usados para selecionar as entradas corretas dos operadores a cadanovo ciclo. As arquiteturas unidimensionais utilizambufferstipo ping-pong para man-ter estáveis as quatro entradas dos multiplexadores nosbufferspong (registradores embranco na Figura 4.7) enquanto novas entradas seriais continuam a chegar e vão sendoarmazenadas nosbuffersping (registradores em cinza na Figura 4.7). Esta estratégia éadotada para viabilizar o sincronismo no pipeline. As duas arquiteturas em uma dimen-

35

são são unidas por umbuffer de transposição. Estebuffer é responsável por ler linha alinha os resultados da primeira Hadamard 1-D e entregar estes resultados coluna a col-una para a segunda Hadamard 1-D. Obufferde transposição foi implementado utilizandoduas pequenas memórias RAM. Cada memória possui 16 posições com 16 bits em cadaposição, para armazenar os 16 resultados da primeira Hadamard 1-D. As duas memóriasfuncionam de maneira intercalada, isto é, enquanto os resultados da primeira Hadamardsão escritos em uma memória, a outra memória está provendo os dados para a segundaHadamard. Quando a operação de escrita e leitura de um bloco acaba, então as memóriasmudam de operação, isso é, a memória que estava sendo lida não possui mais nenhumdado que não tenha sido utilizado e, então, novos valores são escritos nesta memória.Por outro lado, a memória que acabou de ser preenchida com novos valores provenientesda primeira Hadamard, inicia a operação de prover estes novos dados para a segundaHadamard.

Figura 4.7: Arquitetura da Transformada Serial com Separabilidade

4.3.2 Arquitetura Serial sem SeparabilidadeA segunda alternativa arquitetural desenvolvida considerou uma arquitetura que

ainda consumisse uma amostra a cada ciclo (serial, portanto), mas que realizasse direta-mente o cálculo da Hadamard 2-D 4x4 em duas dimensões (sem separabilidade). Estasolução está apresentada na Figura 4.8.

Para tornar esta solução viável, a fórmula de cálculo da Hadamard 2-D que foi ap-resentada em (10) foi desdobrada, gerando o algoritmo apresentado na Tabela 4.1. Estescálculos geram um resultado que é idêntico ao produzido pela fórmula da Figura 4.2,mas sem usar a separabilidade. A decisão de não utilizar a separabilidade causa um au-mento na complexidade da arquitetura para o cálculo da Hadamard 2-D 4x4, aumentandoa utilização de recursos necessários para a sua implementação em hardware. Em contra-partida, obuffer de transposição não é mais necessário. Outra vantagem desta opção érelativa à simplicidade para a exploração do paralelismo. A partir do algoritmo apresen-tado na Tabela 4.1, é possível implementar, sem muito esforço adicional, arquiteturas queprocessam desde uma amostra por ciclo até 16 amostras por ciclo, como será detalhadonas próximas seções.

4.3.3 Arquitetura Parcialmente ParalelaA terceira alternativa arquitetural investigada foi uma arquitetura parcialmente

paralela, que consome uma linha do bloco 4x4 de entrada a cada ciclo, isto é, são consum-idas quatro amostras por ciclo de clock. Esta solução está apresentada na Figura 4.9. Aarquitetura desenvolvida para a solução parcialmente paralela utiliza o mesmo algoritmo

36

Figura 4.8: Arquitetura da Transformada Serial sem Separabilidade

da solução serial sem separabilidade, apresentado na Tabela 4.1.

A arquitetura parcialmente paralela recebe quatro amostras de entrada a cada cicloe, com o pipeline cheio, entrega também quatro valores por ciclo na saída. Também foramusadosbuffersdo tipo ping-pong nesta arquitetura. O número de registradores utilizadosé o mesmo que para a solução serial sem separabilidade, mas a localidade dos dadospermitiu agrupar alguns registradores de modo a permitir a divisão de alguns dosbuffersde 16 posições embuffersmenores, com oito posições. Outra constatação importante éque todos osbuffersping-pong desta arquitetura recebem e entregam mais de um valor acada ciclo de clock, diferentemente do que ocorre nosbuffersping-pong das arquiteturasanteriormente apresentadas, que recebem e entregam apenas um valor a cada ciclo. Aarquitetura parcialmente paralela, do mesmo modo que

4.3.4 Arquitetura Paralela com Pipeline

A quarta alternativa arquitetural explorada foi uma arquitetura completamenteparalela, consumindo 16 amostras (um bloco completo de 4x4 amostras) a cada ciclo.Esta arquitetura também é baseada no algoritmo apresentado na Tabela 4.1 e não utiliza apropriedade da separabilidade. Esta solução está apresentada na Figura 4.10 e foi desen-volvida em um pipeline de quatro estágios, do mesmo modo que as arquiteturas serial semseparabilidade e parcialmente paralela. A diferença é que, na arquitetura completamenteparalela, apenas um ciclo é consumido em cada estágio do pipeline, contra os dezes-seis ciclos utilizados pela arquitetura serial e os quatro ciclos utilizados pela arquiteturaparcialmente paralela. Deste modo, a latência da arquitetura paralela é de apenas quatrociclos de clock. A taxa de processamento desta arquitetura é de 16 amostras por ciclo. Emfunção do projeto parametrizável utilizado e considerando que o parâmetro de entrada Npossua o valor 8, então as amostras de entrada possuem 14 bits e os coeficientes de saídapossuem 17 bits. Existem dois problemas principais com esta solução. A primeira é que

37

Tabela 4.1: Algoritmo Utilizado para o Cálculo da Hadamard 2-D 4x4.

a0 = W0 + W4 b0 = a0 + a1 c0 = b0 + b1 S0 = (c0 + c1)/2

a1 = W8 + W12 b1 = a2 + a3 c1 = b2 + b3 S1 = (c0 - c1)/2a2 = W1 + W5 b2 = a4 + a5 c2 = b0 - b1 S2 = (c2 - c3)/2a3 = W9 + W13 b3 = a6 + a7 c3 = b2 - b3 S3 = (c2 + c3)/2a4 = W2 + W6 b4 = a0 - a1 c4 = b4 + b5 S4 = (c4 + c5)/2

a5 = W10 + W14 b5 = a2 - a3 c5 = b6 + b7 S5 = (c4 - c5)/2a6 = W3 + W7 b6 = a4 - a5 c6 = b4 - b5 S6 = (c6 - c7)/2

a7 = W11 + W15 b7 = a6 - a7 c7 = b6 - b7 S7 = (c6 + c7)/2a8 = W0 - W4 b8 = a8 - a9 c8 = b8 + b9 S8 = (c8 + c9)/2a9 = W8 - W12 b9 = a10 - a11 c9 = b10 + b11 S9 = (c8 - c9)/2a10 = W1 - W5 b10 = a12 - a13 c10 = b8 - b9 S10 = (c10 - c11)/2a11 = W9 - W13 b11 = a14 - a15 c11 = b10 - b11 S11 = (c10 + c11)/2a12 = W2 - W6 b12 = a8 + a9 c12 = b12 + b13 S12 = (c12 + c13)/2

a13 = W10 - W14 b13 = a10 + a11 c13 = b14 + b15 S13 = (c12 - c13)/2a14 = W3 - W7 b14 = a12 + a13 c14 = b12 - b13 S14 = (c14 - c15)/2

a15 = W11 - W15 b15 = a14 + a15 c15 = b14 - b15 S15 = (c14 + c15)/2

são necessários 16 operadores por estágio de pipeline, o que conduz a um consumo ex-cessivo de recursos. A segunda diz respeito ao roteamento, pois são 16 amostras entrandoe 16 amostras saindo, conduzindo a um número de fios muito grande entrando e saindoda arquitetura. A grande vantagem está no enorme throughput que esta arquitetura podeatingir, mas também é importante salientar outras duas vantagens. A primeira diz respeitoao projeto da parte de controle que é extremamente simples para a arquitetura completa-mente paralela. A segunda é que esta arquitetura não precisa utilizar osbuffersping-pongutilizados nas soluções anteriores, pois registradores simples são suficientes. A substitu-ição dosbuffersping-pong por registradores simples reduz a área utilizada e aumenta odesempenho da arquitetura.

4.3.5 Aruitetura Paralela CombinacionalA arquitetura da Figura 4.11, por ser puramente combinacional, não utiliza reg-

istradores, utilizando uma quantidade menor de recursos de hardware para ser imple-mentada. Mas a ausência de registradores também conduz a uma desvantagem que é oaumento do atraso. Enquanto o caminho crítico das demais arquiteturas apresentadas atéagora era de um registrador e um somador, na arquitetura combinacional este caminhocrítico vai passar por quatro somadores em série. Outra vantagem é a inexistência daparte de controle, facilitando o projeto e também reduzindo o consumo de recursos dehardware.

A arquitetura puramente combinacional possui uma latência de apenas um ciclo,contra as latências mais elevadas das demais arquiteturas apresentadas, que podem chegaraté a 64 ciclos de clock. A arquitetura foi desenvolvida de maneira parametrizável quantoà quantidade de bits usados nas entradas e saídas. Considerando que o parâmetro de en-trada N possua um valor 8, então as amostras de entrada possuem 14 bits e os coeficientesde saída possuem 17 bits.

38

Figura 4.9: Arquitetura da Transformada Parcialmente Paralela

Figura 4.10: Arquitetura da Transformada Paralela com Pipeline

39

Figura 4.11: Arquitetura da Transformada Paralela Combinacional

40

5 CONCLUSÃO

Este trabalho apresentou um estudo sobre vídeo digital, compressão de vídeo e dopadrão H.264/AVC de codificação de vídeo.

Foram apresentados alguns conceitos básicos sobre vídeo digital e compressãode vídeo além de uma introdução ao padrão H.264/AVC. Foram descritos os principaismódulos do codificador e do decodificador do H.264/AVC, de onde foi possível ter umaidéia mais concreta do funcionamento e das operações realizadas em cada módulo.

Por ser um padrão recentemente lançado e que ainda está sendo muito estudadotanto pela indústria quanto pela academia com várias equipes de pesquisadores espal-hadas pelo mundo, ainda existe muito o que ser feito e muita contribuição pode ser dada.O padrão H.264/AVC possui uma complexidade computacional elevada no seu codec, eisto, torna o desafio ainda maior, pois, quando se direciona uma implementação para dis-positivos móveis, esta carga computacional não pode refletir em aquecimento dos seuscircuitos para não comprometer o funcionamento do dispositivo e para também não au-mentar o consumo de energia da bateria que faz diminuir a sua autonomia.

O presente trabalho explorou os algoritmos e técnicas de implementação utilizadasna implementação dos módulos que compõe o codificador e o decodificador do padrãoH.264/AVC. Existem módulos em que um estudo mais aprofundado de seus algoritmosse faz necessário e em outros módulos temos a expectativa que a implementação comcodificação de operandos e/ou compressores nos proporcionará resultados satisfatóriosde performance, área utilizada e principalmente de redução do consumo de potência.

Este é o caso dos módulos das transformadas diretas (T) que é composto pelatransformada discreta do cosseno (DCT) e transformada Hadamard direta (FHT) e o mó-dulo das transformadas inversas (T−1) que tem a transformada inversa do cosseno (IDCT)e a transformada Hadamard inversa (IHT) onde será realizadas implementações utilizandoambas as técnicas, a codificação de operandos e também os compressores. Além destesmódulos, acreditamos que outros podem ter uma implementação mais eficiente no quediz respeito a redução do consumo de potência e desempenho dos circuitos.

Foram apresentadas cinco alternativas de implementação da arquitetura da trans-formada Hadamard 2-D 4x4 direta que forma descritas em (AGOSTINI, 2005) nas quaisserão exploradas as técnicas de redução de potência, que ainda serão melhor estudadas,com a intenção de aumentar a eficiência das mesmas.

Por ser um estudo inicial, muitas questões ainda estão em aberto e devem serestudadas com mais profundidade, tanto no que se refere as características, algoritmos efuncionamento do padrão H.264/AVC quanto ao que se refere as técnicas de redução doconsumo de potência em geral.

41

Porém, com os resultados obtidos com estudo bibliográfico feito até o momento etambém por ser uma área recente em que muitas contribuições ainda podem ser dadas, nósacreditamos que este trabalho é promissor e que pode produzir resultados significativospara o padrão e conseqüentemente para a área de compressão de vídeo.

42

6 TRABALHOS FUTUROS

Existem muitas oportunidades de desenvolvimento referentes ao padrãoH.264/AVC, planejamos como trabalhos futuros o estudo das várias técnicas de reduçãode consumo de potência existente na literatura, cito entre estas a codificação de operandos(COSTA, 2002), que prevê uma redução da atividade de chaveamento nos barramentosde dados diminuindo também a atividade de glitching e assim reduzindo a potência totaldissipada pelo circuito.

Uma outra técnica é a utilização de cicuitos somadores eficientes como os com-pressores 4:2 e compressores 8:2 (WEINBERGER, 1981)(OKLOBDZIJA; VILLEGER;LIU, 1996), que são circuitos onde são realizadas a soma de quatro ou oito operandos deuma só vez, também serão exploradas futuramente.

Além disso, esperamos dar novas contribuições em outros módulos do padrão apóso término do trabalho com o módulo da transformadas diretas e inversas.

43

REFERÊNCIAS

AGOSTINI, L. V. Desenvolvimento de Arquiteturas de Alto Desempenho Dedicadasà Compressão de Vídeo Segundo o Padrão H.264/AVC. 2005. Proposta de Tese deDoutorado — UFRGS, Porto Alegre/RS.

AGOSTINI, L. V. Desenvolvimento de Arquiteturas de Alto Desempenho Dedicadasà Compressão de Vídeo Segundo o Padrão H.264/AVC. 2007. Tese de Doutorado —UFRGS, Porto Alegre/RS.

AZEVEDO, A.; ZATT, B.; AGOSTINI, L.; BAMPI, S."MoCHA : a Bi-Predictive Mo-tion Compensation Hardware for H.264/AVC Decoder Targeting HDTV". [S.l.]: In: IEEEINTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, 2007. 4p.

CHAO, Y.; WEI, S.; YANG, J.; LIU, B."Combined Decoding and Flexible Trans-form Designs for Effective H.264/AVC Decoders". [S.l.]: In: IEEE INTERNATIONALSYMPOSIUM ON CIRCUITS AND SYSTEMS, 2007. 4p.

COSTA, E. A. C. da.Operadores Aritméticos de Baixo Consumo para Arquiteturasde Circuitos DSP. 2002. Tese de Doutorado — UFRGS, Porto Alegre/RS.

GONZALES, R.; WOODS, R.Processamento de Imagens Digitais. São Paulo: EdgarBlücher, 2003.

HWANGBO, W.; KIM, J.; KYUNG, C."A High-Performance 2-D Inverse TransformArchitecture for the H.264/AVC Decoder" . [S.l.]: In: IEEE INTERNATIONAL SYM-POSIUM ON CIRCUITS AND SYSTEMS, 2007. 4p.

ISO/IEC."Coding of Moving Pictures and Associated Audio for Digital Storage Me-dia up to About 1.5Mbits/s - Part 2: Video". [S.l.: s.n.], 1993.

ISO/IEC. "MPEG-4 Part 2 (01/99): Coding of Audio Visual Objets - part 2: Visual".[S.l.: s.n.], 1999.

ITU-T. "Recommendation H.261 v1(11/90): Video Codec for Audiovisual Services atpx64 Kbit/s". [S.l.: s.n.], 1990.

ITU-T. "Recommendation H.263 (11/2000): Video Coding for Low Bit Rate Commu-nication". [S.l.: s.n.], 2000.

ITU-T. "Recommendation H.264 (05/03): Advanced Video Coding for Generic Audio-visual Services". [S.l.: s.n.], 2003.

44

ITU-T. "Recommendation H.264 (03/05): Advanced Video Coding for Generic Audio-visual Services". [S.l.: s.n.], 2005.

ITU-T; ISO/IEC. "ITU-T Recommendation H.262 and ISO/IEC 13818-2(MPEG-2):Generic Coding of Moving Pictures ans Associated Audio Information - Part 2: Video".[S.l.: s.n.], 1994.

JIN, G.; JUNG, J.; LEE, H."An Efficient Pipelined Architecture for H.264/AVC IntraFrame Processing". [S.l.]: In: IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITSAND SYSTEMS, 2007. 4p.

MIANO, J. Compressed Image File Formats: JPEG, PNG, GIF, XBM, BMP. New York:Assison-Wesley, 1999.

OKLOBDZIJA, V.; VILLEGER, D.; LIU, S. A Method for Speed Optimized PartialProduct Reduction and Generation of Fast Parallel Multipliers and Alghorimic Ap-proach. [S.l.]: IEEE Transaction on Computers, Vol.45, N◦3, 1996.

PURI, A.; CHEN, X.; LUTHRA, A. Video Coding Using the H.264/MPEG-4 AVCCompression Standard. [S.l.]: Elsevier B. V., 2004. 57p.

RICHARDSON, I.Video Coding Design - Developing Image and Video CompressionSystems. Chichester: John Wiley and Sons, 2002.

RICHARDSON, I.H.264 and MPEG-4 Video Compression - Video Coding for Next-Genration Multimedia . Chichester: John Wiley and Sons, 2003.

SHI, Y.; SUN, H.Image and Video Compression for Multimedia Engineering: Fun-damentals, Algorithms and Standards. Boca Raton: CRC Press, 1999.

SILVA, A. M. C. da. Desenvolvimento de um Compensador de Movimento para oPadrão H.264 de Compressão de Vídeo. 2006. Monografia de Graduação — UFPEL,Pelotas/RS.

SULLIVAN, G.; WIEGAND, T. Video Compression - From Concepts to theH.264/AVC Standard. [S.l.]: Proceedings of the IEEE, 2005. 13p.

WEINBERGER, A.Computer Arithmetic : Algorithmis and Hardware Designs. [S.l.]:IBM Technical Disclosure Bulletin, Vol.23, 1981.

WIEGAND, T.; SULLIVAN, G.; BJONTEGAARD, G.; LUTHRA, A.Overview of theH.264/AVC Video Coding Standard. [S.l.]: IEEE Transactions on Circuits and Systemsfor Video Technology, 2003. 19p.