1
Aldebaro Klautau atualmente é professor visitante do Dep. Eng. Elétrica da Universidade Federal do Pará - UFPa.
2
Marcus Lamar atualmente é professor auxiliar do Dep. Eng. Elétrica da Universidade Federal do Paraná - UFPR.
Codificação de Imagens em Sub-Bandas Usando Técnicas de Busca Rápida
A LDEBARO K LAUTAU 1
, M ARCUS V INICIUS L AMAR 2 , J OSÉ C ARLOS M. B ERMUDEZ E R UI S EARA
Laboratório de Instrumentação Eletrônica - LINSE Departamento de Engenharia Elétrica - UFSC C.P.476 - 88010-970 - Florianópolis - SC - Brasil
Fax: 55-482-31-9770 Tel.: 0482-319643 e-mail: a.klautau@ieee.org
RESUMO
Neste trabalho avaliamos a aplicação de métodos de busca rápida a estruturas de codificação de imagens que empregam quantização vetorial (QV). A codificação de imagens em sub-bandas, associada à QV intra-banda e inter-bandas, tem fornecido bons resultados para baixas taxas de bits com razoável complexidade computacional [4]. Propomos a utilização de métodos de busca rápida na QV intra-banda, o que permite reduzir ainda mais o custo computacional. Resultados de simulações atestam a boa qualidade da codificação com uma redução de complexidade da ordem de 90% quando comparada à da técnica da referência [4].
ABSTRACT
This work evaluates the fast search neighbor algorithms(FSNA) applied to image encoder with vector quantization (VQ). The image coding in sub-bands, associates at QV intra-band and inter-bands has provided good results at low bit-rate with reasonable computational complexity, as has been shown in [4]. In this paper we propose the use of FSNA in these encoders that provide a considerable reduction of computational complexity. The simulation results confirm the good coding quality with a complexity reduction close to 90% when compared with[4].
I - INTRODUÇÃO
A quantização vetorial (QV) é uma técnica de compressão de dados muito eficiente [1]. Atualmente, a utilização da QV em codificação de imagens encontra-se bastante difundida. Outra estratégia muito utilizada em esquemas de codificação de imagens é a decomposição do espectro de freqüências da imagem em sub-bandas, seguida de sua codificação [2]. O uso conjunto da QV e da codificação em sub-bandas tem sido objeto de diversos estudos [3], [4].
Neste trabalho utilizamos a decomposição em sub-bandas, seguindo uma abordagem semelhante à utilizada em [2], [3] e [4]. Realizamos a decomposição do espectro de freqüências da imagem em 16 sub-bandas uniformes. Para a codificação das sub-bandas utilizamos o esquema proposto em [4].
Nosso principal objetivo é a redução da complexidade computacional a partir da utilização de métodos de busca rápida (MBR) da melhor palavra-código (“codeword”). O emprego de MBR em codificação de imagens foi abordado recentemente em [7]. Todavia, os três métodos apresentados em [7] são apenas parte de uma vasta gama de MBR atualmente disponíveis [8-14]. Mostraremos que alguns destes MBR apresentam vantagens em relação aos métodos utilizados em [7].
Huang et al. [7] utilizaram a QV espacial.
Todavia, o método de QV espacial utilizado em [7]
introduz indesejáveis efeitos de blocagem [4]. Assim, avaliaremos a utilização dos MBR no contexto da QV das sub-bandas da imagem, segundo a técnica proposta em [4].
Na seção II apresentaremos o esquema de decomposição em sub-bandas e a estratégia de QV (intra- banda e inter-bandas) utilizada. Na seção III reuniremos os principais MBR que se encontram dispersos na literatura e apresentaremos uma breve discussão acerca dos mesmos. Assim, objetivamos alcançar uma visão mais unificada dos MBR. Na seção IV serão apresentadas as medidas objetivas utilizadas na avaliação de desempenho dos MBR. Na seção V serão apresentados os resultados da aplicação de MBR à QV das sub-bandas. A seção VI é dedicada às conclusões deste trabalho.
II - CODIFICAÇÃO DAS SUB-BANDAS Nesta seção descreveremos o sistema básico de codificação de imagens em sub-bandas. Este sistema é composto por duas etapas distintas: a decomposição em sub-bandas e a quantização vetorial. Descreveremos apenas as estruturas dos quantizadores vetoriais, postergando-se a discussão dos algoritmos de busca rápida para a próxima seção.
O espectro de freqüências da imagem é
decomposto em 16 sub-bandas uniformes, como
apresentado em [2]. Para isto, utilizamos o mesmo banco
de filtros FIR espelhados em quadratura empregado em
[2], [3] e [4] (identificado como filtro 32D em [5]). Para
uma imagem de 256x256 pixeis, por exemplo, obtém-se
16 sub-imagens de 64x64 pixeis, correspondendo a uma
sub-imagem para cada sub-banda. Para este exemplo, a
imagem poderia ser representada por 64x64 vetores de
dimensão 16, onde cada sub-banda contribui com uma
amostra do vetor. Esta é a representação usada em [3],
onde os autores realizam a QV direta destes vetores de dimensão K=16. Neste trabalho, estaremos adotando a estratégia proposta em [4], que codifica de forma diferenciada as amostras correspondentes à sub-banda que contém as componentes de freqüências mais baixas (sub-banda dominante).
A sub-banda dominante tem suas amostras codificadas vetorialmente a partir de blocos de 2x2 pixeis cada (QV intra-banda [4]). As amostras das 15 sub- bandas restantes são reunidas em vetores de dimensão K=15 (QV inter-bandas [4]) e codificadas vetorialmente de forma independente da codificação da sub-banda dominante. De acordo com os resultados apresentados em [4], este esquema de codificação conduz a uma menor complexidade computacional quando comparado à QV inter-bandas direta das 16 sub-bandas usada em [3].
Neste trabalho, utilizaremos as taxas de bits de 0,5 bits/pixel e 0,63 bits/pixel, seguindo a alocação de bits sugerida em [4]. Para a taxa de 0,5 bits/pixel alocaremos 4 bits/pixel para a sub-banda dominante e 4/15 ↵ 0,27 bits/pixel para as sub-bandas restantes. Para a taxa de 0,63 bits/pixel alocaremos 5 bits/pixel para a sub- banda dominante e 5/15↵0,33 bits/pixel para as sub- bandas restantes. De acordo com o proposto em [4], foi empregada a QV multi-estágio [6] (dois estágios) na codificação da sub-banda dominante. Para a taxa de 0,5 bits/pixel, a sub-banda dominante é codificada em dois estágios, onde cada estágio emprega um dicionário de códigos (“codebook”) com N=256 palavras-código de dimensão K=4. Para as 15 sub-bandas restantes, utilizou- se um dicionário com N=16 e K=15. Para a taxa de 0,63 bits/pixel, o primeiro estágio utiliza o mesmo dicionário usado para a taxa de 0,5 bits/pixel, enquanto que o segundo estágio utiliza um dicionário com N=4096 e K=4, e para as 15 sub-bandas restantes utilizou-se um dicionário com N=32 e K=15.
III - MÉTODOS DE BUSCA RÁPIDA Uma das formas de reduzir a complexidade computacional da QV é a utilização de estruturas como a multi-estágio [6]. Outra alternativa é a utilização de MBR. A utilização destes métodos em esquemas de QV de imagens ainda não está difundida amplamente, mas os mesmos são objetos de grande interesse atualmente [7- 14].
Denominamos de MBR, os algoritmos que têm por finalidade reduzir o número de operações na etapa de determinação da melhor palavra-código.
O cálculo da distância parcial [13] é um dos métodos de busca rápida mais simples. Este método pode ser utilizado quando a medida de distorção é obtida acumulando-se parcelas não-negativas, como no cálculo do erro quadrático, por exemplo. A distância parcial consiste em descartar o cálculo da distorção de uma dada palavra-código, tão logo esta distorção ultrapasse a menor distorção d
mincalculada até aquele momento.
Existem outros MBR muito mais elaborados do que o cálculo da distância parcial. Dentre estes, os mais explorados atualmente são os baseados na desigualdade triangular [7-12] e na árvore K-d [14].
Desigualdade Triangular:
Os métodos baseados na desigualdade triangular [7-12] podem ser aplicados quando a medida de distorção utilizada obedece a esta desigualdade. Estes métodos usam a menor distorção dmin calculada até aquele momento, para descartar o cálculo da distorção para algumas palavras-código. Supondo que já se tenha calculado a distância dmin=d(x,yi) entre o vetor x e a palavra-código yi, a desigualdade triangular indica que uma outra palavra-código yj só pode vir a apresentar uma distorção d(x,yj)<dmin caso d(yi,yj)≤2.dmin. A Fig. 1 ilustra este princípio. Pode-se descartar o cálculo de d(x,yj) no caso de d(yi,yj)>2.dmin. Para isto deve-se ter calculado e armazenado o valor de d(yi,yj) em uma etapa de pré-processamento.
yi
x yj
2*d(x,yi)
Fig. 1 - Princípio da desigualdade triangular O algoritmo AESA [8] consiste na aplicação da desigualdade triangular. Uma vez projetado um dicionário de N palavras-código, o algoritmo AESA baseia-se em um pré-processamento que consiste no cálculo das N(N-1)/2 distâncias entre as palavras-código.
Estas distâncias são armazenadas sob forma de tabela.
Basicamente, este é o mesmo princípio do algoritmo I apresentado em [7]. Seguindo esta mesma estratégia, Orchad propõe em [9] uma modificação que permite a redução da tabela de distâncias.
Uma forma alternativa de implementação da desigualdade triangular baseia-se no conceito de pontos de âncora (pontos do espaço K-dimensional) [10], [11].
Estes dois trabalhos consistem em um aperfeiçoamento do método apresentado em [12]. Armazenam-se em uma tabela, as distâncias das palavras-código aos pontos de âncora, ao invés das distâncias entre as palavras-código.
Assim, a memória necessária para o armazenamento da estrutura de dados dos métodos que usam G pontos de âncora é da ordem de G.N, ao invés de N
2, como para o algoritmo AESA [8]. O número de pontos de âncora e suas localizações exibem uma certa flexibilidade nas suas determinações. Em [10] e [11] são propostos critérios para a determinação do número de pontos de âncora e suas respectivas localizações.
Árvore K-dimensional:
Outro método que apresenta uma boa potencialidade é o que utiliza o conceito de árvore K-dimensional [14], [15]. Cada nó da árvore K-dimensional (K-d) divide o espaço ℜk em duas regiões através de um hiperplano ortogonal a um dos K eixos cartesianos. Este hiperplano H é representado por H={x
∈ ℜk / x j=h } e define duas regiões ℜ L e ℜ R [14]. Para
representar H necessita-se de apenas dois valores: j e h. O
valor de j determina qual será o eixo ortogonal ao
hiperplano H. O valor de h corresponde à interseção de H
com o eixo j. Qualquer ponto (vetor x) no espaço ℜ k
pode ser localizado em relação a H com uma simples comparação escalar, x(j) ≤ h, onde x(j) é a j-ésima componente do vetor x.
Assim, a árvore K-d de profundidade d secciona o espaço ℜk em 2d regiões retangulares disjuntas (folhas) e permite identificar a folha contendo um dado vetor x em apenas d comparações escalares.
Uma vez identificada a folha, é realizada uma busca exaustiva entre as palavras-código que estão contidas nesta folha.
O princípio da busca conservativa [15] em árvore K-d é apresentado na Fig. 2. Dado um dicionário e definida uma medida de distorção, o espaço é dividido em regiões conhecidas como partições de Voronoi [15]
(Fig. 2a). Cada palavra-código possui sua correspondente partição de Voronoi. Qualquer vetor que pertença a esta partição será representado pela respectiva palavra-código.
Dado um vetor x a ser quantizado, verificamos inicialmente de que lado do hiperplano separador encontra-se x. Em seguida, buscamos seu vizinho mais próximo desprezando-se as palavras-código correspondentes às partições que tenham interseção nula com a região a qual pertence x. A Fig. 2(b) ilustra este procedimento. Ao determinarmos que o vetor x está na região hachurada, podemos descartar da busca as partições A e D. As regiões correspondentes aos dois ramos da árvore inferiores a este nó serão, então, formadas pelos conjuntos de partições {A,B,C,D} e {B,C,E}, respectivamente. Este processo se repete até que se atinja uma folha, onde realiza-se, então, uma busca exaustiva entre as palavras-codigo que compõem esta folha.
(a) (b)
Fig. 2. (a) Partições de Voronoi, (b) Separação em duas regiões aravés de um hiperplano.
Alguns dos métodos citados serão avaliados na seção V, no contexto da QV de imagens em sub-bandas.
A próxima seção dedica-se ao estabelecimento das medidas objetivas de desempenho que serão utilizadas neste trabalho.
IV - MEDIDAS DE DESEMPENHO
Alguns trabalhos [11], avaliam os MBR a partir do número de distorções efetivamente calculadas.
Considerando a codificação (busca da melhor palavra-código) de toda uma seqüência de teste, chamaremos de DI
mínao menor número de distorções efetivamente calculadas na codificação de um vetor. Os números máximo e médio de distorções calculadas serão chamados de DI
máxe DI
méd, respectivamente. Esta forma
de avaliação é frágil pois não considera a complexidade computacional do método. Assim, utilizaremos também outras figuras de mérito.
A complexidade computacional associada à implementação de um quantizador vetorial depende da memória requerida e do número de operações necessárias à codificação. Na avaliação desta complexidade é útil contarmos com uma só medida que englobe estes dois aspectos. Esta medida seria dependente do compromisso entre a utilização de um processador mais poderoso e um maior dispêndio com memória para armazenamento.
Aqui, foi adotada a estratégia utilizada em [17], que define uma medida de complexidade (C) como:
C = MD/5 + ME/20 + OP (1) onde MD é a memória dinâmica utilizada, ME corresponde à memória estática e OP é o valor total de operações, consistindo de uma soma ponderada das operações aritméticas envolvidas. O peso associado a cada tipo de operação é apresentado em [17]. Por exemplo, a operação de multiplicação tem peso 1, enquanto a divisão tem peso 18.
Podemos ainda, avaliar os MBR a partir da estatística média das operações necessárias à codificação de um vetor (O
méd) ou do número máximo (pior caso) destas operações (O
máx). Dependendo da aplicação, um destes dois parâmetros terá maior importância. Em sistemas para operação em tempo real, o parâmetro O
máxtem grande importância, pois o processador utilizado deve ser capaz de atender ao pior caso. A partir de O
máxe O
médobtemos C
máxe C
médatravés da Eq. (1).
Ressaltamos que o custo computacional correspondente às etapas de pré-processamento dos MBR não será avaliado, pois estaremos interessados no processo de codificação propriamente dito.
Como medida objetiva de desempenho na codificação das imagens utilizamos também, a razão sinal/ruído de pico (RSRP) em dB, dada por:
RSRP 10 log 255 / 1
M (P P )
2
i i
2 i 1
M
= ⋅ −
=