8
Projeto de Hardware para a Compensação de Movimento do Padrão H.264/AVC de Compressão de Vídeo Fabiane K. Rediess 1 , André C. da Silva, João A. Vortmann 1 , José L. Güntzel 1,2 , Sérgio Bampi 2 , Luciano V. Agostini 1,2 1 Grupo de Arquiteturas e Circuitos Integrados (GACI) Universidade Federal de Pelotas (UFPel) Caixa Postal 354 – CEP 96010-900 – Pelotas/RS – Brasil 2 Grupo de Microeletrônica (GME) Universidade Federal do Rio Grande do Sul (UFRGS) {frediess_ifm, andremcs, jvortmann_ifm, guntzel, agostini}@ufpel.edu.br, {bampi, agostini, guntzel}@inf.ufrgs.br Abstract. This paper presents the design of four solutions for the Motion Compensation of H.264/AVC standard. Three alternatives were designed for fixed size blocks with 16x16, 8x8 and 4x4 pixels, and one for multiple block sizes. Firstly, the solutions were implemented in software using C language. Then, the architectures were designed, described in VHDL and mapped to an Altera FPGA . Obtained results indicate that the software designs are more than 100 times slower than the hardware designs. The hardware designs, in worst case, are able to process more than 100 HDTV (1920x1080 pixels) frames per second. Resumo. Este artigo apresenta o desenvolvimento de quatro soluções para a Compensação de Movimento do padrão H.264/AVC. Foram desenvolvidas três alternativas utilizando blocos de tamanho fixo 16x16, 8x8 e 4x4 pixels e uma alternativa considerando blocos de tamanho variável. Primeiramente foram desenvolvidas soluções em software, utilizando C. Então as arquiteturas foram desenvolvidas, descritas em VHDL e mapeadas em um FPGA da Altera. Os resultados obtidos indicam que as implementações em software são mais de 100 vezes mais lentas do que as implementações em hardware. No pior caso, as implementações em hardware são capazes de processar mais 100 quadros HDTV (1920x1080 pixels) por segundo. 1. Introdução A compressão de vídeos digitais é um assunto bastante explorado na atualidade tanto pela academia quanto pela indústria, dada a possibilidade de codificação e decodificação deste tipo de mídia para diversos utilitários eletrônicos atuais, como computador pessoal e portátil, telefone celular, televisão digital de alta resolução, DVD players, câmeras e filmadoras digitais, entre muitos outros. Os vídeos digitais são formados por uma seqüência de fotos estáticas da área filmada (chamadas quadros), que devem ser obtidas a uma taxa entre 25 e 30 fotos por segundo para que o sistema visual humano seja capaz de perceber a seqüência de imagens estáticas como uma imagem em movimento. Considerando que o vídeo capturado não possua nenhuma compressão, então é necessária uma enorme quantidade de bits de memória para que este vídeo seja armazenado e uma elevada taxa de transmissão para que o vídeo possa ser transmitido em tempo real. Isso implica em custos muito elevados em termos de armazenamento e transmissão e estes custos acabam por inviabilizar o desenvolvimento de produtos para esta área, caso a compressão não seja utilizada. Por exemplo, considerando vídeos com resolução de 720x480

Compressão de Videos

Embed Size (px)

DESCRIPTION

videos

Citation preview

  • Projeto de Hardware para a Compensao de Movimento do Padro H.264/AVC de Compresso de Vdeo

    Fabiane K. Rediess1 , Andr C. da Silva, Joo A. Vortmann1, Jos L. Gntzel1,2, Srgio Bampi2, Luciano V. Agostini1,2

    1Grupo de Arquiteturas e Circuitos Integrados (GACI) Universidade Federal de Pelotas (UFPel)

    Caixa Postal 354 CEP 96010-900 Pelotas/RS Brasil 2Grupo de Microeletrnica (GME)

    Universidade Federal do Rio Grande do Sul (UFRGS) {frediess_ifm, andremcs, jvortmann_ifm, guntzel,

    agostini}@ufpel.edu.br, {bampi, agostini, guntzel}@inf.ufrgs.br

    Abstract. This paper presents the design of four solutions for the Motion Compensation of H.264/AVC standard. Three alternatives were designed for fixed size blocks with 16x16, 8x8 and 4x4 pixels, and one for multiple block sizes. Firstly, the solutions were implemented in software using C language. Then, the architectures were designed, described in VHDL and mapped to an Altera FPGA . Obtained results indicate that the software designs are more than 100 times slower than the hardware designs. The hardware designs, in worst case, are able to process more than 100 HDTV (1920x1080 pixels) frames per second.

    Resumo. Este artigo apresenta o desenvolvimento de quatro solues para a Compensao de Movimento do padro H.264/AVC. Foram desenvolvidas trs alternativas utilizando blocos de tamanho fixo 16x16, 8x8 e 4x4 pixels e uma alternativa considerando blocos de tamanho varivel. Primeiramente foram desenvolvidas solues em software, utilizando C. Ento as arquiteturas foram desenvolvidas, descritas em VHDL e mapeadas em um FPGA da Altera. Os resultados obtidos indicam que as implementaes em software so mais de 100 vezes mais lentas do que as implementaes em hardware. No pior caso, as implementaes em hardware so capazes de processar mais 100 quadros HDTV (1920x1080 pixels) por segundo.

    1. Introduo A compresso de vdeos digitais um assunto bastante explorado na atualidade tanto pela academia quanto pela indstria, dada a possibilidade de codificao e decodificao deste tipo de mdia para diversos utilitrios eletrnicos atuais, como computador pessoal e porttil, telefone celular, televiso digital de alta resoluo, DVD players, cmeras e filmadoras digitais, entre muitos outros. Os vdeos digitais so formados por uma seqncia de fotos estticas da rea filmada (chamadas quadros), que devem ser obtidas a uma taxa entre 25 e 30 fotos por segundo para que o sistema visual humano seja capaz de perceber a seqncia de imagens estticas como uma imagem em movimento. Considerando que o vdeo capturado no possua nenhuma compresso, ento necessria uma enorme quantidade de bits de memria para que este vdeo seja armazenado e uma elevada taxa de transmisso para que o vdeo possa ser transmitido em tempo real. Isso implica em custos muito elevados em termos de armazenamento e transmisso e estes custos acabam por inviabilizar o desenvolvimento de produtos para esta rea, caso a compresso no seja utilizada. Por exemplo, considerando vdeos com resoluo de 720x480

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

  • pixels (usada em SDTV) a 30 quadros por segundo, utilizando 24 bits por pixel, a taxa necessria para a transmisso em tempo real e sem compresso seria prxima a 249 milhes de bits por segundo (249 Mbit/s). Para armazenar uma seqncia de curta durao, com 10 minutos, seriam necessrios quase 19 bilhes de bytes (19GB). Apesar de seqncias de vdeo digitalizadas precisarem desta enorme quantidade de informao para serem representadas, as seqncias de vdeo possuem, em geral, uma outra importante propriedade intrnseca: apresentam elevado grau de redundncia. Isto significa que a maior parte dos dados necessrios para representar o vdeo digitalizado apenas se repete (de um quadro para outro ou dentro do mesmo quadro) ou, ainda, parte da informao representada no vdeo simplesmente no perceptvel para o sistema visual humano (altas freqncias, por exemplo). Esta informao redundante pode ser eliminada da seqncia de vdeo sem prejudicar a sua qualidade. O objetivo da compresso de vdeo , justamente, o desenvolvimento de tcnicas que possibilitem a mxima eliminao possvel desta informao redundante e, deste modo, consigam representar o vdeo digital com um nmero de bits muito menor do que o original. Por isso h vrios anos a indstria vem desenvolvendo padres para realizar a compresso de vdeos, como o MPEG-2 ou H.262 [ITU-T, ISO/IEC JTC1 1994] e o H.264 ou MPEG-4 Parte 10 [JVT 2003]. O padro H.264 foi desenvolvido com o objetivo principal de dobrar a taxa de compresso de seu predecessor, o padro MPEG-2. Este objetivo foi conquistado atravs do uso conjunto de diversas tcnicas avanadas e inovadoras de compresso e acarretou em um significativo acrscimo na sua complexidade computacional, que cerca de quatro vezes maior que a do MPEG-2 [Richardson 2003]. A taxa de compresso obtida com o H.264 superior a 300 vezes e o mesmo vdeo SDTV com 10 minutos do exemplo anterior pode ser representado com cerca de 0,06 bilhes de bytes, ao invs dos 19 bilhes de bytes originais. Os principais blocos de um codificador H.264, como est apresentado na Figura 1, so: a Estimao de Movimento (ME), a Compensao de Movimento (MC), a Predio Intra Quadro, as transformadas e a quantizao diretas, as transformadas e a quantizao inversas, o Filtro e a Codificao de Entropia. A ME e a MC juntas formam a Predio Inter Quadro. O decodificador H.264 formado por um sub-grupo destes blocos: Compensao de Movimento, Predio Intra Quadro, transformadas e quantizao inversas, Filtro e Codificao de Entropia.

    Figura 1: Diagrama de blocos do codificador do H.264/AVC

    Dos blocos apresentados, a Predio Inter Quadro a responsvel pelo maior ganho de compresso. Esse bloco tira proveito da provvel similaridade entre os quadros vizinhos de um vdeo. Cada quadro da imagem divido em macroblocos de 16x16 pixels, a estimao de movimento responsvel por procurar melhor casamento entre o macrobloco atual e os macroblocos de referncia em um ou mais quadros j codificados (passados ou futuros) e, ento, gerar um vetor de movimento indicando a posio onde foi encontrado o melhor casamento. A compensao de movimento, foco deste trabalho, responsvel por reconstruir o quadro atual da seqncia, baseando-se apenas nos quadros j codificados e nos vetores de movimento gerados pela estimao de movimento.

    Predio INTRA

    ME

    Q Codificao de Entropia

    Quadro Atual (original)

    Quadros de Referncia

    T

    Q-1 + T-1

    Quadro Atual

    (reconstrudo) Filtro

    Predio INTER

    MC

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri58

  • Este artigo apresenta o desenvolvimento de quatro implementaes em software e quatro implementaes em hardware para a realizao da compensao de movimento, focando no padro H.264 e considerando o perfil baseline. Todas as implementaes utilizaram o espao de cores YCbCr com sub-amostragem de cores 4:2:0, ou seja, para cada 4 informaes de luminncia existe 1 informao de crominncia azul e 1 de crominncia vermelha. Os vetores de movimento foram gerados pela estimao de movimento atravs do algoritmo Full Search [Kuhn 1999] implementado em trabalho paralelo [Porto 2006]. A seo 2 apresenta as ferramentas disponveis no padro H.264 para a realizao da compensao de movimento. A seo 3 apresenta as implementaes em software desenvolvidas em C e a seo 4 mostra as implementaes em hardware desenvolvidas em VHDL [Ashenden 1998]. Os resultados comparativos so mostrados na seo 5. Finalmente, na seo 6, so apresentadas as concluses deste artigo.

    2. A Compensao de Movimento no H.264 A compensao de movimento est presente tanto no codificador quanto no decodificador do H.264. O padro define apenas o decodificador H.264 e a nica restrio quanto ao codificador diz respeito capacidade deste de gerar um conjunto de bits capazes de serem decodificados pelo decodificador [Richardson 2003]. Deste modo, o codificador H.264 no est obrigado a implementar todas as ferramentas de codificao previstas pelo padro e esta caracterstica muito empregada na maior parte dos trabalhos acadmicos e industriais, com o intuito de simplificar o desenvolvimento dos codificadores. Como no codificador a estimao de movimento pode ser simplificada, a compensao de movimento tambm pode ser simplificada, implementando apenas as ferramentas que so implementadas pela estimao. Por outro lado, no decodificador a compensao de movimento precisa estar apta a realizar todas as funcionalidades do padro H.264, pois o decodificador deve estar apto a decodificar vdeos gerados por quaisquer codificadores compatveis com o padro. O perfil baseline do padro H.264 define vrias ferramentas de codificao que aumentam a eficincia da compresso, quais sejam: Mltiplos tamanhos de blocos: a estimao e a compensao de movimento podem usar mltiplos tamanhos de blocos, onde cada macrobloco de 16x16 pixels pode ser dividido em blocos menores. Os tamanhos permitidos so: 16x16, 16x8, 8x16 e 8x8. Cada bloco 8x8 pode ser novamente particionado em trs tamanhos: 8x4, 4x8 e 4x4 [Richardson 2003]. Esta ferramenta indita e permite ganhos de codificao significativos. Preciso de de pixel: o padro H.264 prev o uso de uma preciso de de pixel para busca do melhor casamento entre o macrobloco atual e o macrobloco de referncia. As posies de sub-pixel so geradas atravs da interpolao das posies inteiras de pixel [Richardson 2003]. Predio de vetores: o vetor de movimento de uma partio de macrobloco codificado considerando os vetores de movimento vizinhos, tendo em vista que existe um alto grau de correlao entre os vetores vizinhos. Mltiplos quadros de referncia: no H.264, um bloco do quadro atual pode codificado utilizando blocos passados e futuros (na ordem temporal). Vetores de movimento apontando para fora do quadro: para aumentar a eficincia da estimao de movimentos, so permitidos vetores de movimento que apontam para fora do quadro de referncia. Este artigo apresenta solues que investigam apenas os mltiplos tamanhos de blocos. As demais ferramentas de codificao sero desenvolvidas em trabalhos futuros.

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri59

  • 3. Implementaes da Compensao de Movimento em Software Na implementao em software da compensao de movimento foi utilizada a linguagem de programao C [Kernighan, Ritchie 1999]. Os algoritmos foram desenvolvidos visando sua implementao em hardware. Para verificao da correo das implementaes em software foi utilizado um vdeo com resoluo SDTV (720x480 pixels) e com sub-amostragem de cor 4:2:0. Estas implementaes podem facilmente ser adaptadas para aceitar outras resolues de vdeo. Os algoritmos recebem como entrada o arquivo do vdeo e o arquivo contendo os vetores de movimento gerados pela estimao de movimento e, ento, geram o vdeo reconstrudo. A primeira implementao desenvolvida trata macroblocos de tamanho fixo de 16x16. Para reconstruo de cada macrobloco do quadro atual, o algoritmo l os vetores de movimento e copia a matriz 16x16 correspondente do quadro de referncia. A segunda implementao trata blocos de tamanho fixo de 8x8, isto , cada macrobloco de 16x16 agora dividido em 4 blocos 8x8. Para reconstruir a imagem, o algoritmo percorre todos os blocos 8x8 dentro de cada macrobloco, lendo os vetores de movimento e buscando a matriz correspondente. A ltima implementao usando tamanhos de blocos fixos trata blocos 4x4. Cada macrobloco dividido em 16 blocos 4x4 e seu funcionamento similar ao 8x8. A quarta alternativa implementada usou blocos de tamanho varivel e rene os trs tamanhos de bloco utilizados nas implementaes anteriores, ou seja, cada macrobloco de 16x16, pode ser dividido em blocos de 8x8 ou 4x4. Nessa alternativa, o algoritmo precisa, alm dos vetores de movimento, de uma varivel extra que indica qual o tipo de vetor foi escolhido. Vrias simulaes foram realizadas para verificar a correo das implementaes em software. Um exemplo destas simulaes est apresentado na Figura 2. A Figura 2(a) apresenta o exemplo de um quadro original de um vdeo. A Figura 2(b) mostra o quadro reconstrudo pela compensao de movimento que, neste caso, utilizou tamanhos de blocos variveis. A Figura 2(c) apresenta o quadro de resduo gerado (diferena entre o quadro original e o quadro reconstrudo), que o que passar pelos demais passos do codificador ou decodificador. O quadro residual contm a diferena entre o quadro reconstrudo e o quadro original. A maior parte da informao residual possui uma amplitude reduzida e, portanto, com impacto mnimo na qualidade da imagem. Estas amplitudes pouco significativas so eliminadas por um passo posterior ao da MC, chamado de quantizao, gerando uma enorme taxa de compresso.

    (a) (b) (c) Figura 2. Processo de compensao de movimento: (a) Quadro original,

    (b) quadro reconstrudo e (c) quadro residual

    4. Implementaes da Compensao de Movimento em Hardware Para a implementao do compensador de movimento em hardware foi adotada a mesma estratgia para a implementao em software, ou seja, foram desenvolvidas quatro alternativas. As arquiteturas foram descritas em VHDL e sintetizadas para o dispositivo EP2S130F1020C4 da famlia Stratix II da Altera [Altera 2006]. Este dispositivo foi escolhido, fundamentalmente, por possuir memria interna suficiente para implementar as arquiteturas.

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri60

  • Todas as solues baseiam-se no diagrama em blocos apresentado na Figura 3, o qual mostra o ncleo do compensador de movimento e o uso de quatro blocos de memria, que sero responsveis por armazenar as informaes de luminncia e crominncia para o quadro de referncia, assim como para o quadro remontado. A memria utilizada foi mapeada para a memria interna do dispositivo FPGA, o que representa uma grande vantagem do ponto de vista do tempo de acesso.

    Memria Luminncia

    Memria Chrominncia

    Memria Luminncia

    Memria Chrominncia

    NcleoDoMC

    Referncia Remontado

    V0 V1

    Figura 3. Diagrama em blocos da compensao de movimento em hardware

    Todas as arquiteturas esto preparadas para trabalhar com vdeos no formato QCIF (176x144 pixels), tambm utilizando o espao de cores YCbCr com sub-amostragem 4:2:0. As memrias utilizadas para armazenar os quadros de referncia e remontado esto organizadas em dois blocos, um para armazenar as informaes de luminncia e outro as de crominncia. Na implementao para blocos de tamanho fixo 16x16, o bloco de memria correspondente a luminncia est organizado em 1584 palavras de 128 bits cada, sendo que cada palavra corresponde a uma linha de um macrobloco (16 amostras). O bloco correspondente crominncia est organizado em 792 palavras de 128 bits, onde cada palavra corresponde a uma linha do bloco de Cr e uma linha do bloco de Cb (8 amostras de Cr e 8 amostras de Cr). O ncleo do compensador de movimento foi desenvolvido conforme a mquina de estados finitos (FSM) mostrada na Figura 4(a). No Estado 0, o primeiro endereo de leitura calculado e feita a solicitao da memria do quadro de referncia. No Estado 1, verificado se h necessidade de uma nova leitura na memria de referncia atravs do sinal V1, o qual indica se ocorreu um deslocamento na horizontal. Em caso positivo, a leitura solicitada e a execuo passa para o Estado 2, caso contrrio a execuo encaminhada para o Estado 3. O Estado 2, um estado de espera, necessrio para que a memria realize a leitura. No Estado 3, a palavra montada e feita uma solicitao de escrita.

    Estado 0

    Estado 1

    Estado 2

    Estado 3

    V1 != 0

    V1 = 0

    Estado 0

    Estado 1

    Estado 2

    Estado 3

    V1 != 0

    V1 = 0

    Estado0

    Estado1

    Estado2

    Estado3

    Estado4

    Estado5

    Estado0

    Estado0

    Estado1

    Estado2

    Estado2

    Estado3

    Estado3

    Estado4

    Estado5

    Estado5

    (a) (b) Figura 4. FSM para o ncleo do compensador (a) para blocos de 16x16 e

    (b) para blocos de 8x8 e 4x4 e para blocos de tamanho varivel

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri61

  • As outras trs alternativas (tamanho fixo 8x8 e 4x4 e tamanho varivel) foram implementadas considerando a mesma organizao de memria. Nestes casos, so usadas 1584 palavras de 128 bits para luminncia, sendo que cada palavra representa um bloco 4x4 (16 amostras). Para crominncia so usadas 1584 palavras de 64 bits, onde cada palavra corresponde a um bloco 2x2 de Cr e um bloco 2x2 de Cb (4 amostras de Cr e 4 amostras de Cr). As trs alternativas tambm esto baseadas na mesma FSM que apresentada na Figura 4(b). Nessas implementaes, o nmero de leituras na memria de referncia pode variar entre uma leitura (quando os deslocamentos na horizontal e vertical forem mltiplos de 4 ou iguais a 0), duas leituras (quando apenas um dos deslocamentos for mltiplo de 4 ou igual a 0) ou quatro leituras (quando nenhum deles for mltiplo de 4 ou igual a 0). Para blocos de tamanho varivel apenas acrescentada uma entrada tipo que indicar o tipo de bloco que est sendo tratado e, assim, possibilitar o clculo da prxima posio que ser processada, bem como a deteco de possveis erros.

    5. Resultados Comparativos As implementaes do MC em software foram executadas em um processador Intel Celeron 2.8 GHz, com 256MB de memria principal. As implementaes em hardware foram direcionadas para o FPGA EP2S130F1020C4 da famlia Stratix II da Altera [Altera 2006]. A Tabela 1 apresenta os resultados de sntese gerados pela ferramenta Quartus II da Altera.

    Tabela 1. Resultados de Sntese das arquiteturas desenvolvidas

    16x16 8x8 4x4 VARIVEL Ncleo do MC 189 117 122 118 Freqncia

    (MHz) Bloco Completo 87 88 85 86 Ncleo do MC 1.519 2.389 2.378 2.390 ALUTs Bloco Completo 1.542 2.422 2.416 2.427

    As quatro implementaes em hardware da compensao de movimento utilizaram 608.256 bits de memria, sendo que 304.128 bits so usados para armazenar o quadro de referncia e outros 304.128 bits so usados para armazenar o quadro remontado. A informao mais importante apresentada na Tabela 1 diz respeito aos impactos mnimos causados pelo tratamento de blocos com tamanhos variveis, tanto em termos de freqncia mxima de operao quanto em termos de consumo de recursos do FPGA (ALUTs). Este um indicador positivo, pois o tratamento de vrios tamanhos de bloco aumenta significativamente a qualidade da codificao [Richardson 2003] e, conforme pde ser verificado com este trabalho, este tratamento no trs prejuzos em termos de consumo de hardware e em termos de velocidade de operao para a implementao da compensao de movimento. A Tabela 2 apresenta os resultados de desempenho (em quadros QCIF por segundo) para as implementaes em software e em hardware da compensao de movimento. Para as implementaes em hardware, so apresentados os dados de melhor e pior caso. O melhor caso acontece quando as mquinas de estado passam sempre pelo nmero mnimo de estados para reconstruir o quadro. O pior caso acontece quando a mquina de estados passa sempre pelo mximo nmero de estados para realizar a mesma tarefa.

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri62

  • Tabela 2. Taxa de processamento (em quadros QCIF por segundo) das implementaes em software e hardware da MC

    Os dados das implementaes em software da Tabela 2 foram obtidos atravs de estimativa, uma vez que a resoluo dos vdeos de entrada usados para mensurar o tempo de processamento foi SDTV e no QCIF. Na Tabela 2 importante notar que, para todos os casos, a implementao em software mais de 100 vezes mais lenta do que a implementao em hardware. Ainda assim, todas as implementaes atingem tempo real (24 a 30 quadros por segundo) para a resoluo QCIF (176x144 pixels). Extrapolando estes dados para resolues mais elevadas, como HDTV (1920x1080 pixels), SDTV (720x480 pixels) ou VGA (640x480 pixels) possvel perceber que as implementaes em software no vo conseguir atingir tempo real. Considerando HDTV, as implementaes em software atingem, no mximo, a taxa de processamento de 1 quadro por segundo. Para estas resolues mais elevadas somente as implementaes em hardware atingem tempo real. Considerando HDTV, no pior caso, as arquiteturas apresentadas neste artigo so capazes de processar mais de 100 quadros por segundo.

    6. Concluses Este artigo apresentou o desenvolvimento de quatro alternativas para a implementao da compensao de movimento segundo o padro H.264/AVC. Em trs dessas alternativas optou-se pela implementao utilizando blocos de tamanho fixo, os quais foram 16x16, 8x8 e 4x4. Na quarta implementao optou-se pelo tratamento de blocos de tamanho varivel, onde foram utilizados os trs tamanhos anteriormente desenvolvidos. Primeiramente, foram desenvolvidas implementaes em linguagem de programao C. Aps a validao destas implementaes, foram desenvolvidas as arquiteturas de hardware, que foram descritas em VHDL. Essas arquiteturas foram sintetizadas para um FPGA da famlia Stratix II da Altera e aps a sntese foram validadas atravs de simulao. Conforme esperado, as implementaes em software no so capazes de processar vdeos de alta resoluo em tempo real. Segundo estimativas, as implementaes em software atingem, no melhor caso, a taxa de processamento de 1 quadro por segundo para HDTV. Por outro lado, as estimativas realizadas indicam que as implementaes em hardware so capazes de atingir, no pior caso, uma taxa superior a 100 quadros por segundo. Como trabalhos futuros so indicados o desenvolvimento de uma arquitetura capaz de tratar todos os tamanhos de bloco previstos no padro H.264/AVC e o desenvolvimento de uma arquitetura capaz de tratar a preciso de um quarto de pixel, prevista pelo padro H.264.

    7. Referncias Altera Corporation (2006), Altera: The Programmable Solutions Company,

    http://www.altera.com. Ashenden, Peter J. (1998) The Students Guide to VHDL. San Francisco: Morgan Kaufmann.

    16x16 8x8 4x4 VARIVEL Hardware

    Melhor Caso 18.308 18.518 17.887 18.097

    Hardware Pior Caso 13.731 9.259 8.943 9.048

    Software 82,27 80,21 75,99 74,22

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri63

  • Chu, Chung-Tao; ANASTASSIOU, Dimitris; CHANG, Shih-Fu. (1997) Hierarchical global motion estimation/compensation in low birate vdeo coding. In: INT. SYMP. ON CIRCUITS AND SYSTEMS, Hong Kong.

    ITU-T e ISO/IEC JTC1, (1994) Generic coding of moving pictures and associated audio information Part 2: Video, ITU-T Rec. H.262 and ISO/IEC 13818-2 (MPEG-2).

    Joint Video Team of ITU-T e ISO/IEC JTC 1, (2003) Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 or ISO/IEC 14496-10 AVC).

    Kernighan, Brian W.; Ritchie, Dennis M. (1999) C: a Linguagem de Programao Padro Ansi. Rio de Janeiro: Campus.

    Kuhn, P. (1999) Algorithms, Complexity Analysis and VLSI Architectures for MPEG-4 Motion Estimation. Boston: Kluwer Academic Publishers.

    Porto, Marcelo Schiavon. (2006) Investigao de Algoritmos e Desenvolvimento Arquitetural para a Estimao de Movimento em Compresso de Vdeo Digital. 68f. Trabalho de Concluso de Curso Curso de Bacharelado em Cincia da Computao, UFPel. Pelotas.

    Richardson, I., H.264 e MPEG-4 (2003) Video Compression Video Coding for Next-Generation Multimedia, John Wiley and Sons, Chichester.

    cresseriHfen, Uruguaiana, V. 30, n 58, II semestre 2006

    cresseri

    cresseri64