60
Curso de Bacharelado de Ciência da Computação JONAS FRIEDRICH UM MÉTODO DE COMPACTAÇÃO DE IMAGENS ATRAVÉS DE BUSCA POR BLOCOS SEMELHANTES Canoas, 2009

Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

Curso de Bacharelado de Ciência da Computação

JONAS FRIEDRICH

UM MÉTODO DE COMPACTAÇÃO DE IMAGENS ATRAVÉS DE BUSCA POR BLOCOS SEMELHANTES

Canoas, 2009

Page 2: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

2

JONAS FRIEDRICH

UM MÉTODO DE COMPACTAÇÃO DE IMAGENS ATRAVÉS DE BUSCA POR BLOCOS SEMELHANTES

Trabalho de conclusão de curso apresentado para a banca examinadora do curso de Ciência da Computação do Centro Universitário La Salle – Unilasalle, como exigência parcial para obtenção do grau de Bacharel em Ciência da Computação, sob orientação do Prof. Me. Mozart Lemos Siqueira.

CANOAS, 2009

Page 3: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

3

TERMO DE APROVAÇÃO

JONAS FRIEDRICH

UM MÉTODO DE COMPACTAÇÃO DE IMAGENS ATRAVÉS DE BUSCA POR BLOCOS SEMELHANTES

Trabalho de conclusão aprovado como requisito parcial para obtenção do grau de Bacharel do curso de Ciência da Computação do Centro Universitário LaSalle -

Unilasalle, pela seguinte banca examinadora:

__________________________________ Prof. Me. Neide Pizzolato Ângelo

Unilasalle

__________________________________ Prof. Dra. Márcia Häfele Islabão Franco

Unilasalle

Canoas, 05 de novembro de 2007.

Page 4: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

4

DEDICATÓRIA

Dedico este trabalho de Conclusão:

Aos meus Pais, João e Denise por toda confiança e dedicação que deram para mim.

Ao meu Irmão Vitor, pelo apoio e toda amizade que me propiciou.

À minha Vó Tereza, por toda ajuda e suporte.

À minha Vó Irene.

Aos meus Tios, Tias, primos e primas

E aos amigos

Page 5: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

5

AGRADECIMENTOS

Agradeço aos meus Pais, João e Denise pela inigualável ajuda, incentivo, confiança,

atenção, compreensão, carinho e Amor. Por serem a minha base e por sempre

tentarem mostrar o caminho certo, para que seu filho pudesse trilhar boas estradas.

Sem dúvida, foram fundamentais para que eu pudesse chegar até aqui, pois foram a

base da minha educação.

Agradeço ao meu Irmão Vitor, pela parceria, amizade, Amor e por ser um irmão tão

bom.

Agradeço a minha Vó Tereza, pelo carinho, atenção e Amor. Por sempre se

prontificar e fazer coisas boas para mim.

Agradeço ao meu professor orientador Mozart, pela ajuda e apoio durante o

desenvolvimento deste trabalho.

Page 6: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

6

RESUMO

Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em técnicas de compressão de vídeo, tais como predição intra-frame e compensação de movimento. Apresenta conceitos do processamento de imagens relacionados ao tema e descreve detalhadamente como o codificador faz a busca por blocos semelhantes dentro da imagem. A partir dos resultados obtidos deste codificador, foram feitas análises comparativas verificando em quais situações o codificador deste trabalho é superior. Este trabalho leva em consideração, como medição de comparação o tamanho final da imagem após o processo de compressão e qualidade da imagem após sua reconstrução. O tempo de processamento não é levado em consideração. PALAVRAS CHAVE: Compressão. Imagem. Predição intra-frame. Compensação de movimento

ABSTRACT

This work describes the study, the implementation and the analisys of images compression techniques, based on video compression techniques like intra frame prediction and motion compensation. Introduces the image processing involved concepts and describes details about how the encoder search similar blocks in the image. After the obtained encoder results, some comparative analisys has been done to check the situations that the enconder is superior. This work use the image size and the PSNR to scale and check to compare and analyse the image results. The through-put time is anused. KEYWORDS: Compression. Image. Intra-frame prediction. Motion compensation.

Page 7: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

7

LISTA DE ABREVIATURAS

BbBS – Busca por Blocos Semelhantes

BMP – Bitmap

CIF – Common Intermediate Format.

dB – decibéis

DCT – Discrete Cosine Transform

FS – Busca Exaustiva (Full Search)

GIF – Graphics Interchange Format

JPEG – Join Photographic Experts Group

JPG – Join Photographic Group

HD – Disco Rígido (Hard Disk)

MATLAB – Matrix Laboratory

MAD – Diferença Média Absoluta

MSE – Menor Erro Quadrático (Mean Square Error)

NTSC – National Television System Committee

PSNR – Peak Signal-to-Noise Ratio

RAM – Random Access Memory

RGB – Red Green Blue

SDA – Soma das diferenças Absolutas

YUV – Luminância, intensidade de vermelho, intensidade de azul

Y-PSNR – Luminância do componente Y

Page 8: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

8

LISTA DE FIGURAS

Figura 1 – Distribuição de freqüências. ....................................................................18

Figura 2 – Matriz de quantização do JPEG..............................................................18

Figura 3 – Procura por blocos parecidos em quadros distintos...............................21

Figura 4 – Subtração de blocos................................................................................22

Figura 5 – Modos de predicação intra frame............................................................23

Figura 6 – Montagem de blocos a partir de blocos vizinhos.....................................24

Figura 7 – Montagem do bloco a partir do modo 8...................................................24

Figura 8 – Árvore de Codificação .............................................................................26

Figura 9 – Comparação de qualidade Alcançada, PSNR por Bpp. ..........................28

Figura 10 – Comparação do h.264 com M-JPEG200 e PACC.................................29

Figura 11 – Codificador. ...........................................................................................32

Figura 12 – Exemplo de imagem dividida pixel a pixel.............................................33

Figura 13 – Imagem residual da Lena......................................................................35

Figura 14 – Decodificador. .......................................................................................37

Figura 15 – Imagem original e reconstruída da Lena. ..............................................38

Figura 16 – Gráfico resolução versus tamanho (bytes) das imagens Avião, Golden,

Lenna, Sandiego. ..................................................................................42

Figura 17 – Blocos residuais da imagem Sandiego na resolução 512. ....................44

Figura 18 – Gráfico resolução versus tamanho (bytes) na imagem Elaine. .............45

Figura 19 – Gráfico resolução versus tamanho (bytes) da imagem Gray21. ...........46

Figura 20 – Gráfico resolução versus tamanho (bytes) da imagem Triângulos........47

Figura 21 – Blocos residuais da imagem Triângulos na resolução 512. ..................48

Figura 22 – Gráfico resolução versus tamanho (bytes) da imagem Textmos2.........49

Figura 23 – Tonalidade de cores para a imagem Triângulos. ..................................50

Page 9: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

9

LISTA DE TABELAS

Tabela 1 – Sistema de cor RGB....................................................................... 15

Tabela 2 – Vetor de posições........................................................................... 35

Tabela 3 – Resumo dos resultados dos testes................................................. 41

Page 10: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

10

SUMÁRIO

1 INTRODUÇÃO ......................................................................................................11

1.1 Estrutura do Trabalho.......................... ............................................................12

2 PROCESSAMENTO DE IMAGENS......................... .............................................14

2.1 Sistema de cores RGB........................... ..........................................................15

2.2 Sistema de cores YUV........................... ...........................................................16

2.3 Compressão de Imagens.......................... .......................................................16

2.3.1 Processo de compressão de imagens ............................................................17

2.4 Compressão de vídeos ........................... .........................................................19

2.4.1 Compensação de movimento..........................................................................20

2.4.2 Predição Intra-Frame ......................................................................................23

2.5 Huffman........................................ .....................................................................25

3 TRABALHOS RELACIONADOS........................... ...............................................27

4 METODOLOGIA ...................................... .............................................................30

4.1 Codificador .................................... ...................................................................31

4.2 Decodificador .................................. .................................................................37

4.3 Métricas utilizadas ............................ ...............................................................38

5 TESTES E RESULTADOS .............................. .....................................................40

5.1 Teste – Imagens avião, golden, lenna e sandiego .........................................42

5.2 Teste – Imagem Elaine.......................... ...........................................................44

5.3 Teste – Imagens gray21, textmos2 e triângulos .. ..........................................46

6 CONCLUSÃO ........................................ ...............................................................51

6.1 Contribuições .................................. .................................................................52

6.2 Trabalhos Futuros.............................. ..............................................................52

REFERÊNCIAS........................................................................................................54

APÊNDICE A – TABELA DE TESTES COM RESULTADOS DO MÉT ODO JPEG57

APÊNDICE B – TABELA DE TESTES COM RESULTADOS DO MÉT ODO BPBS58

ANEXO A – IMAGENS UTILIZADAS PARA OS TESTES NOS MÉT ODOS JPEG E

BPBS ............................................... ........................................................................59

Page 11: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

11

1 INTRODUÇÃO

Nos dias de hoje, o processamento de imagens digitais vem sendo utilizado

com muita freqüência em diferentes campos da ciência como, na observação do

espaço, imagens médicas para diagnóstico, sensoriamento remoto. Além disso,

através das ferramentas desenvolvidas com técnicas de processamento de imagens

digitais é possível fazer uso da biometria para o reconhecimento de indivíduos em

ambientes que necessitam de uma segurança mais criteriosa.

Quando uma imagem com qualidade fotográfica, ou seja, sem nenhum tipo de

compressão, é armazenada, é requerida uma grande quantidade de memória para o

seu armazenamento. Tornando dessa maneira a manipulação ou a visualização

dessa imagem um processo desgastante para o computador.

Da mesma maneira, para a transmissão de uma imagem via internet sem

nenhum tipo de compressão, teria um aumento significativo da banda necessária. A

partir do uso crescente da internet e, por conseguinte de um aumento na

transmissão tanto de imagens quanto de vídeos, foi necessário então a redução do

tamanho destas imagens.

Este processo de diminuição do tamanho de dados armazenados ou

transmitidos é chamado de compressão, utilizado em imagens e igualmente em

textos, e visa sempre manter certa fidelidade ao dado original, dependendo da

qualidade que será exigida.

Desta maneira é possível diferenciar dois tipos de compressão de imagens em

relação a sua fidelidade: Compressão com perdas e compressão sem perdas. Os

dois são amplamente utilizados (GONZALES, 1992).

A base do processo de redução é a remoção de dados redundantes

(GONZALES, 1992). O conhecimento das características da visão humana serve de

base para o desenvolvimento de métodos de compressão com perdas (FERRAZ,

Page 12: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

12

1998). Então, uma vez que se possuí a imagem digital, pode-se além de remover os

dados redundantes, analisar a imagem e remover dados que não seriam percebidos

pelo olho humano. É desta maneira que a compressão de imagens é feita.

Com o objetivo de reduzir a redundância de dados em vídeo, em padrões como

o h.264, são utilizadas técnicas que procuram regiões iguais ou parecidas, tanto no

quadro atual quanto em quadros passados e futuros. Esta procura no quadro atual é

chamada de predição intra-frame. Já a procura por redundância em quadros

passados e futuros é chamado de predição inter-frame ou compensação de

movimento (RICHARSON, 2003). Os detalhes sobre o funcionamento dessas

técnicas serão expostos no capítulo 3.

A partir destas constatações, de que existem técnicas que se preocupam com

a redundância de dados tanto em quadros passados e futuros quanto em quadros

atuais, que são quase exclusivamente utilizadas em padrões de compressão de

vídeos e não são comumente utilizadas em compressão de imagens, é possível

dizer que esses são os pontos-chave para a motivação desta pesquisa.

O objetivo principal desta pesquisa é apresentar uma solução que faz uso de

funcionalidades da predição intra-frame e da compensação de movimento,

alterando-as a fim de aplicá-las em padrões de compressão de imagens já

existentes como o JPEG.

Para saber a eficiência da técnica que foi implementada, foram utilizadas

medidas para verificar a qualidade de uma determinada imagem em relação a sua

original, como o PSNR (SILVA JR, 1993) fazendo uma relação com sua razão de

compressão (GONZALES, 1992) e tamanho final da imagem após a compressão.

Assim, foi possível analisar cada imagem gerada pela solução proposta com a

imagem original e assim comparar com resultados obtidos com padrões de

compressão de imagem já existentes.

1.1 Estrutura do Trabalho

Este trabalho está dividido em 6 capítulos, o capítulo 2 mostra algumas

características fundamentais do processamento de imagens digitais bem como

alguns pontos relevantes sobre compressão de imagens. Nas subseções 2.4.1 e

2.4.2 serão abordadas as técnicas de compressão de vídeo, tais como

compensação de movimento e predição intra-frame. Os trabalhos relacionados a esta

Page 13: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

13

pesquisa são descritos no capítulo 3. Já no capítulo 4 é onde estarão a descrição do

modelo teórico e a metodologia utilizada. No capitulo 5 serão expostos os testes

realizados. E no capítulo 6 a conclusão.

Page 14: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

14

2 PROCESSAMENTO DE IMAGENS

Para que seja possível um melhor entendimento, serão esclarecidos pontos

importantes sobre o processamento de imagens e a maneira de como são utilizadas

algumas técnicas.

No processamento de imagens, antes de qualquer coisa, é necessária a

captura de uma imagem que está no mundo real, ou seja, no mundo analógico. Para

a obtenção de uma imagem digital é necessário algum dispositivo que seja capaz de

passar a imagem do mundo analógico para o mundo digital. Dispositivo esse que

pode ser uma câmera fotográfica, câmera de vídeo, scanner e entre outros.

Após a aquisição da imagem, agora é necessário o armazenamento dessa

imagem em um computador, a melhor forma que foi encontrada para esse

armazenamento e a mais utilizada é na forma de matriz, onde cada elemento dessa

matriz é chamado de pixel (Picture element).

O pixel é onde está guardada a menor informação de uma imagem e quanto

maior o número de pixeis maior será a resolução da imagem. Então, por exemplo,

quando desejamos guardar uma imagem em preto e branco será necessário 1 bit,

ou seja 0 ou 1, para representar um pixel.

Quando for necessário o armazenamento de uma imagem em tons de cinza,

serão necessários 8 bits (256 variações) para a representação de cada pixel, em

tons que iniciam no preto e terminam no branco (BRUNO, 2003).

Para a visualização dessas imagens, após o seu armazenamento, serão

necessários dispositivos capazes de representar essas informações de forma visual

para o olho humano, como exemplo, os televisores e os monitores.

Até o momento foi esclarecida a maneira de como uma imagem será

representada quando for necessária a utilização de apenas uma matriz por imagem,

ou seja, representação em preto e branco ou em tons de cinza. Já para o processo

Page 15: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

15

de representação colorida exige procedimentos diferentes. Nas seções

subseqüentes serão abordadas as diferentes maneiras para a representação

colorida de uma imagem.

2.1 Sistema de cores RGB

Para a representação de várias cores, é comum a utilização de cores primárias.

Através da combinação de cores como o vermelho, verde e azul é possível gerar

uma grande quantidade cores. É através desse conceito que o sistema de cores

RGB (red, green, blue) é baseado.

Como explicado anteriormente que, para a representação das imagens em um

computador é utilizado uma matriz de pixeis, nesse caso será uma matriz para cada

cor primária, onde cada pixel de cada matriz poderá ter valores de 8 bits, ou seja,

variar de 0 a 255. Desta maneira quando for necessário que um determinado pixel

de uma imagem contenha a cor branca, cada elemento das três matrizes que

representam este pixel deverão ter em seus valores 255. É possível representar

muitas outras cores através desse processo, na Tabela 1 é mostrado como algumas

cores podem ser criadas a partir das três primarias.

Tabela 1 – Sistema de cor RGB.

Bra

nco

Pre

to

Am

arel

o

Ver

de

Azu

l

Ver

mel

ho

Cia

no

Mag

enta

R 255 0 255 0 0 255 0 255

G 255 0 255 255 0 0 255 0

B 255 0 0 0 255 0 255 255

Fonte : adaptação de Jack, 2005.

Um problema do uso do sistema RGB é que para determinadas cores é

necessário alterar as informações de cada pixel em cada matriz, causando assim um

prejuízo no desempenho na construção ou modificação de certas cores (KOPPS,

2007).

Sabendo que olho humano é mais sensível ao verde, menos ao vermelho e

menos ainda ao azul (ROCK, 1990). Além disso, o verde representa 60% da

informação de luz que o olho recebe, e o olho humano é mais sensível à luz que à

cor (BRUNO, 2003). A partir desses conhecimentos, é possível notar que o sistema

de cor RGB não seria o mais indicado quando se fosse necessário uma redução das

Page 16: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

16

informações de uma imagem, pois nesse caso é possível a remoção de dados que

não seriam percebidos pelo olho humano.

2.2 Sistema de cores YUV

Visto que, o sistema de cores RGB, possui algumas desvantagens, foi

desenvolvido o sistema de cores YUV (MITCHELL, 1997), que permite a separação

dos sinais de luz e cor, facilitando o processo de redução. (BRUNO, 2003).

No YUV, o Y corresponde a luminosidade da imagem e U, V correspondem a

informação da intensidade das cores vermelha e azul respectivamente. Utilizando

apenas o componente Y é possível representar uma imagem em escalas de cinza

(BRUNO, 2003), ou seja, variando de 0 a 255 o componente Y. No RGB essa escala

seria representada a partir dos seus três componentes. Desta maneira estaria se

fazendo uma economia de informação (KOPPS, 2007).

A equação básica para converter uma imagem do sistema RGB para o YUV é

mostrada na fórmula (1) (JACK, 2005):

( )( )YRBGR

YBBGR

BGR

877,0 100,0 515,0 615,0 V

492,0 436,0 289,0 147,0 U

114,0 0,587 299,0 Y

−×=×−×−×=−×=×+×−×−=

+×+×= (1)

Para a presente pesquisa, será de grande importância a utilização do

componente Y do sistema de cor YUV para análise e comparações que a pesquisa

contempla.

2.3 Compressão de Imagens

Como é necessário que o tamanho de imagens que serão armazenadas em

HD, ou enviadas via internet seja reduzido é necessário a aplicação de técnicas de

compressão de imagens. Até mesmo os sistemas de cores, como o YUV, foram

motivados pela preocupação da redução de dados da informação.

A remoção da redundância de dados é fundamental em compressão de

imagens digitais. Além disso, a compressão de imagens pode ser divida em duas:

Compressão com perdas e compressão sem perdas. O primeiro é utilizado em

Page 17: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

17

máquinas fotográficas digitais comuns onde a questão de armazenamento é

importante, neste caso a fidelidade não é tão exigida, mas também não é

menosprezada. O formato JPEG usa este tipo de compressão de imagem. Já na

compressão de imagens sem perdas o armazenamento dos detalhes é importante,

como é o caso de imagens médicas.

Em uma imagem digital é possível verificar a taxa de variação da intensidade

entre os pixeis. Essa taxa é referida como freqüência espacial. Assim, taxas altas de

variação poderiam ser representadas por uma freqüência altas e taxas baixas de

variação podem ser representadas por freqüências baixas (BRUNO, 2003).

De acordo com (ROCK, 1990), o olho humano percebe mais as variações

suaves de freqüência do que as variações onde a freqüência é alta (detalhes). Desta

maneira é possível fazer a remoção de alguns dados que representam as

freqüências altas sem que o olho humano perceba muita diferença, caracterizando

assim um caso de compressão com perdas. A seguir é descrito brevemente o

processo de compressão de imagens.

2.3.1 Processo de compressão de imagens

Para iniciar um processo de compressão de imagens e tomando como base o

processo do JPEG, a imagem é primeiramente dividida em blocos de 4 x 4, 8 x 8 ou

16 x 16 pixeis, seguido da aplicação de uma transformada. Essa transformada

chamada de DCT ou transformada discreta do cosseno consegue verificar a

variação de mudança da intensidade entre os pixeis, ou seja, ela analisa

matematicamente e separa em coeficientes que representam as freqüências baixas

e altas de uma imagem (KOPPS, 2007).

Os coeficientes transformados e agora agrupados em uma matriz 8x8 pixeis

ou por um tamanho definido na divisão da imagem em blocos, estão organizados e

representados das freqüências menores até as freqüências maiores. A Figura 1

ilustra essa organização de freqüências em uma matriz, onde o coeficiente DC é a

média de todas as freqüências.

Page 18: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

18

Figura 1 – Distribuição de freqüências. Fonte: KOPPS, 2007.

No processo de aplicação da DCT nos blocos da imagem, a matriz gerada

possui coeficientes reais se tornando uma matriz maior em quantidade de bytes em

relação a sua matriz original, com coeficientes inteiros. Para resolver esse problema

é utilizada a quantização, que irá substituir um determinado grupo de valores de

entrada por um índice. Cada índice representa uma aproximação dentro de uma

determinada escala (KOPPS, 2007). Para fazer esse procedimento é feita uma

divisão da matriz gerada após o processo da DCT por uma matriz, chamada de

matriz quantização (SILVA, 1998). Na Figura 2 está ilustrada a matriz de

quantização do JPEG

9910310011298959272

10112012110387786449

921131048164553524

771031096856372218

6280875129221714

5669574024161314

5560582619141212

6151402416101116

Figura 2 – Matriz de quantização do JPEG Fonte: SILVA, 1998.

Page 19: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

19

É na quantização que acontecem as perdas em relação à qualidade dentro de

um processo de compressão de imagem como o JPEG. Isso acontece, pois no

momento da descompressão a reconstrução dos valores reais a partir dos índices

inteiros gerados após a quantização da matriz DCT não é mais possível.

Após a obtenção dessas matrizes de coeficientes "arredondados" no processo

de quantização, se faz uso de técnicas de compressão de dados como Run Lenght

Coding ou Huffmann para a eliminação de dados redundantes (BRUNO, 2003).

É importante observar como algumas técnicas utilizadas para o processo de

compressão de imagens fazem o uso do conhecimento das limitações do olho

humano. Na DCT é utilizado o conceito de que o olho humano percebe mais as

freqüências baixas, para complementar é utilizada a quantização para a eliminação

de freqüências que o olho não seria capaz de perceber.

2.4 Compressão de vídeos

Com a necessidade de transmissão de vídeos via internet e armazenamento,

foram criados padrões de compressão de vídeo, que faz uso de técnicas avançadas

e alguns princípios da própria compressão de imagem.

Um vídeo é formado por várias imagens apresentadas em seqüência. A

freqüência de apresentação dessas imagens varia, como por exemplo: O padrão

NTSC utiliza a freqüência de 30 quadros por segundo, ou seja, 30 imagens

apresentadas seqüencialmente, no período de um segundo (BRUNO, 2003).

Assim, da mesma maneira que se observa redundância de dados em imagens

(redundância espacial), de acordo com (MITCHELL, 1997) a codificação temporal

dos dados explora a redundância existente entre imagens consecutivas em um

vídeo (redundância temporal).

A partir disto, é possível analisar os quadros que compõe um vídeo,

procurando por redundância de dados para uma futura eliminação. Por exemplo, em

um vídeo onde se tem uma bola preta caindo em uma imagem onde o fundo é

branco. No quadro anterior (a) a bola estava na posição (x, y) e no quadro atual (b) a

bola está na posição (x, y-1) com isso é possível notar que a informação (a bola) é a

mesma nos dois quadros, assim como o fundo branco. As regiões repetidas entre os

quadros não precisam ser codificados, pois podem ser utilizadas as mesmas regiões

Page 20: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

20

do quadro anterior (BRUNO, 2003). A técnica que utiliza este conceito é a

compensação de movimento (PARHI 1999), (MITCHELL, 1997).

Com o intuito de reduzir a redundância espacial de dados em vídeo também é

utilizado a predição intra frame (RICHARDSON, 2003). A predição intra frame

diferentemente da compensação de movimento, que explora a semelhança entre

blocos de quadros passados e futuros, trabalha através de uma técnica que utiliza

os pixeis vizinhos para montar um bloco semelhante ao original.

Nas subseções a seguir serão apresentadas estas duas técnicas, a fim de

esclarecer o seu funcionamento em compressão de vídeos.

2.4.1 Compensação de movimento

No processo de compensação de movimento são analisados quadros que se

encontram em tempos próximos, já que é muito provável que dois ou mais quadros

em um pequeno espaço de tempo sejam muito parecidos, devido a natureza do

vídeo. Para a remoção desta redundância temporal entre os quadros a técnica é

dividida em três fases. São elas: Detecção de movimento, estimativa de movimento

e compensação de movimento.

Na detecção de movimento, alguns quadros passados ou futuros são

analisados a fim de se encontrar regiões que sofreram alterações em relação ao

atual. Na estimativa de movimento é examinado o movimento feito por essas regiões

a fim de se traçar vetores, no quadro atual, que representem a direção desse

movimento. E a compensação de movimento usa esses vetores para montar a

imagem do quadro atual, a partir das regiões dos quadros passados ou futuros

(BRUNO, 2003).

Em padrões de compressão de vídeos como o h.264, essas regiões são

representadas por blocos de pixeis, que podem variar de 4x4 até 16x16 pixeis

(RICHARDSON, 2003). Para o processo de compensação de movimento é comum a

utilização apenas do componente Y, do sistema YUV, visto que, este possui as

informações mais significativas de uma imagem, sendo assim diminuindo o custo

computacional para estimar movimentos entre quadros de um vídeo.

Como dito anteriormente, em primeiro momento é feita a detecção de

movimento e a estimativa de movimento. Para isto, é pesquisado em uma área no

quadro de referência (quadro passado ou futuro que já tenham sido codificados) um

Page 21: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

21

bloco que seja mais parecido com o original. A área que mais se assemelha da

original deve ficar dentro de um limite definido por um cálculo de erro (BRUNO,

2003). O cálculo mais comum para essa situação é o da diferença média absoluta

(MAD) (MITCHELL, 1997).

Para encontrar o bloco que mais se assemelha ao bloco original será feita uma

comparação em alguns ou em todos os blocos desta área. A Figura 3, mostra este

procedimento. Em algumas propostas, tais como (MPE 93), a varredura ao invés de

ser bloco a bloco é feita pixel a pixel para obter uma localização mais precisa em

relação ao bloco do quadro original.

Figura 3 – Procura por blocos parecidos em quadros distintos. Fonte: RICHARDSON, 2003.

A comparação é feita da seguinte maneira, um bloco do quadro original (atual)

é subtraído de um bloco do quadro passado. Se esses blocos forem parecidos o

bloco residual, ou seja, o bloco resultante, apresentará quase todos os valores iguais

a zero. Uma maneira de estimar qual bloco é o melhor bloco residual, é através do

cálculo do erro médio quadrático (MSE) (SILVA JR, 1993), (RICHARDSON, 2003). O

MSE é encontrado através da soma das diferenças entre os pontos de cada bloco,

dividido pelo número de pontos (BRUNO, 2003), dado pela Fórmula (2), onde M x N

é a multiplicação da quantidade de pixeis na horizontal pela quantidade de pixeis da

vertical resultando no tamanho dos blocos, Cij e Rij são os pixeis do bloco atual e do

bloco de referência respectivamente.

( )∑∑= =

−⋅

=1-N

0

1-N

0

2ijC

NM

1

i jijRMSE (2)

Page 22: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

22

Na Figura 2 temos a exemplificação da subtração do bloco do quadro atual

(bloco original) pelo bloco do quadro anterior (bloco anterior) resultando no bloco

residual. Caso os valores do bloco residual sejam muito distantes de zero, estará

caracterizado um bloco muito diferente do bloco original.

Figura 4 – Subtração de blocos. Fonte: Autoria própria, 2009.

Quando for encontrado o bloco que mais se assemelha ao original é traçado

um vetor de movimento no quadro original, com dois componentes (x, y) gerado pela

diferença das posições entre o bloco original e o bloco semelhante.

Então, no processo de compressão desse quadro, apenas o bloco residual e o

vetor de movimento são codificados, já que os blocos repetidos entre os quadros

não precisam, diminuindo assim significativamente a quantidade de bits, para um

posterior armazenamento ou transmissão.

Em algumas situações é possível a utilização de quadros futuros como quadros

de referência, se isso acontecer, necessariamente, esse quadro deve ser codificado

antes do quadro original (atual), ou seja, quadros codificados fora de ordem

(RICHARDSON, 2003).

Objetos em movimento numa cena raramente seguem uma fronteira perfeita

nos blocos de tamanho de 16x16 ou 8x8. Nestas situações é mais vantajoso usar

blocos de tamanho variável para estimação e compensação do movimento

(RICHARSON, 2003).

Pelo tamanho de cada bloco e o de cada região a codificação por

compensação de movimento tem um custo computacional muito alto, ainda assim

pode representar mais de 50% do processamento de codificação do vídeo (BRUNO,

2003).

Para a decodificação, o vetor de movimento é usado para recriar a região

original e o bloco residual é adicionado ao bloco do quadro de referência para recriar

Page 23: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

23

o bloco original. Sendo assim, o custo computacional empregado pelo decodificador

é muito inferior ao do codificador.

2.4.2 Predição Intra-Frame

Existem casos onde a compensação de movimento não é a melhor técnica de

codificação a ser empregada. Por exemplo, quando a quantidade de movimento em

uma seqüência de vídeo é mínima e a redundância espacial é mais significante

(FERNAINDEZ – ESCRIBANO, 2005) ou também numa mudança de cenário, onde

existe uma mudança significativa entre os quadros de referência e atual

(RICHARDSON, 2003).

A primeira imagem de um conjunto de imagens também é tipicamente

codificada em modo intra frame, ou seja, sem utilizar qualquer outra informação

senão a, contida na própria imagem.

No modo predição intra frame um bloco qualquer 4 x 4 pixeis, que pode ser

chamado de bloco B, é formado tendo como base os blocos anteriormente

codificados e reconstruídos dentro da mesma imagem. Existem nove modos de

predição intra frame quando o bloco é formado por 4 x 4 pixeis, que estão ilustrados

na figura 3. E existem também 4 modos quando o bloco é formado por 16 x 16

pixeis. Sendo que, para o processo com esses modos de predição é utilizado o

componente Y. Para os componentes U e V, são aplicados os mesmos 4 modos

para predição em blocos de 16 x 16 pixeis. Após a construção dos noves blocos,

através dos nove modos de predição, o codificador seleciona o bloco que mais se

assemelha ao bloco B.

Figura 5 – Modos de predicação intra frame. Fonte: RICHARDSON, 2003.

Page 24: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

24

Em primeiro momento, para fazer a predição de um quadro é necessário que

os pixeis de A até M já tenham sido previamente codificados e reconstruídos para

estarem disponíveis como referência. A Figura 5 mostra como os pixeis de A até M

são utilizados para formar um bloco. Visto desta necessidade, caso os pixeis E, F,

G, H não tenham sido codificados ainda, ou seja, indisponíveis, o valor do pixel D é

copiado para essas posições, tornado aqueles pixeis disponíveis (RICHARDSON,

2003).

A Figura 6 ilustrada a seguir, exibe um bloco 4 x 4 que deverá ser predito a

partir de um dos modos da predição intra-frame. E a Figura 7 mostra a reconstrução

deste bloco a partir do modo 8 (horizontal-up) da predição intra-frame, que foi o

modo que mais se assemelhou ao bloco que deveria ser predito. Para a verificação

de qual modo mais se assemelhou ao bloco inicial é utilizada a soma da diferença

absoluta (SDA) entre o bloco que deverá ser predito e cada um dos blocos dos

modos de predição. Assim para cada modo haverá um resultado, e aquele que

possuir o menor SDA será o bloco escolhido, que nesse caso foi o bloco do modo 8.

Figura 6 – Montagem de blocos a partir de blocos vizinhos. Fonte: RICHARDSON, 2003.

Figura 7 – Montagem do bloco a partir do modo 8 Fonte: RICHARDSON, 2003.

Page 25: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

25

A seção a seguir foi adicionada ao trabalho com intuito de mostrar a utilização

de um método de compressão de dados, pois este será utilizado em um dos

componentes de grande relevância desta pesquisa.

2.5 Huffman

Uma das partes fundamentais do processo de codificação de imagens são os

algoritmos de entropia (BRUNO, 2003). A entropia utiliza da freqüência de

ocorrência de um determinado dado em um conjunto de dados (SHA, 1948). Um

algoritmo de entropia é o Huffman.

O método Huffman (HUFFMAN, 1952) é comumente utilizado para compressão

de dados. Serve como base para diversos softwares populares utilizados nos

computadores pessoais e em alguns casos é utilizado como uma das etapas para

um processo de compressão de multi-etapas (SALOMON, 2004). Além disso, é um

processo utilizado em diversos métodos de compressão de imagens, entre eles o

próprio JPEG.

Basicamente o método Huffman monta uma tabela a partir da freqüência de

cada símbolo. Por exemplo: AABACB. A letra A aparece 3 vezes (3/6 = 0,5), B

(0,3333...) e C (0,1666...). No próximo passo do método monta-se uma árvore de

codificação, alinhando os símbolos de acordo com a sua probabilidade. Após isso os

símbolos de menor probabilidade são conectados entre si e cria-se um novo símbolo

que a probabilidade é a soma dos dois símbolos conectados (BRUNO, 2003). Na

Figura 8 é apresentada a árvore de codificação para a palavra AABACB. Ao símbolo

mais freqüente A é atribuído o bit 0 e ao resto é 1. No B o processo é repetido, para

ele o bit 0 é atribuído e para o restante, no caso, o C é atribuído o bit 1. Assim para o

símbolo A é representado por (0), o B é representado por (10) e o C por (11). Então

para a palavra AABACB é codificada como 00100101110, utilizando assim apenas

11 bits para sua representação.

Page 26: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

26

Figura 8 – Árvore de Codificação Fonte: Autoria Própria, 2009.

Page 27: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

27

3 TRABALHOS RELACIONADOS

Neste capítulo será apresentado algumas pesquisas que foram realizadas com

predição intra-frame do h.264 em comparação com técnicas de compressão de

imagens. Além disso, serão apresentados trabalhos que utilizam técnicas que são

relevantes para essa pesquisa.

Alguns trabalhos, entre eles o de Aravind (2004) e o de Marpe (2004),

baseiam-se com a idéia de que é possível a utilização da técnica, predição intra

frame, empregada no h.264/AVC em favor da compressão de imagens.

Em seu trabalho, Aravind (2004), investiga o escopo da predição intra frame do

h.264 para a sua utilização na codificação de imagens, bem como a pesquisa de

comparações relativas a qualidade alcançadas entre a técnica do h.264, o JPEG e o

JPEG2000 e também de pesquisas que analisam a complexidade do codificador do

modo intra do h.264. Além disso, o trabalho faz testes (testes que são feitos para a

análise de resultados em compressão imagens) verificando o potencial do modo

intra do h.264. Através destas investigações, Aravind (2004) verifica um excelente

desempenho de compressão do h.264 no modo intra.

Para as comparações Aravind (2004), adaptou os valores do codificador do

modo intra para trabalhar nos padrões utilizados em imagens como o do JPEG e

JPEG2000. A partir daí ele pode fazer algumas análises. Na Figura 7 é mostrada a

comparação relativo à qualidade alcançada (PSNR) em diversas taxas de bits por

pixel entre JPEG, JPEG2000 e o modo intra do h.264. É possível verificar o ganho

do h.264 na taxa de 4 bpp sendo superior em 5dB quando comparado com o

JPEG2000.

Page 28: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

28

Figura 9 – Comparação de qualidade Alcançada, PSNR por Bpp. Fonte: ARAVIND, 2004.

Finalmente, o autor conclui que é evidente a partir das análises feitas que o

modo intra do h.264 é superior ao JPEG e ao JPEG2000 quando se tratando de

qualidade. Mas quando o problema for complexidade do decodificador, ou seja, a

quantidade de operações feitas para a decodificação da imagem o h.264 perde para

o JPEG, mas é mais rápido que o JPEG2000.

No trabalho de Marpe (2004), diferentemente de Aravind (2004), as imagens de

testes fazem parte de seqüências de vídeo. Neste trabalho é feito um estudo

comparativo através de resultados de experimentos em relação a taxa de distorção

do Motion-JPEG2000 e do modo intra do H.264.

A Figura 10 é mostrado a comparação feita entre o modo intra frame do h.264,

o Motion-JPEG2000 e o PACC ( Extensão do JPEG2000 que possibilita a

representação de imagens com perdas e sem perdas) para o processo de

compressão dos quadros de um vídeo, sem a utilização de qualquer artifício para

buscar em quadros passados algum bloco de referência. Nesse caso é verificado

que na resolução CIF (352 x 288 pixel) o modo intra do h.264 obtém um ganho de

0.5 a 1.5 dB quando a medida é Y-PSNR, ou seja, qualidade da imagem.

Page 29: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

29

Figura 10 – Comparação do h.264 com M-JPEG200 e PACC. Fonte: MARPE, 2004.

Em seu trabalho, Marpe conclui que existe uma significante superioridade do

modo intra frame do h.264 em baixas resoluções, como a mostrada na Figura 10. Já

em médias para altas resoluções os experimentos mostraram um comportamento

parecido entre as duas técnicas, h.264 e Motion-JPEG2000. Apenas em resoluções

muito altas o Motion-JPEG2000 claramente supera em termos de média do PSNR o

h.264.

Existem outras propostas, que serão importantes para a resolução deste

trabalho. Uma delas é a (MPE, 1993), que trabalha com idéia de varredura pixel a

pixel ao invés de bloco a bloco, para obter uma localização mais precisa em relação

ao bloco do quadro original. O algoritmo de Full Search também foi de grande

importância, bem como trabalhos que propõe maneiras de acelerar este processo de

busca (KIM, 1999). E finalmente (KEBIN, 2007), (HE, 2007), (KATO, 2006), (YANG,

2006) que trabalham com a idéia de acelerar o modo de predição intra frame.

Page 30: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

30

4 METODOLOGIA

Este capítulo descreve a metodologia utilizada no estudo, além dos softwares

utilizados, implementações feitas para auxiliar o desenvolvimento da pesquisa e

esclarecimentos referentes ao uso de certos procedimentos.

Como mostrado no capítulo 3, já existem algumas pesquisas que utilizam a

predição intra-frame do padrão de compressão de vídeo h.264 em imagens, ou seja,

métodos que utilizam regiões da própria imagem para montar outras previamente

escolhidas por serem semelhantes. Nessa pesquisa foi utilizada a idéia de buscar

dentro de uma imagem, blocos que podem ser semelhantes entre si. Porém, a

maneira com que as áreas parecidas são buscadas difere em relação a predição

intra frame do h.264, que monta blocos a partir de pixeis vizinhos, através de modos

de predição já citados na Seção 0.

Esse trabalho faz uso principalmente, da técnica de compensação de

movimento do h.264, explicado na Seção 2.4.1, que percorre bloco a bloco quadros

de um vídeo a procura por regiões parecidas. Então, nesse trabalho foi utilizada a

idéia da predição intra-frame, por fazer buscas dentro na própria imagem e também

da compensação de movimento por buscar blocos percorrendo a imagem bloco a

bloco.

Para o processo de busca dos blocos, o algoritmo de Full Search foi a

metodologia utilizada, que apenas prioriza a busca exaustiva de dados, sem nenhum

tipo de preocupação quanto ao tempo necessário, ou seja, esse algoritmo aumentou

consideravelmente a complexidade do codificador. Desta maneira é importante

salientar que não foi de preocupação do presente modelo o tempo necessário para a

codificação e decodificação da imagem. Assim a complexidade do codificador e

decodificador aqui implementados são maiores em relação ás outras técnicas de

compressão.

Page 31: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

31

O software Matrix Laboratory (MATLAB) foi o programa escolhido, por possuir

uma biblioteca de processamento de imagens e por abstrair melhor todas as

necessidades para o desenvolvimento do algoritmo proposto na pesquisa e da

geração dos resultados em cima dos testes que foram feitos.

Para que o foco desta pesquisa não fosse desvirtuado em implementações de

algoritmos já desenvolvidos, a reutilização de código disponível e livre foi a

alternativa encontrada.

Durante a pesquisa, foi utilizado o algoritmo, criado por (HU), desenvolvido em

MATLAB que simula o codificador e decodificador de imagens do padrão de

compressão de imagens JPEG, para possibilitar o acoplamento do algoritmo gerado

na pesquisa com o do JPEG, sem interferências externas ao algoritmo. Outro

algoritmo utilizado, criado por (MADHU) e desenvolvido em MATLAB, foi o referente

ao codificador e decodificador HUFFMAN que foi o método utilizado para a

compressão de um vetor gerado pelo algoritmo desenvolvido neste trabalho de

conclusão.

Os testes foram realizados em um microcomputador com processador AMD

Turion 64 X2 Mobile de 1.6 GHz e 2 GB de memória RAM.Para rodar o software

MATLAB que foi onde toda a implementação e todos os testes foram feitos, foi

utilizado apenas o sistema operacional Windows XP

Para alcançar os resultados deste trabalho, foi realizado um experimento, que

será descrito através do fluxograma apresentado nas do Figura 11 e Figura 14, que

ilustram quais os procedimentos foram tomados para criar o codificador e o

decodificador respectivamente, que foram propostos nesta pesquisa.

4.1 Codificador

Em primeiro momento foram utilizadas imagens coloridas com resolução 256 x

256 pixeis, sem perda de dados, ou seja, do tipo BMP (Windows bitmap) ou GIF

(Graphics Interchange Format). A partir destas imagens foi extraído apenas o

componente Y (luminosidade), do sistema de cores YUV abordado na Seção 0, para

fins de testes. A partir da utilização de apenas um componente é possível uma

melhor manipulação das imagens, sem desviar do foco do trabalho que é a procura

e eliminação por dados redundantes. Evidentemente, se fosse necessária a

Page 32: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

32

codificação das imagens coloridas, o processo seria facilmente aplicado aos outros

dois componente do sistema de cores YUV.

Para que fosse possível a verificação da razão de compressão (GONZALES,

1992) e qualidade da imagem (PSNR) (SILVA JR, 1993) após o processo

codificação, foi utilizada como imagem original aquela que possui apenas o

componente de luminosidade da imagem, ou seja, após a extração do componente

Y. Assim a verificação da razão de compressão e qualidade foi justa, já que todo o

processo de codificação foi proposto utilizando apenas o componente Y.

Uma vez que foi obtida a matriz pixeis da imagem, relativa ao componente Y,

foi possível começar o processo de busca por blocos parecidos dentro da imagem.

Isto é descrito na Figura 11 como o primeiro passo do codificador. Com a utilização

do algoritmo de Full Search (BRUNO, 2003), que é um algoritmo de busca

exaustiva por um determinado dado dentro de todo um conjunto de dados, a busca

percorrerá toda a matriz sem exceções. A partir desta idéia foi possível adaptar esse

algoritmo para essa pesquisa.

Figura 11 – Codificador. Fonte: Autoria própria, 2009.

Fazendo uma breve comparação, a solução aqui desenvolvida difere da

compensação de movimento porque, ao invés de fazer a busca dentro de uma área

de pesquisa pré-determinada no quadro anterior ou posterior, onde a possibilidade

de encontrar o bloco semelhante é maior, a busca foi feita em toda e na mesma

imagem.

Para a procura por blocos parecidos ter sido efetivada de maneira correta e

percorrendo toda imagem, a busca foi feita bloco a bloco. Esse é o algoritmo

Page 33: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

33

utilizado mais comumente, porém na proposta inicial desta pesquisa o método

analisaria os blocos da imagem pixel a pixel. Após uma série de experimentos e

análises foi constatado que ao ser acoplado ao JPEG, essa abordagem dificultava o

processo do codificador, tornando a imagem maior em quantidades de bytes e pior

em qualidade de imagem, quando analisando o seu PSNR.

Figura 12 – Exemplo de imagem dividida pixel a pixel Fonte: Autoria Própria, 2009.

Esse problema acontece quando o JPEG, aplica a DCT onde a imagem é

processada toda em blocos exatos de 8 x 8 pixel, as linhas horizontais e verticais

(brancas da Figura 12) exemplificam essa situação. Portanto, se o algoritmo pixel a

pixel fosse utilizado, poderia acontecer de que um dos blocos residuais estivesse

ocupando a parte de dois ou mais blocos, quando da aplicação da DCT do JPEG, de

acordo com a Figura 12. No momento que isso acontecesse a DCT analisaria um

bloco com mais variações de intensidade de cor. Assim criando uma matriz com

seus coeficientes maiores, quando comparado a um bloco onde não houvesse seu

espaço ocupado por metade de um bloco residual do método proposto neste

trabalho. Após isso, a quantização do JPEG, iria eliminar dados referentes ao das

altas freqüências, ou seja, dados referentes ao limiar do bloco comum com o bloco

residual, causando uma perda na qualidade da imagem. Além disso, o modo pixel a

pixel dificultaria também o processo de compressão huffman, já que após o

processo de quantização não seriam anulados dados suficientes para que esse

método de comprimir dados alcançasse ao menos uma taxa de compressão igual ao

do JPEG.

Portanto, no processo de busca pelo bloco parecido, toda a imagem foi

percorrida bloco a bloco utilizando todos os blocos 8x8 possíveis dentro da imagem

Page 34: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

34

para que, fossem encontrados blocos semelhantes a partir destes. Para que o bloco

fosse um bloco semelhante, foi utilizado um procedimento parecido ao utilizado na

predição intra-frame, o qual utiliza o cálculo MSE visto na Seção 0, ou seja, verifica a

soma da diferença dos pixeis do bloco a ser predito pelo bloco candidato a ser

semelhante. Assim foi possível determinar um resultado máximo de soma para que

aquele bloco candidato a ser um dos semelhantes fosse um dos escolhidos. Nesta

pesquisa o MSE máximo foi definido sendo 1 (um) para que a heterogeneidade entre

os pixeis dentro do bloco fosse mínima e propiciasse ao menos assim uma taxa de

compressão maior para certos tipos de imagens.

Após a verificação de todo um bloco (8x8) candidato a partir do bloco a ser

predito, caso este não seja semelhante, o bloco candidato seguinte será aquele que

possui a sua posição de sua coluna incrementada em 8 e sua linha apenas será

incrementada em 8 caso a coluna esteja atingido o limite horizontal da imagem.

Assim caracterizando uma varredura de blocos de 8x8 dentro da matriz.

Caso o bloco verificado seja um bloco compatível, o resíduo da subtração dos

blocos será armazenado na mesma posição onde se encontra o bloco verificado.

Desta maneira criando uma matriz onde se encontrarão blocos que não apresentam

semelhança entre si, os blocos residuais e os blocos que contém semelhança com

outros blocos e não podem ser eliminados porque serão necessários para a

montagem dos outros blocos a partir dos resíduos. A Figura 7 ilustrada abaixo,

mostra a imagem lena após a aplicação do algoritmo descrito acima. Para que fosse

possível uma melhor ilustração da técnica desenvolvida, o MSE, aplicado na Figura

13, foi 10, ao invés de 1 (um) utilizado no trabalho.

Page 35: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

35

Figura 13 – Imagem residual da Lena. Fonte: Autoria Própria, 2009.

Para o armazenamento de quais blocos são semelhantes entre si e em quais

posições se encontram dentro da imagem, foi montado um vetor de posições que

reuni a posição do bloco residual e a posição do bloco original. Na Tabela 2 a abaixo

é mostrado parte do vetor de posição montado a partir da Figura 13.

Tabela 2 – Vetor de posições.

Pixel inicial do bloco original Pixel inicial do bloco residual

linha coluna linha coluna

1 0 0 0 8

2 0 0 0 168

3 0 0 0 176

4 0 0 0 184

5 0 0 0 192

6 0 0 8 0

7 0 0 8 8

8 0 0 8 16

9 0 0 8 168

10 0 0 8 176 Fonte: Autoria Própria, 2009.

Como é possível observar na Tabela 2, as duas primeiras colunas possuem a

localização do pixel inicial do bloco (8 x 8) original e a terceira e quarta colunas

possuem a localização do pixel inicial do bloco (8x8) residual. Então de acordo com

Page 36: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

36

a primeira linha da tabela, o bloco (0,0) é o bloco original do bloco residual (0,8),

onde o 0 (zero) se refere a linha e o 8 se refere a coluna dentro da matriz de pixeis.

O tamanho desse vetor de posições será proporcional ao número de blocos

semelhantes dentro de uma imagem, ou seja, para uma imagem como a Figura 13 o

tamanho do vetor é de 447 linhas para os 447 blocos semelhantes.

Da mesma maneira que a imagem, obviamente o vetor de posições também

sofreu um processo de compressão, por se tratar de um componente fundamental

da presente pesquisa. Além disso, é necessário na avaliação do algoritmo, uma vez

que tamanho do vetor de posições será somado com o tamanho da imagem para

suas respectivas avaliações. O método de compressão utilizado para este

componente foi o Huffman, pela sua simplicidade eficiência e grande utilização no

meio científico, e que foi devidamente revisto na Seção 0.

Após o processo de montagem da nova imagem com os blocos residuais, esta

será enviada para que o codificador JPEG possa continuar o processo de

compressão da imagem, uma vez que os blocos redundantes da imagem foram

eliminados, pelo processo descrito acima.

Uma das grandes potencialidades deste codificador é que para uma imagem

formada por blocos residuais, ou seja, possíveis pixeis iguais à zero ou próximos de

zero, o processo de codificação de imagem é privilegiado. Fazendo-se uso da DCT e

logo após do Huffman, presentes no codificador JPEG, a eliminação de informações

redundantes foi ainda maior. Isso acontece pois, a DCT separa em coeficientes as

freqüência altas e baixas , ou seja , procura por variações pequenas ou grandes de

intensidade de tonalidade entre os pixeis dentro de um bloco. Assim no momento em

que um bloco é subtraído por um outro bloco igual ou ao menos semelhante, o

resíduo do bloco será mais homogêneo e próximo de zero, ocasionando assim

nenhuma ou poucas variações entre os pixeis do bloco residual.

De acordo com (BRUNO, 2003), a matriz de quantização do JPEG ilustrada na

Figura 2 na seção 0 “arredonda” mais, os coeficientes correspondentes aos

coeficientes de alta freqüência da matriz gerada pela DCT, já que é feita uma divisão

da matriz DCT do bloco pela matriz de quantização.

Portanto, no momento que é possuído a matriz de coeficientes referentes às

freqüências da intensidade relativamente mais homogêneas, dentro do bloco gerado

pela DCT, o processo de quantização não causa um “arredondamento” tão

significante de coeficientes, que posteriormente iria causar redução na qualidade.

Page 37: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

37

Isso acontece pois a representatividade (range) de coeficientes relativos as altas

freqüências dentro da DCT, ou seja variações altas de intensidade de cor, é menor

quando da não utilização do algoritmo desenvolvido nessa trabalho.

Após o processo de codificação foi implementado, em MATLAB, o cálculo da

razão de compressão (GONZALES, 1997), que verifica a redução no tamanho da

representação de dados produzido pelo processo de compressão. Esse cálculo é

dado pela fórmula (3) abaixo, onde N1 e N2 representam o numero de pixeis no

decorrer das dimensões horizontais e verticais, B é o número de bits necessários

para representar cada pixel, enquanto C é o tamanho total da imagem após todo o

processo de compressão.

C

BNN ⋅⋅= 21 compressão de Razão (3)

Com isso, já foi possível fazer a análise correspondente à diferença entre o

método desenvolvido nessa pesquisa com o método JPEG, verificando em quais

situações qual método é mais eficiente. Para que a análise seja completa foi

necessário fazer uma relação com da qualidade imagem gerada após a

descompressão da imagem a partir do decodificador.

4.2 Decodificador

Para a explicação do decodificador, A Figura 14 ilustra os passos que serão

tomados para efetuar o processo de decodificação.

Figura 14 – Decodificador. Fonte: Autoria Própria, 2009.

Em primeiro momento a imagem codificada começara a ser decodificada pelo

decodificador do JPEG, pois o processo deverá ser inverso em relação ao

codificador. Após a decodificação pelo JPEG a imagem obtida, é uma imagem

formada por blocos residuais e blocos sem alteração no seu conteúdo. Imagem

semelhante a Figura 13 demonstrada na seção 0.

Page 38: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

38

Após esse procedimento o vetor de posição foi descompactado pelo processo

inverso ao aplicado pelo codificador do método Huffman, montando novamente o

vetor de posições que foi necessário para a conclusão da reconstrução da imagem.

A partir desta imagem contendo os resíduos e com o vetor de posições que foi

criado no processo de codificação proposto, será obtida a imagem original

reconstruída. Para a formação dessa imagem reconstruída o processo é

extremamente simples. O bloco residual será adicionado do bloco original indicado

no vetor de posições, formando assim a nova imagem. Na Figura 15, temos a

imagem original e a imagem reconstruída após todo o processo descrito de

compressão e descompressão.

Figura 15 – Imagem original e reconstruída da Lena. Fonte: Autoria própria, 2009.

Como pôde ser notado durante a explicação do codificador e decodificador

desta pesquisa, o processo não insere perdas na qualidade da imagem.

Evidentemente a diferença que existe entre as duas imagens se deve unicamente ao

processo de compressão do JPEG ao qual o experimento desta pesquisa é

acoplado, que insere perdas devido ao processo de quantização existente no seu

codificador.

4.3 Métricas utilizadas

Para saber a eficiência da técnica implementada, foi feito o uso de medidas

que permitem verificar a qualidade de uma determinada imagem em relação a sua

original. Fazendo uso do PSNR (Peak signal-to-noise ratio) (SILVA JR, 1993),

Page 39: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

39

(KOPPS, 2007), foi possível comparar a distorção resultante da imagem

reconstruída após o processo de codificação e decodificação em relação à imagem

original.

A medida PSNR compara cada pixel da imagem original com pixel

correspondente da imagem reconstruída (KOPPS, 2007) e está definida conforme a

fórmula (4), onde m representa o valor de pico da imagem original. Normalmente m é

igual 255, pois nesse caso estariam sendo utilizados 8 bits para a representação de

um pixel. Para estar efetivamente comparando as duas imagens o PSNR faz o MSE

dado pela fórmula (2), apresentada e explicada na seção 2.4.1.

=

MSE

mPSNR

2

log 10 (4)

O PSNR também foi utilizado para fazer uma relação com razão de

compressão (GONZALES, 1992) da imagem, descrito na Seção 0. Desta forma, será

possível verificar se após o processo de codificação, houve uma considerável

compressão da imagem relacionada a uma boa reconstrução da mesma a partir de

sua decodificação.

Foram utilizados diversos cenários para comparar o modelo aqui desenvolvido

com as outras técnicas de compressão de imagem. Estão enquadradas nessa

diversificação de cenários e resoluções distintas de imagem para verificar a sua taxa

de compressão.

Page 40: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

40

5 TESTES E RESULTADOS

Neste capítulo serão apresentados os testes realizados nesta pesquisa. Além

disso, também serão apresentados os resultados e suas analises. Durante este

capítulo será utilizado a sigla BpBS, que significa Busca por Blocos semelhantes,

para referenciar o método de compressão proposto nesta pesquisa. A seguir serão

esclarecidos alguns pontos relevantes da execução destes testes.

Foram utilizadas oito imagens, cada uma com 4 tipos de resoluções que

variaram entre 128x128pixel, 256x256pixel, 512x512pixel e 1024x1024pixel para

que fosse possível ter mais parâmetros ao serem analisadas. Todas as imagens

contêm apenas o componente Y, ou seja, apenas imagens em tons de cinza.

Nos testes o vetor de posição foi analisado junto com a imagem e

separadamente para que fosse possível verificar se em algum momento a maneira

com que o vetor foi comprimido prejudicaria o desempenho do algoritmo desta

pesquisa.

É importante reiterar que para a análise dos resultados obtidos do método

proposto nesta pesquisa, estão sendo utilizados como parâmetro de comparação os

resultados alcançados do método de compressão de imagens JPEG.

Os dados que foram levantados para as análises foi, o PSNR para qualidade, a

razão de compressão para analisar o quanto uma imagem foi comprimida em

relação a sua original e o tamanho em bytes da imagem. A partir daí foi possível

cruzar estes dados para verificar em que tipo de imagem e resolução, qual método

tem desempenho melhor.

A seguir será apresentada a Tabela 3 com um resumo que contém todos os

testes e seus respectivos resultados.

Page 41: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

41

Tabela 3 – Resumo dos resultados dos testes.

JPEG

BpBS

tamanho tamanho vetor tamanho total Seção Imagem Resolução bytes

SNR bytes

SNR bytes bytes

128 1019 34.5200 1026 34.5200 2 1028

256 3341 36.5214 3355 36.5210 3 3358

5.1 avião 512 11781 37.0933 11837 37.0930 7 11844

128 1309 33.1877 1321 33.1874 2 1323

256 4943 33.7884 4954 33.7883 3 4957

5.1 golden 512 18121 34.0972 18121 34.0972 0 18121

128 2360 31.1409 2360 31.1409 0 2360

256 7001 33.5909 7001 33.5909 0 7001

5.1 lenna 512 20951 35.7970 20951 35.7970 0 20951

256 3141 37.4066 3276 37.3565 184 3460

512 11617 37.5271 12248 37.5022 812 13060

5.1 sandiego 1024 47380 35.9762 47383 35.9762 1 47384

128 2335 32.3845 2335 32.3845 0 2335

256 6598 35.2123 6596 35.2123 1 6597

5.2 elaine 512 22003 33.0770 21992 33.0770 2 21994

128 697 43.4990 527 43.4990 88 615

256 1810 46.0639 1104 46.0639 416 1520

5.3 gray21 512 5244 47.6800 3429 47.6800 1194 4623

128 1198 36.4936 1129 36.4811 31 1160

256 2404 42.3816 2091 42.1661 230 2321

5.3 textmos2 512 3662 56.9305 3093 56.9305 767 3860

256 2366 37.0407 1482 37.0135 223 1705

512 6244 40.1261 4382 40.1103 834 5216

5.3 triângulos 1024 20197 41.8342 14788 41.8141 3576 18364 Fonte: Autoria Própria, 2009.

Como se pode observar a primeira coluna apresenta em qual subseção deste

capítulo serão abordadas as analises dos resultados de cada uma das imagens. As

imagens foram agrupadas nas seções de acordo com os resultados obtidos.

Além disso, a Tabela 3 apresenta: As linhas com grifadas em cinza claro

significam os testes com resultados positivos, as linhas não grifadas significam

resultados não satisfatórios, e a linha em cinza escuro se refere a situação onde

vetor de posições foi responsável pela obtenção de um resultado insatisfatório.

Page 42: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

42

5.1 Teste – Imagens avião, golden, lenna e sandiego

Nesta seção são expostos os testes e analises de imagens que não

alcançaram resultados esperados. Entre estas imagens estão: Avião, Golden, Lenna

e Sandiego, ilustrados no anexo A. A Figura 16 expõe resultados onde o

desempenho do JPEG foi melhor que o BbPS.

0,00

5000,00

10000,00

15000,00

20000,00

25000,00

30000,00

35000,00

40000,00

45000,00

50000,00

128 256 512 128 256 512 128 256 512 256 512 1024

avião golden lenna sandiego

Resolução (Pixel)

Tam

anho

(B

ytes

)

JPEG BpBS

Figura 16 – Gráfico resolução versus tamanho (bytes) das imagens Avião, Golden, Lenna, Sandiego. Fonte: Autoria Própria, 2009.

Para estas imagens, em nenhum das resoluções, o tamanho final da imagem

em bytes, gerado pelo algoritmo BpBS é suficientemente menor que o método

JPEG, para que seja percebido no gráfico. Pelo contrário, nas imagens Golden com

resolução de 256 por 256 pixel, Sandiego 256 por 256 pixel e Sandiego 512 por 512

pixel, tem um tamanho maior quando comparadas com o método JPEG.

De acordo com a Tabela 3 e o apêndice A e B é possível iniciar uma análise

individual de cada uma das imagens com resultados insatisfatórios.

Na imagem Avião, em nenhuma das resoluções 128, 256 e 512 a razão de

compressão do método BpBS é maior que o método JPEG, ou seja, a compressão

do método BpBS nesta imagem é inferior ao JPEG. Porém como se pode observar,

Page 43: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

43

os PSNR’s são absolutamente iguais, ou seja, o BpBS não adicionou perda na

qualidade da imagem.

Na imagem Golden, o comportamento do método BpBS é idêntica da imagem

avião, nas resoluções 128 e 256. Isto é, razão de compressão menor e PSNR’s

iguais. Entretanto na resolução 512 a razão de compressão do JPEG e BpBS são

exatamente iguais, isso acontece pois o BpBS não encontrou nenhum bloco

semelhante durante a busca dentro da imagem, facilmente identificado pelo tamanho

de vetor de posição, que se encontra zerado para esta resolução.

Para a imagem Lenna, em todas as resoluções testadas o vetor de posição se

manteve zerado, da mesma maneira da resolução 512 da imagem Golden explicada

acima. Isso acontece, pois como já comentado no Capítulo 0 o método BpBS,

quando faz a busca por blocos parecidos, possuí um valor máximo estipulado para o

MSE gerado pela diferença entre o bloco candidato a ser semelhante e o bloco a ser

predito. Quando o valor ultrapassa o estipulado o bloco não é escolhido e não é

guardada nenhuma posição no vetor de posições. Portanto, na imagem lenna, todos

os MSE s dos blocos comparados, são maiores que o valor estipulado.

Na imagem Sandiego, em todas as resoluções a razão de compressão e o

PSNR do BpBS são menores que o JPEG, ou seja, o tamanho da imagem após o

processo de compressão BpBS é maior do que o JPEG e a qualidade da imagem

gerada após o processo de decodificação no BpBS é inferior ao JPEG.

Como se pode observar na figura o método BpBS encontrou blocos

semelhantes para a imagem Sandiego na resolução 512, entretanto como analisado

anteriormente, os resultados são insatisfatórios.

Page 44: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

44

Figura 17 – Blocos residuais da imagem Sandiego na resolução 512. Fonte: Autoria Própria, 2009.

A razão de compressão encontrada não foi satisfatória, pois, como já havia

sido comentado na seção 0, que após a aplicação do BpBS os blocos residuais não

devem ser tão heterogêneos em relação a variação de intensidade dos seus pixeis,

devido ao fato de que para o processo da aplicação da DCT, no método JPEG,

quanto mais variação alta da intensidade de cor, maior serão os coeficientes

gerados relacionados às altas freqüências. Consequentemente o processo de

quantização não conseguirá ‘arredondar’ para coeficientes tão próximos de zero,

ocasionando uma razão de compressão menor quando comparada ao método

JPEG.

Para o PSNR, a justificativa se torna semelhante ao da razão de compressão,

devido ao fato de que no momento da quantização, se houver mais coeficientes nas

altas freqüências serão feito mais ‘arredondamentos’, ocasionando uma maior perda

de qualidade.

5.2 Teste – Imagem Elaine

Nesta seção serão abordados os resultados referentes aos testes realizados

apenas na imagem Elaine. No gráfico a seguir são expostos os resultados da

imagem Elaine.

Page 45: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

45

0,00

5000,00

10000,00

15000,00

20000,00

25000,00

128 256 512

Resolução (Pixel)

Tam

anho

(B

ytes

)

JPEG

BpBS

Figura 18 – Gráfico resolução versus tamanho (bytes) na imagem Elaine. Fonte: Autoria Própria, 2009.

Ao ser analisado o gráfico, pode-se observar que não há, em nenhuma das

resoluções, resultados que comprovem um desempenho melhor, nem pior do

método BpBS. Entretanto, quando são verificados os dados da Tabela 3, na imagem

Elaine com resolução 128, é constatado que não foram encontrados blocos

semelhantes, uma vez que o vetor de posições possui zero bytes de informação

armazenado.

No entanto, nas resoluções 256 e 512, quando verificado na Tabela 3, os

resultados melhoram. Na resolução 256, o tamanho final da imagem comprimida

com o método JPEG possuí 6598 bytes, enquanto o tamanho final do método BpBS,

já contando com o vetor posições possuindo 1 byte, possui 6597 bytes. E na

resolução 512, o tamanho final com o método JPEG é de 22003 bytes, enquanto no

método BpBS o tamanho final é de 21994 bytes com o vetor de posições possuindo

2 bytes.

No método BpBS, o PSNR, manteve-se o mesmo do método JPEG, ou seja,

não houve perda de qualidade quando da aplicação do método proposto nesta

pesquisa quando comparado com o JPEG. Dessa maneira nas resoluções 256 e

512 o método BpBS se mostrou mais eficiente, quando analisados o tamanho final

da imagem juntamente com o seus respectivos PSNR’s.

Page 46: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

46

5.3 Teste – Imagens gray21, textmos2 e triângulos

Nesta seção serão expostos os testes das imagens que obtiveram resultados

que condizem com a proposta inicial deste trabalho, que é a de encontrar resultados

satisfatórios para a compressão de imagem. Na Figura 19 a seguir está exposto o

gráfico da resolução versus o tamanho em bytes da imagem gray21.

0,00

1000,00

2000,00

3000,00

4000,00

5000,00

6000,00

128 256 512

Resolucão (Pixel)

Tam

anho

(B

ytes

)

gray21 (JPEG)

gray21 (BpBS)

Figura 19 – Gráfico resolução versus tamanho (bytes) da imagem Gray21. Fonte: Autoria própria, 2009.

De acordo com a gráfico acima, é possível ver o desempenho superior do

método BpBS quando comparado ao JPEG. Utilizando a Tabela 3 para uma analise

mais detalhada temos os seguintes dados; na resolução 128 x 128 pixeis do método

JPEG o tamanho em bytes é de 697 bytes enquanto para o método BpBS o

tamanho é de 615, já contando com um vetor de posições com 88 bytes. Nas

resoluções posteriormente testadas a superioridade aumenta. Com 256 X 256 pixeis

o tamanho é de 1810 bytes para o JPEG e 1520 bytes com um vetor de 416 bytes

no método BpBS. E na resolução 512 x 512 pixeis para o JPEG o tamanho é de

5244 bytes, já para o BpBS o tamanho final da imagem com um vetor de 1194 bytes

é de 4623 bytes.

É possível observar que a superioridade da compressão não é apenas mantida

como também ganha maior desempenho de acordo com que a resolução da imagem

se torna maior. Também é importante notar que o tamanho do vetor de posições é

diretamente proporcional ao tamanho da imagem que está sendo testada, uma vez

Page 47: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

47

que, quanto maior a imagem, maior será o número de blocos semelhantes

encontrados.

E finalmente, para caracterizar o desempenho superior, o PSNR se manteve o

mesmo em todas as resoluções para o BpBs quando comparado com o JPEG.

Na Figura 20, será exibido o gráfico referente aos dados encontrados após a

realização dos testes na imagem Triângulos.

0,00

5000,00

10000,00

15000,00

20000,00

25000,00

256 512 1024

Resolução (Pixel)

Tam

anho

(B

ytes

)

triângulos (JPEG)

triângulos (BpBS)

Figura 20 – Gráfico resolução versus tamanho (bytes) da imagem Triângulos. Fonte: Autoria própria, 2009.

Da mesma maneira da imagem gray21, com o gráfico da imagem Triângulos já

é possível observar a superioridade do método BpBS. A partir dos dados da Tabela

3 a análise é descrita a seguir.

Na resolução 256x256 pixeis o tamanho da imagem no JPEG é de 2366 bytes

e no BpBS é de 1705 bytes com um vetor de posições de 223 bytes. Com a

resolução 512x512 pixeis o tamanho é de 6244 bytes para o JPEG e de 5216 bytes

para o BpBS e vetor de posições com 834 bytes. E para resolução 1024x1024 pixeis

o tamanho é de 20197 bytes no JPEG e 18364 bytes no BpBS, com vetor de 3576

bytes.

Em todas as resoluções o tamanho da imagem após o processo de

compressão BpBS, foi menor que a do JPEG, além disso o PSNR manteve-se o

mesmo ao do JPEG, desta maneira o processo BpBS pode ser caracterizado com

um desempenho superior ao JPEG. A imagem a seguir é a imagem residual da

Page 48: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

48

Triângulos, após o processo de busca por blocos semelhantes do BpBS. A imagem

original está exposta no anexo A.

Figura 21 – Blocos residuais da imagem Triângulos na resolução 512. Fonte: Autoria própria, 2009.

Como se pode observar na figura 21, a imagem é praticamente preta salvo as

regiões onde não foram encontrados blocos suficientemente semelhantes. Isso

acontece, pois a imagem original, exposta no anexo A, tem regiões onde seus pixeis

são exatamente iguais, ou seja, onde existe uma região com tom de cinza, 136 da

escala RGB, toda aquela região conterá apenas tons de cinza 136, sem pequenas

variações para cima nem para baixo. Desta maneira no momento da busca por um

bloco semelhante, o bloco que foi predito é idêntico ao que está varrendo a imagem,

deixando um bloco residual com pixeis iguais a zero.

Das três imagens, onde os dados estão sendo analisados nesta seção, a única

que não obteve resultados satisfatórios em todas as 3 resoluções testadas é a

textmos2, pois na resolução 512x512 bytes o tamanho da imagem após a

compressão é maior para o BpBS quando comparado ao JPEG. Na Figura 22 é

mostrado um gráfico onde se pode observar essa constatação.

Page 49: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

49

0

500

1000

1500

2000

2500

3000

3500

4000

4500

128 256 512

Resolução (Pixel)

Tam

anho

(B

ytes

)

textmos2 (JPEG)

textmos2 (BpBS)

Figura 22 – Gráfico resolução versus tamanho (bytes) da imagem Textmos2. Fonte : Autoria própria, 2009.

No gráfico acima, é possível constatar o desempenho superior do BpBS nas

resoluções 128 e 256, entretanto para a resolução 512 não houve ganho de

desempenho com relação ao JPEG. De acordo com a tabela 3, na resolução 128

com o JPEG o tamanho é de 1198 bytes e com o BpBS com 1160 bytes de

tamanho. Da mesma maneira na resolução 256 com o JPEG o tamanho de 2404

bytes, para os 2321 bytes o desempenho se mantém superior para o BpBS.

Tanto para a imagem Triângulos quanto para a imagem gray21 o tamanho do

vetor de posições não influenciou no desempenho superior do método BpBs em

quaisquer uma das resoluções. Porém na imagem textmos2 na resolução 512x512

pixeis o vetor de posições foi essencial para que o resultado não fosse satisfatório.

De acordo com a Tabela 3, sem o vetor de posições o tamanho da imagem no BpBS

é de 3093 bytes livrando de 568 bytes para os 3662 bytes do JPEG e com o vetor de

posições de tamanho 767 bytes, imagem final comprimida pelo BpBS tem um

tamanho de 3860.

Ao contrário das seções anteriores onde as imagens testadas foram captadas

no mundo real, as imagens testadas nesta seção, podem ser caracterizadas como

imagens para benchmarks, ou seja, imagens criadas exclusivamente para testes.

Como já foi esclarecido até o momento e constatado através das analises, as

imagens que mais obtiveram resultados a favor do método proposto neste trabalho

são as de benchmarks. O principal motivo para que estas imagens pudessem

garantir um desempenho superior foi questão de elas serem dividas em regiões

Page 50: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

50

bem definidas onde a tonalidade de seus pixeis são exatamente iguais, de acordo

com a Figura 23, possibilitando ao BpBS gerar blocos residuais com pixeis

praticamente zerados, como na Figura 21.

Figura 23 – Tonalidade de cores para a imagem Triângulos. Fonte: Autoria própria, 2009.

Assim, ao contrário de como explicado na seção 0 onde havia um

heterogeneidade entre os pixeis dentro de blocos residuais, para imagens como

estas, analisadas na seção corrente, existe então, após a aplicação do método

BpBS, uma homogeneidade em relação a variação de intensidade de tonalidade

dentro dos blocos da imagem gerada. Com isso, ao ser aplicada a DCT nestes

blocos, os coeficientes relativos as altas e baixas freqüências são praticamente

nulos, pois não há variação entre os pixeis, como na Figura 21.

Devido a isso, após o processo de quantização a perda de qualidade será

praticamente zero, para estes blocos onde o resíduo nos pixeis foi zero, pois antes

de ser aplicada a matriz de quantização, os coeficientes relativos as altas, média e

baixas freqüências já estão praticamente zerados, não ocasionando nenhum tipo de

“arredondamento”.

Para a codificação utilizando HUFFMANN, a razão de compressão será ainda

maior no método BpBS do que no JPEG, devido a grande quantidade de

coeficientes iguais a zero gerados após o processo de DCT e quantização.

Page 51: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

51

6 CONCLUSÃO

A utilização de técnicas de compressão de vídeo em compressão de imagens

são técnicas que comprovadamente conseguem aumentar a taxa de compressão

quando comparadas com técnicas específicas de compressão de imagens.

Através de trabalhos relacionados foi possível verificar que a qualidade gerada

após a aplicação de técnicas de compressão de vídeo gera imagens reconstruídas

com qualidade superior. Entretanto, quando o problema era complexidade de

codificação e decodificação ficou evidente que o tempo de processamento limita

muito esta abordagem.

No entanto, dos três parâmetros citados acima, apenas dois destes foram

utilizados como métrica para realização dos testes e analises nesta pesquisa, entre

eles estão, a qualidade da imagem após a reconstrução e a taxa de compressão da

imagem.

Com estes dois parâmetros, foram encontrados resultados diversos. Entretanto

é possível afirmar que, através dos procedimentos efetuados para o

desenvolvimento do algoritmo deste trabalho, o método BpBS encontrou resultados

que justificam o seu desenvolvimento através das constatações feitas ainda durante

o processo de pesquisa.

Como foi observado durante o capítulo 0, alguns dos resultados obtidos não

foram satisfatórios por detalhes, os quais a presente pesquisa não se aprofundou

pela questão do calendário estipulado em detrimento as metas que deveriam ser

alcançadas. Detalhes estes, que serão assinalados na seção 0.

Uma das constatações verificadas, que merece ser reiterada neste capítulo é a

analise realizada nos blocos 8x8 após a obtenção dos resultados. Foi observado que

dos resultados considerados satisfatórios, a imagem residual resultante do processo

BpBS, possui blocos residuais, muito mais homogêneos em relação a variação de

Page 52: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

52

seus pixeis, quando comparado aos blocos das imagens onde não foram obtidas

resultados satisfatórios

A partir disto, pode-se acrescentar, que além de ter blocos com pixeis próximos

a zero para que o processo encontre uma compressão maior, a homogeneidade do

bloco também se faz necessária para que a DCT não gere coeficientes maiores em

relação a matriz da própria imagem, justificativa dada no capítulo 5.

Como exemplos de imagens que justifiquem o uso do método BpBS poderiam

ser citadas imagens de Raio X , imagens do universo e entre outras que possuam

uma grande homogeneidade entre o pixeis de uma imagem.

6.1 Contribuições

É importante também esclarecer as contribuições mais significativas deste

trabalho. Entre elas é possível citar que o trabalho além de desenvolver um método

diferenciado, utilizando técnica compressão de vídeo, também propõe uma maneira

diferente de otimizar o próprio processo de codificação do JPEG, uma vez que este

processo desenvolvido no trabalho é inserido antes do codificador JPEG.

Além disso, é possível considerar os conceitos que foram constatados devido

a pesquisa e o desenvolvimento realizado neste trabalho, como a homogeneidade

dos blocos após o processo de busca por blocos parecidos, sendo essencial para a

compressão da imagem.

Outra parte importante a ser considerada é questão do quão importante é

analisar técnicas sugeridas para outras propostas e que poderiam ser aproveitadas

em situações diferentes, beneficiando assim outros propósitos.

6.2 Trabalhos Futuros

Dentre os possíveis pontos que o trabalho poderia ser melhorado, um deles é o

vetor de posições, que se mostrou eficiente, e suficientemente razoável na maioria

das resoluções testadas, entretanto ficou comprovado que para o BpBS conseguir

uma taxa de compressão maior, é essencial que o vetor de posições consiga uma

taxa de compressão superior.

Page 53: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

53

Para um trabalho futuro, pode-se sugerir um método de armazenamento

diferenciado para o vetor de posições, um método que privilegie a compressão de

seus dados.

Outro ponto que poderia ser abordado para trabalho futuros, seria a utilização

de cálculos diferenciados para estimativa de semelhança entre os blocos. Ao invés

de se utilizar um simples media das diferenças, poderia se utilizar a média

harmônica das diferenças, desta maneira o bloco escolhido seria mais homogêneo

em relação a variação de tonalidade entre os pixeis.

A partir daí, outra opção que poderia ser feita em cima desta abordagem, seria

criar matrizes de quantização diferenciadas que se seriam aplicadas de acordo com

o resultado da média harmônica, fazendo com que o arredondamento não causasse

tantas perdas, aumentando assim consideravelmente a qualidade da imagem após a

sua reconstrução.

Uma outra opção para trabalhos futuro seria uma varredura por blocos

diferenciada, ao invés de comparar os blocos de maneira estática, poderia ser feita

uma rotação do bloco que está varrendo a imagem, a fim de obter mais

possibilidades de encontrar blocos semelhantes.

Também poderia ser abordada em trabalho futuros, a utilização de blocos

menores para a comparação, com isso aumentaria a possibilidade de encontrar mais

blocos semelhantes. Entretanto, através de testes intermediários, deve-se ter o

cuidado de aplicar a DCT em blocos do mesmo tamanho que foram utilizados para a

busca por blocos semelhantes, pois como explicado na seção 4.2, se for aplicado a

DCT entre blocos diferentes a quantidade de coeficientes de baixa freqüência

aumentara, conseqüentemente diminuindo a qualidade e taxa de compressão.

Page 54: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

54

REFERÊNCIAS

ARAVIND Al, Rao B.P., Kudva S.S. et al., “Quality and Complexity Comparison of H.264 Intra Mode with JPEG2000 and JPEG” IEEE Int’l Conf. on Image Processing , 24-27 Oct. 2004, p. 525- 528. BRUNO, Gaspare Giuliano Elias. VEBit: um Algoritmo para Codificação de Vídeo com Escalabilidade. 2003. 99 f. Dissertação (Mestrado) - Universidade Federal do Rio Grande do Sul, Instituto de Informática, Programa de Pós-Graduaçao em Computação. FERNAINDEZ - ESCRIBANO, G. Computational Complexity Reduction of Intra-Frame Prediction in MPEG-2/H. 264 Video Transcoders. IEEE International Conference on Multimedia and Expo , 2005. ICME 2005, Amsterdã, p. 707-710, jul. 2005. FERRAZ, Marcelo Coelho. Codificação de Imagens. 1998. 232 f. Dissertação (Mestrado) - Instituto Nacional de Matemática Pura e Aplicada, Rio de Janeiro. GONZALES, R. C.; WOODS R. E. “Processamento de Imagens Digitais”. Editora Edgard Blücher, 1992. 509p. HE, Xu; Pengyu Liu; Kebin Jia; Yanhua Zhang. “A Fast Intra-frame Prediction Algorithm Based on the Characteristic of Macro-block and 2D-histogram for H.264/AVC Standard”, Intelligent Information Hiding and Multimedia Signal Processing, 2007. IIHMSP 2007. Third International Conference on, Nov 2007. Volume: 1, p. 182-185. HU., Yu Hen – Jpeg encoder in matlab, 2006 disponível em http://www.mathworks.com/matlabcentral/fileexchange/10476, acessado em março de 2009. HUFFMAN D.A.; "A Method for the Construction of Minimum-Redundancy Codes", Proceedings of the I.R.E., September 1952, pp 1098-1102 KIM, Jong Nam; Tae Sun Choi. “Adaptive matching scan algorithm based on gradient magnitude forfast full search in motion estimation”, Consumer Electronics, 1999. ICCE. International Conference on Volume , Issue , 1999 p. 366 - 367

Page 55: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

55

KATO, H. ; Takishima, Y.; Kaji, Y. “Fast Intra Mode Decision Method for MPEG to H.264 Transcoding”, Image Processing, 2006 IEEE International Conference on , 2006, p. 833-836. KEBIN, Jia ;Lv Zhuoyi; Xie Jing; Liu Pengyu; Zhu Qing. “A Fast Intra-frame Prediction Algorithm Based on Characteristic of 4×4 Subblock for H.264/AVC”, Innovative Computing, Information and Control, 2007. ICICIC '07. p. 242-242 KOPPS, João Leites Torma. “Análise de quantização vetorial utilizando rede neural artificial para a compressão de uma imagem digital”. 2007. 83 f. Monografia (Graduação em Ciência da Computação) - Centro Universitário La Salle, Canoas. MADHU, S. NAIR – Huffman Encoder in Matlab, disponível em http://www.mathworks.com/matlabcentral/fileexchange/14545 2007, acessado em março de 2009. MARPE D. George V., Cycon H.L. et al., “Performance Evaluation of Motion-JPEG2000 in Comparison With H.264/AVC Operated in Pure Intra Coding Mode,” SPIE Conf. Wavelet Application in Industrial Processing, Feb. 2004, p. 128-137. MITCHELL, J. L. et al. Mpeg video compression standard. New York, EUA: Chapman & Hall, 1997. 470p. MPE. ISO/IEC. 11172-2: Coding of moving pictures and associated audio for digital storage media at up to 1.5 Mbit/s, Part 2 - Video, MPEG-1 Standard, Switzerland, 1993. PARHI, K. K.; NISHITANI, T. Digital signal processing for multimedia systems. New York, EUA: Marcel Dekker, 1999. 860p. RICHARDSON I. E. G. H.264 and MPEG-4 Video Compression: Video Coding for Next Generation Multimedia. England: Wiley 2003. 320p. SALOMON, David. Data Compression: the complete reference. 3. ed. Springer, 2004. SHANNON, C. E. A mathematical theory of communication. Bell System Technical Journal, New York, v.27, p.379_423, July 1948.

Page 56: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

56

SILVA JR., Nélson Ismar da. Um Sistema de Compressão de Imagens Aplicado a Documentos Históricos. 1993. 132 f. Dissertação (Mestrado em Ciência da Computação) – UFMG. YANG, Jiheng ; Baocai Yin; Nan Zhang. “A Block-Matching Based Intra Frame Prediction for H.264/AVC”, Multimedia and Expo, 2006 IEEE International Conference on Volume , Issue , 9-12 July 2006 p. 705 - 708

Page 57: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

57

APÊNDICE A – TABELA DE TESTES COM RESULTADOS DO MÉT ODO JPEG

A tabela abaixo mostra os resultados dos testes do JPEG referentes a taxa de

compressão, razão de compressão, tamanho total da imagem, qualidade das imagens restauradas após o processo de decodificação.

Resolução Taxa de compressão Tamanho Imagem

Pixel bits/pixel bytes Razão : 1 PSNR

128 0,49744 1019 16,083 34,520

256 0,40788 3341 19,614 36,521 avião

512 0,35953 11781 22,251 37,093

128 1,1403 2335 7,016 32,385

256 0,80536 6598 9,934 35,212 elaine

512 0,67148 22003 11,914 33,077

128 0,63916 1309 12,516 33,188

256 0,60342 4943 13,258 33,788 golden

512 0,553 18121 14,467 34,097

128 0,34027 697 23,511 43,499

256 0,22098 1810 36,203 46,064 gray21

512 0,16003 5244 49,992 47,680

128 1,1524 2360 6,942 31,141

256 0,85458 7001 9,361 33,591 lenna

512 0,63938 20951 12,512 35,797

256 0,38341 3141 20,866 37,407

512 0,35452 11617 22,566 37,527 sandiego

1024 0,36148 47380 22,131 35,976

128 0,58502 1198 13,675 36,494

256 0,2934 2404 27,267 42,382 textmos2

512 0,11175 3662 71,590 56,931

256 0,2888 2366 27,701 37,041

512 0,19054 6244 41,987 40,126 triângulos

1024 0,15409 20197 51,917 41,834

Page 58: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

58

APÊNDICE B – TABELA DE TESTES COM RESULTADOS DO MÉT ODO BPBS

A tabela abaixo mostra os resultados dos testes do método proposto nesta pesquisa referentes a taxa de compressão, razão de compressão, tamanho total da imagem, qualidade das imagens restauradas após o processo de decodificação.

Resolução Taxa de compressão Tamanho Tamanho Tamanho

Imagem Pixel bits/pixel bytes

Razão : 1 SNR Vetor(bytes) Total(bytes)

128 0,5011 1026 15,9649 34,520 2 1028

256 0,40959 3355 19,5316 36,521 3 3358 avião 512 0,36125 11837 22,1452 37,093 7 11844

128 1,1403 2335 7,0156 32,385 0 2335

256 0,80515 6596 9,9361 35,212 1 6597 elaine 512 0,67115 21992 11,9198 33,077 2 21994

128 0,6452 1321 12,3992 33,187 2 1323

256 0,60477 4954 13,2282 33,788 3 4957 golden 512 0,553 18121 14,4665 34,097 0 18121

128 0,25745 527 31,0744 43,499 88 615

256 0,13475 1104 59,3690 46,064 416 1520 gray21 512 0,10464 3429 76,4547 47,680 1194 4623

128 1,1524 2360 6,9420 31,141 0 2360

256 0,85458 7001 9,3613 33,591 0 7001 lenna 512 0,63938 20951 12,5121 35,797 0 20951

256 0,39986 3276 20,0072 37,357 184 3460

512 0,37378 12248 21,4030 37,502 812 13060 sandiego 1024 0,3615 47383 22,1301 35,976 1 47384

128 0,55109 1129 14,5168 36,481 31 1160

256 0,25529 2091 31,3363 42,166 230 2321 textmos2 512 0,094406 3093 84,7403 56,931 767 3860

256 0,18092 1482 44,2176 37,014 223 1705

512 0,13372 4382 59,8280 40,110 834 5216 triângulos 1024 0,11282 14788 70,9108 41,814 3576 18364

Page 59: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

59

ANEXO A – IMAGENS UTILIZADAS PARA OS TESTES NOS MÉT ODOS JPEG E

BPBS

Imagem avião utilizada nos testes

Imagem elaine utilizada nos testes

Imagem golden utilizada nos testes

Imagem gray21 utilizada nos testes

Page 60: Curso de Bacharelado de Ciência da Computação JONAS ... · Este trabalho descreve o estudo, a implementação e a análise de uma técnica de compressão de imagens, baseada em

60

Imagem lenna utilizada nos testes

Imagem sandiego utilizada nos testes

Imagem triângulos utilizada nos testes

Imagem textmos2 utilizada nos testes