Escolar Documentos
Profissional Documentos
Cultura Documentos
= =
+
=
7
0
7
0
16
1 2
cos
16
1 2
cos
x y
yx ij ij
j x i y
V c T
onde
yx
V o componente na linha y e coluna x
7 , 1 j i e
8
1
=
ij
c se i ou j =0,
4
1
=
ij
c se i e 0
Uma importante propriedade da DCT 2-D a separabilidade, na qual o clculo da DCT 2-
D feito por duas DCT 1-D, onde a primeira aplicada linha a linha da matriz de entrada (8x8) e
a segunda s colunas da matriz resultante da primeira DCT 1-D. De acordo com [14] a separao
do clculo diminui a complexidade da operao e a rea ocupada em hardware.
Um algoritmo que usa esse princpio de forma otimizada encontrado em [16], porm
[14] constatou um erro e o corrigiu em seu trabalho, desse modo foi utilizado o algoritmo
encontrado em [14]. Esse algoritmo compreende seis passos, dos quais os trs primeiros e os dois
ltimos so realizados apenas por somas e subtraes. O passo quatro responsvel pela
multiplicao de alguns dos resultados dos passos anteriores por constantes.
Essas constantes so valores reais, isto , um tipo de dado no suportado pelo SASHIMI.
Por conta disso, essas constantes foram usadas multiplicadas por uma base dez de forma que
ficassem com um valor inteiro. Aps seu uso no passo quatro, o resultado dividido por essa
mesma base dez.
Outro detalhe na implementao desse processo foi a criao de um mtodo que realizasse
a diviso de inteiros para compensar a multiplicao da base dez, pois a instruo da Mquina
Virtual J ava para tal operao no faz parte do conjunto de instrues suportadas pelo SASHIMI.
4.1.2. Quantizao
O clculo da DCT concentra as freqncias mais baixas mais esquerda e mais cima na matriz
resultante e as freqncias mais elevadas no sentido inverso.
Como as freqncias mais altas possuem amplitudes mais baixas [16], estas tendem a
contribuir menos com a informao da imagem, sendo possvel atenu-las ou mesmo elimin-las.
Para isso cada coeficiente da matriz resultante da DCT dividido por um coeficiente
correspondente de uma tabela de quantizao e o resultado arredondado para um valor inteiro.
O objetivo da quantizao conseguir o maior nmero de zeros possveis sem interferir muito na
qualidade da imagem.
A entrada do processo de quantizao a matriz resultante da DCT que apresenta uma
escala dos resultados reais. A correo desta escala foi feita usando uma tabela de fator de escala,
onde para cada um dos coeficientes da matriz 8x8 definido um fator de escala como est
definido em [15]. Os fatores de escala para DCT 1-D so calculados de acordo com a equao da
Figura 2.
Figura 2 Fator de escala para DCT 1-D
Os resultados desse clculo so usados para calcular os fatores de escala para DCT 2-D
que geram constantes, as quais foram extradas de [14]. O clculo mostrado na Figura 3.
Figura 3 Fator de escala para DCT 2-D
A computao efetiva da quantizao feita atravs do arredondamento da diviso do
coeficiente da DCT 2-D pelo produto entre o fator de escala e o coeficiente da tabela de
) 16 / cos( 2
) (
) (
ix
i C
i Fe
=
=
2 / 1 ) (
2 / 1 ) 0 (
i C
C
7 1 i
) ( ) ( ) ( j Fe i Fe ij Fe = 7 , 1 j i
quantizao correspondente, conforme a Figura 4. Tambm foram utilizadas as constantes de
quantizao de [14]. Para realizar a diviso que ocorre nessa etapa foi utilizado o mtodo citado
na implementao da DCT. A observao a ser feita desse mtodo que o resultado da diviso
truncado e no arredondado. Este fato, porm, no implica em perdas significativas, visto que o
objetivo da quantizao diminuir, e em muitos casos zerar, as freqncias vindas da DCT 2-D.
Figura 4 Clculo da quantizao
4.1.3. Codificao de Entropia
Aps a quantizao, a matriz resultante ter maior probabilidade de possuir valores diferentes de
zero no canto superior esquerdo. Portanto, para obter seqncias com o maior nmero de zeros
seguidos, a matriz percorrida em ziguezague para formar uma nova matriz. Aps a formao da
nova matriz possvel aplicar vrias tcnicas de compresso j conhecidas, como Huffman, VLC
e RLE [14].
As matrizes 8x8 foram representadas por vetores de 64 posies, pois apenas vetores so
suportados pelo SASHIMI. Assim a leitura em ziguezague foi realizada graas observao que
no vetor contnuo de 64 elementos os ndices lidos so sempre referncias aos ndices lidos
anteriormente.
Na etapa de compresso podem ser usados os mais diversos algoritmos de compresso
sem perda. Nessa aplicao foi usado apenas o algoritmo RLE de forma otimizada, consistindo
em escrever antes de qualquer nmero diferente de zero a quantidade de zeros que o antecede.
4.2. Implementao do Clculo dos Vetores de Movimento
Esta aplicao tem por objetivo a implementao de diferentes verses do algoritmo de busca
completa, utilizado para a estimao de movimento, com a finalidade de comparar o consumo da
potncia gasta por cada uma destas. Estas verses foram implementadas utilizando tcnicas de
programao de modo que o algoritmo utilizasse mais memria e menos memria em sua
execuo. Quanto mais memria utilizada em sua execuo, mais rpido o algoritmo tende a ser,
ou mais fcil de fazer software-pipeline. Por conseqncia, mais potncia de pico gasta, embora
a energia total tenda a diminuir pela economia de tempo.
A estimao de movimento consiste em identificar a relao entre duas imagens em
instantes de tempo consecutivos e mape-la atravs de vetores denominados vetores de
movimento, os quais representam o deslocamento de uma mesma regio entre as duas imagens.
A estimao de movimento, utilizada na compresso de vdeo digital, normalmente realizada
em hardware por um processador dedicado, uma vez que demanda expressiva capacidade
computacional [17].
As imagens so subdivididas em regies de referncia e regies de procura. O tamanho
das regies de referncia e procura tm influncia na taxa de compresso, no esforo
computacional para estimao de movimento e na qualidade do vdeo produzido. O tamanho da
regio de referncia adotado pelo padro MPEG de 8x8, enquanto que a regio de procura
possui p pontos a mais do que a regio de referncia. Geralmente so utilizados tamanhos de
16x16, 32x32 ou at 256x256 para a regio de procura.[18]
A definio do algoritmo utilizado para a estimao de movimento determina a
quantidade de clculo necessrio para sua execuo e, por conseqncia, o tempo de execuo. A
alterao do tempo de execuo de um algoritmo, bem como a quantidade de acessos memria,
determinam a sua potncia consumida. Para a aplicao das tcnicas que visam diminuir o
consumo de potncia foi escolhido como referncia o algoritmo de busca completa, o qual
consiste em calcular a distoro para todas as possveis localidades de uma determinada regio e
obter um vetor de movimento como sendo o par ordenado (i,j) ao qual est associado o menor
valor de distoro encontrado.[19] O algoritmo de busca completa composto pelos seguintes
passos:
Definir o tamanho da regio referncia (NxN) e da regio de procura (N+p, N+p);
Definir a quantidade de blocos existente em uma imagem (LxC) por cada linha e coluna,
sendo N
linhas
=L/N e N
colunas
=C/N;
Definir o critrio para o clculo da distoro entre blocos;
Definir o vetor de movimento inicial de cada bloco como o par ordenado associado ao
pixel superior esquerdo do bloco:
o VMi(i_blk) =(i_blk*N);
o VMj(j_blk) =(j_blk*N);
Definir a distoro mnima inicial associada ao bloco como um valor infinito;
Para todos os pixels correspondentes a regio de procura:
o Efetuar o clculo da distoro para cada pixel;
o Se a distoro obtida for menor que a distoro mnima, esta distoro se torna a
nova distoro mnima e o par ordenado associado a essa distoro se torna o novo
vetor de movimento do bloco.
Dentre os critrios de distoro, existentes, utilizou-se o SAD (Soma das Diferenas
Absolutas), que possui como caracterstica principal ausncia de multiplicaes, o que facilita a
sua implementao. [19] Este critrio definido pela equao mostrada na Figura 5:
Figura 5 Equao do critrio SAD
A utilizao desse algoritmo exige uma grande capacidade computacional para sua
implementao devido ao fato de que todos os pixels da imagem so considerados no clculo da
distoro mnima e do vetor de movimento. No entanto, o resultado obtido de sua utilizao
considerado timo. [17]
Foi realizado um estudo de caso em que so utilizadas duas imagens de tamanho 32x32
pixels, regio de referncia de tamanho 8x8 e regio de procura de tamanho 16x16, dividindo as
imagens em 4x4 blocos. Para a implementao dos algoritmos em J ava atravs do ambiente
SASHIMI, algumas alteraes foram necessrias devido restrio do ambiente quanto ao uso de
matrizes. Dessa forma, foram utilizados dois vetores de 1024 elementos para as imagens de
referencia e procura e dois vetores de 16 elementos representando os vetores de movimento nas
=
+ + =
1
0
1
0
) , ( ) , ( ) (
M
m
N
n
j n i m P n m R ij D [ ] p p j i , ,
coordenadas i e j. Utilizar vetores ao invs de matrizes faz com que a complexidade do algoritmo
seja diminuda, reduzindo a quantidade de laos no algoritmo.
4.2.1. Utilizando menos memria
Implementar o algoritmo utilizando menos memria corresponde ao algoritmo original,
sem nenhuma forma de otimizao, inserindo o mximo de operaes aritmticas possveis e
eliminando chamadas a tabelas e variveis auxiliares. Dessa forma, todas as posies dos blocos
e vetores de movimento iniciais so calculadas durante a execuo do algoritmo. Como exemplo
dessa implementao, o cdigo correspondente ao clculo do critrio SAD foi realizado da
seguinte forma:
Para i_ref de 0 a (N-1) faa
Para j_ref de 0 a (N-1) faa
Ri =(i_blk*N) +i_ref;
Rj =(j_blk*N); +j_ref;
Pi =(i_blk*N) +i_ref +i_proc p;
Pj =(j_blk*N) +j_ref +j_proc p;
SAD =SAD +| R(Ri, Rj) P(Pi, Pj) |;
4.2.2. Utilizando mais memria
A utilizao de tcnicas utilizando mais memria, ao contrrio da implementao
anterior, significa reduzir ao mximo a quantidade de operaes existentes no algoritmo.
Para o estudo de caso em que os tamanhos das imagens anterior e atual e das regies de
referncia e procura j so determinados, possvel criar vetores e tabelas com as posies e
valores de algumas variveis, eliminando as operaes necessrias para sua determinao. Pelo
fato das posies dos pixels de referncia de cada bloco estarem predefinidas nesta
implementao, possvel criar um vetor com todas as 16 posies iniciais do vetor de
movimento, eliminando as multiplicaes existentes para o seu clculo bloco a bloco.
Outra modificao importante se refere ao lao mais interno do algoritmo, utilizado no
clculo da SAD. Todos os possveis valores das variveis Ri e Rj tambm podem ser
predefinidos, criando vetores de 256 elementos. Com o valor de p definido, tambm se torna
possvel a criao de mais duas tabelas com os valores de Pi =Ri-8 e Pj =Rj-8. O algoritmo com
as modificaes foi reescrito dessa forma:
Para i_ref de 0 a (N-1) faa
Para j_ref de 0 a (N-1) faa
auxi =k +k_aux;
auxj =l +l_aux;
RI =Ri[auxi];
RJ =Rj[auxj];
PI =Pi[auxi] +i_proc;
PJ =Pj[auxj] +j_proc;
SAD =SAD +| R(RI, RJ ) P(PI, PJ ) |;
5. Consideraes Finais
Neste artigo foi apresentada uma metodologia de desenvolvimento de sistemas embarcados que
objetiva diminuir os esforos de planejamento e implementao desses sistemas. Constatando-se
que metodologias tradicionais envolvem um relativo investimento em tecnologia, tempo e
pessoal, as quais associam muitos processos em seus desenvolvimentos, abordagens que
promovam uma maior abstrao e que reduzam os esforos envolvidos, e mesmo assim atribuam
qualidade nos sistemas finais, so muito relevantes para os desenvolvedores.
Dessa forma a metodologia apresentada nesse artigo prope o uso de uma linguagem de
programao de alto nvel para o desenvolvimento do hardware e software do sistema
embarcado, o qual baseado em uma arquitetura que ainda pode ser utilizada para gerao de um
ASIP. Nesse contexto foi utilizado um ambiente de desenvolvimento que utilizada a linguagem
J ava, largamente conhecida pelo potencial de portabilidade em uma diversidade de plataformas e
tambm muito utilizada em sistemas embarcados. Atravs desse ambiente possvel prover uma
abstrao no desenvolvimento e na simulao dos sistemas por meio de APIs J ava implementadas
nele.
Como aplicao dessa metodologia, utilizando o ambiente mencionado anteriormente, foi
desenvolvido um ASIP dedicado compresso de imagens usando o padro J PEG e um
mecanismo de estimao de movimento utilizado no padro MPEG-2 [17]. Analisando o tempo
de projeto e a quantidade de processos realizados no desenvolvimento dos ASIPs, a utilizao da
metodologia reduziu consideravelmente o esforo de construo, visto a complexidade da
prototipao de ASICs [14], [17] para as mesmas aplicaes, onde os resultados qualitativos de
simulao mostraram-se satisfatrios em comparao aos ASICs.
Referncias
[1] Berthet, C. Going Mobile: The Next Horizon for Multi-Million Gate Designs in the semi-
Conductor Industry; In: 39th Design Automation Conference, New Orleans, 2002. Proceedings.
Los Alamitos, IEEE Computer Society Press, 2002. p. 375-378.
[2] Benni, L. De Micheli, G. Network on Chip: A New SoC Paradigm. IEEE Computer, v.35,
n.1, J an. 2002, p. 70-78.
[3] Martin, G.; Brunel J . Platform-Based Co-Design and Co-development: Experience,
Methodology and Trends. IEEE/DATC Electronic Design Processes Workshop, april 21-23,
2002.
[4] Tsasakou, S.; Voros, N.S.; Koziotis, M.; Verkest, D.; Prayati, A.; Birbas, A. Hardware-
software co-design of embedded systems using CoWare's N2C methodology for application
development. Proceedings of IEEE International Conference on Electronics, Circuits and
Systems, 1999, pp. 59-62.
[5] Keutzer, K.; Malik, S.; Newton, A.R.; Rabaey, J .M.; Vincentelli, A. S.; System-level design:
orthogonalization of concerns and platform-based design. IEEE Transactions on Computer-Aided
Design of Integrated Circuits and Systems, 2000, pp. 1523-1543.
[6] Kawarabayashi, M.; Lu, J .; Goto, K.; Fung, P. W. "System level design methodology for
System on a Chip", NEC Research and Development, J UL 2000, pp. 248-252.
[7] Bricaud, P. J . IP Reuse Creation for System-on-a-Chip Design. I: Proceedings of the IEEE
Custom Integrated Circuits, 1999. p. 395-401.
[8] Keating, M.; Bricaud, P. Reuse Methodology Manual for System-on-a-Chip Designs
Second Edition. Kluwer Academic Publishers, USA, 1999.
[9] Thomas, T. Technology for IP Reuse and Portability. In: IEEE Design & Test of Computers.
Vol. 16, Issue 4, Oct.-Dec. 1999. p. 7-13.
[10] Dias, Ailton F. Concepo Conjunta Hardware/Software de Sistemas Embarcados de
Processamento de Imagens. CTDN/CNEN.
[11] Ito, S.A.; Carro, L.; J acobi, R.P.; System design based on single language and single-chip
J ava ASIP microcontroller. Design, Automation and Test in Europe Conference and Exhibition
2000. Proceedings , 27-30 March 2000 pp: 703 -707
[12] Ito, S.A.; Carro, L.; J acobi, R.P.; Designing a J ava microcontroller to specific applications.
Integrated Circuits and Systems Design, 1999. Proceedings. XII Symposium on, 29 Sept.-2 Oct.
1999 pp: 12 -15
[13] SASHIMI Manual do Usurio, verso 0.8b, Luigi Carro; J lio Mattos; Rafael Krapf;
Gustavo Spellmeier. Porto Alegre-RS, J aneiro, 2002.
[14] Agostini, Luciano Volcan. Projeto de Arquiteturas Integradas para a Compresso de
Imagens J PEG. Porto Alegre: PPGC da UFRGS, 2002. Dissertao de Mestrado em Computao.
Universidade Federal do Rio Grande do Sul.
[15] Mello, Cludio G. O Padro J PEG e o seu Uso na Transmisso de Imagens Adaptativas ao
Retardo na Rede. Instituto Militar de Engenharia.
[16] Kovac, Mario; Ranganathan, N. J aguar: A Fully Pipelined VLSI Architecture for J PEG
Image Compression Standard. Proceedings of the IEEE, Vol. 83, No. 2, February, 1995.
[17] Zadonai, Diogo. Uma arquitetura de Hardware para Estimao de Movimento aplicado
Compresso de Imagens. Porto Alegre: PPGC da UFRGS, 2003. Dissertao de Mestrado em
Cincia da Computao. Universidade Federal do Rio Grande do Sul.
[18] Querol, Marc. STI3220: Motion Estimation Processor Codec. SGS-Thomson
Microeletronics, 2001.
[19] Bhaskaran, V. Konstantinides, K. Image and Video Compression Standards: algorithms and
architectures. 2nd ed. Massachusetts: Kluwer Academic, 1999. 454p.