6
Abstract—- Discrete transforms play an important role in digital signal processing. In particular, due to its transform domain energy compaction properties, the discrete cosine transform (DCT) is pivotal in many image processing problems. This paper introduces a numerical approximation method for the DCT based on round-off techniques. The proposed method is a multiplierless technique with low arithmetic complexity. Emphasis was given to approximating the 8-point DCT. A fast algorithm for the introduced 8-point approximate transform was derived. An application in image compression was examined. In several scenarios, the utilization of the proposed method for image compression resulted in comparable or better performances, when compared to the usual DCT-based methodology. Keywords— discrete cosine transforms, fast algorithms, image coding, complexity theory. I. INTRODUÇÃO M PROCESSAMENTO digital de sinais, as transformadas discretas desempenham um papel de destaque. Dentre as mais aplicadas, estão a transformada discreta de Fourier [1], a transformada discreta de Hartley [2], a transformada wavelet discreta [3] e a transformada discreta do cosseno (DCT) [4]. Particularmente em processamento de imagens, a transfor- mada discreta do cosseno encontra larga aplicação, sendo utilizada no padrão de compressão JPEG [5], [6]. O interesse na DCT pode ser justificado, em parte, pelo fato desta transformada ser uma reconhecida aproximação para a transformada de Karhunen-Loève (KLT) [4]. Entre as trans- formadas ortogonais, a KLT tem a distinção de apresentar desempenho ótimo com respeito a propriedades de compactação de energia [7]. De maneira simplificada, a DCT é uma transformação linear ortogonal capaz de realizar descorrelação de sinais modelados segundo um processo markoviano estacionário de primeira ordem [4]. Por isto, em geral, a DCT tem a propriedade de compactar a energia do sinal transformado em poucos componentes espectrais [7]. Usualmente, a DCT tem a seguinte formulação matemática. Considere dois vetores N-dimensionais, v e V, definidos sobre o conjunto dos números reais. A DCT relaciona tais vetores de acordo com [5, p. 290]: O primeiro autor agradece à CAPES pela concessão da bolsa de estudos. O segundo autor registra o apoio financeiro recebido do DFAIT, Governo do Canadá, e do CNPq, processo 305668. F. M. Bayer, Universidade Federal da Fronteira Sul, Erechim, RS, Brasil, [email protected] R. J. Cintra, Universidade Federal de Pernambuco, Recife, PE, Brasil. Este trabalho foi parcialmente realizado como pesquisador visitante no Department of Electrical and Computer Engineering, University of Calgary, Calgary, AB, Canadá, [email protected] () 1 0 (2 1) cos , 0,1,..., 1, 1 2 N n n k n V v k N k k N π α = + = = () 1 0 (2 1) cos , 0,1,..., 1, 2 2 N k k k k n v V n N n N π α = + = = em que α é um vetor auxiliar dado por: 1 , se 0, 2 , se 0. N k k N k α = = > O par de relações indicado por (1) e (2) representa as transformações direta e inversa, respectivamente. Adicionalmente, a DCT encontra uma conveniente representação matricial expressa pela seguinte relação: V C v N = , em que C N é a matriz transformação, cujos elementos , ij c são dados por , 1 ( 1)(2( 1) 1) cos 2 ij i i j c N π α + = , para , 1, 2,..., ij N = . Sendo uma matriz ortogonal, a matriz de transformação inversa é simplesmente fornecida pela trans- posta da matriz de transformação direta [1]. Assim, tem-se que: v C V T N = . A estrutura matemática da DCT pode ser estendida para o processamento de imagens. Em verdade, podemos interpretar uma imagem como uma matriz quadrada A de ordem N, em que cada elemento da matriz é denotado por , mn a . Assim, temos que a DCT bidimensional de uma imagem A fornece uma imagem B, cujos elementos são dados por [5, p. 293]: 1 1 , , 0 0 (2 1) (2 1) cos cos , 2 2 N N kl k l mn m n k m l n b a N N π π αα = = + + = para , 0,1,..., 1 kl N = . De forma análoga ao caso unidimen- sional, a transformação inversa para o caso bidimensional é dada por: 1 1 , , 0 0 (2 1) (2 1) cos cos , 2 2 N N mn k l kl k l k m l n a b N N π π αα = = + + = para , 0,1,..., 1 mn N = . Em termos matriciais, as transformações direta e inversa induzidas pela DCT bidimensional são expressas, respectiva- mente, pelo seguinte par de relações: Image Compression Via a Fast DCT Approximation F . M. Bayer and R. J. Cintra, Member, IEEE E 708 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 6, DECEMBER 2010

Image Compression Via a Fast DCT Approximation · Entre as trans-formadas ortogonais, a KLT tem a distinção de apresentar desempenho ótimo com respeito a propriedades de ... kk

Embed Size (px)

Citation preview

Abstract—- Discrete transforms play an important role in digital signal processing. In particular, due to its transform domain energy compaction properties, the discrete cosine transform (DCT) is pivotal in many image processing problems. This paper introduces a numerical approximation method for the DCT based on round-off techniques. The proposed method is a multiplierless technique with low arithmetic complexity. Emphasis was given to approximating the 8-point DCT. A fast algorithm for the introduced 8-point approximate transform was derived. An application in image compression was examined. In several scenarios, the utilization of the proposed method for image compression resulted in comparable or better performances, when compared to the usual DCT-based methodology.

Keywords— discrete cosine transforms, fast algorithms, image coding, complexity theory.

I. INTRODUÇÃO

M PROCESSAMENTO digital de sinais, as transformadas discretas desempenham um papel de

destaque. Dentre as mais aplicadas, estão a transformada discreta de Fourier [1], a transformada discreta de Hartley [2], a transformada wavelet discreta [3] e a transformada discreta do cosseno (DCT) [4].

Particularmente em processamento de imagens, a transfor-mada discreta do cosseno encontra larga aplicação, sendo utilizada no padrão de compressão JPEG [5], [6]. O interesse na DCT pode ser justificado, em parte, pelo fato desta transformada ser uma reconhecida aproximação para a transformada de Karhunen-Loève (KLT) [4]. Entre as trans-formadas ortogonais, a KLT tem a distinção de apresentar desempenho ótimo com respeito a propriedades de compactação de energia [7].

De maneira simplificada, a DCT é uma transformação linear ortogonal capaz de realizar descorrelação de sinais modelados segundo um processo markoviano estacionário de primeira ordem [4]. Por isto, em geral, a DCT tem a propriedade de compactar a energia do sinal transformado em poucos componentes espectrais [7].

Usualmente, a DCT tem a seguinte formulação matemática. Considere dois vetores N-dimensionais, v e V, definidos sobre o conjunto dos números reais. A DCT relaciona tais vetores de acordo com [5, p. 290]:

O primeiro autor agradece à CAPES pela concessão da bolsa de estudos. O

segundo autor registra o apoio financeiro recebido do DFAIT, Governo do Canadá, e do CNPq, processo 305668.

F. M. Bayer, Universidade Federal da Fronteira Sul, Erechim, RS, Brasil, [email protected]

R. J. Cintra, Universidade Federal de Pernambuco, Recife, PE, Brasil. Este trabalho foi parcialmente realizado como pesquisador visitante no Department of Electrical and Computer Engineering, University of Calgary, Calgary, AB, Canadá, [email protected]

( )1

0

(2 1)cos , 0,1,..., 1, 1

2

N

nn

k nV v k Nk k N

πα−

=

+ = = −

( )1

0

(2 1)cos , 0,1,..., 1, 2

2

N

k kk

k nv V n Nn N

πα−

=

+ = = −

em que α é um vetor auxiliar dado por:

1 , se 0,

2 , se 0.

N kk N k

α ==

>

O par de relações indicado por (1) e (2) representa as transformações direta e inversa, respectivamente.

Adicionalmente, a DCT encontra uma conveniente representação matricial expressa pela seguinte relação:

V C vN= ,

em que CN é a matriz transformação, cujos elementos ,i jc

são dados por , 1( 1)(2( 1) 1)

cos2i j i

i jc

N

πα −− − + =

, para

, 1, 2,...,i j N= . Sendo uma matriz ortogonal, a matriz de

transformação inversa é simplesmente fornecida pela trans-posta da matriz de transformação direta [1]. Assim, tem-se que:

v C VTN= .

A estrutura matemática da DCT pode ser estendida para o processamento de imagens. Em verdade, podemos interpretar uma imagem como uma matriz quadrada A de ordem N, em que cada elemento da matriz é denotado por ,m na . Assim,

temos que a DCT bidimensional de uma imagem A fornece uma imagem B, cujos elementos são dados por [5, p. 293]:

1 1

, ,0 0

(2 1) (2 1)cos cos ,

2 2

N N

k l k l m nm n

k m l nb a

N N

π πα α− −

= =

+ + =

para , 0,1,..., 1k l N= − . De forma análoga ao caso unidimen-

sional, a transformação inversa para o caso bidimensional é dada por:

1 1

, ,0 0

(2 1) (2 1)cos cos ,

2 2

N N

m n k l k lk l

k m l na b

N N

π πα α− −

= =

+ + =

para , 0,1,..., 1m n N= − .

Em termos matriciais, as transformações direta e inversa induzidas pela DCT bidimensional são expressas, respectiva-mente, pelo seguinte par de relações:

Image Compression Via a Fast DCT Approximation

F . M. Bayer and R. J. Cintra, Member, IEEE

E

708 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 6, DECEMBER 2010

B C ACTN N= ,

A C BCTN N= .

Observa-se que o cálculo da DCT bidimensional exige a multiplicação de matrizes quadradas de ordem N. Se calculada

de maneira direta, tal operação exige 3( )O N operações

multiplicativas [8]. Considerando métodos eficientes de multiplicação matricial, a complexidade multiplicativa pode

ser diminuída para 2,376( )O N [9]. Entretanto, mesmo nessa

situação, a operação computacional envolvida pode ser impraticável para aplicações em tempo real [1].

Para contornar estas dificuldades, uma estratégia largamente considerada é a transformação bloco-a-bloco. Este método consiste em subdividir uma imagem em blocos de mesmo tamanho e aplicar a transformada em cada bloco. O padrão de compressão de imagens JPEG utiliza este procedimento com tamanho de bloco de 8 8× pixels [10].

Por outro lado, mesmo que se considere apenas sub-blocos, o cálculo de uma transformada pode ser tornado mais eficiente com a utilização de algoritmos rápidos. Abordagens acerca da confecção de algoritmos rápidos para a DCT incluem: (i) procedimentos de fatoração de matrizes [11], [12]; (ii) algoritmos de aproximação [13]; (iii) estimação via momentos [14], entre outros.

Nesse contexto, o presente trabalho objetiva a proposição de um algoritmo de baixa complexidade computacional para a DCT bidimensional. Em particular, é buscado um método de aproximação espectral com complexidade multiplicativa nula. Para tanto, serão considerados procedimentos de trans-formação em sub-blocos de 8 8× pixels e técnicas de aproximação inteira.

Este artigo está organizado da seguinte maneira. Na Seção 2, é feita uma breve revisão sobre a DCT e é introduzida uma nova técnica de aproximação numérica denominada trans-formada arredondada do cosseno (RCT, rounded cosine transform). Adicionalmente, o caso particular de transfor-mações de comprimento de bloco 8N = é enfatizado. Subsequentemente, na Seção 3, são realizadas medidas de desempenho sobre a técnica proposta quando empregada em compressão de imagens. Por fim, as conclusões encontram-se na Seção 4.

II. TRANSFORMADA ARREDONDADA DO COSSENO

As transformadas discretas podem ser eficientemente implementadas através do uso de algoritmos rápidos [12], [14], [11]. Para mensurar a complexidade computacional de um algoritmo rápido, frequentemente, emprega-se a complexidade multiplicativa como figura de mérito [1]. Este procedimento é justificado essencialmente por dois motivos. Primeiramente, a teoria da complexidade multiplicativa é relativamente madura e prevê limitantes inferiores para o número de multiplicações exigidos por um transformada discreta [15]. Assim, a complexidade multiplicativa é largamente adotada como critério de avaliação e comparação

entre algoritmos numéricos para o cálculo de transformadas e convoluções [16]. Portanto, há uma busca por algoritmos que atinjam os mínimos teóricos de complexidade multiplicativa. Além disso, em geral, multiplicações por elementos de ponto flutuante são consideradas operações aritméticas mais lentas quando comparadas com outras operações elementares, tais como multiplicações por inteiros, adições, ou deslocamento de bits.

Por outro lado, algumas multiplicações não exigem um algoritmo completo de multiplicação. Por exemplo, multiplicações por zero ou pela unidade são triviais, não constituindo uma multiplicação de fato. Adicionalmente, multiplicações por potências de dois podem ser implementadas trivialmente em aritmética de base dois, por meio de deslocamento de bits. Estas operações são denominadas multiplicações triviais. Classicamente, na avaliação da complexidade multiplicativa de algoritmos numéricos, as multiplicações triviais não são contadas [1].

No cálculo da DCT, há o uso de um núcleo de transformação cossenoidal. Portanto, a princípio, os valores admitidos pelo núcleo mostrado em (1) requerem aritmética de ponto flutuante. Consequentemente, um algoritmo de multiplicação completo é necessário. Esta observação continua válida mesmo que algoritmos rápidos sejam considerados.

Para contornar essa situação, objetivando a minimização da complexidade multiplicativa, sugerimos a utilização de uma aproximação para a função cosseno. É proposto o emprego de uma função simples, admitindo apenas um número finito de valores [17]. Tais valores são ajustados para que apresentem complexidade multiplicativa nula.

Um modo de satisfazer estas exigências é através do uso da função de arredondamento para o inteiro mais próximo. Denote-se por [ ]x o inteiro mais próximo de uma quantidade

real x . Desse modo, podemos considerar a função [cos( )]x

como uma aproximação para o cosseno. Note que a função [cos( )]x assume apenas os valores 0 ou 1± , que são

multiplicandos triviais. A Fig. 1 ilustra esta aproximação. Assim, substituindo o núcleo cossenoidal da DCT pela

aproximação sugerida, introduzimos a transformada arredondada do cosseno pela seguinte relação:

1

0

(2 1)ˆ cos , 0,1,..., 1,2

N

nn

k nV v k Nk k N

πα−

=

+ = −

em que kV corresponde a uma aproximação de kV .

Figura 1. Função cosseno (curva tracejada) e a aproximação proposta (curva cheia) no intervalo [0,2 ]π .

BAYER AND CINTRA : IMAGE COMPRESSION VIA A FAST DCT APPROXIMATION 709

A matriz de transformação induzida pela RCT é dada por

CN , cujos elementos são fornecidos por

, 1( 1)(2( 1) 1)

ˆ cos2i j i

i jc

N

πα − − − + =

, para , 1, 2,...,i j N= .

Assim, a aproximação espectral fornecida pela RCT direta,

V , tem a seguinte expressão matricial:

ˆV C vN .

A transformação inversa, dada de forma aproximada, pois a

matriz CN não é ortogonal, pode ser introduzida de maneira

análoga. Basta que se considere a seguinte forma matricial:

ˆ ˆv C VTN ,

em que v aproxima o vetor original v . De forma análoga à extensão da DCT para o caso bidimen-

sional, dada uma matriz quadrada A, a RCT bidimensional e sua inversa aproximada são definidas matricialmente por:

ˆ ˆB C ACTN N ,

ˆ ˆ ˆˆA C BCTN N .

em que A e B são aproximações de A e B, respectivamente, fornecidas pela RCT.

Devido ao foco deste trabalho em processamento de imagens e dada a importância da transformada de ordem 8 para tal aplicação, são apresentadas as matrizes de transformação da DCT e da RCT. Seguindo a notação de [11] a matriz de transformação de ordem 8 da DCT é expressa por:

8

(4) (4) (4) (4) (4) (4) (4) (4)

(1) (3) (5) (7) (7) (5) (3) (1)

(2) (6) (6) (2) (2) (6) (6) (2)

(3) (7) (1) (5) (5) (1) (7) (3)1

(4) (4) (4) (4) (4) (4) (4) (4)2

(5) (1) (7) (3)

C

γ γ γ γ γ γ γ γγ γ γ γ γ γ γ γγ γ γ γ γ γ γ γγ γ γ γ γ γ γ γγ γ γ γ γ γ γ γγ γ γ γ γ

− − − −− − − −

− − − −=

− − − −− − (3) (7) (1) (5)

(6) (2) (2) (6) (6) (2) (2) (6)

(7) (5) (3) (1) (1) (3) (5) (7)

γ γ γγ γ γ γ γ γ γ γγ γ γ γ γ γ γ γ

− − − − − − − − − −

,

em que ( ) cos(2 / 32)k kγ π= . Em termos numéricos, a matriz

8C é caracterizada pela seguinte construção:

8

0,71 0,71 0,71 0,71 0,71 0,71 0,71 0,71

0,98 0,83 0,56 0,20 -0,20 -0,56 -0,83 -0,98

0,92 0,38 -0,38 -0,92 -0,92 -0,38 0,38 0,92

0,83 -0,20 -0,98 -0,56 0,56 0,98 0,20 -0,831

0,71 -0,71 -0,71 0,71 0,71 -0,71 -0,71 0,712

0,56 -0,98 0,20 0,83 -0

C =

,83 -0,20 0,98 -0,56

0,38 -0,92 0,92 -0,38 -0,38 0,92 -0,92 0,38

0,20 -0,56 0,83 -0,98 0,98 -0,83 0,56 -0,20

.

Desta forma, a matriz de transformação da RCT de ordem 8 é dada por:

8

1 1 1 1 1 1 1 1

1 1 1 0 0 1 1 1

1 0 0 1 1 0 0 1

1 0 1 1 1 1 0 11ˆ1 1 1 1 1 1 1 12

1 1 0 1 1 0 1 1

0 1 1 0 0 1 1 0

0 1 1 1 1 1 1 0

C

− − − − −

− − − = − − − −

− − − − − − − −

.

Sem o uso de um algoritmo rápido para multiplicação matricial, a complexidade computacional da DCT unidimensional é quantificada em 64 multiplicações e 56 somas. Do mesmo modo, a RCT unidimensional possui zero multiplicações e apenas 40 adições.

Um dos mais recentes algoritmos rápidos para a DCT foi apresentado em [12] e tem sua complexidade computacional indicada na Tabela I. Em contraste, propomos um algoritmo rápido para a RCT de comprimento 8 baseado em técnicas usuais de fatoração matricial que fazem o emprego de estruturas do tipo butterfly [1], [16], [18]. O algoritmo rápido obtido é livre de multiplicações e exige apenas 22 adições.

Este algoritmo é descrito pela seguinte fatoração de 8C em

matrizes esparsas:

8 3 2 11ˆ2

C P P P= ,

em que 1 1

1 1

1 1

1 11 1 1

1 1

1 1

1 1

P

= −

− − −

,

1 1

1 1

1 1

1 12 1

1

1

1

P

− =

e 1 1

1 1 1

1

1 1 13 1 1

1 1 1

1

1 1 1

P

− − = − −

− − −

.

TABELA I COMPARAÇÃO ENTRE AS COMPLEXIDADES ARITMÉTICAS DA DCT E DA RCT

Método Multiplicações Adições

DCT [12] 12 29

RCT 0 22

Os resultados da Tabela I sugerem uma maior eficiência computacional da RCT quando comparada a DCT, uma vez que requer um número inferior de operações aritméticas. Este fato indica que o tempo de execução de procedimentos que utilizem a RCT tende a ser menor do que o tempo de execução quando a DCT é empregada. No entanto, o tempo de execução total de cada algoritmo dependerá da arquitetura

710 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 6, DECEMBER 2010

computacional em que o mesmo será implementado. Usando técnicas descritas em [16], a fatoração da matriz

8C pode ser implementada computacionalmente sem maiores

dificuldades. O Algoritmo 1 lista o pseudo-código associado à fatoração proposta.

Algoritmo 1 Pseudo-código para o algoritmo rápido da RCT de comprimento oito.

III. APLICAÇÃO EM COMPRESSÃO DE IMAGENS

A RCT unidimensional pode ser considerada como uma ferramenta para compressão de dados. Examinaremos sua aplicação no contexto de compressão de imagens, exigindo o formalismo da RCT bidimensional.

O processo de compressão de imagens usualmente empregado na literatura consiste em sub-dividir uma dada imagem em sub-blocos ,Ai j . Adotaremos sub-blocos de

tamanho 8 8× pixels, que é a dimensão tipicamente mais utilizada. A DCT bidimensional é então aplicada à cada sub-bloco ,Ai j produzindo sub-blocos ,Bi j que são compostos de

coeficientes espectrais [5], [19]. Cada sub-bloco ,Bi j é

submetido a uma etapa de quantização que retorna um sub-bloco quantizado. Para i e j fixos, os elementos de um sub-bloco quantizado são resultantes da divisão inteira, aplicada

elemento-a-elemento, dos elementos de ,Bi j pelos elementos

de uma matriz de quantização Q pré-estabelecida [5, p. 335]. A matriz Q tem seus elementos expressos por

, 1 ( )k lq k l R= + + , em que R é um inteiro positivo e

, 1, 2,...,8k l = . O parâmetro R define o nível de compressão

da imagem e assume usualmente valores entre 2 e 25 [5]. Quanto maior o valor assumido por R, maior a taxa de compressão e, consequentemente, menor a qualidade da imagem resultante.

Apesar da etapa de quantização implicar numa compressão com perdas, o processo é computacionalmente eficiente. Além disso, a perda de qualidade é frequentemente imperceptível ao sistema sensorial humano [19]. Finalmente, a imagem pode ser reconstruída através de uma aplicação da DCT bidimensional inversa a cada sub-bloco de coeficientes quantizados.

Um procedimento inteiramente análogo pode ser empregado para a RCT. Propomos a seguinte heurística para compressão de imagens por meio da RCT: (i) digitalização da imagem; (ii) decomposição da imagem original em sub-blocos

,Ai j de 8 8× pixels; (iii) aplicação da RCT bidimensional a

cada sub-bloco obtido; e (iv) quantização dos sub-blocos espectrais de acordo com a matriz Q, para valores de R selecionados. A matriz de dados resultante desse procedimento representa a compressão da imagem original e contém os coeficientes quantizados da RCT. A partir desta matriz, a imagem original pode ser reconstruída de forma aproximada através de duas etapas: (i) aplicação da RCT bidimensional inversa a cada sub-bloco de coeficientes quantizados e (ii) recomposição dos sub-blocos criando uma única imagem.

As Fig. 2 e 3 ilustram qualitativamente as reconstruções de duas imagens padronizadas (Lena e Baboon) [20] após a aplicação do esquema de compressão de dados discutido acima. Nas Fig. 2(a) e 3(a), foi considerado o uso da DCT, enquanto que nas Fig. 2(b) e 3(b) a RCT foi utilizada. Em todos os casos, foi considerado o mesmo nível de compressão R = 20. Em termos de percepção visual, as imagens resultantes são comparáveis, exibindo qualidade similar. Esta conclusão qualitativa é reforçada pela observação das diferenças entre a imagem original e as imagens comprimidas pelos dois métodos. Estas imagens diferença são apresentadas nas Fig. 2(c) e 2(d), para a imagem Lena, e nas Fig. 3(c) e 3(d), para a imagem Baboon. As mesmas foram obtidas segundo a metodologia sugerida em [5, p. 273].

ENTRADA: v[n], n = 1,2,...,8 SAÍDA: V[k], k = 1,2,...,8 VETORES TEMPORÁRIOS: s[ ], t[ ]

s[1] ← v[1] + v[8] s[2] ← v[2] + v[7] s[3] ← v[3] + v[6] s[4] ← v[4] + v[5] s[5] ← v[1] - v[8] s[6] ← v[2] - v[7] s[7] ← v[3] - v[6] s[8] ← v[4] - v[5]

t[1] ← s[1] + s[4] t[2] ← s[2] + s[3] t[3] ← s[2] - s[3] t[4] ← s[1] - s[4]

V[1] ← t[1] + t[2] V[2] ← s[5] + s[6] + s[7] V[3] ← t[4] V[4] ← s[5] - s[7] - s[8] V[5] ← t[1] - t[2] V[6] ← s[5] - s[6] + s[8] V[7] ← -t[3] V[8] ← s[6] + s[7] - s[8] for all k do

V[k] ← V[k]/2 end for

BAYER AND CINTRA : IMAGE COMPRESSION VIA A FAST DCT APPROXIMATION 711

Figura. 2. Resultados após compressão ((a) e (b)) da imagem Lena e imagens diferença ((c) e (d)), utilizando a DCT e a RCT, respectivamente.

Figura 3. Resultados após compressão ((a) e (b)) da imagem Baboon e imagens diferença ((c) e (d)), utilizando a DCT e a RCT, respectivamente.

Para conduzir uma análise quantitativa é necessário que se elejam alguns critérios de comparação. Para tanto, foram separadas as seguintes medidas de qualidade de imagem: o erro médio quadrático (EMQ) e a relação sinal ruído de pico (PSNR) [5, p. 271]. O EMQ e a PSNR são medidas clássicas

para avaliação de qualidade de imagem e têm seus valores direta e inversamente proporcionais à diferença entre duas imagens, respectivamente. Valores típicos para a PSNR variam entre 20 e 40 dB.

As medidas de qualidade foram aplicadas a 22 imagens padronizadas obtidas em [20]. As imagens selecionadas têm 512 512× pixels em escala de cinza com 256 tonalidades. Para avaliar o desempenho da compressão de imagens sob diferentes níveis de qualidade foram considerados os valores

2,3,...,35R = . Isso implica em 22 34 748× = casos

considerados. A Fig. 4 apresenta a média das medidas de qualidade das 22 imagens para os diferentes valores de R.

Figura 4. Médias das medidas de qualidade para a compressão de imagens via DCT (curva tracejada) e RCT (curva cheia), para R = 2,3,...,35.

Os resultados obtidos mostram valores mais elevados do

EMQ quando a compressão via RCT é empregada. No entanto, os valores do EMQ para a RCT e a DCT se tornam mais próximos a medida que o nível de compressão R aumenta. Quando a PSNR é considerada, as médias assumem valores próximos a partir de R = 15.

Entretanto, para alguns valores de R, as imagens resultantes da compressão pela RCT apresentam maiores valores médios de PSNR quando comparados com os desempenhos fornecidos pelo método exato via DCT. Adicionalmente, observamos que os coeficientes de variação (razão entre

(a) Compressão com DCT (b) Compressão com RCT

(c) Imagem diferença (DCT) (d) Imagem diferença (RCT)

(a) EMQ

(b) PSNR

(a) Compressão com DCT (b) Compressão com RCT

(c) Imagem diferença (DCT) (d) Imagem diferença (RCT)

712 IEEE LATIN AMERICA TRANSACTIONS, VOL. 8, NO. 6, DECEMBER 2010

desvio padrão e média) das medidas encontram-se acima de 100% e 30% para o EMQ e a PSNR, respectivamente. Esta variabilidade sugere a existência de situações em que a compressão via RCT resulta em imagens de melhor qualidade, quando comparada com a compressão pela DCT. Esta observação foi verificada computacionalmente em 42% dos casos considerados, para ambas as medidas de qualidade. Mesmo em baixos níveis de compressão, por exemplo, para R = 5, a compressão pela RCT ofereceu resultados superiores em 22% dos casos.

IV. CONCLUSÕES

O presente trabalho introduziu um método de aproximação para o cálculo da DCT. Foi objetivado o desenvolvimento de uma técnica de custo computacional significativamente baixo.

Por sua importância em processamento de imagens, o caso particular da RCT de comprimento N = 8 foi investigado e um algoritmo rápido para o método proposto foi sugerido. A aproximação numérica sugerida neste trabalho é capaz de fornecer uma estimativa para o espectro da DCT com o custo computacional de apenas 22 adições e nenhuma multiplicação (cf. Tabela I).

A RCT foi examinada no contexto de compressão de imagens. Os resultados quantitativos demonstraram que, em diversos cenários, a compressão de imagem via RCT apresenta desempenho comparável, ou melhor, do que técnicas que empregam a DCT clássica.

Adicionalmente, em problemas de detecção de sinais e reconhecimento de padrões, frequentemente, o cálculo exato das componentes espectrais não é necessário. Uma situação típica é o contexto de detecção por limiar [21], [22]. Estes cenários constituem campos adicionais para potencial aplicação da RCT.

REFERÊNCIAS [1] W.L. Briggs, V.E. Henson, The DFT: An Owner’s Manual for the

Discrete Fourier Transform, SIAM, 1995. [2] V. Kober, “Fast algorithms for the computation of sliding discrete

Hartley transforms”, IEEE Transactions on Signal Processing, vol. 55, Issue 6, pp. 2937-2944, June, 2007.

[3] S. Mallat, A Wavelet Tour of Signal Processing, Academic Press, San Diego, CA, 1998.

[4] N. Ahmed, T. Natarajan, K.R. Rao, “Discrete cosine transfom”, IEEE Transactions on Computers, vol. C-23, no. 1, pp. 90-93, 1974.

[5] D. Salomon, Data Compression: The Complete Reference, 2nd ed., New York, Springer, 2000.

[6] B. Jahne, Digital Image Processing, 5th.ed., Springer, 2001. [7] R.J. Clark, “Relation between Karhunen-Loève and cosine transform”,

IEEE Proceedings-F, Communications, Radar and Signal Processing, vol. 128, no. 6, pp. 359-360, 1981.

[8] R. Sara, “Toward an optimal algorithm for matrix multiplication”, SIAM News, vol. 38, no. 9, November, 2005.

[9] D. Coppersmith, S. Winograd, “Matrix multiplication via arithmetic progressions”. Proceedings of the 19th Annual ACM Symposium on Theory of Computing, New York, USA, 1987.

[10] Joint Photographic Experts Group, [online] Disponível na Internet via URL: http://www.jpeg.org. Acesso em 15 de julho de 2009.

[11] F. Feig, S. Winograd, “Fast algorithms for the discrete cosine transform”, IEEE Transactions on Signal Processing, vol. 40, no. 9, september, 1992.

[12] W. Yan, P. Hao, C. Xu, “Matrix factorization for fast DCT algorithms”, IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. 3, 2006.

[13] I.M. Pao, M.T. Sun, “Approximation of calculations for forward discrete cosine transform”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 8, no. 3, pp. 264-268, June, 1998.

[14] J.G. Liu, Y.Z. Liu, G.Y. Wang, “Fast DCT-I, DCT-III, and DCT-IV via moments”, EURASIP Journal on Applied Signal Processing, pp. 1902-1909, 2005.

[15] M.T. Heideman, Multiplicative complexity, convolution, and the DFT, New York, Springer, 1988.

[16] R.E. Blahut, Fast Algorithms for Digital Signal Processing, Addison-Wesley, 1985.

[17] P.J. Fernandez, Medida e Integração, 2.ed., Instituto Nacional de Matemática Pura e Aplicada, Rio de Janeiro, 2002.

[18] A.V. Oppenheim, R.W. Schafer, J.R. Buck, Discrete-Time Signal Processing, Prentice Hall, 1999.

[19] G. Blanchet, M. Charbit, Digital Signal and Image Processing using MATLAB, ISTE Ltd, 2006.

[20] University of Southern California. USC-SIPI Image Database. [Online] Disponível na Internet via URL: http://sipi.usc.edu/database. Acesso em 15 de julho de 2009.

[21] D. Middleton, “Threshold detection in correlated non-gaussian noise fields”, IEEE Transactions on Information Theory, vol. 41, no. 4, pp. 976-1000, 1995.

[22] J.F. Yang, S.C. Chang, C.Y. Chen, “Computation reduction for motion search in low rate video coders”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 12, Issue 10, pp. 948-951, October, 2002.

Fábio Mariano Bayer, nasceu em Santa Maria, Rio Grande do Sul, Brasil, em 26 de agosto de 1982. Em 2006, graduou-se em Matemática pela Universidade Federal de Santa Maria. Recebeu o título de Mestre em Engenharia de Produção, em 2008, e o de Especialista em Estatística e Modelagem Quantitativa, em 2009, pela mesma instituição. Atualmente é aluno de doutorado do Programa de Pós-Graduação em Estatística da Universidade Federal

de Pernambuco e professor assistente na Universidade Federal da Fronteira Sul. Seus interesses de pesquisa são em métodos estatísticos computacionais, atuando principalmente em inferência clássica, teoria assintótica, modelos de regressão e processamento de sinais.

Renato J. Cintra, é engenheiro eletricista-eletrônico formado pela Universidade Federal de Pernambuco (UFPE) em 1999. Obteve o grau de Mestre em Engenharia Elétrica, em 2001, pela mesma universidade. Em 2003, foi “research associate” na University of Calgary, Canadá, atuando na área de processamento de sinais biomédicos. Em 2005, após o término de seu doutorado na UFPE, ingressou no Departamento de Estatística da UFPE como

professor do quadro permanente. Seus tópicos de pesquisa incluem: teoria e métodos em processamento digital de sinais, sistemas de comunicações e matemática aplicada. Frequentemente, realiza trabalhos de revisão para periódicos do IEEE. Durante 2008-2009, trabalhou como pesquisador visitante na University of Calgary.

BAYER AND CINTRA : IMAGE COMPRESSION VIA A FAST DCT APPROXIMATION 713