Arquitetura Integrada para Conversor de Espaço de Cores e Downsampler para a Compressão de Imagens JPEG



Documentos relacionados
Projeto de uma Arquitetura de DCT 1D para a Compressão de Imagens JPEG

CONVERSOR DE ESPAÇO DE CORES PARALELO PARA A COMPRESSÃO DE IMAGENS JPEG

PROJETO DE ARQUITETURA DE CODIFICADOR DE ENTROPIA PARA COMPRESSÃO JPEG DE IMAGENS EM TONS DE CINZA

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Compressão com perdas

Unidade 5: Sistemas de Representação

Quais as diferenças entre os formatos de imagem PNG, JPG, GIF, SVG e BMP?

APLICATIVOS GRÁFICOS (AULA 4)

ARQUITETURA DE COMPUTADORES

Circuitos Digitais 144L

2. A influência do tamanho da palavra

Sumário. 1. Instalando a Chave de Proteção Novas características da versão Instalando o PhotoFacil Álbum 4

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

2. Representação Numérica

Acessando o SVN. Soluções em Vendas Ninfa 2

Memória cache. Prof. Francisco Adelton

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Sistemas Microcontrolados

Circuitos Digitais Cap. 5

Fontes de Alimentação

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Hit dos Bits. Série Matemática na Escola

Redes e Conectividade

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

CAPÍTULO 6 ARITMÉTICA DIGITAL

Visão Artificial Para a Indústria. Manual do Utilizador

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Notas de Cálculo Numérico

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

Circuitos Lógicos Registradores e Contadores

Sistemas de Numeração

MAIS CONTROLE SOFTWARE Controle Financeiro / Fluxo de Caixa (MCS Versão ) Índice

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Desenvolvimento de uma Etapa

Organização de Computadores 1

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações CONTADORES. Marcos Moecke

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

Sistema de Gerenciamento de Projetos V 1.01 MANUAL DO COORDENADOR

Modem e rede local. Guia do usuário

CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS

Guia de utilização da notação BPMN

Universidade Federal do Paraná. Setor de Ciências Exatas. Departamento de Matemática

Universidade Federal de São João Del Rei - UFSJ

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

Laboratório 7 Circuito RC *

Tudo o que você precisa saber sobre cartões de memória

RGF SISTEMAS DE INFORMÁTICA LTDA SISARQ SISTEMA DE CONTROLE DE ARQUIVO DESLIZANTE PARAÍSO DO TOCANTINS-TO

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

Algoritmos DCC 119. Introdução e Conceitos Básicos

CORRENTE CONTÍNUA E CORRENTE ALTERNADA

CONSIDERAÇÕES SOBRE OS RECEPTORES DE CONVERSÃO DIRETA

AULA 2 Planos, Vistas e Temas

Bem-vindo ao tópico sobre administração de listas de preços.

Paralelismo a Nível de Instrução

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

Aula 19. Conversão AD e DA Técnicas

CRONÔMETRO MICROPROCESSADO

1 CIRCUITOS COMBINACIONAIS

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO CADASTRO DE FUNCIONÁRIOS

Descrição do Produto. Altus S. A. 1

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

AULA: Introdução à informática Computador Digital

Unidade 3: Personalizando o Excel *

Marcos da Arquitetura de Computadores (1)

MODELAGEM E SIMULAÇÃO

CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL

Introdução à Engenharia de Computação

Sistemas Multimédia. Ano lectivo Aula 11 Conceitos básicos de Audio Digital. MIDI: Musical Instrument Digital Interface

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Introdução à Engenharia de Computação

Aula 14: Instruções e Seus Tipos

Cotagem de dimensões básicas

FERRAMENTAS DA QUALIDADE

Neste tópico, você aprenderá a criar facilmente um banco de dados para uma nova empresa e a definir configurações comuns de uma empresa no SAP

Modem e rede local. Guia do Usuário

CAPÍTULO I. UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA Apostila de Eletrônica Digital. Sistemas de Numeração. 1.

Arquitetura de processadores: RISC e CISC

TONALIDADE X FREQUÊNICA

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Manual do Teclado de Satisfação Online WebOpinião

Planificação de. Aplicações Informáticas B

Comunicação de Dados. Aula 5 Transmissão Analógica

FAQ: Parametrização para Contabilização

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

1223o TUTORIAL PRÉ-VENDA. Realização: DEPARTAMENTO DE IMPLANTAÇÃO EQUIPE DE DOCUMENTAÇÃO

Curso de Instalação e Gestão de Redes Informáticas

Manual do Skanlite. Kåre Särs Anne-Marie Mahfouf Tradução: Marcus Gama

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Questões de Informática Prova Comentada Ministério Público da União

Arquitetura de Rede de Computadores

Transcrição:

Arquitetura Integrada para Conversor de Espaço de Cores e Downsampler para a Compressão de Imagens JPEG Luciano Agostini, Sergio Bampi Grupo de Microeletrônica Instituto de Informática Universidade Federal do Rio Grande do Sul Cx. Postal 15064 CEP 91501-971 Porto Alegre Brasil {agostini, bampi}@inf.ufrgs.br RESUMO Este artigo propõe e desenvolve uma arquitetura integrada para efetuar as duas primeiras etapas da compressão JPEG: a conversão do espaço de cores e o downsampling. Esta abordagem permitiu uma redução nos recursos de hardware utilizados e um maior desempenho em relação a abordagem em que as duas etapas são feitas separadamente. Considerando a taxa de downsampling empregada neste artigo, de 4:1:1, somente nesta etapa existe uma compressão de 50% em relação à imagem de entrada. A arquitetura foi mapeada em FPGAs da família Flex 10KA da Altera e atingiu uma freqüência superior a 20MHz, ocupando menos de 500 células lógicas. ABSTRACT This paper proposes and designs an integrated architecture to make the first two stages of JPEG compression: color space conversion and downsampling. This approach allowed a reduction in the used hardware resources and a larger performance than the approach where the two stages are designed separately. Considering the downsampling rate 4:1:1 used in this paper, only in this stage there is a compression of 50% with respect to the input image. The architecture was mapped in Altera Flex 10KA FPGA family and it reached a frequency higher than 20MHz, using less than 500 logic cells.

1 Introdução Esse artigo propõe e desenvolve uma arquitetura integrada para efetuar conjuntamente a conversão do espaço de cores e o downsampling, que são as duas primeiras etapas da compressão JPEG [MIA99]. Esta integração permite minimizar o hardware necessário e diminuir o tempo de processamento. A arquitetura integrada foi desenvolvida considerando como entradas valores de pixeis no espaço de cores RGB, que é o mais utilizado em imagens digitais. Estes pixeis possuem 8 bits para cada um de seus componentes de cor, totalizando 24bits. O conversor de espaço de cores transforma a informação de cor do espaço RGB para o espaço YCbCr e deve manter a representação de cada um dos componentes do novo espaço (Y, Cb e Cr) com a mesma quantidade de bits utilizados para representar cada um dos componentes do espaço de entrada (R, G e B). Considera-se que novos valores para R, G e B devem estar disponíveis a cada três ou sete ciclos de clock, dependendo do cálculo que está sendo efetuado (somente Y ou Y, Cb e Cr). A conversão do espaço de cores é a primeira etapa na compressão JPEG e está apresentada em maiores detalhes no item dois deste artigo. A operação de downsampling é a segunda etapa da compressão JPEG e está melhor detalhada no item três do artigo. A compressão JPEG contém ainda o cálculo da DCT2D (Transformada Discreta do Cosseno em duas dimensões) como terceira etapa, a quantização como quarta etapa e a codificação de entropia como quinta e última etapa. A compressão JPEG possui vasto referencial bibliográfico, entre eles podem ser citados [THE92], [PEN92] e [MIA99], nos quais maiores detalhes sobre o padrão JPEG podem ser encontrados. O item quatro deste artigo apresenta o datapath da arquitetura proposta com os detalhes referentes ao seu desenvolvimento, incluindo o projeto do multiplicador. No item cinco está apresentado o controle da arquitetura proposta, com o diagrama temporal do pipeline, entre outras informações. Os resultados do mapeamento da arquitetura proposta para FPGAs estão apresentados no item seis, bem como os resultados da simulação da arquitetura. Por fim, no item sete, estão apresentados as conclusões deste trabalho. 2 A Conversão do Espaço de Cores no Padrão JPEG A conversão do espaço de cores é a primeira operação efetuada em um compressor JPEG. Usualmente as imagens de entrada para um compressor JPEG estão no espaço de cores RGB (Red, Green and Blue). Este espaço de cores deve ser convertido para algum espaço de cores do tipo luminância e crominância para a utilização da compressão JPEG [PEN92]. Os formatos de imagem não comprimidas normalmente estão no espaço de cores RGB, como o formato Bit Map do Windows (BMP), que será considerado o formato de imagem de entrada para este artigo. Os componentes R, G e B possuem uma grande correlação, tornando difícil o processamento de cada uma das partes de forma independente, por isso, a compressão JPEG tem uma eficiência muito maior para espaços de cores do tipo luminância e crominância do que para o espaço RGB [MIA99]. A base da compressão JPEG é a manipulação das informações da imagem no domínio das freqüências, em que os espaços de cores do tipo luminância e crominância apresentam características mais apropriadas do que o espaço RGB. Existem vários espaços de cores do tipo luminância e crominância. O espaço que será adotado neste artigo é chamado de YCbCr, no qual o componente Y contém a informação de luminância da imagem, ou seja, contém as informações sobre os tons de cinza. Os componentes Cb e Cr contêm as informações de cores da imagem, sendo que o componente Cb contém a informação relativa a cor azul (blue) e o componente Cr contém a informação relativa à cor vermelha (red). A conversão do espaço RGB para o espaço YCbCr pode ser feita de duas maneiras principais. A primeira, e mais direta, utiliza os três componentes R, G e B para o cálculo de cada um dos componentes Y, Cb e Cr, de acordo com as equações (1) [BHA99]. Y = 0, 299R + 0, 587G + 0114, B Cb = 0169, R 0, 331G + 0, 5B Cr = 0, 5R 0, 419G 0, 081B (1)

A maneira de fazer a transformação com um menor número de cálculos utiliza os componentes R, G e B para o cálculo do componente Y e, então, utiliza o componente B e o componente Y, que acabou de ser calculado, para o cálculo de Cb e os componentes R e Y para o cálculo de Cr. Este será o método adotado neste artigo e as suas equações estão apresentadas em (2) [BHA99]. Y = 0, 299R + 0, 587G + 0114, B Cb = 0, 564B 0, 564Y Cr = 0, 713R 0, 713Y (2) 3 A Operação de Downsampling no Padrão JPEG A operação de downsampling é a segunda etapa na compressão JPEG e é onde começa a acontecer a redução de dados necessários para armazenar a informação da imagem ou, em outras palavras, começa a acontecer a compressão. Existem perdas no processo de downsampling e essas perdas são irreversíveis, por isso e por causa da operação chamada de quantização (quarta etapa na compressão), a compressão JPEG é chamada de compressão com perdas. Isto significa que, após o processo de descompressão, a imagem resultante jamais será exatamente igual à imagem original que foi comprimida. As perdas sempre existem na compressão JPEG, mas podem ser controladas de modo a terem uma influência imperceptível ao olho humano na qualidade final da imagem. O olho humano é menos sensível às informações de cores da imagem (Cb e Cr) do que á informação de luminância (Y). Com base nesta constatação, a compressão JPEG elimina parte da informação de cores em um processo chamado de downsampling [MIA99]. Então alguns componentes de luminância (tipicamente 2, 3 ou 4) são associados a componentes de crominância (tipicamente 1 ou 2). Existem várias formas para relacionar os componentes de luminância com os de crominância na implementação do downsampling, a adotada neste artigo irá considerar uma relação de 4:1:1, ou seja, quatro componentes Y associados a apenas um componente Cb e um componente Cr. Com esta relação de 4:1:1 já se obtém uma taxa de compressão de 50% em relação à imagem da entrada, sendo as perdas de qualidade da imagem não muito significativas. Para facilitar a implementação da arquitetura, que será apresentada nos próximos itens do artigo, optouse por processar quatro componentes Y para só então processar um componente Cb e um componente Cr. Desta forma os resultados são entregues conforme (3). Y 1 Y 2 Y 3 Y 4 Cb 4 Cr 4 Y 5 Y 6 Y 7 Y 8 Cb 8 Cr 8 Y 9 Y 10... (3) A Figura 1 apresenta o fator de forma das matrizes Y, Cb e Cr de entrada em relação às matrizes Y, Cb e Cr entregues após a operação de downsampling. Figura 1 Fator de forma das matrizes Y, Cb e Cr antes e depois do downsampling

4 O Datapath da Arquitetura Integrada A proposta deste artigo, de desenvolver uma arquitetura integrada para a conversão do espaço de cores de RGB para YCbCr e para o downsampling, surgiu da percepção que a operação de downsampling pode ser simplificada a apenas uma operação de controle, então, ao invés de serem calculados todos os valores de Y, Cb e Cr para então parte dos valores Cb e Cr serem descartados, é muito mais eficiente controlar o cálculo dos valores de Y, Cb e Cr e gerar apenas aqueles que realmente serão utilizados. O datapath da arquitetura integrada é exatamente igual ao datapath do conversor de espaço de cores, uma vez que o downsampling é efetuado apenas pelo controle. Estes cálculos já foram apresentados em (2). As operações básicas a serem executadas são multiplicações por constantes e somas. As somas foram desenvolvidas através do uso de somadores ripple carries comuns, enquanto que as multiplicações foram desenvolvidas através do uso de somas de deslocamentos [BHA99]. Os deslocamentos foram obtidos através de barrel shifters otimizados e as somas, novamente com o uso de ripple carries. A arquitetura desenvolvida está apresentada na Figura 2. Esta arquitetura foi projetada para operar em um pipeline de 3 estágios. Os registradores Level1A, Level1B e Level2 formam as barreiras temporais necessárias para o pipeline. Cada multiplicação é obtida através da soma de quatro deslocamentos. Estas somas são efetuadas pelos somadores A, B e C. O somador D faz a acumulação das multiplicações. Figura 2 Datapath da arquitetura integrada No cálculo do primeiro Y (Y = 0,299R + 0,564G + 0,114B), por exemplo, no primeiro ciclo de clock são gerados os quatro deslocamentos em R que, no primeiro estágio do pipeline, serão somados dois a dois. No segundo ciclo de clock, o segundo estágio do pipeline efetuará a soma das duas somas parciais da parcela R e a multiplicação da constante 0,299 pelo valor de R está terminada. Neste mesmo ciclo, no primeiro estágio de pipeline são gerados os quatro deslocamentos em G que são somados dois a dois. No terceiro ciclo de clock, no terceiro estágio do pipeline, o valor da multiplicação sobre R é somado a zero e o resultado é acumulado em ACC. Também neste ciclo a multiplicação 0,564 por G é finalizada no segundo estágio e, no primeiro estágio, são gerados os deslocamentos sobre B que são somados dois a dois. No quarto ciclo de clock, no terceiro estágio do pipeline são somados o valor armazenado em ACC (0,299R) e o valor gerado pela multiplicação em G. No segundo estágio é efetuada a soma das somas parciais dos deslocamentos de B e no primeiro estágio estão sendo gerados os valores para o segundo Y. Por fim, no quinto ciclo de clock, no terceiro estágio são somados o valor de ACC (0,299R + 0,564G) com o valor da multiplicação sobre B (0,114B) e o valor do primeiro Y está pronto. Nos dois primeiros estágios do pipeline estão iniciando os cálculos para o segundo Y. Os cálculos de Cb e Cr foram entrelaçados para evitar a existência de uma bolha no pipeline. Primeiro é efetuada a multiplicação de Cr relativa a parcela R (0,713R), que é armazenada no registrador CrR. Então são efetuados os cálculos de Cb, primeiro a parcela relativa a B (0,564B) e em seguida a parcela relativa a Y (0,564Y). Então é calculada a multiplicação de Cr relativa a parcela Y (0,713Y) que é somada ao conteúdo do

registrador CrR pelo somador D. Este entrelaçamento foi necessário porque o valor de Y estaria sendo calculado no terceiro estágio do pipeline no mesmo momento em que deveria ser utilizado no primeiro estágio para o cálculo de Cb. Na Figura 2 podem ser observados os barrel shifters BS1, BS2, BS3 e BS4. Estes barrel shifters foram otimizados ao máximo, gerando circuitos específicos e com tamanho reduzido. A Tabela 1 apresenta a entrada de controle, o número de deslocamentos à direita e o número de bits na saída de cada um dos barrel shifters. Tabela 1 Operação dos barrel shifters BS1 BS2 BS3 BS4 Controle Nº des. Nº bits Nº des. Nº bits Nº des. Nº bits Nº des. Nº bits 00 1 3 4 5 01 2 11 4 9 6 8 7 10 4 5 8 Os somadores A e B do primeiro nível também foram otimizados. O somador A é um somador de 11 bits, gerando 12 bits devido ao carry out. O somador B também gera carry out e é um somador de 8 bits, com nove bits na saída. Os somadores C e D são somadores de 12 bits sem geração de carry out, portanto suas saídas possuem 12 bits. Para somar os valores entregues por BS1 com os entregues por BS2 e os valores entregues por BS3 com os entregues com BS4 é necessário concatenar com zeros os valores de BS2 e BS4 para manter os números somados na mesma escala. O valor de BS2 é concatenado com dois zeros à esquerda, enquanto que o valor de BS4 é concatenado com um zero também a esquerda. No segundo nível do pipeline, a entrada B do somador C deve ser concatenada com três zeros a esquerda pelo mesmo motivo das concatenações anteriores. Os números são concatenados com zeros porque a entrada possui apenas números positivos e até o segundo nível do pipeline são efetuadas apenas adições, então, não é necessário controlar a extensão do sinal, que é conhecido e tem o valor zero. Na saída da arquitetura são entregues somente os oito bits da parte inteira do cálculo que foi efetuado. O valor da saída do somador D é truncado e as quatro casas decimais são descartadas. O somador D opera como um acumulador e ele pode operar tanto como somador quanto como subtrator. A entrada B recebe a saída do somador C. A entrada A recebe zero na primeira acumulação, o valor do registrador acumulador ACC ou o valor do registrador CrR. O uso de somas de deslocamentos diminui a precisão do resultado, uma vez que foram usados um número finito de somas de deslocamentos para cada constante (quatro somas). Os erros máximos gerados devido a restrição de quatro somas de deslocamentos para cada constante estão apresentados na Tabela 2, na qual podese perceber que todos os erros foram menores que 1%. Tabela 2 Erros nas constantes das multiplicações Valor Usado Valor Usado Constante Erro (%) (decimal) (binário) 0,299 0,30078125 0,01001101 0,5957357859 0,587 0,5859375 0,10010110 0,1810051107 0,114 0,11328125 0,00011101 0,6304824561 0,564 0,5625 0,10010000 0,2659574468 0,713 0,703125 0,10111000 0,8064516129 Além do erro devido à restrição no número de somas de deslocamentos, os valores foram truncados na quarta casa decimal, como forma de minimizar os recursos utilizados. Como na saída da arquitetura são entregues apenas os oito bits da parte inteira, este truncamento acaba por gerar um erro pouco perceptível. 7

5 O Controle da Arquitetura Integrada O controle da arquitetura integrada deve habilitar os sinais no datapath de modo a efetuar os cálculos de quatro valores Y, um Cb e um CR, repetidamente até o final da imagem, diferentemente da proposta básica do conversor do espaço de cores, que prevê o cálculo de um Y, um Cb e um Cr continuamente até o fim da imagem. O datapath da arquitetura integrada permanece igual ao datapath do conversor de espaço de cores, conforme foi apresentado no item anterior. Por outro lado, o controle do conversor do espaço de cores teve que ser reprojetado para gerar os sinais de acordo com as restrições impostas pelo downsampling. Como já foi citado anteriormente, a arquitetura integrada foi projetada para operar em um pipeline de três estágios. Cada cálculo de Y utiliza 5 ou 3 ciclos de clock, dependendo se o pipeline está cheio ou vazio. Os cálculos de Cb e Cr usam, ao todo, 4 ciclos de clock. O diagrama temporal simplificado do pipeline desenvolvido está apresentado na Figura 3. Na Figura 3 os dados subscritos indicam qual elemento está sendo calculado e a qual parcela deste componente que está sendo considerada em cada nível do pipeline em cada momento. Figura 3 Pipeline da arquitetura integrada Entre os ciclos de clock 13 e 18 estão sendo calculados os primeiros Cb e Cr em que pode-se perceber que estão sendo calculados de forma entrelaçada. A máquina da estados desenvolvida para controlar o pipeline visou o uso de um menor número possível de estados, como forma de minimizar os recursos utilizados, desta forma foram utilizados somente nove estados. 6 Os Resultados do Mapeamento em FPGAs A arquitetura desenvolvida foi descrita em VHDL e mapeada em FPGAs da Altera com o auxílio da ferramenta Maxplus2 [ALT95], também da Altera. Os resultados obtidos no mapeamento da arquitetura estão apresentados na Tabela 3. Este mapeamento foi efetuado em um FPGA EPF10K10ATC100-1, ocupando um total de 76% das células lógicas deste dispositivo. Tabela 3 Resultados do mapeamento em FPGAs Pinos de Entrada 27 Pinos de Saída 25 Células Lógicas 441 Período (ns) 49,7 Freqüência (MHz) 20,12 Para efetuar uma verificação no funcionamento e na precisão da arquitetura integrada para conversão de espaço de cores e downsampling foi desenvolvida uma arquitetura específica. Esta arquitetura sensibiliza a arquitetura integrada com vários valores de entrada e disponibiliza os resultados dos cálculos na saída. A Tabela 4 apresenta as entradas, os resultados calculados e os resultados simulados para um conjunto de oito entradas R, G e B. Da Tabela 4, pode-se perceber que, mesmo com as restrições no número de somas de deslocamentos, mesmo com o truncamento na quarta casa decimal nos valores de saída dos barrel shifters e mesmo com o truncamento de todas as casas decimais na saída, o erro dos valores simulados em relação aos valores calculados foi muito pequeno.

Tabela 4 Resultados calculados versus resultados simulados Entradas Calculados Simulados R G B Y Cb Cr Y Cb Cr 100 200 250 175,8 X X 175 X X 250 100 200 156,3 X X 156 X X 200 250 100 217,9 X X 217 X X 10 200 30 123,8-52,9-81,15 123-53 -82 5 200 7 119,7 X X 119 X X 2 3 4 2,8 X X 2 X X 12 12 12 12 X X 11 X X 34 12 1 17,3-9,2 11,9 17-9 12 A Figura 4 apresenta uma fração da simulação desenvolvida para a arquitetura integrada a partir da arquitetura desenvolvida para a verificação. Na Figura 4 estão apresentados além dos valores de entrada R, G e B e de saída Y, Cb e Cr, o clock, o reset e o pino ok, que indica que um novo valor está disponível. Também está apresentado o sinal interno state, que indica o estado atual da máquina de estados que controla a arquitetura integrada. Os valores 203 e 247 para Cb e 174 para Cr são os números negativos -53, -9 e -82 que não estão apresentados nesta forma devido ao fato do visualizador de formas de onda da ferramenta Maxplus2 não interpretar números com sinal. Figura 4 Simulação da arquitetura integrada 7 Conclusões Este artigo propôs e desenvolveu uma arquitetura integrada para a conversão do espaço de cores e para o downsampling, que são as duas primeiras etapas da compressão JPEG. Inicialmente os conceitos relativos à conversão do espaço de cores e ao downsampling foram abordados. A seguir foram apresentados o datapath e o controle da arquitetura proposta. Por fim foram apresentados os resultados do mapeamento da arquitetura em FPGAs da Altera. Com a relação de 4:1:1 nos componentes Y, Cb e Cr, respectivamente, que foi gerada pelo downsampling, obteve-se uma compressão inicial de 50% em relação à imagem de entrada. Esta compressão foi obtida apenas com a eliminação de parte dos valores de crominância, para os quais o olho humano é menos sensível. A arquitetura proposta atingiu uma freqüência superior a 20MHz e ocupou menos de 500 células lógicas, usando cerca de 76% de um FPGA EPF10K10ATC100-1.

Algumas investigações seriam interessantes para o futuro, entre elas substituir os somadores ripple carries por somadores carry look ahead (CLA) e verificar os impactos que esta substituição traria em termos de células lógicas ocupadas e em termos de freqüência de operação. Outra investigação interessante seria usar arredondamento ao invés de truncamento, tanto nas saídas dos barrel shifters, quanto na saída da arquitetura e verificar os impactos em termos de precisão e em termos de células lógicas usadas. 8 Bibliografia [ALT95] Altera Data Book, Altera Corporation, 1995. [BHA99] BHASKARAN, V., KONSTANTINIDES, K. Image and Video Compression Standards Algorithms and Architectures Second Edition. Kluwer Academic Publishers, USA, 1999. [MIA99] MIANO, J. Compressed Image File Formats JPEG, PNG, GIF, XBM, BMP. Addison Wesley Longman Inc, USA, 1999. [PEN92] PENNEBAKER, W., MITCHELL, J. JPEG Still Image Data Compression Standard. Van Nostrand Reinhold, USA, 1992. [THE92] The International Telegraph and Telephone Consultative Committee (CCITT). Information Technology Digital Compression and Coding of Continuous-Tone Still Images Requirements and Guidelines. Rec. T.81, 1992.