Escolar Documentos
Profissional Documentos
Cultura Documentos
CURITIBA
2002
Ministrio da Educao
Universidade Federal do P a r a n
Mestrado em Informtica
PARECER
professores, amigos e todos aqueles que de alguma forma deram a sua contribuio.
SUMRIO
LISTA DE FIGURAS V
LISTA DE TABELAS VU
RESUMO vm
ABSTRACT IX
1. INTRODUO 1
1.1 MOTIVAO 2
1.2 HISTRICO 3
1.3 TRABALHOS RELACIONADOS 6
1.4 ESTRUTURADA DISSERTAO 7
2. TOMOGRAFIA COMPUTADORIZADA (CT) 9
2.1 TOMOGRAFIA DE RAIO-X 9
2.2 PADRO D I C O M 10
2.3 NECESSIDADE DE ARMAZENAGEM 11
3. COMPRESSO DE IMAGENS 14
3.1 MODELO GENRICO DE COMPRESSO DE IMAGENS 16
3.2 CLASSIFICAO DA COMPRESSO DE IMAGENS 17
3.3 TAXA DE COMPRESSO 18
3.4 COMPRESSO COM PERDAS E COMPRESSO SEM PERDAS 19
3.5 TIPOS DE CODIFICAO 20
3.5.1 Codificao de Lempel-Ziv (LZ) 21
3.5.2 Codificao de Huffman 25
3.5.3 Codificao Aritmtica 26
3.5.4 Codificao Preditiva 30
3.5.5 Codificao por Transformada 31
3.5.6 Codificao Lossless JPEG com Huffman 33
4. METODOLOGIA 38
4.1 INTRODUO 38
4.2 IMAGENS ESENOGRAMAS UTILIZADOS 40
4.3 MTODOS DE COMPRESSO 43
5. RESULTADOS 45
5.1 COMPRESSO DE SENOGRAMAS 45
5.2 COMPRESSO DE SENOGRAMA COM ESCALAS DE RUDOS 49
5.3 COMPRESSO DOS SENOGRAMAS COM RUDO PADRO 50
5.4 COMPRESSO DE IMAGENS 52
5.5 COMPARATIVO DE COMPRESSO IMAGENS X SENOGRAMAS 54
6. CONCLUSO 58
REFERNCIAS BIBLIOGRFICAS 94
LISTA DE FIGURAS
Tabela 5.1 - Taxa de compresso de senogramas reais, separados parte alta e parte baixa 45
Tabela 5.2 - Compresso de senogramas reais, com 16 bpp, entre diferentes mtodos 47
Este trabalho apresenta um estudo de caso na rea de compresso sem perdas de projees de
que possibilita sua reutilizao futura com outros algoritmos de reconstruo. Os mtodos que
apresentam perdas geralmente possuem melhores taxas de compresso, mas podem prejudicar
transformada wavelet de inteiros reversvel, LJPG (Lossless JPG - Joint Photographic Experts
Group), e GZIP (Gnu ZIP), que o padro de compresso utilizado pelo projeto GNU.
ABSTRACT
projections, called sinograms. The main advantage of compressing sinogram in the place of
reconstructed imaged lies in the preservation of the original data that allows its future
reutilization with others reconstruction algorithms. Lossy image compression methods usually
have better compression ratios, but they may alter the reconstrution of the original image.
Three methods are considered: the reversible integer wavelet transform which allow lossless
image compression; LJPG (Lossless JPG - Joint Photographic Experts Group), for lossless
compression of still images; and GZIP (Gnu ZIP), that is the compression standard used by
GNU project.
1
1. Introduo
A tomografia computadorizada (Computed Tomography - CT) hoje largamente
algoritmos esto disponveis nos dias de hoje, permitindo a reconstruo da imagem a partir
O objetivo deste trabalho consiste, ento, em estudar e avaliar alguns dos mtodos
de compresso de dados que devero ser aplicados nas imagens e nas projees de
compresso de dados: GZIP (Gnu ZIP), LJPG (Lossless JPEG) e outros mtodos
Pearlman) [SANOl].
1.1 Motivao
A motivao para este trabalho veio da necessidade de pesquisas sobre
reconstrudas.
informao necessria e mantendo a integridade dos dados. Os dados originais tambm sero
permitam que os dados possam ser reconstrudos para a sua forma original. Para tal, sero
para este tipo de dados, pois a perda de informaes pode prejudicar a reconstruo e
1.2 Histrico
O processamento de imagens uma rea de interesse j faz algumas dcadas,
sendo ainda de interesse crescente, includo aqui a rea de compresso de dados. Conforme
cabo submarino entre Londres e Nova Iorque. Os primeiros sistemas Bartlane, no incio da
dcada de 20, codificavam uma imagem em cinco nveis de intensidade distintos. Esta
capacidade seria expandida, j em 1929, para 15 nveis ao mesmo tempo em que era
modulados por uma fita que continha informaes codificadas sobre a imagem.
Porm, o grande impulso para esta rea viria cerca de trs dcadas mais tarde, com
o advento dos primeiros computadores digitais de grande porte. J o interesse pelas tcnicas
de compresso de imagens remonta a quase meio sculo atrs, na poca, utilizando tcnicas
analgicas.
JTC1/SC29/WG1.
4
Em relao s transformadas wavelets, [SANOl] descreve um histrico o qual
reproduzimos a seguir.
1909 [GRA95], Uma propriedade da wavelet de Haar que ela possui um suporte compacto,
funes usando funes de base de escala varivel, chamadas funes de base de Haar. O
Littlewood, Paley e Stein descobriram uma funo que pode variar em escala e conservar
desenvolvidas por Fourier no eram muito adequadas para a soluo de muitos problemas e
eficientes.
equaes diferenciais parciais e equaes integrais, e perceberam que elas combinavam com
engenheiro Jean Morlet [GR084], juntamente com seus colegas de trabalho estudaram a
5
transformada wavelet em sua forma contnua. Eles definiram wavelets em um contexto de
teoria wavelet.
conceito de anlise em multiresoluo, dando um novo impulso a essa teoria. Ele descobriu
algumas relaes entre filtros de quadrature espelhada (quadrature mirror filters - QMF),
Meyer forneceu a conexo entre filtros sub-bandas e wavelets. Alguns anos depois, em 1988,
usando o trabalho de Mallat, Ingrid Daubechies [DAU88] construiu uma famlia de wavelets
Aplicaes VLSI (Very Large Scale Integration), realiza estudo entre vrios mtodos de
compresso de imagens, tanto para abordagens sem perdas como abordagens com perdas. O
objetivo, porm, no est no aspecto comparativo entre estes vrios mtodos, mas servir de
apresentados.
compresso de imagens. Traz tambm uma comparao dos resultados obtidos no trabalho
com o mtodo de compresso JPEG para algumas imagens. Nos experimentos realizados,
SPIHT (Set Partitioning in Hierarchical Trees) foi proposto por Said e Pearlman [SAI96], o
[SHA93]. Este algoritmo permite codificar uma imagem com perdas ou sem perdas. Eles
SPIHT difere de outros mtodos no fato de que a predio usada durante (em vez de
7
depois) a seqncia de transformaes recursivas e, consequentemente, pode usar
SPIHT baseado em trs estgios: (/') aplicao da tranformada S+P para decompor a
imagem, (ii) uma tcnica de codificao baseada em zerotree e (iii) codificao aritmtica
transformada de Haar para mapear os valores de inteiros para inteiros, permitindo assim a
wavelet de inteiros para inteiros os quais podem ser usadas para compresso sem perdas. Na
trabalhos relacionados.
imagens.
grande volume existente nos dias atuais. Esto includos tambm comentrios sobre o modelo
mtodos de compresso.
dentro das seguintes abordagens: taxas de compresso para senogramas reais; taxas de
compresso para imagens e senogramas sem insero de rudos; taxas de compresso para
trabalhos futuros.
teorias sobre padres de compresso de imagens, onde esto comentados os mtodos GZIP,
radiografia que foi introduzido em 1972 para aplicaes neurolgicas, mas rapidamente com
tomgrafo computadorizado foi construdo por Godfrey N. Hounsfield, feito que lhe
conferiu, junto com Allan McLeod Comarck, o Prmio Nobel de Fisiologa e Medicina em
industriais.
termo "computerized tomography", ou somente CT, caiu no uso comum e at hoje se refere
fix,y) o coeficiente de absoro do objeto no ponto numa faixa para algum valor fixo de
(2.1)
caractersticas de densidade do corpo para cada ponto ou pequena regio no interior do corpo.
deve-se reconstruir esses dados originais utilizando alguma tcnica de reconstruo. Existem
vrios algoritmos e tcnicas que permitem a reconstruo da imagem a partir das projees
Esse padro recebeu o nome de ACR-NEMA e foi o primeiro a ser adotado pelos fabricantes
11
de aparelhos geradores de imagens radiolgicas, permitindo assim uma conexo mais fcil a
computadores de uso geral. Posteriormente, foi criado, a partir dele, o padro DICOM
{Digital and Communications in Medicine) [DIC01], o qual foi adotado muito mais
paciente, laudo radiolgico, etc.). Usando-se um nico comando, o DICOM permite que o
computador (formato de imagem), bem como ele deve ser arquivado. So enormes os
benefcios trazidos por sistemas desse tipo, pois os programadores podem simplesmente
incorporar o padro em seus programas, ao invs de ter que desenvolver um novo programa a
partir do zero. Alm disso, eles no precisam se preocupar com as diferenas entre os vrios
padro, fazendo com que um largo espectro de imagens mdicas seja padronizado e
relatrios, facilidades de utilizao dos recursos disponveis, localizao dos filmes, e rotinas
dcada de 80, este conceito foi ampliado para incluir o que se chama de PAC S (Picture
Imagens. E um sistema que permite, como o nome diz, armazenagem e recuperao das
para o filme depois que os tcnicos a tenham otimizado para a visualizao. Ocasionalmente
somente para pacientes que tenham sido estudados nos ltimos 6 a 12 meses. Estudos antigos
so retidos por no mnimo 7 anos e estocados em um poro por exemplo. Alm do espao
fsico, as imagens sofrem deteriorao ao longo dos anos, uma vez que o filme qumico perde
trabalho manual tradicional de manuseio de filmes, rpida recuperao de imagens via pedido
informtica mdica. Um nmero de complexos problemas tiveram que ser resolvidos antes de
problema de gerenciamento, que difcilmente pode ser resolvido por mtodos que no
Todo o esforo para reduzir o espao ocupado pela imagem tem de levar em
com a transferncia de imagem digital (tal como o DICOM) conseguida atravs da melhor
3. Compresso de Imagens
Grandes hospitais e clnicas de diagnstico por imagem realizam milhares de
dados de imagens por ano. Existem tcnicas de computao que podem comprimir
[ALM98],
matricial. Provavelmente, a cor desse elemento ser igual a dos elementos vizinhos, porque
h uma grande probabilidade de todos eles pertencerem a um mesmo objeto da imagem. Caso
isso no ocorra, certamente uma relao mais complexa existir na imagem. Baseado neste
[SAN01],
com tamanho varivel. Aos valores que ocorrem mais freqentemente na imagem, atribudo
um cdigo menor (em nmero de bits), enquanto que os valores que so menos freqentes,
do valor do pixel de seus vizinhos, com isso a informao dos pixels relativamente
pequena. Esta correlao espacial resulta da relao estrutural ou geomtrica entre os objetos
na imagem.
permitir a recuperao exata dos dados da imagem original. Diz-se, nesse caso, que o
processo reversvel, ou que se tem uma compresso sem perda (lossless). Caso contrrio,
ele chamado irreversvel, ento se tem uma compresso com perda (lossy), isto , ele no
quantizao vetorial, codificao wavelet, redes neurais e codificao fractal. Apesar desses
mtodos poderem realizar altas taxas de compresso (tipicamente 50:1 ou maior), eles no
permitem a reconstruo exata da verso original dos dados de entrada. Portanto, mtodos
16
com perdas no so aceitos para certas aplicaes como: imagens mdicas digitais, imagens
de satlite, dados ssmicos, imagens de alta fidelidade, arquivos executveis e assim por
diante. Tcnicas de compresso sem perdas, todavia, permitem a reconstruo perfeita dos
dados originais, mas as taxas de compresso so comparativamente baixas (de 2:1 a 4:1)
[SAN01].
maneira que a redundncia possa ser mais eficientemente descartada. A figura 3.1 apresenta
converte os dados de entrada para uma outra forma organizada, removendo as redundncias.
Isso significa que os pixels so mapeados em outro domnio, no qual menos bits so
necessrios para codificar o dado mapeado em comparao com o nmero de bits necessrios
1 1 1 1r
w MAPEADOR w QUANTIZADOR w CODIFICADOR w
smbolos.
originais no podem mais ser recuperados. O codificador sempre implementa uma operao
reversvel [MEL94],
difcil, uma vez que existe uma grande variedade de algoritmos e tcnicas de compresso que
classificaes j foram propostas, porm nenhuma delas pode ser considerada definitiva.
reversveis, isto , permitem recuperar a imagem original sem perda de informao, e aquelas
que so irreversveis, onde a imagem recuperada possui menos informao que a imagem
compresso sem perda ou sem rudo. As tcnicas irreversveis so conhecidas tambm por
Domnio Domnio
Espaci Freqncia
Codificao
Aritmtica Modulao Baseado em Ftro
Delta
Codificao Fano
Lempd-Ziv (LZ) -PCM
Huffman
Codificao Run Quanti zao
Lenght(RLE) Outros
Vetorial
Outros
Outros -Baseado em
Transform ias
-Codificao
Predftiva Linear Fourier
-Modelagem AR, Karhunen-Loeve
ARMA <KL)
-Ajuste Hadamard
Pcrfinomiai
DCT
-Fractal
1Outros
-Baseado
em Objetol
-Outros
imagem original. Esta taxa fornece uma medida de quanto menor ficou o arquivo aps a
aplicao da compresso.
absoluto ou em percentual. Por exemplo, a taxa de compresso para uma imagem de 200
19
Kbytes que aps ser comprimida ficou com 100 Kbytes de tamanho, de 0,5 ou 50%
[MEL94].
necessrios por pixel depois da compresso. O valor bits por pixel (bpp) permite comparar os
transmisso necessria para qualquer tamanho de imagem. Outros preferem utilizar razes,
por exemplo, 2:1. Isto significa que a quantidade de dados foi reduzida pela metade. Ser
^ dados comprimidos^ !
100 (3.1)
dados originais
Isto significa que um arquivo que no muda de tamanho aps a compresso ter
uma taxa de compresso de 0% (zero por cento). Um arquivo comprimido pela metade do seu
tamanho original ter uma taxa de compresso de 50%. Na teoria, a taxa de compresso
mxima 100%. Isto s ocorrer se o tamanho do arquivo comprimido for igual a zero, o
qual somente ocorrer se o tamanho dos dados originais tambm for zero. Se o tamanho do
arquivo comprimido for maior do que o arquivo original teremos uma taxa de compresso
negativa.
taxas de compresso, mas com o nus de perder parte da informao contida na imagem
original.
20
Muitas aplicaes exigem imagens com a melhor qualidade possvel (como em
processo de compresso. Nestas aplicaes pode-se obter uma taxa de compresso tpica
codificao e interpixel so considerados sem perdas, uma vez que ambos os processos so
pixel a pixel, quando comparada com a imagem colocada na entrada do codificador. Desta
forma, pode-se perceber que o processo de compresso efetuado apenas pelos estgios de
possvel da imagem requerido (como na internet, por exemplo). Nestes casos, o efeito da
perda de informao, que nem sempre visual, aceitvel. Com isso, pode-se obter taxas de
compresso maiores que 30:1, chegando a taxas de 10:1 at 20:1 com imagens virtualmente
quantizao na Figura 3.1, que busca a reduo da redundncia psicovisual. Como este
propostos, mas alguns deles mereceram notvel destaque, uma vez que so usados em vrios
dados. Como os formatos de arquivo com compresso que sero abordados neste trabalho
21
compartilham o uso de alguns mtodos de compresso, optou-se por tratar destes mtodos
formatos de arquivos que utilizam estes algoritmos [MUR96], O formato do arquivo descreve
apenas a organizao dos dados, indicando cabealhos, tabelas, etc., enquanto que os
necessria para representar a informao. Cada formato de arquivo define onde e como a
Existe uma grande variedade de mtodos de compresso, mas apenas alguns mais
usados para a compresso de imagem e os que so de uso livre fazem parte do escopo deste
trabalho.
neste trabalho.
dados em geral. Ele foi criado em 1977 por Abram Lempel e Jakob Ziv e, desde ento,
muitas variantes deste algoritmo tm sido utilizadas em vrios formatos de arquivos. Este
Uma das verses mais conhecidas do LZ o chamado LZW, criado em 1984 por
Terry Welch. O LZW utilizado no formato de arquivo GIF. A verso do LZ abordada neste
item chamada de LZ77. Esta verso utiliza uma janela de dados mvel que ser chamada de
localizao, na janela LZ77, do primeiro dado de uma seqncia a ser expandida e quantos
os caracteres que esto na janela LZ77. Se no existe nenhum caracter igual a este novo
caracter, ento a janela se desloca para incluir o novo caracter e este caracter colocado para
a sada.
comprimidos. Ento feita uma nova comparao, mas agora para verificar se existem na
obtidos no exista na janela LZ77. Ento o ltimo caracter lido desconsiderado e um par
caracteres est do incio da janela LZ77 e, por quantos caracteres composta esta seqncia.
Como pode ser percebido, para a compresso, so necessrias duas estruturas, uma
para varrer a janela LZ77 e outra para varrer os dados da entrada. Estas duas estruturas so
No algoritmo LZ77, quanto maior o tamanho da janela LZ77 maior ser a taxa de
que diz respeito s operaes de procura nas janelas. Por isso, existe um compromisso entre
estes dois fatores que deve ser levado em considerao. Uma alternativa para o uso de
23
tamanhos maiores de janelas utilizar tabelas hash, que aumentam a velocidade da procura
[MIA99],
caracteres (aplicaes normais usam at 32K bytes). A seguinte frase ser comprimida no
exemplo: "A BANCA DA BIANCA BRANCA.". A tabela 3.1 apresenta todos os passos
do algoritmo LZ77 para a frase e seu contedo a cada passo. Na tabela 3.2 apresenta-se o
Passo Salda
0 A
1 A
2 A B
3 A BA
4 A BAN
5 A BANC
6 A BANCX10: 2 >
7 A BANCClO:2>D
8 A BANCClO:2>D<13:2>
9 A BANCClO:2>D<13:2>B
10 A BANCClO:2>DC13:2>BI
11 A BANCClO:2>DC13:2>BIC6:5>
12 A BANCClO:2>DC13:2>BIC6:5>
13 A BANCClO:2>DC13:2>BIC6:5>C7:2>
14 A BANCClO:2>DC13:2>BIC6:5>C7:2>R
15 A BANCClO:2>DC13:2>BIC6:5>C7:2>RC7:4>
16 A BANCClO:2>DC13:2>BIC6:5>c7:2>RC7:4>.
com a janela LZ77 e com os dados comprimidos possvel efetuar a descompresso dos
dados. Caso o dado lido seja um valor literal, ele simplesmente escrito na janela LZ77 e na
da janela LZ77 o nmero de caracteres definido pelo campo comprimento, onde o primeiro
caracter da seqncia est na distncia do incio da janela definida pelo campo distncia.
Ento a janela deslocada para agregar os caracteres copiados e estes dados so colocados na
sada. Caso a janela tenha excedido a sua capacidade, os dados do incio da janela so
1 A BANC<10:2>D<13:2>BI<6:5><7:2>R<7:4>.
A BMJC<10:2>D<13:2>BI<6:5>E<7:2>R<7:4>.
A BANC<10:2>D<13:2>BI<6:5><7:2>R<7:4>.
A BAN C < 1 0 : 2 > D < 1 3 : 2 > B I < 6 : 5 > E < 7 : 2 > R < 7 : 4 > .
5 A BANC < 1 0 : 2 > D < 1 3 : 2 > B I < 6 : 5 > < 7 : 2 > R < 7 : 4 > .
7 A BANCA D<13:2>BI<6:5><7:2>R<7:4>.
ocorrncia. O problema que, para tomar possvel a decodificao sem a insero de tabelas
rapidamente.
desequilbrio grande entre as probabilidades de ocorrncia dos smbolos. Para aplicaes com
desta tabela gera-se uma estrutura de rvore, construda a partir de uma seqncia de
operaes onde as duas menores probabilidades so unidas em um n para formar dois ramos
arbitrariamente, atribui-se 0 para um dos ramos e 1 para o outro [PEN92], Considerando esta
um novo n e uma nova probabilidade combinada. Este processo se repete at que todos os
Huffman pode ser visto no item 3.5.6 (Codificao Lossless JPEG com Huffman).
(Variable Length Coding - VLC) mais utilizados na codificao dos coeficientes wavelets
informao tem que ser um nmero inteiro e isso algumas vezes pode ser um problema. Por
codificar este caracter de aproximadamente 1,58 bits. Com isso, o cdigo de Huffman
precisaria atribuir dois bits para o cdigo, conduzindo para uma mensagem comprimida
maior do que teoricamente possvel de acordo com o clculo da entropia. Este problema
Como o cdigo de Huffman usa um nmero inteiro (k) de bits para cada smbolo,
isto implica que nunca k ser menor que 1. Numa imagem com duas cores (1 bit por pixel),
como as usadas em fax, a compresso se torna impossvel. A soluo seria agrupar os bits em
pacotes e ento aplicar Huffman, porm isso impede o cdigo de Huffman de ser um
compressor universal.
ponto flutuante maior ou igual a zero e menor do que 1. Este nmero pode ser unicamente
intervalo dos smbolos de origem para o processo de codificao. Estes limites de intervalo
explicado atravs do seguinte exemplo: supondo que os smbolos de entrada so {a, b,c,d}e
a probabilidade destes smbolos so (0.1, 0.4, 0.2, 0.3 }, respectivamente. Ento baseado em
suas probabilidades, o intervalo [0, 1) pode ser dividido como 4 subintervalos: [0, 0.1), [0.1,
0.5), [0.5, 0.7) e [0.7, 1), onde [x, y) denota um intervalo fechado a esquerda e aberto a
direita, os quais inclui x mas exclui y. A informao acima pode ser resumida na tabela 3.4,
abaixo:
Smbolos a b c d
Probabilidades 0.1 0.4 0.2 0.3
Intervalo Inicial [0, 0.1) [0.1,0.5) [0.5,0.7) [0.7,1)
Tabela 3.4 - Representao dos smbolos e seus respectivos intervalos iniciais.
quanto o decodificador conhecem que o intervalo [0, 1). Aps 1er o primeiro smbolo, c, da
mensagem sabemos que o seu intervalo de codificao [0.5, 0.7). Aps este smbolo ter
sido processado, o tamanho do modelo modificado para o intervalo [0.5, 0.7), como
mostrado na figura 3.3, j que o limite do segundo smbolo, a, da mensagem [0, 0.1), ele
codificado tomando o primeiro dcimo do novo tamanho do modelo [0.5, 0.7) como um novo
intervalo [0.514, 0.52). Depois codificando o quarto smbolo, a, o novo intervalo [0.514,
0.5146). E assim por diante at que aps a codificao do ltimo smbolo, b, tem-se o
intervalo [0.5143876, 0.514402). A sada desta mensagem pode ser qualquer nmero que
esteja dentro deste ltimo intervalo. Para um melhor entendimento, o processo descrito acima
Sada
oJ 0.5 J
0.514 J 0.514 -I 0.5143 0.5143876
Entrada c
smbolo da mensagem se encontra. Como 0.5143876 est dentro do intervalo [0.5, 0.7) o
conhecido, que [0.5, 0.7), reverte-se o processo que o gerou. Primeiro, subtrai-se pelo limite
inferior de c que implicar em 0.0143876. Ento se faz a diviso pelo tamanho da largura do
intervalo de c, ou seja, 0.2. Isto resulta em 0,071938. Pode-se verificar que o prximo
smbolo ser o a, pois 0,071938 se encontra no intervalo [0, 0.1). Em seguida tem-se o valor
30
0,71938, que se encontra no intervalo [0.7, 1) resultando no smbolo d. E assim por diante,
todos os smbolos da mensagem inicial sero recuperados a partir da sada 0,5143876 (tabela
3.6).
para calcular a probabilidade de cada smbolo de entrada. Neste exemplo, foi utilizado o
da imagem. O modelo est embutido em algo conhecido como preditor. O preditor estima o
prximo valor do pixel em uma determinada ordem, baseada nos pixels que antecederam
aquele. O preditor pode tambm ser bidimensional para obter vantagem da correlao
Por exemplo, um modelo muito simples prediz que o prximo pixel ter o mesmo
valor do pixel prvio. Este modelo no uma m suposio, uma vez que os valores dos
pixels variam lentamente atravs de imagens em tom contnuo. A cada predio gerada, a
diferena entre o pixel atual e o pixel predito calculada. O desvio padro do histograma das
31
diferenas , em geral, menor que o da imagem original, refletindo que a correlao foi
removida.
Assim, pode-se utilizar menos bits para codificar as diferenas do que o nmero de
bits utilizado para representar um pixel. Quanto menor o nmero de bits utilizados nesta
compresso.
preditor adaptveis. Esta capacidade de adaptao pode ser utilizada para conseguir maior
compresso conseguida pela quantizao e pela posterior compresso sem perda (ver
escolha.
reconstruo) B e o quantizador timo, de modo que a distoro media quadrtica total seja
um algoritmo rpido para sua resoluo. Ela utilizada freqentemente como parmetro de
[JAI89, MEL94].
Nesta figura, foram acrescentadas duas novas etapas que no esto sendo consideradas neste
comentada com maiores detalhes no item 1.3 do apndice 1. Neste trabalho foram utilizadas
metade, pelo fato de que apenas os coeficientes passa baixa sero usados na aplicao da
codificao aritmtica.
padro de compresso para imagens paradas ISO JPEG popularmente conhecido como uma
Transform). Entretanto, o modo de operao sem perdas no utiliza a DCT, mas sim uma
Considere uma imagem fonte com duas dimenses. Cada amostra um pixel contendo ou
trs bytes representando os nveis vermelho, verde ou azul (RGB) para uma imagem colorida,
ou um nico byte de uma imagem em escalas de cinza. Na tcnica Lossless JPEG cada pixel
preciso, Pt, pode ser usado para reduzir o nvel de quantizao da imagem fonte. Se Pt no
Selection Values), os quais so especificados na tabela 3.7. O PSV 0 (zero) reservado para
lossless). Para cada pixel, P^ y , uma combinao linear dos pixels vizinhos esquerdo (Px,y-i),
superior (Px-i,y) e superior esquerdo (Px-i,y-i), so utilizados para calcular o preditor de P^y.
PSVs Preditores
1 Px,y-1
2 Px-l,y
3 Px-l,y-l
5 Px,y-l+(Px-l,y-Px-l,y-l)/2
6 Px-l,y + (Px,y-l-Px-l,y-l)/2
7 (Px,y-l+Px-l,y)/2
utilizado para a primeira linha de amostras e o PSV 2 utilizado para a primeira coluna. Para
P-Pt-i
o pixel no canto superior esquerdo da imagem, o preditor 2 utilizado, onde P e o
de Huffman usando ou a tabela padro de Huffman definida na norma ISO/IEC DIS 10918-1,
3.8, abaixo:
Categoria Valores
0 0
1 -1,1
2 -3,-2, 2-, 3
3 -7...-4,4...7
4 -15...-8, 8...15
5 -31...-16,16...31
6 -63...-32, 32...63
7 -127...-64, 64... 127
8 -255...-128, 128...255
9 -511...-256, 256...511
10 -1023...-512, 512...1023
11 -2047...-1024,1024...2047
12 -4095...2048, 2048...4095
13 -8191...-4096, 4096...8191
14 -16383...-8192, 8192...16383
15 -32767...-16384, 16384...32767
cdigo de Huffman para identificar unicamente qual a diferena naquela categoria atualmente
ocorrida. A quantidade de bits dada pela prpria categoria, com zero sendo um valor
diferena positiva, anexa-se a quantidade de bits, representada pela categoria, de mais baixa
quantidade de bits, representada pela categoria, de mais baixa ordem do valor resultante.
por 3 colunas em escalas de cinza (8 bits). Foi utilizado o PSV 7 ((Px,y-i + Px-i,y) / 2) como
categorias. Pt foi configurado como zero. O preditor para o pixel do canto superior esquerdo
P-Pt i
igual a 128 (aplicando-se 2 ).
80 90 100
-40 0 5
6 (1110) 0 3 (100)
Bits adicionais
0111 01011 0
010111 0 101
37
bits adicionais, Olli, so extrados da seqncia. O bit inicial 0 significa que a diferena
120 recuperado. Este processo inverso de codificao repetido at que a seqncia inteira
4. Metodologia
4.1 Introduo
Neste captulo, ser descrita a metodologia utilizada na execuo das simulaes
(Gnu ZIP), utilizado largamente para compresso de dados e LJPG (Lossless JPEG),
conforme ilustra a figura 4.1. Este programa simulador de projees foi implementado por
Medeiros [MED01], Os senogramas foram gerados a partir de imagens mdicas, com 256
colunas por 256 linhas e 8 bpp. O programa simulador de projees efetua uma varredura de
180 graus na imagem com um passo de 2 graus, gerando, desta forma, senogramas
compostos de 256 linhas por 90 colunas e 16 bpp. Tanto as informaes fornecidas pelo
valores inteiros no formato binrio. Estes valores variam de 0 a 65.535, ou seja, 16 bits no
sinalizados.
39
Programa
Simulador
de Projees
Transform ada
Codifica dor Senogf2ffiajmag.eaa
Wavelet
Direta
Aritmtico > comptiffido
Transformadas W (S / S+P)
Codificador
LZ77
>
Gzn?
Codificador
Huffman
i JPG
> comprim o
apresentavam um elevado grau de variao nos valores dos pixels, quando comparados aos
senogramas gerados pelo programa simulador. Atravs da anlise destes valores, constatou-se
que esta variao comporta-se como rudos distribudos de forma aleatria entre os pixels.
Face a estas constataes, optou-se pela continuidade dos estudos considerando estas
caractersticas dos senogramas reais. Foi utilizada a funo randQ, em linguagem C, para
gerar o rudo uniforme de mdia nula, a ser somado a cada pixel das imagens e senogramas,
frmula a seguir:
No clculo do %rudo, o valor do ruido, que pode resultar num valor positivo ou
negativo, somado ao pixel. Caso o valor resultante (valor do pixel + valor do rudo) seja
maior que 65.535 ou menor que 0, o valor do rudo ser rebatido, ou seja, ter o sinal
Alm do percentual de rudo, foi includa uma outra medida relacionada a rudo,
SR = O"
fruido)'
original. Est comentada em mais detalhes no item 3 .3, sendo a frmula utilizada a seguinte:
r
TamanhoOriginal - TamanhoFinal ^
= 100 (4.3)
TamanhoOriginal
totalizando 138.240 bytes. Estes senogramas foram designados por "denteOl", dente02" e
desses senogramas, foram reconstrudas as imagens "denteOl", composta de 256 colunas por
41
256 linhas e 8bpp; "dente02", composta de 176 colunas por 176 linhas e 8bpp e "dente03"
composta de 112 colunas por 112 linhas e 8bpp. Os senogramas e suas respectivas imagens
so apresentados no apndice 4.
na figura 4.3. Essa imagem semelhante a tomografia de uma cabea [JAI89]. Esta imagem
foi gerada por um programa, utilizado em [MED01], Este programa tambm produz o
respectivo senograma, mostrada na figura 4.4. Este programa tambm permite produzir
senogramas de qualquer outra imagem, os quais sero produzidos e utilizados neste trabalho.
Selecionadas ainda outras 5 imagens para realizao dos testes, as quais foram
Foram geradas outras dezessete imagens da seguinte forma: sete imagens a partir
da imagem "Abdom" com os percentuais de rudo (%rudo) 2%, 10%, 20%, 25%, 33%, 50%
e 100%; e outras dez imagens a partir do senograma "Abdom" com os percentuais de rudo
0,1%, 0,2%, 1%, 2%, 10%, 20%, 25%, 33%, 50% e 100%. Portanto, foram utilizadas nos
experimentos deste trabalho um total de trinta e duas imagens e/ou senogramas. Estas
S+P e GZIP foi necessrio que as imagens e senogramas estivessem no formato binrio
somente os bytes de dados. As imagens permaneceram com 256 colunas (largura) por 256
linhas (altura) e 8 bits por pixel, totalizando 65.536 bytes e os senogramas com 256 colunas
(largura) por 90 linhas (altura) e 16 bits por pixel, totalizando 46.080 bytes.
com imagens no formato PGM. Portanto, para possibilitar a utilizao do mtodo, as imagens
43
do formato binrio foram transformadas para este formato com a incluso de um cabealho
linguagem C (Borland C++ verso 3.1) no sistema operacional DOS e, com pequenas
Constatou-se que os resultados obtidos com a compactao nos dois sistemas foram
optar pelo nmero de nveis de decomposio desejado. Foram desenvolvidos dois programas
programa para a unidade de informao de 1 byte (8 bpp) e outro para 2 bytes (16 bpp).
LINUX COREL / OS. O software utilizado foi o LJPG [HUA94], desenvolvido para uso
comprimir arquivos com 8 bpp. Nos testes deste trabalho, utiliza-se senogramas com 256
colunas por 90 linhas e 16 bpp, totalizando 46.080 bytes. Para possibilitar a compresso
destes senogramas com o mtodo LJPG, foi utilizado o artifcio de gerar o cabealho do
senograma com as informaes de 512 colunas por 90 linhas e 8 bpp, totalizando os mesmos
como sendo 2 pixels de 8 bits deve afetar o desempenho deste mtodo de compresso.
45
5. Resultados
representadas na tabela 5.1. Estes resultados esto de acordo com os resultados apresentados
destes dados. Os senogramas possuem 16 bits por pixel (bpp). Foi utilizada a tcnica de
alta do pixel original, ficando com 8 bits por pixel e o segundo contendo a informao da
parte baixa, tambm ficando com 8 bits por pixel. Desta forma, melhores resultados foram
obtidos com a transformada wavelet de inteiros nos casos com a transformada S+P
computando com 16 bits e S computando com 8 bits, assim como os resultados obtidos com
arquivo comprimido que pode ser obtido levando em considerao apenas a redundncia de
Tabela 5.1 - Taxa de compresso de senogramas reais, separados parte alta e parte baixa.
46
35%
:; i!J- ' """\,:;!1
'n'F~-_ ..
r - o, !~tl: . r-
30;' - 0 """
25 ~'o .
illr.} :'m::-'" .
i~
r- i!f;f] -
. ' ,' c;
o
[ 20% .
~!r1~~
"--'" i~ -"' =
[J Denl cO I
,~
Denl c02
8
E
15%
;h::.,,,,,. c- ~
O Denl c03
." :c. '::::,,,, ": O Mdia
-
... IO ~.
r
'
_r-
,
rr
"'-
r- -
50/. t- '- ..
,~ ~
I-'-
0%
Entropia Aritmtica T ransf. S Transf. S+P GZIP LJPG
Mtodos de Compresslo
Figura 5.1 - Grfico comparativo da compresso dos senogramas reais, separados em 8 bits.
transformadas S so superiores s taxas geradas pelo mtodo GZIP. O mtodo LJPG, mesmo
operando sobre um conjunto de 8 bits, neste caso, apresentou taxas compatveis com as
utilizada neste trabalho. Os senogramas foram utilizados considerando o pixel com 16 bits,
LJPG, sem a separao em arquivos com parte alta e parte baixa, A transformada foi aplicada
levando em considerao cada informao na sua forma original, ou seja, com 16 bits,
taxa de compresso relativa a entropia de I a ordem dos senogramas tambm foram calculadas
Tabela 5.2 - Compresso de senogramas reais, com 16 bpp, entre diferentes mtodos.
35% ,
30% . ..
, , 'i': ..,..
,
,. "
C-
25%
-,.,- ,oi
-
r .",r.;; ;
, ,)~~ I:'
, =,I~~'
.,c ,,'
o
~ 200/ . - .'.;;~, [] Dente() I
...E~ "1, ~~;;;: '... ..,;,"- ',:;;;" Dente()2
o 15%
<.i
...
~
" ",
-'-
I'" 1W" :" ",!li:: o Dente()3
o M di.
...a
10% - ;,
r - Fr r
"
I-- - I-
5%
I:'"
O ~O . II . .
EntrOpJ8
"
ArJtm tJCa
,
Transf. S Transf. S<P GZIP ~G'-'
,
-5%
Senogramas
Figura 5.2 .. Grfico comparativo da compresso dos senogramas reais com 16 bpp.
pouco menores para as transformadas wavelets e bem inferiores para o mtodo LJPG. Isto se
explica pelo fato desta implementao do LJPG no ter trabalhado com os pixels de 16 bits,
mas sim com os bytes altos e baixos alternadamente, o que compromete o bom desempenho
100%
90%
80%
..
~
----.-. Entropia
____ Aritm tica
t
Co
60%
. '" .. , ..
E 50% Transf. S
U ~ T ran sf. s+P
.., 40% .
~ GZ n)
...="=
.~.
30%
-+- LJPG
20%
10%
0%
Abdom Braim Hem ia Head Phan ton Torax Mdia
Scnogramas
obteve um resultado diferente das compresses pelas transformadas wavelels, embora estas
de uso geral GZIP e LJPG. Esta caracterstica explicada pela organizao dos pixels dos
Isto pode ser devido ao fato destes senogramas terem sido obtidos (simulados) a
partir de imagens de 8 bits, ao contrrio dos senogramas dos dentes, que foram obtidos
como esto, no representam bem a situao real. Numa situao real, o objeto tem uma
variao contnua da radiopacidade e pode existir ainda um rudo presente durante a medida.
foi introduzida uma quantidade de rudo controlado em cada um de seus pixels. A tabela a
de rudo (%rudo) representa a relao entre o maior valor de pixel e o maior valor de rudo.
A tabela 5.3 apresenta as taxas de compresso para o senograma "Abdom", com rudos
aleatrios somados aos pixels nos percentuais indicados. O item 4.1 mostra maiores detalhes
sobre o processo de insero aleatria de rudos. O senograma "Abdom" possui 256 colunas
100,-..--------------------,.,
+--r---'---~ 1f :.',~ ',.
80%70% t- \ .
90".
t~
~
0'
. . 10% t~=~'i~~
O ~.
-1 0% . 0%
~~~=~
~~~!~~~~.,~;~ --+-LJPG
0,1% 0,2% 1% 2%, 10" 20% 25% 3.
Figura 5.4 - Grfico comparativo do senograma "Abdom" com escala percentual de rudo.
de rudo, os mtodos que utilizam a transformada wavelet passam a ter taxa de compresso
superior em relao aos mtodos de uso geral GZIP e LJPG. Isto mostra a importncia de se
padro de 1% de rudo, para se ter uma idia do comportamento dos mtodos de compresso
com os outros senogramas. Estima-se que um senograma real possa ter um percentual de
qualidade do equipamento.
35% ' ..
-
." \c
30% .
y
o 25%
..... ---+- Entropia
20% . / ___ Aritmtica
!
Q. - ~
Transf. S
... ......
E 15%
o _ _ Transf. S+P
~
O
.., ~
..
OI
10% . -lIf-GZ P
....".. ~
.\.
'J 'c
/ -
___ UPG
~\
5% .
0%
-5~ ~ Jif' ","f> .# ..' ~ J)" .J9- .JS' .d
-~ 'O. ~~ '(' q""'" <;
Q./i' Q./i' Q./i'
~-
Senogramas
Neste caso, pode-se notar que os mtodos que utilizam a transformada wavelet
utilizados, para seis imagens de TC, todas com 256 colunas por 256 linhas e com 8 bits por
100%
90%
80%
-+- Entropia
~
70%
~ Aritmtica
~ 60~o
T ran sf. S
E
o 50%
u ~ T ransf. S+P
~
40%
" - l f - GZIl'
....~ 300/. _ _ LJPG
20%
10%
0%
.#'~ 0-~~ xl'. . ~..~ q~.f"~ ....d-." c!'~' t/~~ <:/'"~ ~..,
Imagens
antes da compresso. O item 4.1 mostra maiores detalhes sobre o processo de insero
aleatria de rudos. A imagem "Abdom" possui 256 colunas por 256 linhas, com 8 bpp,
90%
80%
c.
:L
70% :\.. te,_ .. "
-.""
o 60% t...~ .. -+- En fropia
~
..
e 50 %
~'" ,. .. ____ Aritmtica
"'''
Transf. S
eo 40% .
.~
U _ _ Tronsf. s+P
...
~
30% .
,~
_____ GZ IP
....= 20 ~o
. .
- - . LJPG
10% .
0% ~
-10 0/.
0% 2% 100/. 20% 25% 33;' 50,4 I~%
Pe rcentual de Ruldo
Neste caso, pode-se verificar que para um percentual de rudo em torno de I 0%, os
mtodos que utilizam a transformada wavelet passam ter taxas de compresso maiores do que
comparativo entre a compresso das imagens e senogramas. Vale lembrar que so dois
domnios distintos, com dimenses e resoluo de cores diferentes (8bpp e 16bpp), portanto
senogramas possuem a vantagem de, em geral, serem menores, porm tambm podem ter
tamanhos maiores. Neste trabalho, sero utilizados somente senogramas gerados com um
passo de 2 graus, o que j fornece uma imagem adequada. Uma melhor qualidade pode ser
senograma com 180 linhas, totalizando 92.160 bytes, portanto maior que os 65.536 bytes da
imagem.
senogramas. O clculo desta taxa considera os tamanhos finais das imagens e senogramas,
comparado com o tamanho original da imagem de 65.536 bytes. As imagens utilizadas esto
sem rudos inseridos e possuem 8 bits por pixel de informao. Os senogramas possuem 16
Normal Entr Aritm S SfP GZIP LJPG Entr Aritm S SfP GZIP LJPG
Imagem Sen Sen Sen Sen Sen Sen Sen Img Img Img Img Img Img
Abdom 30% 34% 34% 42% 43% 34% 38% 63% 61% 55% 51% 80% 70%
Braim 30% 38% 37% 42% 43% 37% 38% 74% 71% 66% 61% 87% 77%
Hernia 30% 33% 33% 42% 43% 33% 37% 46% 45% 40% 38% 61% 50%
Head 30% 38% 37% 43% 44% 37% 39% 75% 71% 66% 60% 85% 74%
Phanton 30% 36% 35% 43% 44% 36% 40% 79% 78% 79% 65% 98% 86%
Trax 30% 34% 34% 42% 43% 35% 38% 57% 55% 53% 49% 75% 66%
Mdia 30% 35% 35% 42% 43% 35% 38% 65% 64% 60% 54% 81% 71%
D. Padro 0% 2% 2% 1% 0% 2% 1% 13% 12% 14% 10% 12% 12%
100%
90%
-
. ,i
E 80-/0
!'. 70% -- ,;' ,,;;;;; ,: .. [] Abdorn
] ~ '. .Braim
60% -
~I[
o " o Hem ia
'!; 50%
OHead
-!l
~ 40%
E Phant on
= 3 0%
...= 20 %
c Torax
C 10%
0%
Nonn Enlr Arilm S S+P GZIP LJPG Enlr Aritm S S+P GZIP UPG
(Sco) ( Sen ) (Sco) (Sco) (Sen) (Sco) ( Sco) (Irng) (irng) (lmg) ( Img) (Irn g) ( Irng)
Imagens e Sen ogramas
Pode-se notar que h uma tendncia de maiores taxas de compresso nos mtodos
destes mtodos pode ser explicado pela organizao das informaes dos pixels, onde existe
Como pode ver verificado, com a insero de rudos, a taxa de compresso destes mtodos
decresce, portanto, pode-se concluir que a variao nos valores das informaes exerce
padro de 1%, pode-se notar que a taxa de compresso para os senogramas so mais baixas
quando comparadas com as taxas de compresso das imagens. Lembra-se novamente que so
dois domnios diferentes e sua comparao direta deve ser apenas uma avaliao subjetiva.
pixel no tamanho final do arquivo. Uma maneira de se melhorar a taxa de compresso dos
senogramas seria reduzir o nmero de bits por pixel, porm esta reduo no passo da
56
quantizao poderia resultar em perda de informao, ou equivalente, na adio de um rudo
Na tabela 5.9 mostra-se as mdias dos tamanhos resultantes, em bytes, das imagens
comprimidas sem rudo e senogramas comprimidos sem rudo e com rudo padro de 1%.
100%
90%
e 80%
'li Scnograma
~
... 70%
O En tropia
u 60% O Aritmtica
...
~
M
50% Transf. S
~
-
II
...
=
M
40%
30%
[J Transf. StP
. GZIP
[JLJPG
~
:;
20%
10%
0%
Imagem Senograma sem ruioo Senograma com rudo
lm.geRs e Senograms
Figura 5.9 - Grfico das mdias das compresses com e sem rudo.
Foi verificado que a presena de rudos determina maior ou menor ganho entre os
mtodos de compresso. Nos testes realizados com insero de rudos, fo constatado que
imagens. Portanto, fica evidente que existem vantagens em se comprimir imagens, mesmo
diminuindo medida que o percentual de rudo aumenta, conforme verificado na figura 5.7.
57
As imagens aqui utilizadas na realizao dos testes, com rudos, no representam a
imagem reconstruda a partir do seu senograma com rudo. Elas tambm tiveram rudos
devido a amplitude do seu sinal, que representado por 2 bytes, podendo assumir valores
6. Concluso
As imagens digitais necessitam de grande espao para armazenamento, a exemplo
dos sistemas mdicos que trabalham com diagnstico por imagem. Alm de gerar um grande
volume de dados, podem ocasionar lentido nos sistemas que utilizam catalogao,
alguma tcnica de compresso. No caso de imagens mdicas, deve-se levar em conta que, em
geral, no deve haver perda de informaes, quando for aplicada alguma tcnica de
compresso. Existindo perdas, poder haver alteraes na imagem a ser analisada, podendo
alguns dos mtodos de compresso sem perdas: GZIP (baseado no Lempel-Ziv e largamente
para imagens) e wavelets de inteiros com codificao aritmtica (mtodo menos difundido).
ganhos com cerca de 22% de taxa de compresso. Os mtodos GZIP e LJPG ficaram abaixo
com 8%. Ressalta-se que o LJPG operou sobre palavra de 8 bits e no 16 bits, o que pode ter
59
prejudicado sua capacidade de interpretao fiel da imagem. Porm esta uma dificuldade
Pode ser observado o ganho introduzido pelo uso das transformadas wavelets. As
aritmtica, que aps a reorganizao dos pixels da imagem, utilizam esta codificao para
eficcia do mtodo.
potencial oferecido pela tcnica da transformada wavelet, a qual capacita trabalhar com
de 16. Utilizar imagens com 15, 14, 13 e 12 bits, utilizando o menor nmero
60
necessrio de bits em funo do rudo do equipamento, objetivando descobrir a
da string substituda por ponteiros para a string anterior, na forma de pares (distncia,
comprimento), onde o primeiro representa a distncia para trs que a seqncia inicia e o
limitadas por 32Kb e comprimentos so limitados por 258 bytes. Quando uma string no
ocorre em nenhum lugar nos 32Kb anteriores, ela emitida como uma seqncia literal de
bytes (A string pode ser uma seqncia arbitrria de bytes e no restrita a caracteres
imprimveis).
forma compacta no inicio de cada bloco. Os blocos podem ser de qualquer tamanho (exceto
que os dados comprimidos para um bloco tem que encaixar dentro da memria disponvel).
Um bloco terminado quando o algoritmo deflateO determina que deve ser conveniente
comear outro bloco com rvores novas. (Isso um tanto parecido com o comportamento do
prximos 3 bytes. Se o encadeamento de hash (hash chain) para esse ndice no vazio,
todas as strings nesse encadeamento (chain) so comparados com a string de entrada atual, e
Para evitar uma situao de pior caso, encadeamentos de hash muito extensas so
deflatelnit (opo em tempo de execuo). Assim, o algoritmo deflateQ nem sempre acha a
maior combinao possvel, mas geralmente encontra uma que comprida o bastante
[AGOOO],
Uma expectativa comum com relao ao uso da transformada wavelet que ela
produz uma melhor qualidade subjetiva da imagem do que o codificador JPEG padro. Em
vista disso, o JPEG est propondo um novo padro para compresso de imagens chamado
Em [SAN01] comentado sobre o projeto JPEG 2000, onde foi motivado com a
quase sem perdas (near-lossless) para imagens de tons contnuos, conhecido agora como
JPEG-LS. Embora o LOCO-I tenha sido selecionado como a base para o JPEG-LS. Todavia,
foi reconhecido que o CREW possui muitas caractersticas que merecia o desenvolvimento
de um novo padro. Em 1996, o JPEG-2000 foi aprovado como um novo item de trabalho.
64
JPEG 2000 refere-se para todas as partes do padro. A proposta atual constituda
Parte 4, Adaptao
permitir compresso tanto com perdas quanto sem perdas, mltiplas resolues,
qual permite selecionar partes de uma imagem para ser codificada com mais alta qualidade, e
comprimida.
bits;
espacial;
filtro e dos filtros de ponto flutuante ((9,7), (10,18)) versus filtros inteiros ((13, 7), (3, 5), (5,
3), (2,10), etc.) utilizados. A Parte I exigir uma wavelet de ponto flutuante (9, 7) e uma
inteira (3, 5), enquanto a Parte II permitir wavelets mltiplas incluindo as definidas pelo
usurio.
incluir informaes tais como o espao das cores dos pixels e informaes de propriedade
intelectual (direitos autorais) para a imagem. Este formato opcional de arquivo extensvel e
onde, uma parte dela, ser descrita nesta seo. A transformada wavelet tem sido amplamente
recentemente, seu uso era limitado para aplicaes de compresso de imagens com perdas.
transformada inversa deve primeiro ser aplicada nas colunas e ento nas linhas da imagem.
atualizao e correo, tais como o lifting scheme e a transformada S+P. O mtodo permite
gerar uma srie de transformaes inteiras reversveis que so muito prximas das
ortogonais, porm podem ser calculadas com somas de inteiros e operaes de deslocamento
de bits.
valores negativos e o nmero de bits usados para representar a imagem podem no ser mais
nmero. A PPP permite manter o nmero de bits usados para representar cada pixel da
diferentes dos obtidos com a transformada sem a aplicao desta propriedade. Os resultados
compresso sem perdas, que significa que a entropia da imagem transformada dessas duas
perdas.
67
Uma outra caracterstica da PPP est na forma como o computador realiza
e a inversa sera
onde c' e a' indicam a representao interna no computador e o intervalo dos inteiros a, b ec
[-2q-1, 2?_1-1]. A representao interna de c' quando ocorrer um overflow ou underflow ser
um nmero com complemento de dois, ento a representao interna pode no ser a mesma
da representao externa de c. Porm, o mesmo cdigo complementar para a' permitir que a
5W= * [ 2 ] + X[2k + 1] ( a u )
Para o caso de uma imagem, deve-se aplicar a transformada acima nas linhas e nas
Para evitar isso, poderamos omitir a diviso por dois calculando a soma em vez da mdia.
Porm, prefervel usar uma construo mais eficiente conhecida como transformada S
em s[] parece descartar alguma informao. Todavia, a soma e a diferena de dois nmeros
inteiros so tambm ambos pares ou ambos impares. Com base nessa informao, pode-se
omitir o bit menos significativo da soma, pois ele igual ao bit menos significativo da
diferena (d{ri\). A diferena poder ento ser usada para determinar se ocorreu o
truncamento. Se este valor for impar indicar o truncamento para o menor inteiro.
a fonte da no linearidade.
preditiva.
d[n]
x[2n] = s[w] - (Al.9)
4] + l
x[2+l] = s[] + (A1.10)
qual a predio linear realizada nos coeficientes passa baixa para gerar um novo conjunto
transformada S+P :
dm[ri\
5[W]=X[2W] + (Al. 12)
2 3 _ 2 . 1 4 8 .= 6
,a\ = e\~ para imagens naturais e a i = , ao - , ai = e i para
8 8 8 16 16 16 16
imagens com 1, 4, 8, 16, 24 e 32 bits por pixel. Este formato pode se apresentar com
Cabealho do Arquivo
desta forma at as verses atuais. Neste novo formato, alm do cabealho do arquivo e dos
dados de pixels, foi includo um cabealho da imagem e uma paleta de cores na ordem
apresentada na Figura A2.2. A paleta de cores s existe se o nmero de bits por pixel for 1, 4
ou 8.
Cabealho do Arquivo
Cabealho da Imagem
Paleta de Cores
podendo seguir duas estruturas diferentes, uma para Windows e outra para OS/2. Apenas o
cabealho para Windows ser detalhado neste trabalho. Na Tabela A2.2 est apresentado o
como forma de dar suporte, principalmente, aos novos nmeros de bits por pixel suportados
(16, 24 ou 32). Estes novos campos esto apresentados na Tabela A2.2 e so colocados
exatamente depois dos campos da Tabela A2.1. Caso o nmero de bits por pixel seja 1, 4 ou
cores.
Na Tabela A2.2, o campo Planos deve ser 1 porque o padro BMP usa apenas um
plano de cores. O tipo de compresso, definido pelo campo Compresso, pode ser sem
Mscara Alpha especificam, para BMPs de 16 ou 32 bits, quais bits em um valor de pixel
transparncia do pixel, sendo que este valor pode variar de 0 (pixel completamente
73
transparente) at 255 (pixel completamente opaco) [MUR96], O campo Tipo de Cor define o
tipo de espao de cores usado. As opes so: RGB calibrado (Tipo de Cor=0), RGB
Azul X, Azul Y e Azul Z so usados apenas para o espao de cores RGB calibrado.
estruturas que especificam os valores de intensidade das cores vermelho, verde e azul de cada
cor em uma imagem. Cada pixel, nos dados de pixels, armazena um valor simples, que
usado como ndice na paleta de cores. A paleta de cores s existe em arquivos BMP com 1, 4
ou 8 bits por pixel. Nos arquivos com 16, 24 ou 32 bits por pixel, existem mscaras para cada
cor no lugar da paleta de cores. O valor da mscara usado para fazer um AND com o valor
nmero de bits por pixel, a interpretao dos dados diferente. Se forem 1, 4 ou 8 bits por
pixel, o dado armazenado o ndice do pixel na paleta de cores. Se forem 16, 24 ou 32 bits,
os dados armazenados contm toda a informao de cores do pixel, onde se usa as mscaras
deste trabalho, portanto a compresso no BMP sem perdas. Existem dois tipos diferentes de
RLE utilizadas no formato bitmap. A primeira usa 4 bits como elemento atmico e a segunda
usa 8 bits. Por isso, os pixels representados com 1, 16, 24 ou 32 bits no podem ser
formatos de imagem para imagens a preto e branco, em escala de tons cinzentos e a cores,
todos eles sem compresso e que apresentam uma estrutura comum. Os trs tipos de formato
de imagens so:
imagens por meio de correio eletrnico que, data da definio, ainda no permitia a
representavam ento os contedos das respectivas imagens por meio de caracteres ASCII
correio eletrnico como se tratasse de texto, mas tinha como conseqncia que o tamanho
dos arquivos fossem demasiadamente grande. A definio do formato mais tarde foi
PBM PI P4
PGM P2 P5
PPM P3 P6
ASCH,
Espao em branco;
ASCII;
Espao em branco.
Espao em branco.
Valores dos pixels da imagem, em nmero igual altura da imagem vezes a sua
largura para os tipos PBM e PGM, e trs vezes este nmero para o tipo PPM,
uma vez que cada pixel representado pelas trs componentes RGB da
respectiva cor.
76
A ordenao dos valores dos pixels corresponde a varredura das imagens linha a
linha, de cima para baixo, e da esquerda para a direita em cada uma das linhas.
correspondentes aos pixels sero apresentados em notao decimal e separados por espaos
correspondentes aos pixels das imagens em caracteres (bytes) contguos, sem qualquer
separador entre valores consecutivos. O tipo PBM combina os valores de cada 8 pixels
consecutivos num nico caracter (byte). Os tipos PGM e PPM, fazem corresponder a cada
Para as variantes ASCII dos trs tipos de formato, aplicam-se ainda as seguintes
regras:
eletrnico.
77
em duas ordenaes, da esquerda para direita e de cima para baixo, um valor de cada vez.
Para imagens em nveis de cinza com valores na faixa 0 a 255, 8 bits (ou 1 byte) por pixel
suficiente. Consequentemente, uma imagem NxM ocupa NxM bytes, com cada byte
detectado diretamente pela inspeo do arquivo. Por exemplo, uma imagem 256x512 no
pode ser diferenciada de uma imagem 512x256, a no ser que a imagem seja visualizada na
tela.
cores (para imagens pseudo coloridas, ou seja, aquelas que usam uma tabela de cores), entre
outras informaes.
78
(RLE), tambm conhecido como RLC (Run-Length Coding), busca reduzir a redundncia de
0AAAAA7CCCCCCCCC5555
105A179C45
No exemplo, obteve-se uma taxa de compresso de 2:1, mas pode-se perceber que
para seqncias de smbolos com elevado grau de variao, pode-se chegar num resultado
normalmente existem muitas repeties de pixels, por isso, a codificao RLE pode ser
muito interessante.
compresso, por isso, o objetivo determinar a seqncia com maior nmero e repeties
A3.1(b), onde feita uma varredura que inicia no canto superior esquerdo da imagem,
79
vai at o final da linha, volta para o inicio da prxima linha e assim sucessivamente,
apresenta o mesmo processo seqencial anterior, mas com as colunas sendo varridas ao
invs das linhas. Uma soluo muito interessante a codificao em ziguezague, onde
A3.1(a)
*
*
(c)
80
Figura A3.1 - Codificao RLE (a) em ziguezague, (b) por linha e (c) por coluna.
Existem trs diferentes formas bsicas de se efetuar a codificao RLE no que diz
respeito a qual o elemento atmico a ser codificado. A Figura A3.2(a) mostra a codificao
em nvel de bit, o que significa que o bit a unidade bsica a ser codificada, onde utiliza um
byte para armazenar as informaes sobre os bits. Utiliza um contador com 7 bits para
armazenar o nmero de ocorrncias e 1 bit para armazenar o bit que foi encontrado. A
codificao tambm pode ser a nvel de byte, mostrado na Figura A3.2(b), onde o byte o
elemento atmico e so necessrios dois bytes para cada pacote, o primeiro para armazenar o
codificado. Por fim, a Figura A3.2(c) mostra a codificao a nvel de pixel, onde a unidade
Contada
7 6
Contador Valor
7 07 0
senogramas que foram utilizadas na realizao dos testes neste trabalho. O termo
comprimir os dados, mas sim o processo que permite reconstruir a imagem de tomografia a
Nos senogramas, com 16 bits por pixel, o preto corresponde ao pixel de valor 0 e o
branco corresponde ao pixel de valor 65.535. Nas imagens reconstrudas, com 8 bits por
pixel, o preto corresponde ao pixel de valor 0 e o branco corresponde ao pixel de valor 255.
sejam 768 colunas por 90 linhas e 16 bits por pixel, totalizando um tamanho de 138.240
reconstruo, conforme segue: imagem "DenteOl" com 256 colunas por 256 linhas e 8 bpp,
totalizando 65.536 bytes, imagem "Dente02" com 176 colunas por 176 linhas e 8 bpp,
totalizando 30.976 bytes, e imagem "Dente03" com 112 colunas por 112 linhas e 8 bpp,
imagens e com seus respectivos senogramas, tambm utilizados nos testes deste trabalho. Os
Senogramas possuem 256 colunas por 90 linhas com 16 bits por pixel, totalizando 43.080
bytes. As imagens possuem 256 colunas por 256 linhas com 8 bits por pixel, totalizando
65.536 bytes.
83
Na seqncia, as figuras A4.10 at A4.19, so os senogramas resultantes e
e sua imagem.
representam a imagem reconstruda a partir do seu senograma com rudo. Elas tambm
tiveram rudos inseridos, a partir da imagem original, nas mesmas porcentagens, a fim de se
muito maior devido a amplitude do seu sinal, que representado por 2 bytes, podendo
amplitude do sinal representado por 1 byte, podendo assumir valores entre 0 e 255.
-Vvv -
p : , ; .. <i.
<V
-;<Vi
Referncias Bibliogrficas
[EGG99] EGGER O., FLEURY P., EBRAHIMI T., KUNT M., . "High-Performance
Compression of Visual Information - A Tutorial Review - Part I: Still Pictures"
Proceedings off the IEEE, v.87, n.6, pp. 976-1011, June, 1999.
[GRA95] GRAPS, A., "An Introduction to Wavelets", IEEE Computational Science and
Engineering, v. 2, n. 2, 1995.
[HUA94] HUANG, K., SMITH, B., "Experiments with a Lossless JPEG Codec", June,
1994. "http://www.cs.a>mell.edi^nfo/Projects/zeno/Projects/LJPG.html".
[JAI89] JAIN, A. K., "Fundamentals of Digital Image Processing", Prentice Hall, 1989.
[MAL89] MALL AT, S. G., "A Theory for Multiresolution Signal Decomposition: The
Wavelet Representation", IEEE Transactions on Pattern Analysis and Machine
Intelligence, v. 11, n. 7, July, pp. 674-693, 1989.
95
[MAROO] MARCELLIN, M. W., GORMISH, M. J., BILGIN, A , BOLIEK, M. P., "An
Overview of JPEG-2000", Proceedings of 2000 Data Compression Conference,
Snowbird, March, 2000.
[MLA99] MIAO, J., "Compressed Image File Formats - JPEG, PNG, GIF, XBM, BMP",
Addison Wesley Longman Inc., USA, 1999.
[PEN93] PENNEBAKER, W. B., MITCHELL, J. L.: "JPEG Still Image Data Compression
Standard", Ed. Van Nostrand Reinhold, 1993.
[SAI96] SAID, A., PEARLMAN, W. A., "A New Fast and Efficient Image Codec Based
on Set Partitioning in Hierarchical Trees", IEEE Transactions on Circuits and
Systems for Video Technology, v. 6, n. 3, pp. 243-249, June, 1996.
[ZIV77] ZIV, J., LEMPEL, A., "A Universal Algorithm for Sequential Data
Compression", IEEE Transactions on Information Theory, v. IT-23, n. 3, p. 337-
343, May, 1977.