compressÃo digital: um estudo comparativo entre … · 2017-06-22 · vilker silva bezerra...

67
FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Fortaleza – CE 2009

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO

VILKER SILVA BEZERRA

COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264

Fortaleza – CE 2009

Page 2: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

VILKER SILVA BEZERRA

COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264

Monografia apresentada para obtenção dos créditos da disciplina Trabalho de Conclusão do Curso da Faculdade Farias Brito, como parte das exigências para graduação no Curso de Ciência da Computação. Orientadora: Prof. Dra. Wietske Ineke Meyering.

Fortaleza – CE 2009

Page 3: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264

Vilker Silva Bezerra

NOTA: FINAL (0 – 10): _______ Data: ____/____/_________ BANCA EXAMINADORA:

___________________________________

Profa. Dra. Wietske Ineke Meyering (Orientadora)

___________________________________ Prof. Me. José Belo Aragão Júnior

(Examinador)

__________________________________ Prof. Me. José Helano Matos Nogueira

(Examinador)

Page 4: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

AGRADECIMENTOS Primeiramente a Deus, senhor de minha vida, o centro de nossa existência. Aos meus pais e irmãos, orgulhos e formadores do meu caráter, pelo total apoio, confiança e pelos momentos de felicidade. Aos amigos, pela descontração e companheirismo. Aos meus professores por proporcionarem minha formação, através de seus conhecimentos. A minha namorada Maria das Graças Leite pela inspiração.

Page 5: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

“Critica o tolo, e ele te odiará, critica o sábio, e ele te amará”

Provérbios 9:8

Page 6: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

RESUMO “Compressão digital: um estudo comparativo entre codecs padrão MPGE-4 AVC/H.264” é uma monografia inserida numa linha de pesquisa que retrata como utilizar melhor a capacidade de armazenamento e os meios de transmissão de dados existentes. Recentemente, a implantação da Televisão Digital Brasileira tem influenciado pesquisas sobre a utilização da transmissão das informações de forma que possa usufruir plenamente dos recursos oferecidos por essa tecnologia. Nessa monografia são analisadas as etapas no processo de compressão de imagens e vídeos compatíveis com o formato adotado pelo padrão escolhido para a Televisão Digital Brasileira. Para isso, foi desenvolvida uma ferramenta de comparação, capaz de identificar diferenças entre imagens. Outro aspecto verificado foi o tempo entre métodos de compressão e o tamanho final do vídeo. Tal comparação torna-se muito vantajosa no aspecto em que as inovações tecnológicas estão mudando o perfil de negócio tradicional de um dos principais meios de comunicação do país.

Page 7: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

SUMÁRIO LISTA DE FIGURAS ...................................................................................... 9

LISTA DE TABELAS .................................................................................... 10

LISTA DE ABREVIAÇÕES ......................................................................... 11

INTRODUÇÃO .............................................................................................. 12

1 COMPRESSÃO DE IMAGENS E VIDEO DIGITAL ......................... 14

1.1 Definições iniciais ............................................................................. 14

1.2 Compressão de dados ...................................................................... 15

1.2.1 Redundância ............................................................................. 15

1.3 Modelos de compressão ................................................................... 18

1.4 Métodos de compressão de imagens ............................................... 20

1.5 Técnicas para redução de codificação ............................................ 21

1.6 Fidelidade ......................................................................................... 23

1.7 Padronizações de compressão de Imagens ..................................... 24

2 CODECS H.264 E A TV DIGITAL BRASILEIRA ............................. 27

2.1 TV Digital Brasileira ....................................................................... 27

2.2 H.264/AVC ....................................................................................... 28

2.2.1 Predição Intra-quadro .............................................................. 30

2.2.2 Codificação por transformadas ................................................ 30

2.2.3 Codificação de Entropia ........................................................... 31

2.3 Perfis do H.264/AVC ........................................................................ 31

2.4 Codecs H.264 .................................................................................... 32

3 PROPOSTA DE CODIFICAÇÃO DE VÍDEOS .................................. 35

3.1 Comparador de Imagens ................................................................. 35

3.1.1 Estrutura do programa ............................................................ 35

3.1.2 Detecção de diferenças .............................................................. 37

3.1.3 Interface .................................................................................... 39

3.2 Casos de Testes ................................................................................ 43

Page 8: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

3.3 Resultados ........................................................................................ 45

4 CONCLUSÃO ........................................................................................ 56

REFERÊNCIAS ............................................................................................. 58

APÊNDICE A – CLASSE COMPARADOR ................................................ 60

APÊNDICE B – CLASSE IMAGEM ............................................................ 64

APÊNDICE C – CLASSE FORMPRINCIPAL ........................................... 65

APÊNDICE D – DIAGRAMA DE CLASSES .............................................. 67

Page 9: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

LISTA DE FIGURAS

Figura 1 - Sistema genérico de codificação e compressão de dados. 19

Figura 2 - Modelo de (a) codificador fonte e (b) decodificador fonte. 19

Figura 3 - Esquema do codificador H.264. 30

Figura 4 - Classe ImagemResultante. 36

Figura 5 - Classe Comparador. 36

Figura 6 - Algoritmo para detecção de pixels diferentes. 38

Figura 7 - Aba Imagem Original. 40

Figura 8 - Aba Imagem Comparação. 41

Figura 9 - Aba Imagem Resultado. 42

Figura 10 - Aba Histogramas. 43

Figura 11 - Quadro 00 codificado com o MainConcept H.264. 46

Figura 12 - Quadro 00 codificado com o x264. 47

Figura 13 - Quadro 290 codificado com o MainConcept H.264. 48

Figura 14 - Quadro 290 codificado com o x264. 49

Figura 15 - Histogramas x264 do quadro 00. 51

Figura 16 - Histogramas MainConcept H.264 do quadro 00. 52

Figura 17 - Histogramas x264 do quadro 290. 53

Figura 18 - Histogramas MainConcept H.264 do quadro 290. 54

Page 10: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

LISTA DE TABELAS

Tabela 1: Imagem 4x8 pixels em escala de cinza para efeito do cálculo. 17

Tabela 2: Probabilidade de nível de cinza. 18

Tabela 3: Notas para um critério de avaliação subjetivo usando HDTV. 24

Tabela 4: Marcos na evolução da TV. 27

Tabela 5: Softwares para codecs MPEG-4 AVC/H.264. 32

Tabela 6: Softwares OPEN-SOURCE para codecs H.264. 33

Tabela 7: Diferença entre tamanhos e taxa média entre os codec. 45

Tabela 8: Diferença entre níveis RGB do quadro 00 das imagens comparadas. 50

Tabela 9: Diferença entre níveis RGB do quadro 10 das imagens comparadas. 50

Tabela 10: Diferença entre níveis RGB do quadro 100 das imagens comparadas. 50

Tabela 11: Diferença entre níveis RGB do quadro 200 das imagens comparadas. 50

Tabela 12: Diferença entre níveis RGB do quadro 290 das imagens comparadas. 50

Page 11: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

LISTA DE ABREVIAÇÕES

ABNT Associação Brasileira de Normas e Técnicas

ASCII American Standard Code for Information Interchange

AVC Advanced Video Coding

CABAC Context-Based Adaptive Binary Arithmetic Coding

CAVLC Context-Based Adaptive Variable Length Coding

CCITT Consultative Comittee of International Telephone em Telegraph

CODEC Codificador/Decodificador

DCT Discrete Cosine Transform

DFT Transformada discreta de Fourier

EQM Erro Quadrático médio

HDTV High Definiton TV

ISO International Organization for Standardization

ITU-T International Telecommunication Union

JVT Joint Video Team

KLT Karhunen-Loève Team

LZ Abraham Lempel e Jacob Ziv

LZW Abraham Lempel, Jacob Ziv e Terry Welch

MPEG Moving Picture Experts Group

REL Run-Lenght Encoding

RGB Red, Green and Blue

SBTV Sistema Brasileiro de Televisão Digital Terrestre

VCEG Vídeo Coding Experts Group

WHT Walsh-Hadamard

Page 12: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

INTRODUÇÃO

A rápida evolução tecnológica exige uma crescente melhora dos aspectos

relacionados à comunicação. A televisão é um meio de comunicação presente em cerca de

90% dos lares brasileiros e recentemente uma mudança no panorama de transmissão das

imagens tem influenciado pesquisas relacionadas ao usufruto pleno de uma nova tecnologia: a

TV digital.

A tecnologia digital permite uma transmissão maior de dados e consequentemente

uma melhor exibição final. Além disso, esses dados que estão sendo transmitidos ainda

podem ser reduzidos sem causar impacto na qualidade da informação. A compressão digital

diminui o volume dos dados a serem trafegados, buscando a preservação do conteúdo

original.

Compressão digital tem sido um tema estudado por especialistas há muitos anos,

principalmente após a popularização da Internet Banda Larga e das câmeras de vídeos digitais

que utilizam programas de compressão de vídeo.

A correta utilização desse recurso permite a exibição de imagens e vídeos ricos

em detalhes, o que antes só seria possível a um alto custo de armazenamento e transmissão.

Trazer essa realidade para a TV digital não se trata de “reinventar a roda”, mas sim de buscar

um meio de aplicação para as vantagens que a compressão digital proporciona.

Essa monografia apresenta informações pertinentes à compressão de vídeos e

imagens digitais, bem como os formatos de compressão de vídeo compatíveis com o padrão

adotado para a TV Digital Brasileira. Provendo um estudo comparativo dos compressores de

vídeo através de análise entre o resultado final dos métodos de compressão.

Page 13: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

13

Para realizar a comparação entre os diversos formatos de vídeo existentes, foi

criado um software capaz de apontar e quantificar as diferenças entre imagens de uma mesma

resolução. O percurso desde a revisão bibliográfica até uma análise comparativa entre codecs

(Codificador/Decodificador), feito através da construção do software, está compreendido da

forma como se segue abaixo.

O primeiro capítulo dessa monografia destina-se a apresentação de conceitos

fundamentais sobre compressão digital.

O segundo capítulo explana os aspectos dos codecs compatíveis com o formato

H.264/AVC, que é o padrão definido para a compressão de vídeo e imagens digitais para a

TV Digital Brasileira.

No terceiro capítulo serão analisadas propostas de implementações para

codificação de imagens e vídeos, comparando as etapas no processo de compressão entre

codecs que atendam ao padrão MPEG-4 AVC/H.264. Nesse capítulo também será

apresentado o software desenvolvido para avaliar os codecs.

Por fim, no quarto capítulo, serão analisados e discutidos os resultados obtidos na

comparação entre os codecs.

Page 14: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

1 COMPRESSÃO DE IMAGENS E VIDEO DIGITAL

Neste capítulo serão abordados conceitos relacionados à compressão digital. A

abordagem aqui estabelecida tratará desde definições iniciais até uma explicação específica

(modelo, algoritmos, metodologias e padrões) necessária para distinção entre as etapas no

processo de compressão de imagens e vídeos digitais.

1.1 Definições iniciais

Para que se possa iniciar o estudo aqui pretendido, faz-se necessário a

diferenciação entre dados e informação. Valdemar Setzer (2001) e Ida Pu (2006) definem

dados como uma sequência de símbolos quantificados ou quantificáveis e informação como

uma abstração informal que está na mente de alguém e representa algo significativo que

acrescenta conhecimento para essa pessoa.

Em concordância, Luciano Floridi (2005) define dados como tudo que pode ser

processado e as informações como dados que descrevem um domínio físico ou abstrato. De

posse dessas definições, atribui-se ao computador a função de uma máquina que processa

dados. Ao trabalhar com tais conceitos, pode-se verificar em que medida os dados podem ser

eliminados sem que para isso se altere a estrutura informacional estabelecida na imagem com

a qual se quer trabalhar.

Segundo Ida Pu (2006) existem três tipos básicos de fonte de dados no

computador: texto, imagem e som. O estudo da compressão nesse trabalho envolve solucionar

o problema de como despender dados redundantes especificamente em imagens.

Page 15: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

15

1.2 Compressão de dados

No contexto da informática, segundo Ida Pu (2006, p.42), compressão de dados é:

“A ciência (e arte) de representar as informações de forma compacta. Esta tem sido uma das

habilidades tecnológicas críticas para a revolução digital multimídia em curso há décadas”. Já

para Cliff Wootton (2005), o termo compressão é análogo à tentativa de colocar um grande

piano numa caixa de correio ou passar um elefante através do buraco de uma agulha. Apesar

das maneiras bastante distintas para apresentarem o mesmo conceito, ambos fazem referência

à importância e a dificuldade necessária para diminuir o volume utilizado para armazenar

informações.

O objetivo da compressão de dados é eliminar os bits desnecessários (dados) para

a representação da informação contida em uma fonte. Dessa forma, a melhor taxa de

compressão possível será aquela que permita a melhor interpretação da informação

comprimida, comparando-a a fonte original (REED, 2007). Para cumprir com o objetivo

descrito por Reed (2007), é imprescindível descobrir elementos desnecessários em uma

informação.

Gonzalez e Woods (2000) comentam sobre as diversas formas de transmitir uma

mesma informação. Quando em um conjunto de dados é percebido que, em uma determinada

forma de transmissão, existem dados não essenciais, por serem irrelevantes ou simplesmente

por repetirem algo conhecido, caracteriza-se, então, uma transmissão de dados redundante.

1.2.1 Redundância

“A redundância de dados é um tema central em compressão de imagens digitais”

(GONZALEZ; WOODS, 2000, p.219). Sobre diversos aspectos, a compressão de imagens é a

redução da quantidade de dados necessários para a representação de uma informação.

Basicamente, para a identificação de bits desnecessários em uma determinada

imagem, quatro redundâncias podem ser exploradas. São elas: redundância de codificação,

redundância inter-pixels, redundância espectral e redundância psicovisual (GONZALEZ;

WOODS, 2000).

A primeira delas, redundância de codificação, revela que uma grande parte da

informação sobre a aparência de uma imagem pode ser obtida de um histograma dos níveis de

Page 16: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

16

cinza dessa imagem. Quando os níveis de cinza são codificados usando mais símbolos de

codificação do que o necessário, diz-se que a imagem contém redundância de codificação

(GONZALEZ; WOODS, 2000). As imagens normalmente são compostas por objetos que

possuem forma previsível e regular e, por conseguinte, alguns níveis de cinza são mais

prováveis do que outros.

Redundância de codificação também pode ser referenciada como redundância de

codificação de tons ou cor. Um bom exemplo seria uma imagem que contém apenas oito

cores que necessitaria de apenas três bits em compartimento, no entanto, ao ser codificada

usando um byte (8 bits), é reservado um espaço que poderia ser usado para definir 256 tons de

cinza (AZEVEDO; CONCI; LETA, 2008). Nesse exemplo, o espaço alocado para armazenar

a imagem é maior do que aquele realmente necessário, caracterizando um desperdício de

recurso computacional.

A segunda delas, a redundância inter-pixel, afirma que as relações entre os pixels

de uma imagem resultam das relações geométricas ou estruturais entre os objetos que a

compõem. O valor de um determinado pixel é previsível a partir dos seus vizinhos

(GONZALEZ; WOODS, 2000). O volume de informação será menor caso um objeto possa

ser representado ou identificado apenas pela descrição de seu contorno na imagem

(AZEVEDO; CONCI; LETA, 2008). Com isso, vários pixels que compõem uma imagem não

precisam estar armazenados. Eles poderão ser calculados em vez de estarem contidos na

imagem propriamente dita.

A terceira delas, a redundância espectral, ocorre em imagens com mais de uma

faixa espectral. Existe uma correlação entre as diferentes bandas espectrais de uma imagem e,

quando valores espectrais para a mesma posição na matriz de pixels estão correlacionados, é

necessário apenas um canal com informações detalhadas, em vez de vários canais como

normalmente são utilizados (AZEVEDO; CONCI; LETA, 2008). Nesse caso, a exemplo da

redundância de codificação, ocorre um desperdício de alocação de espaço para guardar

informações que podem ser computadas.

A última delas, redundância psicovisual, elimina informações não essenciais para

o processamento visual humano. O olho não responde com a mesma sensibilidade às

informações visuais de uma imagem. Fatores como o brilho, por exemplo, não depende

simplesmente da luz refletida em uma determinada região. A redundância psicovisual é

Page 17: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

17

diferente das anteriores por estar associada a uma informação visual quantificável ou real

(GONZALEZ; WOODS, 2000). A eliminação de informações psicovisualmente redundantes

não acarreta uma perda de percepção da imagem. O ser humano não detecta ruídos no meio

das imagens ou pequenas variações de tons (AZEVEDO; CONCI; LETA, 2008). Isso

significa dizer que em um processo de redução que se utilize uma diminuição de dados sem

que haja prejuízo para a correta compreensão do conteúdo, estará presente uma otimização,

não só desejável, como imperceptível ao ser humano.

É importante existir formas de identificar se uma imagem apresenta ou não

redundância. Segundo a teoria da informação, quanto menos bits forem necessários para

conter todos os valores ou significados, sobre um sistema, menor será sua entropia. O cálculo

da entropia de uma imagem pode ser utilizado para descobrir a quantidade de redundância

baseado na utilização da seguinte relação:

���� � ����� �� ����

���

Onde � representa cada símbolo do alfabeto-fonte A definido como

{�, �, �, … , �}. Para imagens o alfabeto pode ser definido como sendo o tom de cinza, a

tabela de cores ou cada um dos valores RGB (AZEVEDO; CONCI; LETA, 2008).

Considerando uma imagem de tamanho 4x8 pixels em escala de cinza conforme a

tabela 1, calcula-se a entropia dessa imagem a partir da probabilidade de cada nível de cinza

presente nela, segundo a tabela 2.

Tabela 1: Imagem 4x8 em escala de cinza para efeito do cálculo.

Fonte: (AZEVEDO; CONCI; LETA, 2008).

4 4 4 4 64 64 128 128 4 4 4 4 64 64 128 128 4 4 16 16 128 128 128 128 4 4 16 16 128 128 128 128

Page 18: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

18

Tabela 2: Probabilidade de nível de cinza.

Fonte: (AZEVEDO; CONCI; LETA, 2008).

Cor Total Probabilidade 4 12 12/32 = 3/8

16 4 4/32 = 1/8 64 4 4/32 = 1/8 128 12 12/32 = 3/8

Utilizando a relação de entropia, supondo que a imagem tenha 256 níveis de cinza

e que a unidade usada seja bits, a base do logaritmo usado na relação depende da unidade

utilizada para medir a informação, temos que:

H(A) = -p(4) * log2(p(4)) – p(16) * log2(p(16)) – p(64) * log2(p(64)) – p(128) * log2(p(128))

H(A) = -[3/8 * log2 (3/8) + 1/8 * log2 (1/8) + 1/8 * log2 (1/8) + 3/8 * log2 (3/8)]

H(A) = -[3/4 * log2 (3/8) + ¼ * log2 (1/8)]

H(A) = -[3/4 * (log23- log28) + ¼ * (log21 – log28)]

H(A) = -[3/4 * (log23-3) + ¼ * (0-3)] = 0,81 bits/pixel

A entropia dessa imagem então é de 0,81 bits por pixel. No caso de uma imagem

4x8, temos: 0,81 * 32 = 25 bits de informações redundantes.

1.3 Modelos de compressão

Um sistema de compressão de dados ou imagens consiste em dois blocos: um

codificador e um decodificador. O codificador irá criar um conjunto de símbolos a partir da

imagem de entrada. A imagem é transmitida ao longo de um canal e repassada no

decodificador para gerar e reconstruir uma imagem de saída (AZEVEDO; CONCI; LETA,

2008). Essa estrutura (codificador-decodificador) é a básica para compreensão de modelos de

compressão mais complexos como aqueles que serão abordados posteriormente nesse

trabalho.

Page 19: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

19

Fig. 1 - Sistema genérico de codificação e compressão de dados.

Fonte: (MARQUES FILHO; VIEIRA NETO, 1999).

Na figura 1, o codificador fonte é o responsável pela eliminação de qualquer

redundância existente na entrada (MARQUES FILHO; VIEIRA NETO, 1999). Os

codificadores e decodificadores de canal são responsáveis por amenizar o impacto do ruído do

canal através da inserção de uma forma controlada de redundância nos dados codificados

(GONZALEZ; WOODS, 2000). O codificador fonte e o decodificador fonte podem seguir

diversas abordagens de redundâncias modeladas em operações distintas (MARQUES FILHO;

VIEIRA NETO, 1999). Definir as operações, tanto para o codificador fonte quanto para o

decodificador, determina a abordagem de compressão para cada padrão existente.

Fig. 2 - Modelo de (a) codificador fonte e (b) decodificador fonte.

Fonte: (GONZALEZ; WOODS, 2000).

O modelo de codificador fonte na figura 2 (a), primeiramente projeta a entrada em

um formato para reduzir as redundâncias inter-pixel e facilitar nos estágios posteriores. Tal

operação é conhecida como mapeamento. Uma segunda operação seria de reduzir a

aproximação dos valores ao valor real da saída após o mapeamento pela eliminação de

redundâncias psicovisuais. Esse estágio é denominado de quantizador. Um terceiro estágio, o

codificador de símbolos, cria um código de comprimento fixo ou variável para representar a

Page 20: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

20

saída do quantizador e mapeia a saída de acordo com o código (GONZALEZ; WOODS,

2000). Estágios semelhantes ocorrem em outros padrões de codificação existente.

O decodificador de fonte na figura 2 (b) desempenha as operações inversas do

estágio do codificador de símbolos e da operação de mapeamento (GONZALEZ; WOODS,

2000). Outras operações para padrões de compressão mais robustos são inseridas ao conjunto

que compõe todas as etapas entre o codificador e o decodificador.

O tempo para compressão e descompressão nem sempre são iguais. Quando o

tempo de compressão de vídeo é muito superior ao de descompressão, denomina-se

compressão assimétrica. Para compressão de vídeo, a compressão assimétrica permite, por

exemplo, que um vídeo possa ser armazenado em servidores e acessado por uma

decodificação mais rápida pelos usuários (AZEVEDO; CONCI; LETA, 2008). Esse tempo

para compressão e descompressão está diretamente relacionado ao nível de complexidade, ao

número de operações feitas no modelo e ao método de compressão.

1.4 Métodos de compressão de imagens

Duas são as categorias de métodos compressão: com e sem perdas. Métodos que

não mudam os valores no arquivo de imagem são descritos como técnicas de compressão sem

perdas, e as que criam mudanças nas cores são referenciadas como técnicas de compressão

com perdas (HEARN; BAKER, 2004). O padrão que será abordado nesse trabalho está

inserido na categoria de compressão com perdas.

Na compressão com perdas, são retiradas informações não significantes de acordo

com a necessidade e os critérios de fidelidade desejados. A compressão com perdas não

preserva todos os dados da informação, entretanto é mais eficiente com relação ao espaço

necessário para o armazenamento das imagens (AZEVEDO; CONCI; LETA, 2008). Nesse

caso, não preservar todos os dados, não implica em uma distorção da interpretação da

informação, mas apenas a retirada de dados dispensáveis.

Compressão sem perdas, também conhecida como compressão com preservação

da informação, explora a redundância entre os pixels na reprodução de uma imagem ou vídeo

sem que nenhum dado seja perdido durante o processo de compressão (AZEVEDO; CONCI;

Page 21: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

21

LETA, 2008). Diferente do outro método de compressão, na compressão sem perdas todos os

dados da informação são preservados.

Técnicas de compressão sem perdas são úteis para dados e imagens especiais. Um

bom exemplo seria a análise de imagens na biomedicina. Nesses casos, a perda de qualquer

informação da imagem pode acarretar em falhas de proporções catastróficas (AZEVEDO;

CONCI; LETA, 2008). Em situações especiais, a consequência que a perda de qualquer dado

possa causar deve ser muito bem avaliada.

Os métodos de compressão com e sem perdas cumprem um papel importante no

desenvolvimento e adoção dos principais padrões de compressão de imagens atuais

(GONZALEZ; WOODS, 2000). Gonzalez e Woods se referem, neste caso, que ao adaptar o

método de compressão a cada necessidade, define-se qual o padrão de compressão será o

ideal.

Em síntese, de acordo com a técnica para redução de codificação, o método

utilizado para eliminação de dados redundantes é o que permite a informação contida na fonte

ser reconstruída após o processo de compressão e descompressão.

1.5 Técnicas para redução de codificação

Existem várias técnicas e algoritmos que se propõem a reduzir significantemente a

redundância de codificação. Os mais usados são as codificações RLE (Run-Lenght Encoding),

LZ (assim chamado devido aos seus idealizadores Abraham Lempel e Jacob Ziv), LZW (um

aperfeiçoamento do LZ feita por Terry Welch) e o algoritmo de Huffman (MARQUES

FILHO; VIEIRA NETO, 1999). É importante a identificação dos algoritmos para entender

como as operações para um determinado padrão de compressão funcionam. Abaixo pode-se

observar a explicação de algumas dessas técnicas.

“Quando aplicado à codificação de cada símbolo da fonte, individualmente, o

código de Huffman fornece o menor número inteiro possível de unidades de informação (bits)

por símbolo de fonte” (MARQUES FILHO; VIEIRA NETO, 1999, p. 180). O algoritmo ou

técnica de Huffman exemplifica de maneira simples como se conseguir uma redução de

codificação.

Page 22: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

22

A técnica de Huffman foi um método utilizado com sucesso, inicialmente, para

compressão de textos. Em todo o texto, alguns caracteres ocorrem mais frequentemente do

que outros. Por exemplo, em textos em Inglês, as letras E, A, O, T são normalmente mais

usadas do que J, Q, X (PU, 2006). Para simular cada ocorrência de uma letra em um texto,

utiliza-se normalmente um código de comprimento fixo, como os 8 bits da tabela ASCII

(American Standard Code for Information Interchange). A ideia de Huffman era de

representar cada cadeia de caracteres com a menor quantificação de dados possível e a

frequência de ocorrência ao longo do texto. Reduzindo assim, o número total de bits para

representar o texto (PU, 2006). Em outras palavras isso significaria dizer que, de posse da

informação de quantas vezes um determinado dado ocorre, a informação poderia ser

reconstruída.

Outra perspectiva de aplicação das técnicas de compressão pode ser visualizada na

eliminação da redundância baseada na compressão por transformada (AZEVEDO; CONCI;

LETA, 2008). Compressão por transformada, assim como a técnica de Huffman, tem como

objetivo buscar os dados redundantes que podem ser eliminados. Para o foco de atenção neste

trabalho veremos sua aplicação em relação às imagens.

Nas técnicas baseadas em transformada, a imagem é mapeada para um conjunto

de coeficientes que são quantificados e codificados por uma transformação linear

“inversível”. Na maioria das imagens, existem coeficientes de pequena magnitude que podem

ser descartados sem causar distorção significativa. A meta desse processo é descorrelacionar

os pixels ou usar a correlação de forma a compactar, o máximo possível, a informação em um

número menor de coeficientes (AZEVEDO; CONCI; LETA, 2008). Os métodos que definem

o processo para o “descorrelacionamento” dos pixels serão listados abaixo.

“Sistemas de codificação por transformada com base nas transformadas de

Karhunen-Loève (KLT), Fourier discreta (DFT), cosseno discreta (DCT), Walsh-Hadamard

(WHT) e muitas outras têm sido construídos e/ou estudados extensivamente” “sic”

(GONZALEZ; WOODS, 2000, p. 267). Para efeito de estudo desse trabalho, a DCT projeta-

se como a codificação mais importante por fazer parte do padrão que será acometido

posteriormente.

A DCT é o método de codificação por transformada mais frequentemente usada.

Algoritmos de implementação eficientes para a DCT fornecem uma melhor fidelidade na

Page 23: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

23

reconstrução de cores da imagem, uma taxa de compressão maior, além de serem executados

rapidamente (HEARN; BAKER, 2004). Para imagens de alta resolução, como ocorre na TV

Digital, a DCT é, portanto, o método preferencial.

DCT é uma transformada ortogonal cuja propriedade de concentração de energia

em poucos coeficientes constitui um atrativo para seu uso em compressão de imagens

(LINHARES; DINIZ; CORREIA, 2007). “A concentração de energia de uma matriz de pixels

em poucos coeficientes proporciona o descorrelacionamento dos pixels vizinhos e torna

possível eliminar ou reduzir a presença das altas frequências de uma imagem durante o

processo de quantização” (LINHARES; DINIZ; CORREIA, 2007, p. 22).

A formulação matemática da DCT direta 1-D pode ser representada da seguinte

maneira:

A DCT em si não compacta os dados. A análise dos valores resultantes permite

escolher os dados que podem ser descartados sem perda visível de qualidade (MARQUES

FILHO; VIEIRA NETO, 1999). O interesse na DCT desponta por está presente diretamente

no padrão de compressão da TV Digital. A DCT foi descrita como a responsável por

identificar dados que podem ser eliminados. Depois de identificados esses dados, os fatores de

padronização e fidelidade das fontes são então questionados, tratando-se dos próximos

assuntos a serem abordados neste trabalho.

1.6 Fidelidade

A qualificação dos resultados de uma compressão de imagens pode ser avaliada

segundo a taxa de compressão, que é a razão do tamanho do dado ou imagem original pelo

tamanho após a compressão. Em uma técnica de compressão sem perdas, quanto maior a taxa,

melhor a técnica. Para técnicas com perdas, deve-se considerar a qualidade final (AZEVEDO;

CONCI; LETA, 2008). Nas técnicas com perdas é necessário comparar a imagem original

com a imagem pós-processo de compressão para identificar o quanto a qualidade entre ambas

está próxima.

Page 24: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

24

Considerando os processos de compressão pela eliminação de redundância,

informações de interesse podem ser perdidas. Para quantificar a extensão dessas perdas, são

utilizados dois grupos gerais de critérios: critérios de fidelidade objetiva e critérios de

fidelidade subjetiva (MARQUES FILHO; VIEIRA NETO, 1999). Verificar os aspectos de

fidelidade entre imagens será a funcionalidade desempenhada pela ferramenta desenvolvida

nesse trabalho.

Critérios de fidelidade objetivos são assim denominados quando os critérios entre

os aspectos dos dados ou imagens são expressos numericamente a fim de permitir a

comparação das técnicas de compressão, através de uma função entre as imagens. Quando os

critérios são estabelecidos por um observador humano, denominam-se critérios de fidelidade

subjetivos (AZEVEDO; CONCI; LETA, 2008). Para melhor compreensão, a tabela 3

representa os critérios utilizados para a HDTV (High Definiton TV ou televisão de alta

definição).

Tabela 3: Notas para um critério de avaliação subjetivo usando HDTV.

Adaptado de: (AZEVEDO; CONCI; LETA, 2008).

Valor Avaliação Descrição

1 Excelente Imagem de extrema qualidade, o máximo desejável.

2 Muito bom Imagem de alta qualidade e visualização agradável. Interferência não é visível.

3 Passável Imagem de qualidade aceitável. A interferência não é desagradável.

4 Marginal Imagem de qualidade pobre. A interferência é de alguma forma desagradável.

5 Inferior Imagem muito pobre, mas pode-se vê-la. Interferência muito presente.

6 Não usável Imagem tão ruim que não se consegue ver.

Neste trabalho, o enfoque será dado aos critérios de fidelidade objetivos, uma vez

que a aplicação a ser desenvolvida utiliza algoritmos e cálculos matemáticos para determinar

os aspectos diferenciais entre as imagens.

1.7 Padronizações de compressão de Imagens

Para compressão de imagens biníveis (binárias), por exemplo, os padrões do

Grupo 3 e 4 do Consultative Committee of International Telephone en Telegraph (CCITT) são

amplamente usados. Esses padrões foram originalmente projetados para transmissão de

documentos em redes de telefone, mas existe uma grande variedade aplicada em

computadores (GONZALEZ; WOODS, 2000). Para entender como funciona a padronização

Page 25: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

25

que é foco de interesse para o trabalho, será descrito o funcionamento dos padrões do Grupo 3

e 4.

Na padronização do Grupo 3 é aplicada uma técnica não-adaptativa por código de

corrida unidimensional, em que pelo menos K-1 linhas de cada grupo de K linhas (para K=2

ou 4) são codificadas otimamente de uma maneira bidimensional. A padronização do Grupo 4

é uma simplificação do Grupo 3, em que apenas codificação bidimensional não-adaptativa é

permitida (GONZALEZ; WOODS, 2000). Os padrões são normalmente evolutivos, as

experiências anteriores são reutilizadas para aprimorar os novos padrões.

Para compressão de imagens de tons contínuos, a CCITT e a ISO (International

Organization for Standardization) definiram várias padronizações que tratam de imagens

monocromáticas, coloridas, aplicações de imagens estáticas e as de sequência de quadros

(vídeo) (GONZALEZ; WOODS, 2000). A CCITT foi responsável pela difusão de padrões de

vídeos mais utilizados atualmente.

Seguindo uma breve linha cronológica, a padronização H.261 (também chamada

de Px64) criada pela CCITT e desenvolvida pela ITU-T (International Telecommunication

Union, Telecommunication Standardization Sector), foi o primeiro padrão de codificação de

vídeo difundido com sucesso, projetado para aplicações de teleconferência por vídeo, capaz

de comprimir vídeos para as taxas de transmissão mais comuns na época (entre 80 e 320

kbit/s para comunicações em vídeo digital) (GONZALEZ; WOODS, 2000; FONSECA,

2008). O padrão que será avaliado nesse trabalho é a versão mais atual do padrão H.261.

As padronizações MPEG I e MPEG II, desenvolvidas pelo Moving Picture

Experts Group (MPEG), propunham uma padronização de compressão de vídeo com

“qualidade de entretenimento” para o armazenamento de imagens comprimidas em meios

digitais (GONZALEZ; WOODS, 2000). Tanto a padronização MPEG como a H.261

estendem abordagens bastante semelhantes.

O ITU-T, inicialmente, focou-se na compressão de vídeo digital priorizando

aplicações em telefonia, enquanto o MPEG considerou outros aspectos como a codificação de

áudio, sincronização e “multiplexação” de áudio e vídeo mais relevantes (MANUEL, 2007).

Atualmente o ITU-T e o ISO/IEC MPEG são os principais órgãos responsáveis pela definição

de tais padronizações.

Page 26: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

26

As diferenças entre as padronizações MPEG e a H.261 estão na maneira como são

estimados os movimentos. A padronização H.261 especifica que cada quadro seja comparado

apenas com o quadro anterior, enquanto a padronização MPEG não define quantos quadros

podem ser usados para estimação de movimento (GONZALEZ; WOODS, 2000). Ambos os

padrões utilizam a DCT descrita na seção 1.5.

Inserido nesse contexto, sobre informações pertinentes aos padrões de compressão

de imagens atuais, o H.264/AVC (Advanced Video Coding), evolução dos padrões citados,

será o padrão analisado nesse trabalho.

Page 27: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

2 CODECS H.264 E A TV DIGITAL BRASILEIRA

O presente capítulo aborda como os equipamentos de vídeo digital necessitam de

uma padronização de técnicas de codificação para que possam se comunicar. Aqui serão

esclarecidos a definição e o comportamento do padrão de codificação H.264/AVC, bem como

o seu relacionamento com a TV Digital Brasileira.

2.1 TV Digital Brasileira

“Estamos presenciando a implantação de uma nova geração de sistemas de TV: a

Televisão Digital e a TV de Alta Definição” (STOLFI, 2004). A TV Digital ao longo dos

próximos anos irá substituir a TV analógica.

Segundo Stolfi (2004) a introdução do modelo de TV a cores, ocorreu em 1953.

Entretanto, o formato da TV manteve-se praticamente inalterado até os dias atuais.

Tabela 4: Marcos na evolução da TV.

Adaptado de: (STOLFI, 2004).

Ano Marco 1884 Varredura de Imagens por discos rotativos (Paul Nipkov) 1900 Conceito de “Televisão” (Constantin Persky) 1925 Primeiras transmissões de TV (J. Baird, C. Jenkins) 1928 Transmissões comerciais de TV (Hugo Gernsback) 1940 Testes de transmissão de TV a cores 1941 Transmissões no padrão “M” (CBS) 1948 Padrão de 50 Hz / 625 linhas é adotado na Europa 1952 Transmissão de TV em UHF 1953 TV a Cores padrão NTSC (RCA) 1965 Sistema PAL de transmissão de TV a Cores 1986 Transmissão de som estéreo na TV (BTSC) 1989 Sistema Hi-Vision (NHK)

Page 28: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

28

A HDTV possibilita a transmissão em uma resolução superior a tradicional. A TV

analógica tem 480 linhas verticais e normalmente 640 linhas horizontais, enquanto a HDTV

chega a uma resolução de até 1080 linhas verticais por 1920 linhas horizontais (BENOIT,

2008). O aproveitamento dos recursos da TV em alta definição deverá trazer à população

brasileira a possibilidade real de interatividade.

Os equipamentos vídeo digital necessitam de uma padronização de técnicas de

codificação de vídeo para se comunicarem. Durante o final da década de 80 e o início da

década de 90, os primeiros esforços para a padronização aconteceram através do ITU-T Vídeo

Coding Experts Group (VCEG), com a criação do padrão H.261 (MANUEL, 2007).

A norma ABNT (Associação Brasileira de Normas e Técnicas) NBR 15602-1

especifica a codificação de vídeo em alta definição, resolução-padrão e resolução reduzida,

incluindo os parâmetros para os sinais na entrada do codificador e as restrições ao processo de

codificação, aplicáveis ao sistema brasileiro de televisão digital terrestre (SBTVD). Ela

especifica que a ferramenta de compressão de vídeo do sistema de televisão digital terrestre

brasileiro deve obrigatoriamente estar de acordo com a ITU-T Recommendation H.264.

2.2 H.264/AVC

H.264/AVC é o mais novo padrão de compressão de vídeo, resultante da

colaboração entre as equipes ISO/IEC Moving Picture Experts Group (MPEG) e ITU-T Video

Coding Experts Group (VCEG) sob a agregação denominada Joint Video Team (JVT)

(FONSENCA, 2008; HANZO; CHERRIMAN; STREIT, 2007). O H.264 é uma evolução dos

padrões de vídeos mais difundidos.

O H.264/AVC oferece elevada eficiência de compressão de uma classe específica

de sinais de vídeo resultantes da captura de cenas reais (e não sintéticas), além de

proporcionar representação de vídeo conveniente à transmissão tanto para aplicações

interativas quanto não-interativas (FONSENCA, 2008). Em vista disso, é notável sua grande

aceitação nos meios de comunicação digital.

O interesse pelo padrão H.264 tem sido crescente com relação ao seu uso em

novos sistemas de armazenamento e de transmissão de vídeo digital por possuir um ótimo

desempenho com taxas de bits 50% menor do que seu antecessor MPEG-2, mantendo a

Page 29: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

29

mesma qualidade (MANUEL, 2007). O H.264, comparado aos outros padrões, torna-se mais

eficiente por diminuir a relação de distorção causada no processo de compressão.

Como Manuel (2007, p.09) explica:

A compressão sem perdas limita-se a um pequeno nicho de aplicações que não toleram qualquer distorção, como vídeos médicos ou sistemas de arquivamento. Por sua vez, a compressão com perdas é a mais usada e difundida, já que certas distorções podem ser imperceptíveis ao olho humano, ou mesmo toleradas – é este o tipo de compressão que trata o padrão H.264.

“O H.264 possui uma série de vantagens em relação a seus antecessores, com

respeito às etapas de predição, transformação e codificação” (MANUEL, 2007, p. 4). Cada

etapa na compressão H.264 possui melhoramentos que serão listados posteriormente.

O codec H.264 oferece substancialmente uma codificação com melhor eficiência

na mesma qualidade de vídeo comparado ao MPEG-4 ou H.263 (HANZO; CHERRIMAN;

STREIT, 2007). Esses padrões citados são os antecessores imediatos do H.264/AVC.

A evolução do H.264 será alcançada com o investimento em diferentes pontos do

codificador, resultando provavelmente em um conjunto de “pequenas melhorias” nos

processos de predição, transformação e codificação (MANUEL, 2007). Ainda segundo

Manuel (2007), provavelmente em 2010 o padrão será denominado H.265.

Um dos conceitos fundamentais de H.264 é a separação do vídeo em duas

camadas distintas: camada de codificação e camada de adaptação de rede. A camada de

codificação do vídeo é responsável pela codificação eficiente representando o conteúdo do

vídeo, enquanto a camada de adaptação de rede é responsável pelo empacotamento dos dados

codificados de forma adequada para transmissão através da rede (HANZO; CHERRIMAN;

STREIT, 2007). Significando dizer que, além da abordagem de eliminação de redundância, o

H.264/AVC também busca um melhor desempenho a reprodução do vídeo.

O processo de transformação é aplicado para transformar valores de um bloco

visando transformar o sinal para o domínio de frequência espacial para reduzir as

redundâncias espaciais e descorrelacionar a concentração de informação nos coeficientes

(MANUEL, 2007). Manuel (2007) explica ainda que o H.264 utiliza uma transformada

simples que utiliza apenas números inteiros cujos resultados se aproximam muito da

transformada DCT 4×4 .

Page 30: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

30

Fig. 3 - Esquema do codificador H.264.

Fonte: (HANZO; CHERRIMAN; STREIT, 2007).

A figura 3 representa o esquema do codificador H.264. O fluxo de dados pelo

codificador é formado por dois caminhos, um caminho "Direto" orientado da esquerda para a

direita e um caminho evolutivo de "Reconstrução" da direita para a esquerda (HANZO;

CHERRIMAN; STREIT, 2007).

Manuel (2007) lista algumas vantagens do H.264 com relação às transformadas:

predição intra-quadro, codificação por transformada e sua codificação por entropia.

2.2.1 Predição Intra-quadro

A estrutura do H.264/AVC é definida por uma técnica de predição Intra-quadro

em que amostras do sinal de vídeo agrupadas em macroblocos de 16×16 pixels. A predição

existe para como unidade básica para identificar informações de macroblocos já codificados e

pertencentes ao mesmo quadro (MANUEL, 2007). Predição, neste contexto, tem o mesmo

significado de prognóstico.

2.2.2 Codificação por transformadas

Fonseca (2004) descreve como o H.264/AVC emprega a codificação por

transformadas para viabilizar a codificação do sinal residual. Essa melhora é efetuada por

meio da redução da redundância espacial existente no erro de predição.

Page 31: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

31

O H.264/AVC não aplica a DCT bidimensional em blocos de 8×8 pixels, como

nos padrões MPEG-1 e MPEG-2. No H.264/AVC são usadas transformadas inteiras

reversíveis com tamanhos variados de 8×8, 4×4 a 2×2 amostras. Por conseguir utilizar

transformadas menores que a DCT de 8×8, isso acaba permitindo ao compressor codificar

melhor o resíduo de predição no caso em que são selecionadas partições de tamanhos menores

que 8×8 (MANUEL, 2007). Isso explica a garantia de uma melhor compactação do sinal

devido à menor variação encontrada em pequenas regiões de um quadro digital.

2.2.3 Codificação de Entropia

O padrão H.264/AVC possui um alto grau adaptativo às fontes por incorporar um

modelamento de contextos do sistema de codificação de entropia. Esse sistema analisa a

hipótese de que a estatística dos sinais seria estacionária e levanta, de antemão, códigos de

comprimento variável de tamanho excelente para os elementos sintáticos normatizados

(MANUEL, 2007). Como essa hipótese nem sempre era verificada em outros padrões, o

H.264 é então mais hábil na remoção da redundância do sinal.

2.3 Perfis do H.264/AVC

O H.264/AVC foi desenvolvido para ser o mais genérico possível e capaz de

atender uma vasta gama de aplicações, taxas, resoluções, qualidades e serviços (FONSECA,

2008). Entretanto, as demandas das aplicações podem ser bastante diferentes. Em vista disso,

a especificação do H.264/AVC define perfis e níveis de forma a maximizar a

interoperabilidade e proporcionar uma maior aceitação do padrão.

Nas palavras de Manuel (2007) um perfil é definido como sendo um subconjunto

da sintaxe completa do bitstream (método de conversão Digital/Analógica que emprega a

leitura bit por bit em vez do método convencional de 16 bits por vez) ou um subconjunto de

ferramentas de codificação.

Um perfil deve operar elementos sintáticos específicos para indicar a presença ou

ausência de elementos sintáticos que venham a ser aproveitados em seguida no bitstream

(MANUEL, 2007). Isso significa dizer que os decodificadores compatíveis com um mesmo

perfil suportam as mesmas ferramentas de codificação. Várias implementações, tanto em

Page 32: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

32

softwares quanto em hardware, para codecs H.264 foram desenvolvidas desde o final do ano

de 2003, quando o padrão foi lançado.

2.4 Codecs H.264

A implementação de codecs existem para exibição de vídeos em formatos

próprios para o computador. Das aplicações de softwares desenvolvidas para o padrão H.264,

até julho de 2007, pode-se citar várias dezenas (31 itens segundo o departamento The

Graphics & Media Laboratory de Ciência da Computação do MSU) compostas tanto por

softwares pagos, como também softwares com código fonte aberto (MSU, 2009).

Tabela 5: Softwares para codecs MPEG-4 AVC/H.264.

Fonte: (MSU, 2009).

1. Ateme H.264/MPEG-4 AVC Codec (Ateme)

http://www.ateme.com/BB_encoder_pc.php

2. Elecard Elecard Mobile Converter v 2.0 with AVC support (Elecard)

http://elecard.com/products/products-pc/consumer/video-converter/

3. Mainconcept H.264 (MainConcept AG)

http://www.mainconcept.com/site/?id=4786

4. QuickTime 7 H.264 (Apple Computer, Inc.)

http://www.apple.com/quicktime/technologies/h264/

5. Intel IPP H.264 codec (Intel Corporation)

http://www.intel.com/cd/software/products/asmo-na/eng/perflib/ipp/index.htm

6. VSS H.264 Video Codec (Vanguard Software Solutions, Inc.)

http://www.vsofts.com/h264/

7. Sorenson AVC Pro (part of Sorenson Squeeze 4) (Sorenson Media, Inc.)

http://www.sorensonmedia.com/pages/?pageID=2

8. SONY Video Editor Vegas 6c with AVC support (Sony Corp.)

http://www.sonymediasoftware.com/products/showproduct.asp?PID=965

9. FastVDO H.264 (FastVDO LLC)

http://www.fastvdo.com/H.264.html

10. LEAD H.264 Video codec (LEAD Technologies)

http://www.leadcodecs.com/Codecs/LEAD-H264.htm

11. PowerEncoder MPEG-4 AVC (CyberLink Corp.)

http://www.cyberlink.com/multi/products/main_43_ENU.html

12. AMD ATI Avivo H.264 (ATI Technologies Inc. - now part of Advanced Micro Devices Inc.)

http://ati.amd.com/technology/avivo/h264.html

13. Mpegable AVC Codec (dicas digital image coding GmbH)

http://www.mpegable.com/mpegableDSsuite

14. Expert H.264 (PixelTools Corporation)

http://www.pixeltools.com/experth264.html

15. MPEG-2/HDV/H.264 software (KDDI R&D Labs. Inc.)

Page 33: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

33

http://avs.kddilabs.jp/en/mpeg/mpfs/41/index.html

16. MiraVid Inc. H.264 decoder (MiraVid Inc.)

http://www.miravid.com/product_avcDec.html

17. bSoft ltd MPEG-X/H.26X Encoder and Decoder (bSoft ltd.)

http://www.bsoft.info/products/video.html

18. Fraunhofer IIS H.264 Codec (Fraunhofer IIS)

http://www.iis.fraunhofer.de/fhg/iis/EN/bf/amm/projects/video/index.jsp

19. Scientific Atlanta - UBLive-264-C64 (Scientific Atlanta (was UB Video Incorporated))

http://www.scientificatlanta.com/products/customers/UBvideo.htm

20. Roxio Popcorn with AVC encoder (Sonic Solutions)

http://www.roxio.com/enu/products/popcorn/standard/features.html

21. NEX VISION H.264 (NEX VISION)

http://www.nexvision.fr/html/products.htm

22. Video Labs H.264/AVC (Video Laboratories Ltd was Imagicity, UK)

http://www.vid-labs.com/products/products.htm

23. SPIRIT H.264 Video Codec (SPIRIT)

http://www.spiritdsp.com/products/components/video_codecs/h264/

24. CoreAVC H.264 Video Codec (CoreCodec, Inc.)

http://www.coreavc.com/

25. CINEMA CRAFT HD encoder (Omni Communications.)

http://www.omnidvdmedia.com/products_cinemacrafthde.shtml

A tabela 5 é uma lista de vinte e cinco implementações para o codec H.264

desenvolvidas por empresas com finalidades comerciais.

Tabela 6: Softwares OPEN-SOURCE para codecs H.264

Fonte: (MSU, 2009).

1. x264 HP encoder (free, supported by VideoLAN)

http://developers.videolan.org/x264.html

2. JM 9.6 reference H.264 encodec (free, supported by Joint Video Team ISO&ITU-T)

http://bs.hhi.de/~suehring/tml/

3. libavcodec H.264 Decoder (Project FFMPEG)

http://ffmpeg.mplayerhq.hu/

4. Minimal H.264 decoder (by Martin Fiedler)

http://keyj.s2000.ws/?page_id=41

5. Hdot264 Pre-Alpha (Project Hdot264)

http://sourceforge.net/projects/hdot264/

6. t264 (Project t264)

http://sourceforge.net/projects/t264

A tabela 6 exibe seis implementações para o padrão H.264 cujos códigos estão

abertos para usuários e desenvolvedores. Esses últimos codecs são de utilização livre, não

Page 34: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

34

necessitando de uma licença para utilização. Desenvolvedores podem contribuir na correção

de erros e na documentação, desde que a condição de liberdade seja mantida.

Com a finalidade de avaliar os codecs do padrão H.264, as implementações

MainConcept H.264 da tabela 5 e o x264 da tabela 6 foram escolhidas para serem

comparadas. Aliado a isso, uma pesquisa, sobre aplicativos que pudessem quantificar a

qualidade entre os vídeos, foi efetuada. Devido ao déficit para encontrar tais ferramentas,

criou-se a necessidade de desenvolvimento de uma aplicação que atendesse essa premissa.

Page 35: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

3 PROPOSTA DE CODIFICAÇÃO DE VÍDEOS

Este capítulo apresenta o desenvolvimento de uma aplicação que utiliza conceitos

de Computação Gráfica para comparar imagens. Sua utilização nesse trabalho será aplicada

sobre vídeos codificados a partir de codecs relacionados no capítulo 2.

3.1 Comparador de Imagens

A aplicação foi desenvolvida usando a linguagem de programação C# sob a

plataforma de desenvolvimento Microsoft© Visual Studio 2005. O principal objetivo dessa

ferramenta é apontar os pixels distintos entre as imagens e fornecer subsídios para quantificar

as diferenças entre elas.

3.1.1 Estrutura do programa

O programa é constituído basicamente por duas classes. A primeira classe contém

as funções para controle e processamento das imagens. A segunda representa uma entidade

para armazenamento das informações conseguidas após o processamento dos algoritmos de

varredura. Ambas as classe serão apresentadas abaixo e suas utilizações descritas na seção

3.1.2.

Page 36: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

36

Fig. 4 - Classe ImagemResultante.

A figura 4 representa a classe ImagemResultante. Essa classe é a responsável por

armazenar informações sobre a comparação entre a imagem original e a imagem após o

processo de compressão. Nela são registrados valores que representam as quantidades de

níveis azuis, vermelhos e verdes não coincidentes, bem como o total de pixels que possuem

qualquer diferenciação nas imagens que forem comparadas. Os resultados guardados nessa

classe são exibidos posteriormente ao usuário da aplicação.

A exibição dos resultados calculados é exposta de duas formas distintas: através

de valores em forma de porcentagem e na forma de uma imagem resultante. A segunda forma

é uma imagem na qual os pixels distintos entre as imagens são realçados.

Fig. 5 - Classe Comparador.

A figura 5 representa a principal classe da aplicação. Nela estão implementadas as

funções Comparar, CalcularHistogramaRGB e a função PorcentagemDiferença.

A função Comparar executa um algoritmo desenvolvido para buscar os pixels

distintos entre imagens. A função CalcularHistogramaRGB calcula o histograma das imagens

e a PorcentagemDiferença a porcentagem de distinção entre as imagens.

Page 37: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

37

3.1.2 Detecção de diferenças

A aplicação processa as diferenças entre as imagens analisando pixel a pixel. A

distinção dos pixels considera uma margem de distinção definida pelo usuário. Essa margem é

identificada na aplicação como “nível de comparação”.

O nível de comparação é um valor compreendido entre um e dez, utilizado para

definir o máximo e mínimo para considerar um pixel como diferente entre as imagens que

forem comparadas. Por exemplo, quando o valor assinalado for 10, um pixel que na escala de

cor vermelha possua um valor correspondente a 200, apenas será considerado diferente de um

com a mesma coordenada na imagem original e que esteja com o nível de vermelho acima de

210 ou abaixo de 190. Quanto maior for esse valor de comparação, menor será o critério para

distinguir os pixels.

Além disso, foi implementada uma função para calcular o Erro Quadrático Médio

(EQM). Dessa forma, pode-se obter um valor médio para as variações entre todos os níveis de

comparação e imagem original. O EQM é calculado seguindo a formula abaixo:

2eerms = sendo que ∑∑∑∑−

=

=

=

=

−==

1

0

1

0

22

1

0

1

0

22

2 )],(),([1

),(1 N

x

N

y

N

x

N

y

yxfyxgN

yxeN

e

Outra opção para localizar alterações aborda a diferenciação entre os histogramas

das imagens. Para cada imagem selecionada a aplicação se encarregará de criar o histograma

RGB (Red, Green e Blue em português Vermelho, Verde e Azul) e exibi-lo para o usuário.

Os histogramas calculados são comparados e, assim como acontece com as

imagens, um terceiro histograma (HistogramaResultante) é criado ressaltando as diferenças

encontradas.

Apesar de trazer informações bastante pertinentes sobre as imagens, os

histogramas não serão utilizados como precursores para qualificar a compressão de uma

imagem. Eles serão significantes para validar o outro método de comparação.

Para os casos de teste a serem efetuados nesse trabalho, não se está interessado em

comparar mudanças nas tonalidades de cores, mas em identificar pontos com ruídos e

distorções além da média estabelecida pelo nível de comparação.

Page 38: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

38

Quando o grau de diferenciação entre os histogramas for muito elevado (acima de

10%), significa dizer que a imagem sofreu grande alteração em um ou mais dos seus níveis de

cores. Em vista disso, segundos os critérios descritos, a imagem se tornou potencialmente

inapropriada para ser avaliada.

As funções de Comparar e CalcularHistograma foram implementadas com a

finalidade de criar formas para quantificar a diferença entre imagens e comparar os codecs no

padrão MPGE-4 AVC/H.264 respectivamente.

Fig. 6 - Algoritmo para detecção de pixels diferentes.

A figura 6 apresenta o algoritmo para detecção das diferenças entre as imagens

selecionadas no programa. O algoritmo parte do princípio que as imagens selecionadas

possuem a mesma dimensão. Analisa-se pixel a pixel comparando as diferenças entre os

níveis de azul, verde e vermelho.

Page 39: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

39

Para caracterizar um pixel como diferente, o algoritmo leva em consideração o

nível de precisão determinado pelo usuário. O pixel a ser analisado deve estar entre um limite

inferior e superior calculado.

Ao ser caracterizado como um pixel diferente, o pixel é computado e suas

coordenadas são armazenadas na classe ImagemResultante apresentada na seção 3.1.1.

Uma imagem resultante é gerada a partir da imagem original contendo as

coordenadas armazenadas destacadas na cor verde para serem identificadas visualmente pelo

usuário conforme a seleção na interface da aplicação.

3.1.3 Interface

A interface foi elabora para ser simples e intuitiva. A tela principal do programa é

constituída de abas onde cada uma representará uma imagem a ser comparada ou os

resultados com as funções propostas pela aplicação.

Page 40: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

40

Fig. 7 - Aba Imagem Original.

A figura 7 apresenta a primeira aba da aplicação. Nessa aba é disponibilizado o

botão Selecionar no qual ao ser selecionado, o usuário deverá escolher a imagem original a

ser comparada.

Page 41: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

41

Fig. 8 - Aba Imagem Comparação.

A figura 8 apresenta a segunda aba da aplicação. Nessa aba, a exemplo da

primeira, o usuário deve escolher a segunda imagem a ser comparada com a imagem

selecionada na primeira aba.

Page 42: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

42

Fig. 9 - Aba Imagem Resultado.

A terceira aba da aplicação, apresentada na figura 9, exibe os valores resultantes

da comparação entre as imagens anteriormente selecionadas. Nessa aba a função Comparar e

o “nível de comparação” estão disponibilizados para serem disparados e definidos pelo

usuário.

Page 43: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

43

Fig. 10 - Aba Histogramas.

Na quarta aba da aplicação, mostrada na figura 10, exibe os histogramas RGB da

primeira e da segunda imagem, juntamente com a sua comparação. Os histogramas são

exibidos após a seleção da função MostrarHistogramas disponibilizada para o usuário.

3.2 Casos de Testes

Como propósito deste trabalho, foram testadas as implementações de dois codecs

que seguem o padrão H.264. Os codecs selecionados foram:

- x264 HP encoder (livre, mantido pela VideoLAN)

- Mainconcept H.264 (pago, desenvolvido pela MainConcept AG) – versão

experimental (trial)

Page 44: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

44

O x264 foi escolhido devido a sua alta aceitação e referência meio aos codecs

gratuitos. A possibilidade de entender melhor as suas características, tornou-o uma escolha

bastante atrativa, sendo algumas dessas listadas a seguir (VIDEOLAN, 2009):

- Transformada adaptativa 8x8 e 4x4.

- Ordenação arbitrária de quadros.

- Codificação de entropia CAVLC (Context-Based Adaptive Variable Length

Coding - redundâncias de codificação explorada pela comutação de tabelas baseada pelo uso

de contextos entre diferentes tamanhos variáveis de símbolos já codificados).

- Codificação CABAC (Context-Based Adaptive Binary Arithmetic Coding -

redundância de codificação explorada pelo uso de contextos entre diferentes modelos

aritméticos de probabilidade de acordo com os símbolos já codificados).

- Matrizes de quantização customizadas.

- Todos os tipos de macroblocos (16x16, 8x8, 4x4).

- Referência a múltiplos quadros.

- Controle de taxas: quantificador constante, qualidade constante.

- Paralelismo e codificação em múltiplas CPUs.

A escolha do codec MainConcept H.264 foi feita devido ao codec ser descrito por

oferecer rápida velocidade para codificação e decodificação em todos os perfis e níveis

padrões (MAINCONCEPT, 2009). Muitas de suas principais características são iguais ou

semelhantes ao x264, entretanto informações detalhando o seu funcionamento não estão

disponíveis devido ao fato do MainConcept H.264 não ser um código.

Para efeito de teste, os dois codecs foram aplicados sobre uma gravação de 10

segundos, contendo imagens de divulgação da cidade de Paris, na França. Essa gravação

estava na resolução de 1920x1080 (resolução da TV digital) e era executada a uma taxa de

29,970 quadros por segundos.

Os softwares para aplicar os codificadores sobre o vídeo eram softwares livres.

Para o x264, foi utilizado o MeGUI Modern Media Encoder versão 0.3.1.1037 e para o

MainConcept H.264 foi utilizado o MainConcept Reference v1.6.1.35781 desenvolvido pela

MainConcept GmbH.

Page 45: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

45

Ambos os softwares foram configurados buscando preservar o máximo da

resolução (1920x1080) e taxas do vídeo original (10000kbps). Sendo os dois executados em

um computador com um processado Intel(R) Pentium(R) Dual CPU E2140 com 1,60GHz,

memória (RAM) de 2GB no sistema operacional Windows Vista™ Ultimate de 64 Bits.

3.3 Resultados

Os processos de compressão desempenhados pelos programas MeGUI (para o

x264) e MainConcept Reference (para o MainConcept H.264) tiveram uma execução bastante

rápida. O arquivo de vídeo original possuía 299 quadros e para o codec MainConcept H.264 o

processo de compressão foi finalizado numa taxa de 3,0 quadros por segundo, enquanto o

x264 manteve uma média de 1,55. Nesse caso, o x264 foi superior por terminar o processo de

compressão cerca de 51,6% mais rápido.

Inicialmente, o vídeo selecionado para os testes, ocupava um espaço de 1,73GB

para armazenamento, sendo que para o codec MainConcept H.264, nas configurações

selecionadas, o arquivo final ocupou apenas 12,2MB e para o x264 o arquivo ficou com um

tamanho de 11,5MB. Portanto, o x264 também foi superior nesse quesito por necessitar de

menos espaço físico. A tabela 7 mostra esses resultados:

Tabela 7: Diferença entre tamanhos e taxa média entre os codec.

Diferenças analisadas Original MainConcept H.264 x264

Quantidade de Quadros 299 299 299

Espaço para armazenamento 1,73GB 12,2MB 11,5MB

Taxa de compressão - 3,0fps 1,55fps

Tempo total para compressão - 1min e 39s 3min e 12s

Após o processo de compressão se utilizou a ferramenta desenvolvida para

comparar os quadros de números 00, 10, 100, 200 e 290. As figuras 7 a 14 ilustram a

comparação entre os quadros 00 e 290.

Page 46: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

46

Fig. 11 - Quadro 00 codificado com o MainConcept H.264.

A figura 11 retrata a imagem resultante da comparação entre o quadro 00 do vídeo

comprimido pelo MainConcept H.264 com o quadro equivalente do vídeo original. O “nível

de comparação” selecionado correspondeu ao valor cinco e as porcentagens observadas na

parte inferior da figura foram utilizadas no processo de avaliação dos codecs.

Page 47: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

47

Fig. 12 - Quadro 00 codificado com o x264.

A figura 12 retrata a imagem resultante da comparação entre o quadro 00 do vídeo

comprimido pelo x264 com o quadro 00 do vídeo original. Assim como na figura 11 o “nível

de comparação” selecionado correspondeu ao valor cinco e na parte inferior da figura estão as

porcentagens utilizadas no processo de avaliação dos codecs.

Page 48: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

48

Fig. 13 - Quadro 290 codificado com o MainConcept H.264.

A figura 13 retrata a imagem resultante da comparação entre o quadro 290 do

vídeo comprimido pelo MainConcept H.264 com o quadro correspondente do vídeo original.

O “nível de comparação” selecionado foi o valor sete devido ao quadro selecionado possuir

mais contornos e detalhes do que o quadro 00. As porcentagens na parte inferior da figura

foram utilizadas para qualificar o processo de compressão.

Page 49: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

49

Fig. 14 - Quadro 290 codificado com o x264.

A figura 14 retrata a imagem resultante da comparação entre o quadro 290 do

vídeo comprimido pelo x264 com o quadro correspondente do vídeo original. O “nível de

comparação” selecionado foi sete e as porcentagens na parte inferior da figura serão utilizadas

para no processo de avaliação entre os codecs.

Todas as imagens exibem diferenças entre os quadros compactados. As tabelas de

8 a 12 expõem a relação entre os níveis de cada cor possível de todos os quadros verificados

pela aplicação.

Page 50: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

50

Tabela 8: Diferença entre níveis RGB do quadro 00 das imagens comparadas.

Erro Quadrático Médio MainConcept H.264 x264

Níveis de azul 20,94% 17,99%

Níveis de vermelho 19,31% 18,00%

Níveis de verde 16,21% 15,92%

Todos os níveis 27,36% 24,86%

Tabela 9: Diferença entre níveis RGB do quadro 10 das imagens comparadas.

Erro Quadrático Médio MainConcept H.264 x264

Níveis de azul 23,77% 23,93%

Níveis de vermelho 21,65% 22,18%

Níveis de verde 18,02% 19,78%

Todos os níveis 30,81% 30,67%

Tabela 10: Diferença entre níveis RGB do quadro 100 das imagens comparadas.

Erro Quadrático Médio MainConcept H.264 x264

Níveis de azul 22,04% 21,34%

Níveis de vermelho 20,13% 19,84%

Níveis de verde 16,66% 17,61%

Todos os níveis 28,86% 27,47%

Tabela 11: Diferença entre níveis RGB do quadro 200 das imagens comparadas.

Erro Quadrático Médio MainConcept H.264 x264

Níveis de azul 29,47% 26,18%

Níveis de vermelho 26,79% 24,02%

Níveis de verde 23,62% 21,60%

Todos os níveis 37,35% 33,12%

Tabela 12: Diferença entre níveis RGB do quadro 290 das imagens comparadas.

Erro Quadrático Médio MainConcept H.264 x264

Níveis de azul 27,77% 28,45%

Níveis de vermelho 25,33% 26,74%

Níveis de verde 21,95% 24,21%

Todos os níveis 35,57% 36,06%

As tabelas evidenciam o grau de distinção entre as imagens que foram

comparadas com a imagem original. A informação “Todos os níveis” considera todos os

pixels que foram calculados como diferentes em qualquer uma das três cores (RGB) ou na

combinação dessas.

Page 51: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

51

Para a comparação através de histogramas, as figuras 15 a 18 ilustram os

resultados analisados dos quadros 00 e 290.

Fig. 15 - Histogramas x264 do quadro 00.

A figura 15 exibe o histograma do quadro 00 do vídeo original, do vídeo

compactado pelo codec x264 e um terceiro histograma que é a sobreposição dos anteriores. A

diferença entre esses histogramas foi calculada em 3,0%.

Page 52: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

52

Fig. 16 - Histogramas MainConcept H.264 do quadro 00.

A figura 16 exibe o histograma do quadro 00 do vídeo original, do vídeo

compactado pelo codec MainConcept H.264 e um terceiro histograma que é a sobreposição

dos anteriores. A diferença entre esses histogramas foi calculada em 3,0%.

Page 53: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

53

Fig. 17 - Histogramas x264 do quadro 290.

A figura 17 exibe o histograma do quadro 290 do vídeo original, do vídeo

compactado pelo codec x264 e um terceiro histograma que é a sobreposição dos outros dois

citados. A diferença entre esses histogramas foi calculada em 1,7%.

Page 54: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

54

Fig. 18 - Histogramas MainConcept H.264 do quadro 290.

A figura 18 exibe o histograma do quadro 290 do vídeo original, do vídeo

compactado pelo codec MainConcept H.264 e um terceiro histograma que é a sobreposição

dos outros dois citados. A diferença entre esses histogramas foi calculada em 2,7%.

Os histogramas são essenciais para identificar alterações que possam

comprometer a análise dos resultados. As informações que foram geradas pela aplicação

foram utilizadas como subsídios para avaliar os codecs.

Analisando os resultados da aplicação tanto o codec MainConcept H.264 quanto o

x264 obtiveram padrões equivalentes nas comparações. A amostra dos cinco quadros revelou

equilíbrio entre os dois codecs. Nenhuma das comparações apresentou uma discrepância

maior do que 4% em nenhum dos casos.

Page 55: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

55

Os histogramas dos quadros também não apresentaram uma distorção

considerável (maior do que 10%). Isso legitima a comparação por dar a certeza de não ter

havido uma alteração acentuada em nenhum dos níveis de cores das imagens.

Com relação ao espaço de armazenamento final, o codec x264 gerou um arquivo

que correspondia a aproximadamente 0,65% do tamanho original, enquanto o MainConcept

H.264 gerou um equivalente a 0,69%. Nesse aspecto, o x264 foi um pouco superior ao

MainConcept H.264.

Catalogando-se os resultados de tamanho final do arquivo com os resultados

relacionados pela ferramenta desenvolvida, é possível afirmar que o codec x264 conseguiu

atingir uma qualidade equivalente ao MainConcept H.264 ocupando menos espaço para

armazenamento do vídeo.

Page 56: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

4 CONCLUSÃO

Neste trabalho, foram avaliados codecs x264 e o MainCocept para compressão de

vídeos, de alta definição, codificados segundo as especificações do H.264/AVC. Essa

avaliação foi feita através da proposta de um método de comparação por meio do

desenvolvimento de uma nova aplicação.

A aplicação foi criada em C# sob a plataforma de desenvolvimento Microsoft©

Visual Studio 2005, cuja grande colaboração se dá na área de processamento de imagens, pois

faz comparações entre as imagens (ou sequência de imagens) fornecendo como resultados

valores quantitativos e qualitativos. Valores quantitativos obtidos através do cálculo do

número de pixels distintos e dos histogramas. Valores qualitativos observados pela

identificação de pontos nas imagens geradas como resultado.

Análises do capítulo 3, motivações deste trabalho, sugerem a utilização da

aplicação como determinante para calcular as diferenças entre imagens. Segundo os

resultados obtidos, tanto o codec MainConcept H.264 quanto o x264, obtiveram padrões de

qualidade equivalentes. Os cinco quadros analisados mantiveram um equilíbrio, nenhum deles

com uma diferença maior do que 4% em relação ao quadro original.

As implementações para o padrão H.264/AVC analisadas apresentaram vídeos

que psicovisualmente não acarretavam em perdas drásticas. Elas atenderam ao propósito de

compressão de vídeo gerando arquivos admiravelmente menores (uma taxa em torno de

1:155), preservando a resolução e a informação do vídeo original.

Os resultados acerca do espaço de armazenamento revelaram uma superioridade

do codec x264 (0,65%) em relação ao MainConcept H.264 (0,69%), inclusive se levado em

Page 57: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

57

consideração o tempo total para compressão (1 minuto e 39 segundos para o x264 e 3 minutos

e 12 segundos para o MainConcept H.264).

Provido dos resultados, fornecidos pela aplicação e das observações acerca do

espaço físico para armazenamento dos vídeos, pôde-se concluir que o codec x264 foi melhor

do que o MainConcept H.264 por atingir uma qualidade de imagem equivalente ocupando

menos espaço.

A confirmação da equivalência entre as qualidades das imagens apenas pôde ser

comprovada graças ao comparador de imagem. O aplicativo se mostrou eficiente dentro da

sua proposta, ampliando a confiabilidade sobre o processo de comparação. Alerta-se apenas

ao fato de que a credibilidade dos resultados esta atrelada à configuração equivalente entre os

codecs e a seleção de amostras adequadas do vídeo.

Cabe ainda salientar que o capítulo 2 relaciona o padrão de compressão de vídeos

e imagens digitais com a TV Digital brasileira e os resultados obtidos confirmam então a

eficácia do padrão H.264/AVC.

A aplicação desenvolvida foi projetada inicialmente para atender a necessidade de

comparação entre processos de compressão. Entretanto, sua utilização pode ser ampliada para

diversas áreas da Computação Gráfica, como exemplo, na detecção de movimentos.

Por distinguir diferenças entre imagens, como finalidade primordial, essa

característica poderá ser aplicada para identificar, por exemplo, mudanças de padrões ou

deslocamento de objetos numa imagem. Em uma situação hipotética, fotos de florestas tiradas

por satélites poderiam ser analisadas e, a partir dos resultados encontrados, identificado locais

que sofreram alguma devastação.

A explanação sobre o padrão H.264 também oferece subsídios para a

implementação de softwares para aplicar o padrão em arquivos de vídeos. Um estudo

profundo sobre o codec pode identificar melhorias de forma a continuar sua evolução e

constituir futuramente o padrão H.265.

Page 58: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

58

REFERÊNCIAS

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 15602-1: Televisão digital terrestre — Codificação de vídeo, áudio e multiplexação Parte 1: Codificação de vídeo. Rio de Janeiro, 2007.

AZEVEDO, Eduardo; CONCI , Aura; LETA, Fabiana R.. Computação Gráfica. ed. 2. Rio de Janeiro: Campus, 2008.

BENOIT, Hervé. Digital Television: Satellite, Cable, Terrestrial, IPTV, Mobile TV in the DVB Framework. 4. ed. Paris: Elsevier, 2008.

FLORIDI, Luciano. Is Information Meaningful Data?. Philosophy and Phenomenological Research, 70 (2), pp. 351 - 370.

FONSECA, T. A. Redução de Complexidade na Compressão de Vídeo de Alta Resolução. 2008. Dissertação (Mestrado em Engenharia Elétrica) - Departamento de Engenharia Elétrica, Universidade de Brasília, 2008.

GONZALEZ , Rafael C.; WOODS, Richar E. Processamento de Imagens Digitais. Edgard Blücher, 2000.

HANZO, L.; CHERRIMAN, P. J.; STREIT , J.. Video Compression and Communications From Basics to H.261, H.263, H.264, MPEG4 for DVB and HSDPA-Style Adaptive Turbo-Transceivers. 2. ed. Wiley, 2007.

HEARN, Donald; BAKER, M. Pauline. Computer Graphics with OpenGL. 3ed. Prentice-Hall International, 2004.

LINHARES, Gilmara; DINIZ, Janderson; CORREIA, Suzete. Estudo de algoritmos para a compressão de imagens, 2007.

MAINCONCEPT, MainConcept: The Codec People®. H.264/ AVC Codec Package. Disponível em: <http://www.mainconcept.com/site/developer-products-6/pc-based-sdks-20974/codec-sdk-20946/h264avc-733/information-4786.html>. Acesso em: 10 de Fevereiro de 2009.

MANUEL, Edson T. M. Codificação de Vídeo H.264 – Estudo de Codificação Mista de Macroblocos. Dissertação (Mestrado em Engenharia Elétrica) - Universidade Federal de Santa Catarina, 2008.

MARQUES FILHO, Ogê, VIEIRA NETO, Hugo. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999.

Page 59: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

59

MSU, Michigan State University. Video filtering and compression. Disponível em: <http://graphics.cs.msu.su/> Acesso em: 10 de Fevereiro de 2009.

PU, Ida Mengyi. Fundamental Data Compression. 1. ed. Elsevier, 2006.

REED, Todd R. Digital Image Sequence Processing, Compression, and Analysis. CRC Press, 2005.

SETZER, Valdemar W. Dado, Informação, Conhecimento e Competência. 2005. Disponível em: <http://www.ime.usp.br/~vwsetzer/dado-info.html> Acesso em: 10 de Fevereiro de 2009.

STOLFI, Guido. Televisão Digital e HDTV – TV de Alta Definição. 2004.

VIDEOLAN. x264 - a free h264/avc encoder. Disponível em: <http://www.videolan.org/developers/x264.html> Acesso em: 10 de Fevereiro de 2009.

WOOTON, Cliff. A Practical Guide to Video and Audio Compression: From Sprockets and Rasters to Macroblocks. Elsevier, 2005.

Page 60: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

60

APÊNDICE A – CLASSE COMPARADOR

using System;

using System.Collections.Generic;

using System.Text;

using System.Drawing;

using System.Windows.Forms;

namespace ComparadorImagens

{

public static class Comparador

{

//Enumerador utilizado para identificar qual nível está sendo calculado

public enum TipoDiferenca

{

Vermelho, Verde, Azul, Total

}

public static ImagemResultante Comparar(Bitmap objImagemA, Bitmap objImagemB, int

itNivelComparacao)

{

ImagemResultante objImagemResultante = new ImagemResultante();

objImagemResultante.Imagem = new Bitmap(objImagemA);

Color ca;

Color cb;

bool blPixelDiferente;

//Verifica se o tamanho da imagem é o mesmo

if (objImagemA.Size == objImagemB.Size)

{

for (int i = 0; i < objImagemA.Size.Width; i++)

{

for (int j = 0; j < objImagemA.Size.Height; j++)

{

ca = objImagemA.GetPixel(i, j);

cb = objImagemB.GetPixel(i, j);

blPixelDiferente = false;

//Nível de Azul diferente

if (ca.B > cb.B + itNivelComparacao || ca.B < cb.B -

itNivelComparacao)

{

blPixelDiferente = true;

objImagemResultante.Azul++;

}

//Nível de Verde diferente

if (ca.G > cb.G + itNivelComparacao || ca.G < cb.G -

itNivelComparacao)

{

objImagemResultante.Verde++;

}

//Nível de Vermelho diferente

if (ca.R > cb.R + itNivelComparacao || ca.R < cb.R -

itNivelComparacao)

{

blPixelDiferente = true;

objImagemResultante.Vermelho++;

}

if (blPixelDiferente)

{

objImagemResultante.Imagem.SetPixel(i, j, Color.GreenYellow);

objImagemResultante.PixelsDiferentes++;

}

}

}

}

return objImagemResultante;

Page 61: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

61

}

public static ImagemResultante CalcularEQM(Bitmap objImagemA, Bitmap objImagemB)

{

List<ImagemResultante> lstImagemResultante = new List<ImagemResultante>();

ImagemResultante objImagemResultanteRetorno = new ImagemResultante();

//Executa loop para 10 níveis

for (int itNivelComparacao = 0; itNivelComparacao < 11; itNivelComparacao++)

{

lstImagemResultante.Add(Comparar(objImagemA, objImagemB, itNivelComparacao));

}

//Somatório para todos os níveis

foreach (ImagemResultante objImagemResultante in lstImagemResultante)

{

objImagemResultanteRetorno.Azul += objImagemResultante.Azul;

objImagemResultanteRetorno.Verde += objImagemResultante.Verde;

objImagemResultanteRetorno.Vermelho += objImagemResultante.Vermelho;

objImagemResultanteRetorno.PixelsDiferentes +=

objImagemResultante.PixelsDiferentes;

}

double db = (double)1 /(11 * 11);

//Calculo do EQM

objImagemResultanteRetorno.Azul =

Convert.ToInt32(Math.Sqrt((double)objImagemResultanteRetorno.Azul *

objImagemResultanteRetorno.Azul * db));

objImagemResultanteRetorno.Verde =

Convert.ToInt32(Math.Sqrt((double)objImagemResultanteRetorno.Verde *

objImagemResultanteRetorno.Verde * db));

objImagemResultanteRetorno.Vermelho =

Convert.ToInt32(Math.Sqrt((double)objImagemResultanteRetorno.Vermelho *

objImagemResultanteRetorno.Vermelho * db));

objImagemResultanteRetorno.PixelsDiferentes =

Convert.ToInt32(Math.Sqrt((double)objImagemResultanteRetorno.PixelsDiferentes *

objImagemResultanteRetorno.PixelsDiferentes * db));

objImagemResultanteRetorno.Imagem = lstImagemResultante[0].Imagem;

return objImagemResultanteRetorno;

}

public static string ErroQuadratico(ImagemResultante objImagemResultante,

TipoDiferenca enuTipoDiferenca)

{

string stEQM = string.Empty;

float itPixelTotal = objImagemResultante.Imagem.Size.Height *

objImagemResultante.Imagem.Size.Width;

//Retorna o texto com os valores calculados

switch (enuTipoDiferenca)

{

case TipoDiferenca.Azul:

stEQM = "EQM dos pixels em níveis de azul: " + (objImagemResultante.Azul *

100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Verde:

stEQM = "EQM dos pixels em níveis de verde: " + (objImagemResultante.Verde

* 100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Vermelho:

stEQM = "EQM dos pixels em níveis de vermelho: " +

(objImagemResultante.Vermelho * 100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Total:

stEQM = "EQM total dos pixels em entre as imagens: " +

(objImagemResultante.PixelsDiferentes * 100 / itPixelTotal) + "%";

break;

}

return stEQM;

}

Page 62: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

62

public static string PorcentagemDiferenca(ImagemResultante objImagemResultante,

TipoDiferenca enuTipoDiferenca)

{

string stPorcentagem = string.Empty;

float itPixelTotal = objImagemResultante.Imagem.Size.Height *

objImagemResultante.Imagem.Size.Width;

//Retorna o texto com os valores calculados

switch (enuTipoDiferenca)

{

case TipoDiferenca.Azul:

stPorcentagem = "Diferença entre níveis de azul: " +

(objImagemResultante.Azul * 100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Verde:

stPorcentagem = "Diferença entre níveis de verde: " +

(objImagemResultante.Verde * 100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Vermelho:

stPorcentagem = "Diferença entre níveis de vermelho: " +

(objImagemResultante.Vermelho * 100 / itPixelTotal) + "%";

break;

case TipoDiferenca.Total:

stPorcentagem = "Diferença entre as imagens: " +

(objImagemResultante.PixelsDiferentes * 100 / itPixelTotal) + "%";

break;

}

return stPorcentagem;

}

public static Bitmap CalcularHistogramaRGB(Bitmap objImagemA, ref string stFrequencia,

int itResolucaoAnterior)

{

int[] objHistograma = new int[256];

int maior = 0;

int posicaomaior = 0;

Color ca = new Color();

Bitmap bmp = new Bitmap(256, 101);

//Percorre a imagem e atribui os valores RGB para ser adicionado posteriormente no

histograma

for (int i = 0; i < objImagemA.Size.Width; i++)

{

for (int j = 0; j < objImagemA.Size.Height; j++)

{

ca = objImagemA.GetPixel(i, j);

objHistograma[ca.R]++;

objHistograma[ca.G]++;

objHistograma[ca.B]++;

}

}

//Busca o maior nível do histograma

for (int a = 0; a < objHistograma.Length; a++)

{

if (objHistograma[a] > maior)

{

maior = objHistograma[a];

posicaomaior = a;

}

}

stFrequencia = maior.ToString();

//Verifica qual dos histogramas tem o maior nível

if (itResolucaoAnterior != 0)

{

if (itResolucaoAnterior > maior)

maior = itResolucaoAnterior;

}

//Cria imagem (background) ao qual será atribuído os valores do histograma

for (int i = 0; i < bmp.Size.Width; i++)

{

for (int j = 0; j < bmp.Size.Height; j++)

Page 63: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

63

{

bmp.SetPixel(i, j, Color.Aqua);

}

}

//Cria histograma RGB

for (int i = 255; i > -1; i--)

{

int quantidade = objHistograma[i] * 100 / maior;

for (int j = 100; j > 100 - quantidade; j--)

{

bmp.SetPixel(i, j, Color.Black);

}

}

return bmp;

}

}

}

Page 64: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

64

APÊNDICE B – CLASSE IMAGEM

using System;

using System.Collections.Generic;

using System.Text;

using System.Drawing;

namespace ComparadorImagens

{

public class ImagemResultante

{

//Pixels totais encontrados como diferentes

int itPixelsDiferentes;

//Pixels Verde distintos

int itPixelVerde;

//Pixels Vermelho distintos

int itPixelVermelho;

//Pixels Azul distintos

int itPixelAzul;

//Imagem resultante do calculo de diferença

Bitmap imgResultante;

public int PixelsDiferentes

{

get { return itPixelsDiferentes; }

set { itPixelsDiferentes = value; }

}

public int Verde

{

get { return itPixelVerde; }

set { itPixelVerde = value; }

}

public int Vermelho

{

get { return itPixelVermelho; }

set { itPixelVermelho = value; }

}

public int Azul

{

get { return itPixelAzul; }

set { itPixelAzul = value; }

}

public Bitmap Imagem

{

get { return imgResultante; }

set { imgResultante = value; }

}

}

}

Page 65: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

65

APÊNDICE C – CLASSE FORMPRINCIPAL

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace ComparadorImagens

{

public partial class FormPrincipal : Form

{

public FormPrincipal()

{

InitializeComponent();

//Inicializa a label do nível de comparação

lblNComparacao.Text = tkbNivel.Value.ToString();

}

private void btnSelecionarImgOriginal_Click(object sender, EventArgs e)

{

//Mostra a janela para selecionar a imagem

opfImgOriginal.ShowDialog();

}

private void btnSelecionarImgComparacao_Click(object sender, EventArgs e)

{

//Mostra a janela para selecionar a imagem

opfImgComparacao.ShowDialog();

}

private void opfImgOriginal_FileOk(object sender, CancelEventArgs e)

{

//Atribui a imagem do local selecionado

pcbOriginal.ImageLocation = opfImgOriginal.FileName;

}

private void opfImgComparacao_FileOk(object sender, CancelEventArgs e)

{

//Atribui a imagem do local selecionado

pcbImagemComparacao.ImageLocation = opfImgComparacao.FileName;

}

private void btnComparar_Click(object sender, EventArgs e)

{

//Inicializa a label do nível de comparação

lblNComparacao.Text = tkbNivel.Value.ToString();

//Verificação para evitar erros na aplicação

if (pcbOriginal.Image == null || pcbImagemComparacao.Image == null)

{

MessageBox.Show("Você deve selecionar as imagens antes de fazer a

comparação.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

else

{

ImagemResultante objImagemResultante = Comparador.Comparar(new

Bitmap(pcbOriginal.Image), new Bitmap(pcbImagemComparacao.Image), tkbNivel.Value);

pcbImgResultado.Image = objImagemResultante.Imagem;

//Carrega os resultados entre as imagens

lblNivelAzul.Text = Comparador.PorcentagemDiferenca(objImagemResultante,

Comparador.TipoDiferenca.Azul);

lblNivelVerde.Text = Comparador.PorcentagemDiferenca(objImagemResultante,

Comparador.TipoDiferenca.Verde);

lblNivelVermelho.Text = Comparador.PorcentagemDiferenca(objImagemResultante,

Comparador.TipoDiferenca.Vermelho);

lblPorcentagem.Text = Comparador.PorcentagemDiferenca(objImagemResultante,

Comparador.TipoDiferenca.Total);

}

}

Page 66: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

66

private void sobreToolStripMenuItem_Click(object sender, EventArgs e)

{

//Informações sobre o desenvolvedor do sistema

MessageBox.Show("Desenvolvido por Vilker Silva Bezerra\n Versão: 1.1", "Sobre",

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private void bntHistograma_Click(object sender, EventArgs e)

{

//Verificação para evitar erros na aplicação

if (pcbOriginal.Image == null || pcbImagemComparacao.Image == null)

{

MessageBox.Show("Você deve selecionar as imagens antes de fazer a

comparação.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

else

{

tbcPrincipal.SelectTab(tbHistograma);

string stfx = "0";

pcbHistograma1.Image = Comparador.CalcularHistogramaRGB(new

Bitmap(pcbOriginal.Image), ref stfx, 0);

lblFxOriginal.Text = stfx;

pcbHistograma2.Image = Comparador.CalcularHistogramaRGB(new

Bitmap(pcbImagemComparacao.Image), ref stfx, Convert.ToInt32(stfx));

lblFxComparacao.Text = stfx;

ImagemResultante objImagemResultante = Comparador.Comparar(new

Bitmap(pcbHistograma1.Image), new Bitmap(pcbHistograma2.Image), 0);

pcbHistogramaComparacao.Image = objImagemResultante.Imagem;

lblDiferencaHistogramas.Text =

Comparador.PorcentagemDiferenca(objImagemResultante, Comparador.TipoDiferenca.Total);

}

}

private void tkbNivel_Scroll(object sender, EventArgs e)

{

lblNComparacao.Text = tkbNivel.Value.ToString();

}

private void btnErroQuadratidoMedio_Click(object sender, EventArgs e)

{

//Verificação para evitar erros na aplicação

if (pcbOriginal.Image == null || pcbImagemComparacao.Image == null)

{

MessageBox.Show("Você deve selecionar as imagens antes de fazer a

comparação.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

else

{

ImagemResultante objImagemResultante = Comparador.CalcularEQM(new

Bitmap(pcbOriginal.Image), new Bitmap(pcbImagemComparacao.Image));

//Atribui um "-" para label do nível de comparação

lblNComparacao.Text = "-";

pcbImgResultado.Image = objImagemResultante.Imagem;

//Carrega o EQM entre as imagens

lblNivelAzul.Text = Comparador.ErroQuadratico(objImagemResultante,

Comparador.TipoDiferenca.Azul);

lblNivelVerde.Text = Comparador.ErroQuadratico(objImagemResultante,

Comparador.TipoDiferenca.Verde);

lblNivelVermelho.Text = Comparador.ErroQuadratico(objImagemResultante,

Comparador.TipoDiferenca.Vermelho);

lblPorcentagem.Text = Comparador.ErroQuadratico(objImagemResultante,

Comparador.TipoDiferenca.Total);

}

}

}

}

Page 67: COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE … · 2017-06-22 · VILKER SILVA BEZERRA COMPRESSÃO DIGITAL: UM ESTUDO COMPARATIVO ENTRE CODECS PADRÃO MPGE-4 AVC/H.264 Monografia

67

APÊNDICE D – DIAGRAMA DE CLASSES