tcc-marcelo-2004

60
Departamento de Computação Trabalho de Conclusão de Curso MARCELO GARCIA MANZATO Técnicas e Padrões de Codificação de Vídeo Londrina 2004

Upload: andre-santana

Post on 01-Jul-2015

4.774 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: tcc-Marcelo-2004

Departamento de Computação Trabalho de Conclusão de Curso

MARCELO GARCIA MANZATO

Técnicas e Padrões de Codificação de Vídeo

Londrina 2004

Page 2: tcc-Marcelo-2004

MARCELO GARCIA MANZATO

Técnicas e Padrões de Codificação de Vídeo

Trabalho de conclusão de curso obrigatório desenvolvido durante o 4o ano do Curso de Graduação em Ciência da Computação co-mo requisito parcial à obtenção do título de Bacharel. Orientador: Prof. Fábio Sakuray

2004

Page 3: tcc-Marcelo-2004

MARCELO GARCIA MANZATO

Técnicas e Padrões de Codificação de Vídeo

COMISSÃO EXAMINADORA

____________________________________ Prof. Fábio Sakuray Universidade Estadual de Londrina

____________________________________ Prof. Mário Lemes Proença Jr. Universidade Estadual de Londrina

____________________________________ Prof. André Pereira Piazza Universidade Estadual de Londrina

Londrina, ___ de ___________ de 200_.

Page 4: tcc-Marcelo-2004

DEDICATÓRIA

Aos meus pais e irmãos, e aos meus amigos de facul-dade.

Page 5: tcc-Marcelo-2004

AGRADECIMENTOS

Á Deus, pela força, proteção e oportunidade concedida na minha vida. Aos meus pais, pela motivação, confiança e apoio durante o Curso. Aos meus irmãos Daniel e Gustavo, pelas contribuições que fazem parte deste trabalho. Ao professor Fábio Sakuray, por ter concedido um computador no laboratório de pesquisa O-rion para a realização deste trabalho.

Page 6: tcc-Marcelo-2004

RESUMO

Na comunicação entre aplicações multimídia que utilizam o vídeo como forma de representa-

ção de dados, problemas comuns de transmissão, tais como a latência e o congestionamento

da rede podem prejudicar consideravelmente o desempenho da aplicação, tendo em vista a

grande quantidade de informação necessária para se representar os dados de vídeo. Tanto na

transmissão como no armazenamento, o uso de codificadores tornou-se uma ferramenta es-

sencial para tais atividades, pois compactam os dados fazendo uso de técnicas apropriadas, as

quais eliminam informações irrelevantes e redundâncias presentes em um sinal de vídeo. A-

lém da codificação, alguns padrões proporcionam ainda funcionalidades adicionais para a a-

plicação, facilitando sua implementação e contribuindo com uma maior compatibilidade entre

elas. O estudo de técnicas de codificação e a análise dos principais padrões são de fundamen-

tal importância para aqueles que trabalham nas áreas de Hipermídia e Comunicação de Dados,

principalmente ao referenciar o mundo do vídeo digital.

Palavras-chave: vídeo, codec, armazenamento, transmissão.

Page 7: tcc-Marcelo-2004

ABSTRACT

In multimedia communication applications that use video as way of data representation, ordi-

nary transmission problems, as latency and traffic jam, can damage considerablely application

performance, taking into account the huge amount of information necessary to represent video

data. In transmission and storage, the use of encoders has become an essential tool for these

activities, once they compact data using appropriate techiques, which eliminate irrelevant in-

formation and redundances present in a video signal. Besides the encoding, some patterns of-

fer additional skills for applications, improving the implementation quality and contributing

with a better compatibility among them. The study of coding techiques and the analisys of the

main patterns are very important for those who work in the Hipermedia and Data Communi-

cation’s areas, mainly if we are considering digital video.

Keywords: video, coding, storage, transmission.

Page 8: tcc-Marcelo-2004

SUMÁRIO

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

2 FUNDAMENTOS DE VÍDEO ...................................................................................... 14

2.1 SURGIMENTO DO VÍDEO ............................................................................................ 14 2.2 VISÃO HUMANA ........................................................................................................ 14 2.3 ESPAÇO DE CORES ..................................................................................................... 16

2.3.1 RGB .................................................................................................................. 16 2.3.2 YUV/YCrCb ...................................................................................................... 16

2.4 LUMINÂNCIA E CROMINÂNCIA .................................................................................. 17 2.4.1 Relação 4:4:4 ................................................................................................... 17 2.4.2 Relação 4:2:2 ................................................................................................... 18 2.4.3 Relação 4:2:0 e 4:1:1....................................................................................... 18

2.5 VÍDEO ANALÓGICO E DIGITAL .................................................................................. 18 2.6 VÍDEO ENTRELAÇADO ............................................................................................... 19 2.7 FORMATOS DE VÍDEO ................................................................................................ 20

2.7.1 VHS................................................................................................................... 20 2.7.2 Oito Milímetros (8-mm).................................................................................... 21 2.7.3 NTSC................................................................................................................. 21 2.7.4 PAL ................................................................................................................... 21 2.7.5 SECAM ............................................................................................................. 21 2.7.6 HDTV................................................................................................................ 22 2.7.7 MPEG-1............................................................................................................ 22 2.7.8 SIF, CIF e QCIF............................................................................................... 22

3 TÉCNICAS DE CODIFICAÇÃO E DECODIFICAÇÃO ......................................... 24

3.1 ESTRUTURA DO SINAL DE VÍDEO............................................................................... 24 3.1.1 Organização dos Frames em um Vídeo ........................................................... 24

3.1.1.1 Frames Tipo Intra (I) .................................................................................... 24 3.1.1.2 Frames Tipo Inter (P e B)............................................................................. 24 3.1.1.3 Ordem dos Frames........................................................................................ 25

3.1.2 Organização dos dados em um Frame............................................................. 26 3.1.2.1 Pixel .............................................................................................................. 26 3.1.2.2 Bloco (Block)................................................................................................ 26 3.1.2.3 Macrobloco (Macroblock)............................................................................ 27 3.1.2.4 Fatia (Slice)................................................................................................... 27 3.1.2.5 Frame ............................................................................................................ 27 3.1.2.6 Field.............................................................................................................. 28 3.1.2.7 Grupo de Frames (Group of Pictures).......................................................... 29 3.1.2.8 Seqüência (Sequence) ................................................................................... 29

3.2 ELIMINANDO REDUNDÂNCIA TEMPORAL .................................................................. 29 3.2.1 Estimativa e Compensação de Movimento....................................................... 30

3.3 ELIMINANDO REDUNDÂNCIA ESPACIAL .................................................................... 32 3.3.1 Transformada Discreta do Co-seno (DCT)...................................................... 32 3.3.2 Transformada Discreta de Wavelet (DWT)...................................................... 34

3.4 QUANTIZAÇÃO........................................................................................................... 36 3.5 CODIFICAÇÃO POR ENTROPIA .................................................................................... 36

Page 9: tcc-Marcelo-2004

3.5.1 Codificação de Huffman................................................................................... 37 3.5.2 Codificação Aritmética..................................................................................... 39

4 PRINCIPAIS PADRÕES DE CODIFICAÇÃO.......................................................... 41

4.1 AVI ........................................................................................................................... 41 4.2 H-261 ........................................................................................................................ 41

4.2.1 Funcionalidades ............................................................................................... 42 4.3 H-263 ........................................................................................................................ 43

4.3.1 Funcionalidades ............................................................................................... 43 4.4 MJPEG...................................................................................................................... 44 4.5 MPEG-1.................................................................................................................... 45 4.6 MPEG-2.................................................................................................................... 48 4.7 MPEG-4.................................................................................................................... 51

4.7.1 Funcionalidades ............................................................................................... 52 4.7.2 Exemplos de aplicação ..................................................................................... 53

4.8 MPEG-7.................................................................................................................... 53 4.8.1 Exemplos de aplicação ..................................................................................... 54

4.9 MPEG-21.................................................................................................................. 55 4.9.1 Exemplos de aplicação ..................................................................................... 56

4.10 RESUMO DOS PADRÕES DE CODIFICAÇÃO................................................................... 56

5 CONCLUSÃO................................................................................................................. 58

REFERÊNCIAS...................................................................................................................... 59

Page 10: tcc-Marcelo-2004

LISTA DE TABELAS

Tabela 2.1 - Formatos de vídeo e características...................................................................... 23 Tabela 3.1 - Exemplo da Codificação de Huffman .................................................................. 37 Tabela 3.2 - Exemplo da Codificação Aritmética .................................................................... 39 Tabela 3.3 - Resultado do Exemplo de Codificação Aritmética .............................................. 40 Tabela 4.1 - Tipos de dados contidos no trecho de dados........................................................ 41 Tabela 4.2 - MPEG x MJPEG .................................................................................................. 45 Tabela 4.3 - Faixas de compressão do MPEG-1 Audio............................................................ 47 Tabela 4.4 - Profiles e Levels no MPEG-2............................................................................... 50 Tabela 4.5 - Classes de Aplicações do MPEG-4...................................................................... 53 Tabela 4.6 - Exemplos de aplicação ......................................................................................... 53 Tabela 4.7 - Resumo dos padrões de codificação..................................................................... 56

Page 11: tcc-Marcelo-2004

LISTA DE FIGURAS

Figura 2.1 - Formato do Olho Humano .................................................................................... 15 Figura 2.2 - Relação 4:4:4 de componentes ............................................................................. 17 Figura 2.3 - Relação 4:2:2 de componentes ............................................................................. 18 Figura 2.4 - Relação 4:2:0 de componentes ............................................................................. 18 Figura 2.5 - Tubo de Raios Catódicos (CRT)........................................................................... 19 Figura 2.6 - Esquema de Vídeo Entrelaçado ............................................................................ 20 Figura 3.1 - Ordem dos Frames ................................................................................................ 25 Figura 3.2 - Bloco..................................................................................................................... 26 Figura 3.3 - Relação entre Macroblocos e Componentes......................................................... 27 Figura 3.4 - Organização das Fatias ......................................................................................... 28 Figura 3.5 - Frames e suas componentes.................................................................................. 28 Figura 3.6 - Esquema de Codificação e Decodificação............................................................ 30 Figura 3.7 - Estimativa e Compensação de Movimento .......................................................... 31 Figura 3.8 - Coeficientes AC e DC .......................................................................................... 33 Figura 3.9 - Zig-zag .................................................................................................................. 34 Figura 3.10 - Construção da Árvore de Huffman..................................................................... 38 Figura 4.1 - MPEG-1 Systems .................................................................................................. 46 Figura 4.2 - MPEG-2 Systems .................................................................................................. 48 Figura 4.3 - DSM-CC ............................................................................................................... 51 Figura 4.4 - Esquema de processamento do padrão MPEG-7.................................................. 54

Page 12: tcc-Marcelo-2004

12

1 INTRODUÇÃO

Multimídia, basicamente, consiste em combinar em uma única aplicação fi-

guras, textos, áudio e vídeo [1]. Aplicações multimídia que utilizam a comunicação de dados

entre computadores, através da Internet, estão se tornando cada vez mais comuns, devido

principalmente ao desenvolvimento da banda larga, que tem contribuído com que problemas

de tráfico de rede e taxa de erros sejam amenizados.

Surgiram, a partir de então, algumas aplicações multimídia especiais que

utilizam o vídeo digital como forma de representação dos dados, tais como video on demand,

videoconferência e telemedicina. Porém, para ser representado, o vídeo requer uma quantida-

de muito grande de informação que, por ter uma taxa elevada de dados, está suscetível a so-

frer erros de transmissão. Além disso, os usuários da Web geralmente desejam obter vídeo e

áudio da Internet como textos e figuras, que são transmitidos rapidamente [2]. O problema a-

inda é maior quando há inúmeros usuários requisitando dados de um mesmo servidor, conges-

tionando a rede. Uma maneira de diminuir essa elevada taxa de dados é o uso de codificadores

(codecs), os quais compactam os dados do vídeo, diminuindo a quantidade de informação a

ser transmitida.

Para codificar o vídeo, pode-se explorar uma de suas principais característi-

cas, que é a redundância de informações. Na transmissão ou no armazenamento, ela pode ser

eliminada, diminuindo significantemente a quantidade de dados. Existem duas formas de eli-

minar a redundância de informações: a eliminação da redundância espacial, que é aplicada em

cada frame do vídeo; e a eliminação da redundância temporal, que é feita com base na compa-

ração de frames precedentes e futuros. A primeira consiste em eliminar informações da figura

que são insensíveis ao olho humano. A segunda, por sua vez, consiste em utilizar trechos de

uma imagem que é a mesma em imagens futuras ou passadas, de modo que esses trechos se-

jam transmitidos apenas uma vez, bastando informar a diferença entre uma imagem e outra.

Na codificação, alguns codecs acabam perdendo informações que podem ou

não ser perceptíveis ao telespectador. Quanto maior for a taxa de codificação, maior será a ta-

xa de perda do algoritmo. Em aplicações onde a qualidade da imagem é importante – como

video on demand ou telemedicina – são utilizados padrões que garantem que a qualidade da

imagem seja igual à original. Já em aplicações onde a qualidade da imagem não é tão impor-

tante – como a videoconferência – são utilizados codecs que oferecem ótimas taxas de com-

pressão, porém com uma qualidade final inferior à original.

Page 13: tcc-Marcelo-2004

13

Neste trabalho, algumas características e conceitos ligados ao vídeo analógi-

co e digital serão descritos no Capítulo 2. Em seguida, no Capítulo 3 será feito um estudo so-

bre as técnicas de codificação utilizadas pela maioria dos padrões, explorando seus conceitos,

funcionalidades e complexidades. Será analisada cada fase do processo de codificação e de-

codificação, desde a entrada dos dados puros ou codificados, até a saída codificada ou decodi-

ficada. Por fim, no Capítulo 4 será realizado um estudo sobre alguns codecs existentes na atu-

alidade, descrevendo suas características, técnicas utilizadas e eficiência. Espera-se realizar

um trabalho que será o reflexo de pesquisas e estudos realizados, representando um material

útil para futuros pesquisadores e interessados sobre o assunto.

Page 14: tcc-Marcelo-2004

14

2 FUNDAMENTOS DE VÍDEO

Nesta seção apresentar-se-á primeiramente uma breve história sobre o sur-

gimento do vídeo. Depois serão apresentadas algumas características básicas da visão huma-

na, que serão utilizadas posteriormente na descrição do processo de codificação de um sinal

de vídeo. A seguir, os conceitos de crominância e luminância serão introduzidos, assim como

os conceitos de vídeo analógico, vídeo digital, vídeo entrelaçado e alguns exemplos de forma-

tos de vídeo.

2.1 SURGIMENTO DO VÍDEO

O vídeo surgiu a partir do estudo feito pelos irmãos Lumière do fenômeno

da persistência retiliana. Este conceito descreve a habilidade do cérebro humano em reter a

luz na retina mesmo depois da estimulação original ter sido removida. Isso significa que um

vídeo com uma taxa de 10 quadros por segundo já é o suficiente para que se tenha a sensação

de que a imagem está realmente em movimento. A partir desse princípio, e com o surgimento

da fotografia instantânea, os irmãos Lumière inventaram o cinematógrafo, em 1895, que era

um aparelho capaz de capturar imagens em movimento e projetar posteriormente sobre uma

superfície de écran [3].

Em 1941 surgiu a primeira câmera de vídeo, desenvolvida pela RCA e to-

talmente eletrônica. Porém, foi em 1951 que ela sofreu modificações, adquirindo um formato

mais simples e compacto.

No início, as câmeras de vídeo eram todas analógicas, possuindo uma varie-

dade de padrões que definiam o seu formato de gravação. Posteriormente, o vídeo digital foi

desenvolvido com uma resolução superior ao analógico e com a principal vantagem de mani-

pulação de seus dados (facilidade de edição, transmissão, entre outros).

O surgimento do vídeo, tanto analógico como digital, contribuiu com que

surgisse um novo tipo de espetáculo, criando-se uma nova indústria, que envolve desde cria-

ções de filmes, efeitos especiais e trilha sonora, até novas tecnologias que ainda hoje estão

sendo desenvolvidas, como filmadoras, codificadores de vídeo e DVDs.

2.2 VISÃO HUMANA

A visão é o meio pelo qual se pode visualizar uma imagem, em movimento

ou não. Algumas características da visão humana podem ser analisadas em conjunto com o

Page 15: tcc-Marcelo-2004

15

processo de visualização de um vídeo. Também é a partir dessas características que algumas

técnicas de codificação foram inventadas, permitindo aplicá-las às imagens sem prejudicar a

qualidade das mesmas.

O formato do olho humano é representado através da Figura 2.1. O processo

de visualização pode ser dividido em duas fases: a primeira é o reconhecimento dos detalhes

de cada objeto, através da percepção de formas, cores, texturas; e o segundo é a percepção dos

movimentos que estão sendo feitos por esse objeto [1].

Figura 2.1 - Formato do Olho Humano

Na primeira fase a luz que reflete de cada objeto e chega ao olho humano

passa pela córnea, íris e pupila, até chegar na retina. Durante esse processo o foco é ajustado

para que a imagem criada na retina seja reconhecida e passada posteriormente para o cérebro.

Na retina há fotorreceptores que são estimulados à medida que a luz chega,

fazendo com que o cérebro processe a informação. Existem dois tipos de fotorreceptores: co-

nes e bastonetes. Os cones são os responsáveis pelo reconhecimento das cores e texturas dos

objetos, e se localizam com maior intensidade no centro da retina, enquanto que os bastonetes

fazem o reconhecimento dos tons de cinza, ou contorno dos objetos, e estão localizados ao re-

dor da retina [1][4]. Dessa maneira, ao olhar diretamente para um objeto pode-se perceber cla-

ramente sua cor e textura, ao passo que percebendo um objeto ao nosso lado, sem olhar dire-

tamente para ele, é possível apenas ter uma idéia de sua forma.

A segunda fase do processo de visualização está ligada ao conceito da per-

sistência retiliana, citado anteriormente. Foi desenvolvido por Peter Mark Roget, um especia-

lista em visão, e um dos primeiros cientistas a estudar esse princípio [5].

Page 16: tcc-Marcelo-2004

16

2.3 ESPAÇO DE CORES

O espaço de cores informa como uma imagem é descrita e estruturada no

vídeo digital e descreve como separar uma cor em diferentes componentes. Basicamente

existem dois tipos de espaço de cores: o RGB, que é utilizado principalmente em sistemas

computacionais; e o YUV/YCrCb, que é utilizado em sistemas televisivos.

2.3.1 RGB O modelo RGB define três cores primárias, as quais irão formar cada pixel

da imagem. São elas: vermelho (R), verde (G) e azul (B). Foram escolhidas essas cores devi-

do ao fato que suas freqüências sensibilizam com maior facilidade os três tipos de fotopig-

mentos existentes na retina humana.

Em termos computacionais, cada componente possui um número específico

de bits, os quais juntos formam os pixels da imagem. Em sistemas truecolor, por exemplo,

cada componente possui 8 bits, totalizando 24 bits para cada pixel, ou seja, 224 cores diferen-

tes (16.777.216).

No entanto, o sistema RGB possui algumas desvantagens. A principal delas

é que a mesma quantidade de bits é necessária para se representar cada componente de cada

pixel de uma imagem. Além disso, em sistemas televisivos o modelo RGB não é utilizado,

pois a componente que define o brilho da imagem está embutida no próprio pixel. Isso signi-

fica que para aumentar ou diminuir o brilho de uma imagem, o custo computacional é alto,

pois é necessário calcular novos valores de cada pixel, verificando seus valores [1].

2.3.2 YUV/YCrCb O formato YUV ou YCrCb define duas componentes de cores: luminância

(Y) e crominância (U ou Cr e V ou Cb). A componente Y informa os tons de cinza, ou brilho

da imagem, enquanto que as componentes Cr e Cb definem as cores da imagem. Esse espaço

de cor possui a vantagem de ser mais perceptível, devido ao fato de que, assim como nossa vi-

são, ela trabalha separadamente com brilho e cor. Além disso, programas que são transmitidos

em preto e branco utilizam apenas a componente Y, dispensando as outras que definem as co-

res.

Pode-se fazer a conversão entre o formato RGB e o YCrCb utilizando al-

gumas fórmulas matemáticas citadas em seguida.

Conversão de RGB para YCrCb:

Page 17: tcc-Marcelo-2004

17

Conversão de YCrCb para RGB:

Técnicas de codificação utilizam esse formato justamente por ser possível

fazer a separação de componentes. A manipulação dos dados torna-se mais eficiente e simpli-

ficada especialmente em algumas técnicas que utilizam somente a componente Y, como por

exemplo, a Estimativa de Movimento.

2.4 LUMINÂNCIA E CROMINÂNCIA

Como visto anteriormente, as componentes luminância e crominância defi-

nem o brilho e as cores de cada pixel da imagem, respectivamente. Porém, nem sempre a rela-

ção entre luminância e crominância necessita ser de um para um. Em algumas aplicações, as

componentes Cr e Cb podem estar presentes em menor quantidade do que a componente Y

[1]. Serão descritas em seguida algumas dessas relações, cujos números que aparecem interca-

lados por dois pontos indicam a componente Y, a componente Cr e a componente Cb, respec-

tivamente (Relação Y:Cr:Cb).

2.4.1 Relação 4:4:4 Neste tipo de relação, luminância e crominância estão presentes em cada pi-

xel, ou seja, as componentes Y, Cr e Cb aparecem com a mesma freqüência (Figura 2.2).

Figura 2.2 - Relação 4:4:4 de componentes

Page 18: tcc-Marcelo-2004

18

2.4.2 Relação 4:2:2 Neste caso, a luminância está presente em cada pixel, e a crominância está

presente a cada dois pixels da imagem, na direção horizontal (Figura 2.3).

Figura 2.3 - Relação 4:2:2 de componentes

2.4.3 Relação 4:2:0 e 4:1:1 Nesta relação, a luminância está presente em todos os pixels e a crominância

está presente a cada quatro pixels da imagem. O formato 4:2:0 é um caso especial do 4:1:1,

onde a crominância é calculada como sendo um valor offset da componente Y (Figura 2.4).

Figura 2.4 - Relação 4:2:0 de componentes

2.5 VÍDEO ANALÓGICO E DIGITAL

Desde o surgimento do vídeo, filmadoras estão cada vez mais sendo desen-

volvidas para atender ao mercado de filmes domésticos e profissionais. Os vídeos analógicos

foram os primeiros a surgirem, capturando as imagens em alta velocidade e armazenando-as

em fitas magnéticas. Isso é feito sem que haja nenhum tipo de tratamento da imagem captura-

da, ou seja, o armazenamento é feito em tempo real, à medida que a luz entra na filmadora e

sensibiliza a fita. Desta forma, a qualidade da imagem é definida exclusivamente pela eficiên-

cia da filmadora, e pela quantidade de informação obtida durante um período de tempo.

Page 19: tcc-Marcelo-2004

19

Os vídeos digitais, por sua vez, estão sendo cada vez mais utilizados, devido

à sua alta resolução e também por causa do desenvolvimento de tecnologias de compressão e

transmissão de dados. Esse tipo de formato, ao contrário dos vídeos analógicos, digitalizam as

imagens por meio de circuitos denominados CCDs [6][7], que convertem a luz em dados

compreensíveis ao computador, digitalizando as imagens. A principal vantagem de se utilizar

vídeo digital ao invés de vídeo analógico é que o primeiro possui melhor resolução do que o

segundo e, além disso, o vídeo digital é reproduzido utilizando-se o sinal componente, ao con-

trário dos vídeos analógicos, que utilizam o sinal S-vídeo e o sinal composto1.

2.6 VÍDEO ENTRELAÇADO

O vídeo entrelaçado está presente atualmente tanto em monitores de compu-

tador como em aparelhos de televisão. Esses aparelhos são compostos pelo Tubo de Raios Ca-

tódicos (CRT), que é apresentado na Figura 2.5.

Figura 2.5 - Tubo de Raios Catódicos (CRT)

O CRT consiste de um feixe de elétrons que é aplicado a uma tela de fósforo

produzindo um ponto luminoso por um certo período de tempo. Este feixe de elétrons percor-

re toda a tela de fósforo, de cima para baixo, formando a imagem a ser mostrada. Porém,

1 O sinal componente faz com que as componentes Y, Cr e Cb sejam transmitidas em canais separados. O sinal S-Vídeo não faz essa separação em nenhuma das componentes e o sinal composto separa apenas a componente Y.

Page 20: tcc-Marcelo-2004

20

quando o feixe está nas últimas linhas da imagem, os primeiros pontos luminosos já apaga-

ram, devido ao seu tempo de vida. Isso causa um problema de tremulação da imagem, o qual

pode ser eliminado usando o vídeo entrelaçado [1].

O vídeo entrelaçado consiste em dividir a imagem original em duas novas

imagens, as quais são mostradas na tela uma seguida da outra, durante metade do tempo ori-

ginal. A primeira imagem é obtida através das linhas ímpares da imagem original, e a segunda

através das linhas pares, conforme mostrado na Figura 2.6.

Figura 2.6 - Esquema de Vídeo Entrelaçado

Desta maneira, o problema de tremulação é eliminado, pois antes de a pri-

meira imagem se desfazer, a segunda é mostrada, contendo a mesma informação.

2.7 FORMATOS DE VÍDEO

Existem diversos formatos de vídeo analógico e digital, os quais definem a

maneira pela qual os dados são armazenados. Serão descritos aqui alguns formatos mais utili-

zados, com suas características, vantagens e desvantagens. Posteriormente, uma tabela será

apresentada contendo a quantidade de linhas horizontais, o número de pixels por linha e por

frame, a taxa de frames por segundo e a largura de banda necessária para cada formato.

2.7.1 VHS O formato VHS foi o primeiro formato padronizado de vídeo analógico, fei-

to pela JVC em 1972, fazendo com que os equipamentos desenvolvidos a partir dessa data

começassem a suportar esse tipo de formato. Ainda é utilizado em larga escala, devido à sua

compatibilidade com a maioria dos videocassetes, e ao baixo custo das fitas e filmadoras que

utilizam esse formato. Sua principal desvantagem é a baixa qualidade da imagem e áudio,

comparado aos outros formatos existentes [6][7].

Page 21: tcc-Marcelo-2004

21

2.7.2 Oito Milímetros (8-mm) O padrão 8-mm é utilizado principalmente por câmeras de mão, as quais

possuem fitas magnéticas de tamanho semelhante a fitas cassetes de áudio. Possuem qualida-

de da imagem e de áudio melhores do que o formato VHS, porém armazenam poucas horas de

gravação. Além disso, para visualizar a reprodução do vídeo, é necessária a utilização da fil-

madora acoplada ao videocassete ou a utilização de um conversor, pois a maioria deles não

suporta esse tipo de formato [6][7].

2.7.3 NTSC O formato NTSC, criado pela indústria norte-americana National Television

System Committee, em 1953, era um formato para transmissão de TV a cores compatível com

o já existente sistema de TV preto e branco. Esse formato permitia a utilização de televisores

preto e branco para assistir a programas transmitidos em cores. O sistema era bastante precá-

rio, pois não mantinha a fidelidade da transmissão, mudando freqüentemente a intensidade da

matriz de cores. Atualmente o NTSC está mais aperfeiçoado devido ao desenvolvimento da

tecnologia digital, podendo ser comparado, em termos de qualidade, ao formato SECAM e

PAL [6].

2.7.4 PAL Esse formato surgiu como uma alternativa para eliminar os problemas de

mudança de cores produzidos pelo sistema NTSC. Foi mais bem aceito no Brasil, devido à

sua freqüência de 60Hz que é compatível com a corrente elétrica do país. Nos outros países a

corrente elétrica é de 50Hz, o que faz com que a exibição de vídeo no sistema PAL sofra osci-

lações. Esse formato é melhor que o NTSC devido ao maior contraste e nível de detalhamento

da imagem. Essas características estão presentes devido ao fato de sobrar maior largura de

banda para as informações de luminância, uma vez que o sinal de cor utiliza menos espaço

por possuir maior taxa de freqüência [6].

2.7.5 SECAM Este formato foi desenvolvido na França no final da década de 60, e é seme-

lhante ao PAL. Isso significa que se pode converter um sinal PAL em SECAM e vice-versa

com o simples uso de um decodificador. Além disso, um sinal que está sendo transmitido no

formato SECAM pode ser entendido por um receptor operando no formato PAL, exibindo as

imagens em preto e branco. Algumas emissoras chegam a gerar os programas em PAL e de-

pois convertê-los para SECAM para serem transmitidos, devido a maior facilidade de edição

Page 22: tcc-Marcelo-2004

22

do sinal no formato PAL. A principal vantagem desse sistema é a estabilidade das cores,

comparado ao sistema NTSC. Por outro lado, possui desvantagens como não ser possível a

sincronização de sinais a fim mixá-los, menor resolução das imagens e brilho excessivo em

desenhos compostos por linhas muito próximas uma das outras [6].

2.7.6 HDTV O HDTV é um formato de vídeo de alta definição, que contribuiu com o de-

senvolvimento do vídeo digital. Primeiramente foi criado no formato analógico pelos japone-

ses, na década de 70, e posteriormente foi modificado pelos americanos para uso doméstico.

A General Instruments foi a responsável pela criação de um modelo digital, que mais tarde

ganhou um padrão definido pela Grand Alliance, baseando-se na especificação MPEG-2, cri-

ada pela International Standards Organization (ISO) Motion Picture Experts Group (MPEG)

[5].

O HDTV, pela definição, deve ter pelo menos duas vezes melhor qualidade

do que um sistema de TV convencional, além de possuir melhor representação de cores e

maior relação de aspecto. Adicionalmente, o sinal de vídeo pode ser comprimido a uma taxa

de 1:70 em média, ou seja, um vídeo com 1 GB pode ser reduzido a 20 MB sem sofrer modi-

ficações visíveis da imagem original.

2.7.7 MPEG-1 O formato MPEG foi o primeiro padrão de compressão de vídeo digital cri-

ado, no final dos anos 80, possuindo alguns problemas de codificação, como distorção da i-

magem gerada. Sua resolução horizontal é melhor que o formato VHS e NTSC, porém pode-

se modificar a taxa de compressão obtendo resultados melhores [6]. Sua descrição mais deta-

lhada será apresentada adiante neste trabalho.

2.7.8 SIF, CIF e QCIF O SIF (Source Input Format), CIF (Common Interchange Format) e QCIF

(Quarter Common Interchange Format) são formatos de vídeo digital definidos pelo MPEG-1

e pelo ITU-T H-261 Video Conferencing Recommendation. O formato SIF especifica a reso-

lução de luminância de um frame de 360x242 pixels em sistemas de 30 frames/segundos, e de

360x288 pixels em sistemas de 25 frames/segundos.

O CIF e o QCIF foram criados pela ITU-T H-261 com o propósito de existir

um formato comum de vídeo no qual os padrões PAL, NTSC e SECAM pudessem ser

convertidos facilmente. O formato CIF especifica a resolução de luminância de 352x288

Page 23: tcc-Marcelo-2004

23

vertidos facilmente. O formato CIF especifica a resolução de luminância de 352x288 pixels

em sistemas de 30 frames/segundo; já o formato QCIF especifica a resolução como sendo de

176x144 pixels também em 30 frames/segundo. Tanto os formatos CIF e QCIF quanto o SIF

utilizam a relação luminância-crominância de 4:2:0 [1].

A Tabela 2.1 [8] apresenta um comparativo entre os diversos padrões de ví-

deo, tanto analógico como digital. Observe a diferença entre as resoluções de vídeo analógico

com o HDTV, que é um padrão de vídeo digital, comparando também com a resolução do

VGA e o SVGA, que são padrões utilizados por computadores. Observe também que o padrão

MPEG-1, que é utilizado em vídeo digital, possui resolução semelhante aos formatos de vídeo

analógico.

Tabela 2.1 - Formatos de vídeo e características

Formatos Linhas Ho-rizontais

Pixels por Linha

Pixels por Frame

Frames por seg.

Largura de Banda ne-cessária

Vídeo Analógico VHS 338 280 172,000 25.00 5 MHz NTSC 338 426 150,000 29.97 4 MHz PAL 411 420 172,000 25.00 5 MHz Vídeo Digital HDTV 806 1920 1,550,000 50 140 Mbps MPEG-1 345 360 124,000 30 >1.5 Mbps Imagem do Computador VGA 640 480 307,000 60 - SVGA 1024 768 786,500 60 -

Page 24: tcc-Marcelo-2004

24

3 TÉCNICAS DE CODIFICAÇÃO E DECODIFICAÇÃO

Nesta seção serão apresentadas as principais técnicas de codifica-

ção/decodificação de vídeo utilizadas pelos principais padrões, abordando seus princípios,

funcionalidades e objetivos.

3.1 ESTRUTURA DO SINAL DE VÍDEO

Durante a codificação, o vídeo é dividido em várias partes para facilitar o

processo de manipulação de dados e compressão. Essa divisão é feita de duas formas: divi-

dindo e organizando o vídeo em frames, dando-lhes tipos, os quais determinarão quais técni-

cas e de que maneira elas poderão ser aplicadas; e dividindo e organizando os dados de cada

frame, que é feito de maneira hierárquica, facilitando a aplicação das técnicas propostas de

acordo com o tipo do frame.

3.1.1 Organização dos Frames em um Vídeo Existem basicamente três tipos de frames, os quais determinam principal-

mente quais deles, a partir do atual, serão referenciados para aplicação da Estimativa e Com-

pensação de Movimento2.

3.1.1.1 Frames Tipo Intra (I) Os frames do tipo I (Intra-coded Pictures) são codificados apenas eliminan-

do a redundância espacial, ou seja, na decodificação, não é necessário o conhecimento de ne-

nhum outro frame para a reconstrução da imagem original. Devido a isso, ele é o primeiro a

aparecer em um grupo de frames, servindo como referência para imagens futuras a ele. É o ti-

po de frame que requer a maior quantidade de bits para representá-lo, pois além de não usar

nenhum outro frame como referência, seu nível de codificação é baixo [1].

3.1.1.2 Frames Tipo Inter (P e B) Os frames do tipo Inter utilizam outros frames como referência para a codi-

ficação de seus dados. Os frames do tipo P (Predictive Coded Pictures) utilizam apenas os

frames antecedentes a ele como referência; e os frames do tipo B (Bidirectionally Predicted

Pictures) utilizam os frames antecedentes e futuros a ele como referências. Dessa forma, a

2 Essa técnica, que será detalhada adiante, consiste em utilizar trechos repetidos de frames precedentes ou futuros do frame atual. Dessa forma, apenas os trechos que mudaram de uma imagem a outra são transmiti-dos/armazenados, evitando a redundância temporal.

Page 25: tcc-Marcelo-2004

25

codificação de frames do tipo Inter faz com que o tamanho do frame codificado seja cerca de

50% menor do que um frame codificado como do tipo Intra. Por outro lado, alguns erros de

codificação podem ocorrer com maior freqüência, prejudicando a qualidade da imagem [1].

3.1.1.3 Ordem dos Frames Os frames são organizados de modo que as imagens a serem codificadas

como sendo do tipo I permaneçam no início do grupo de frames; já aquelas que serão codifi-

cadas como do tipo P, devem ficar em uma posição posterior a uma já existente do tipo I; e

aquelas que serão codificadas como do tipo B devem permanecer entre duas outras que são do

tipo I ou do tipo P, conforme mostrado na Figura 3.1.

Figura 3.1 - Ordem dos Frames

A organização dos frames em um sinal de vídeo varia bastante de acordo

com a implementação do codificador. O formato MJPEG, por exemplo, utiliza apenas frames

do tipo Intra; e o formato MPEG, por sua vez, apresenta a seguinte organização:

I B B P B B P B B P B B I B B …

Essa organização ocorre na codificação do vídeo e na sua apresentação. No

armazenamento ou transmissão, os frames codificados estão dispostos de maneira diferente do

mostrado acima. Para decodificar um frame do tipo B, por exemplo, é necessário que o deco-

dificador conheça tanto o frame antecedente como o frame futuro da imagem atual. Para faci-

litar essa tarefa, os frames são organizados de modo que os dois frames a serem referenciados

pelo frame B sejam decodificados antes dele; assim, basta armazenar em uma variável auxili-

ar aqueles que servirão como uma futura fonte de referência para os frames futuros.

Page 26: tcc-Marcelo-2004

26

A organização, no caso do MPEG, é a seguinte:

I P B B P B B P B B I B B P ...

Os dois primeiros B´s que aparecem acima utilizam como referência o I co-

mo referência passada e o P como referência futura, ambos já decodificados anteriormente.

3.1.2 Organização dos dados em um Frame Em um frame, os dados são organizados de maneira hierárquica, facilitando

a manipulação e o acesso aleatório aos dados. Além disso, essa organização permite que al-

gumas regiões possam ser codificadas diferentemente do restante da imagem, aplicando uma

taxa de codificação maior ou menor que a original.

3.1.2.1 Pixel O pixel consiste de um pequeno ponto que é menor elemento de uma figura

aceitável na tela [9]. Figuras, desenhos e letras são formados por um conjunto de pixels, orga-

nizados de uma maneira que seus valores (cores) formem a imagem. Para representar um pi-

xel, é definido um número fixo de bits, os quais definem a quantidade de cores possíveis no

sistema. Como exemplo, sistemas truecolor possuem 24 bits para representar um pixel, ou se-

ja, 224 cores diferentes.

3.1.2.2 Bloco (Block) Um bloco é formado por um conjunto de oito linhas, as quais possuem cada

uma oito pixels de luminância ou crominância, totalizando 64 pixels de luminância ou cromi-

nância (Figura 3.2).

Figura 3.2 - Bloco

Page 27: tcc-Marcelo-2004

27

3.1.2.3 Macrobloco (Macroblock) Um macrobloco é formado por quatro blocos de luminância, mais um núme-

ro de crominância, que é determinado através dos tipos de relações de componentes explica-

dos anteriormente. Na relação 4:2:0, por exemplo, tem-se quatro blocos de luminância, mais

dois blocos de crominância; já na relação 4:4:4, tem-se quatro blocos de luminância e oito

blocos de crominância (Figura 3.3).

Figura 3.3 - Relação entre Macroblocos e Componentes

3.1.2.4 Fatia (Slice) Uma fatia é formada por um conjunto de macroblocos dispostos em uma

mesma linha horizontal (Figura 3.4). Um vídeo pode conter uma fatia para cada frame e/ou

uma fatia para cada macrobloco. O principal objetivo de se dividir a imagem em fatias é per-

mitir a decodificação de toda a imagem mesmo com a presença de erros [9], ou seja, garantir

que o restante da imagem seja decodificado com sucesso mesmo com a ocorrência de algum

erro de codificação em algum trecho da imagem [1].

3.1.2.5 Frame Um frame é formado por um conjunto de fatias, totalizando toda a informa-

ção necessária para exibição de uma imagem. As componentes de luminância e crominância

são representadas por três matrizes, as quais combinadas, formam a imagem. Essas matrizes

possuem tamanho variável, de acordo com as relações de componentes (Figura 3.5). A matriz

de luminância, por exemplo, possui o mesmo tamanho da imagem para qualquer relação; as

matrizes das componentes de crominância, por sua vez, possuem metade do tamanho, no caso

da relação 4:2:2, e um quarto do tamanho, no caso da relação 4:2:0.

Page 28: tcc-Marcelo-2004

28

Figura 3.4 - Organização das Fatias

Figura 3.5 - Frames e suas componentes

3.1.2.6 Field Fields são usados em codificadores que suportam a utilização de vídeo en-

trelaçado. Cada frame, independente do tipo, possui dois fields, os quais juntos formam a i-

magem contida no frame. O primeiro field é formado pelas linhas ímpares da imagem (top fi-

eld), e o segundo pelas linhas pares da imagem (bottom field). A codificação de fields pode

ser feita de duas formas: combinar os fields, formando um frame completo, o qual pode ser

codificado normalmente; e codificar o segundo field usando como referência o primeiro. A

Page 29: tcc-Marcelo-2004

29

primeira opção é mais viável quando a imagem possui muitos detalhes e o vídeo possui pouca

ação. Dessa forma, a aplicação da Estimativa e Compensação de Movimento terá sucesso,

pois poderá ser feita a estimativa de um frame para outro na maioria dos macroblocos. Já a

segunda opção é utilizada quando a imagem não possui muitos detalhes e o vídeo possui bas-

tante ação. Neste caso, a estimativa é feita entre os dois fields, pois como a imagem muda bas-

tante de um frame para outro, a Estimativa de Movimento pode não ser eficaz [1].

3.1.2.7 Grupo de Frames (Group of Pictures) Grupo de Frames são formados por um conjunto de frames, cuja quantidade

é definida pelo codificador. Cada grupo de frames possui um cabeçalho que o precede, e ge-

ralmente possui apenas um frame do tipo Intra. No MPEG-1, o primeiro grupo de frames con-

tém 10 frames, e os seguintes, 12 frames. Isso ocorre porque o primeiro par de frames do tipo

B é colocado depois do primeiro frame P, e o último par de frames do tipo B é colocado entre

os frames I e P do grupo de frames seguinte.

3.1.2.8 Seqüência (Sequence) Uma seqüência é a mais alta estrutura semântica especificada pelo codifica-

dor, ou seja, é formada pelo conjunto de todos os grupos de frames e seus cabeçalhos.

Após a divisão dos dados do vídeo, são aplicadas sobre esses dados as téc-

nicas de codificação. Primeiramente é aplicada a Estimativa e Compensação de Movimento

em cada frame, para que seja eliminada a redundância temporal. Em seguida, a Transformada

Discreta do Co-seno ou a Transformada Discreta de Wavelet é aplicada sobre aqueles dados

que necessitam ser armazenados ou transmitidos pelo codificador. Depois é aplicada a Quan-

tização para eliminar a redundância espacial, e por fim, a Codificação por Entropia para reali-

zar a codificação em baixo nível dos dados (bit-a-bit). Pode-se visualizar através da Figura 3.6

o esquema dos algoritmos de codificação e de decodificação, cujas fases serão descritas a se-

guir.

3.2 ELIMINANDO REDUNDÂNCIA TEMPORAL

Em um vídeo qualquer, se cada frame for analisado separadamente, perce-

ber-se-á que entre dois frames ou mais consecutivos os dados são semelhantes entre si. Em

filmes sem ação, onde são poucas as cenas em que existem movimentos bruscos dos atores ou

da câmera, essa característica é mais visível. Isso pode ser utilizado na compactação do vídeo,

pois os dados que se repetem são armazenados (ou transmitidos) apenas uma vez, e são com-

partilhados posteriormente por vários frames na reconstrução da imagem. Essa técnica é cha-

Page 30: tcc-Marcelo-2004

30

mada de Estimativa e Compensação de Movimento, e está presente em todos os codificadores

que suportam a eliminação da redundância temporal.

Figura 3.6 - Esquema de Codificação e Decodificação

3.2.1 Estimativa e Compensação de Movimento A Estimativa e Compensação de Movimento consiste em verificar, para ca-

da macrobloco da imagem atual, o seu correspondente em imagens passadas ou futuras, isto é,

determinar o deslocamento de cada macrobloco entre um frame e outro, armazenando esse

deslocamento em uma variável que é chamada de motion vector.

Para determinar de qual frame será feita essa comparação é necessário co-

nhecer os tipos de frames existentes e de qual tipo é cada frame a ser referenciado. Por exem-

plo, um frame do tipo I, não passará pela técnica da Estimativa e Compensação de Movimen-

to; já um frame do tipo B poderá verificar em frames passados ou futuros a ele macroblocos

que sejam iguais aos dele.

Como exemplo, considere a Figura 3.7. O frame 3 está utilizando a nuvem

presente no frame 1, isto é, ele está “emprestando” essa informação do frame 1 para

reconstruir a sua imagem. Isso significa que a ele não precisará armazenar (ou transmitir) os

dados que formam a nuvem, pois ela já foi armazenada quando o frame 1 foi codificado. Da

mesma forma, o frame 2 está utilizando a nuvem do frame 1, e além disso, como ele é do tipo

B, ele pode também utilizar frames futuros a ele, que nesse caso, é uma parte do disco-voador

Page 31: tcc-Marcelo-2004

31

pode também utilizar frames futuros a ele, que nesse caso, é uma parte do disco-voador do

frame 3 [8].

Figura 3.7 - Estimativa e Compensação de Movimento

O processo de determinar macroblocos correspondentes entre um frame é

talvez o trabalho mais árduo de um codificador, pois serão feitas comparações sucessivas em

cada pixel de cada imagem, aumentando sua complexidade significantemente. Esse problema

pode ser amenizado através da busca baseada em pirâmide [8]. Essa busca consiste primeira-

mente em percorrer a imagem em baixa resolução comparando os dados do frame atual e do

frame referenciado.

Em seguida, é feita uma nova busca local, sobre o resultado encontrado an-

teriormente, com uma resolução mais alta. Desta forma, o número de comparações pode ser

reduzido se as buscas locais sobre os resultados obtidos anteriormente com uma resolução

mais baixa forem restritas a um certo campo de alcance. Por outro lado, a busca baseada em

pirâmide pode gerar erros de codificação se algumas diferenças entre um frame e outro não

forem detectadas pelas comparações em baixa resolução.

A eficácia da Estimativa e Compensação de Movimento pode ser ainda

maior se forem considerados não somente pixels inteiros, mas sim pixels fracionários. Dessa

forma, um pixel imaginário entre dois pixels adjacentes seria a interpolação deles, ou seja, a

média aritmética entre eles.

A decodificação faz o processo inverso da codificação, na fase da Estimati-

va de Movimento. Em conjunto com os dados, é transmitida ou armazenada também a variá-

Page 32: tcc-Marcelo-2004

32

vel motion vector, que contém o deslocamento de cada macrobloco de um frame a outro. Des-

sa forma, à medida que o decodificador for recebendo os frames do tipo I ou P (os quais ser-

vem de referência a outros frames do tipo P ou frames do tipo B), ele os armazena em variá-

veis temporárias, para que sejam utilizados para reconstruir frames futuros.

Alguns decodificadores suportam o acesso aleatório em um player. Porém,

se o usuário acessar um frame que utiliza informações de frames passados, seria impossível

reconstruir a imagem acessada, já que os frames precedentes não estão codificados. Esse aces-

so aleatório é possível graças ao Grupo de Frames, descrito anteriormente, que possui sempre

um frame do tipo I. Dessa forma, se soubermos, por exemplo, que os frames I ocorrem sem-

pre a cada 9 frames do tipo Inter, se o usuário desejar acessar o frame 23 de um vídeo, é ne-

cessário apenas decodificar os frames 20 (que é do tipo I), 21 e 22 para então poder decodifi-

car normalmente o frame 23.

3.3 ELIMINANDO REDUNDÂNCIA ESPACIAL

Como visto anteriormente, a visão humana não é capaz de captar algumas

freqüências de cores existentes na natureza. Na compressão, altas taxas de freqüência podem

ser eliminadas de uma imagem, sem perda de qualidade da imagem original.

Para eliminar a redundância espacial, existem basicamente duas técnicas:

Transformada Discreta do Co-seno (DCT), que é usada pela maioria dos codificadores de ví-

deo existentes, tais como o MPEG e o H-263; e a Transformada Discreta de Wavelet (DWT),

que pode fornecer altas taxas de compressão com poucos erros de codificação.

Geralmente, essas técnicas são aplicadas após a Estimativa e Compensação

de Movimento, no caso dos frames tipo inter, onde os macroblocos resultantes precisam ser

transmitidos.

3.3.1 Transformada Discreta do Co-seno (DCT) A Transformada Discreta do Co-seno transforma os dados do domínio espa-

cial para o domínio de freqüências. Para isso, a imagem é divida em blocos de 64 pixels (8 li-

nhas por 8 colunas) para que a quantidade de informação necessária para recriar a imagem di-

gitalizada seja minimizada [10]. A DCT é definida como:

Page 33: tcc-Marcelo-2004

33

onde:

O somatório interno da fórmula acima é uma DCT de uma dimensão, que é

aplicada em cada linha da imagem, definida pelo somatório externo. A saída da DCT é um

conjunto de 64 coeficientes cujos valores representam as freqüências do sinal de entrada. Es-

ses coeficientes podem ser divididos em dois tipos: coeficiente DC, e coeficientes AC (Figura

3.8). O coeficiente DC determina a cor predominante de todo o bloco, e possui a freqüência

mais baixa de ambas as direções (vertical e horizontal). Já os coeficientes AC determinam as

freqüências mais altas, à medida que se distanciam do coeficiente DC.

Figura 3.8 - Coeficientes AC e DC

Dessa forma, os coeficientes mais próximos do coeficiente DC são os mais

importantes, pois como possuem baixas freqüências, podem sensibilizar os fotorreceptores

presentes na retina com maior intensidade. Devido a isso, eles são varridos de forma zig-zag

[1] (Figura 3.9).

Assim, os primeiros coeficientes acessados são os de mais baixa freqüência,

e à medida que outros são acessados, ela é aumentada gradativamente. Essa organização de

coeficientes contribui com que a técnica de codificação por entropia, que será estudada adian-

te, tenha um melhor desempenho.

Page 34: tcc-Marcelo-2004

34

Figura 3.9 - Zig-zag

A transformada inversa do Co-seno é definida como:

onde:

A Transformada Inversa do Co-seno faz o processo inverso da DCT. Para

reconstruir a imagem, ela recebe como parâmetros os coeficientes, que estão no domínio de

freqüências, e os transformam em valores no domínio espacial.

3.3.2 Transformada Discreta de Wavelet (DWT) A Transformada Discreta de Wavelet, ao contrário da DCT, não divide a

imagem em blocos de 64 pixels; ela é aplicada em toda a imagem, adquirindo mais informa-

ções dos pixels em cada aplicação, e dessa forma melhorando a sua eficiência.

Para eliminar a redundância espacial, a DWT divide a imagem, através de

filtros, em duas componentes: uma de baixas freqüências, contendo as principais informações

sobre a imagem; e outra de altas freqüências, contendo as informações irrelevantes. A aplica-

ção da DWT a um sinal sn, com 0 < n < N, é feita através da convolução do sinal com as com-

ponentes de baixa e alta freqüência. Especificamente, a DWT é [11]:

Page 35: tcc-Marcelo-2004

35

onde cn representa os dados resultantes contendo baixas freqüências, dn representa os dados

resultantes contendo altas freqüências, e h e g representam, respectivamente, os coeficientes

dos filtros obtidos através da imagem.

Para reconstruir a imagem original, basta aplicar a transformada inversa:

Os principais codificadores de vídeo existentes utilizam a Transformada

Discreta do Co-seno devido à sua fácil implementação, e também porque com a divisão da

imagem em blocos e macroblocos, pode-se realizar a codificação em maior ou menor nível

em uma mesma imagem. Alguns trechos podem possuir um detalhamento maior da cena; já

outros podem conter apenas o plano de fundo. Isso contribui com que a qualidade da imagem

obtida seja próxima da original, contendo uma taxa de compressão bastante alta.

Por outro lado, a Transformada Discreta de Wavelet possui algumas vanta-

gens, em relação à Transformada do Co-seno:

1. Na DCT, cada bloco é codificado separadamente, ou seja, não existe

nenhuma ligação entre um bloco e outro na aplicação da Transfor-

mada. Isso não ocorre com a DWT, pois nesse caso, a imagem intei-

ra é aplicada de uma só vez;

2. Além de prejudicar a eficiência da DCT, a individualidade dos blo-

cos prejudica também a codificação por entropia, pois é necessário

codificar cada bloco separadamente;

3. Em altas taxas de compressão, a estrutura dos blocos na DCT fica

visível ao telespectador, prejudicando a qualidade da imagem;

4. A DWT pode ser aplicada como sendo de três dimensões, com a ter-

ceira dimensão ligada à eliminação da redundância temporal. Isso

Page 36: tcc-Marcelo-2004

36

proporciona um algoritmo mais eficiente, pois as duas técnicas estão

sendo combinadas para eliminar de uma só vez a redundância espa-

cial e a redundância temporal.

3.4 QUANTIZAÇÃO

Quantização consiste em converter um sinal de amplitudes contínuas em um

número finito de amplitudes discretas. Todo sinal deve ser quantizado para ser armazenado ou

transmitido na forma digital. Nessa técnica, a quantidade de bits que representam os dados é

diminuída, provocando uma degradação na imagem. No entanto, se a quantidade de níveis de

quantização, ou a taxa de bits for alta, a perda de qualidade pode ser imperceptível [8]. Como

exemplo clássico de quantização, podemos citar o arredondamento de números no formato

ponto-flutuante para números em formato inteiro.

Na codificação, após a Eliminação da Redundância Espacial através da DCT

ou DWT, os coeficientes são divididos por certos valores, e então arredondados para a forma

de números inteiros. No caso do MPEG-1, os valores que dividem os coeficientes são obtidos

através de uma tabela padrão, ou então, como é o caso do MPEG-2, podem ser especificados

pelo usuário. Pode-se ainda determinar um fator de escala no processo de quantização, que es-

tá diretamente ligado à taxa de compressão do codificador.

Em codificadores eficientes, como o padrão MPEG, o fator de escala é de-

terminado em cada fatia da imagem, podendo inclusive alterar o seu valor a cada macrobloco,

dependendo do grau de detalhamento do mesmo.

3.5 CODIFICAÇÃO POR ENTROPIA

A codificação por entropia é utilizada pelos codificadores para fazer a com-

pressão dos bits em baixo nível, ou seja, ela atua diretamente sobre os símbolos dos dados,

analisando-os e substituindo-os por quantidades de bits menores [8].

Após a quantização dos coeficientes obtidos pela DCT, eles são varridos de

forma zig-zag, fazendo com que os coeficientes de menor freqüência precedam os de maior

freqüência. Como os coeficientes de maior freqüência tendem a ser zero, a codificação por en-

tropia agrupa os zeros, substituindo-os por caracteres representativos [1]. Existem dois tipos

de codificação por entropia: codificação de Huffman e codificação aritmética.

Page 37: tcc-Marcelo-2004

37

3.5.1 Codificação de Huffman A codificação de Huffman transforma a representação dos símbolos através

de bits com um tamanho fixo para bits de tamanho variável, de tal forma que os símbolos que

aparecem mais tem uma codificação menor, enquanto que os símbolos que aparecem pouco

podem ter uma codificação maior [8].

A codificação de Huffman faz com que os códigos atribuídos a cada símbo-

lo não tenham nenhum prefixo de outro, pois desta forma é mais fácil determinar o começo e

o fim dos símbolos e, além disso, isto permite representar os códigos em uma árvore binária,

onde cada símbolo representa uma folha desta árvore.

Para construir a árvore binária, é utilizado um algoritmo guloso3 descrito

por Huffman, o qual inicia-se com uma floresta, onde cada componente é apenas um nó, sem

filhos, contendo o símbolo e a sua freqüência. Cada componente desta floresta sempre será

uma árvore e terá uma freqüência associada a ela. Em seguida, são realizadas iterações; em

cada uma, diminui-se o número de componentes conexas até obtermos apenas um componen-

te que é a Árvore de Huffman propriamente dita. Em cada iteração, o algoritmo escolhe duas

árvores que contém as menores freqüências nas raízes, e as combinam usando um novo nó. A

freqüência deste novo nó é a soma das freqüências dos nós das raízes das duas sub-árvores

combinadas. O ramo esquerdo deste nó contém o bit 0 e o ramo direito contém o bit 1. A idéia

é que os símbolos das duas sub-árvores terão o mesmo prefixo e vão diferir exatamente neste

bit. Fazendo isto, a codificação dos símbolos que estão nestas duas sub-árvores cresce de um

bit. Com isto, os códigos menores estão sendo reservados para os símbolos com maior fre-

qüência. O algoritmo é descrito em Algoritmo 1.

Suponha que se tenha um documento com os seguintes símbolos e suas res-

pectivas freqüências, conforme mostrado na Tabela 3.1.

Tabela 3.1 - Exemplo da Codificação de Huffman

Símbolo a c b f e d Freqüência 45 12 13 5 9 16

O processamento dos dados através do Algoritmo de Huffman é feito con-

forme a Figura 3.10. O código do símbolo de maior freqüência (a) é 0, e o de menor freqüên-

cia (f) é 1100.

3 Algoritmos gulosos é a maneira mais simples de se otimizar um determinado problema. Consiste em fazer a es-colha que parece ser a melhor no momento, isto é, é feita uma escolha local ótima na esperança que esta escolha leve a uma solução global ótima, ou perto da ótima.

Page 38: tcc-Marcelo-2004

38

Algoritmo 1 - Huffman

Figura 3.10 - Construção da Árvore de Huffman

Page 39: tcc-Marcelo-2004

39

3.5.2 Codificação Aritmética Assim como a codificação de Huffman, a codificação aritmética utiliza um

número de bits variáveis para comprimir os dados. Símbolos com baixa probabilidade de apa-

recerem são substituídos por seqüências altas de bits; e símbolos com alta probabilidade são

substituídos por seqüências baixas de bits. Desta forma, a codificação aritmética parece ser

igual à codificação de Huffman; no entanto, ao contrário de Huffman, ela utiliza informações

de símbolos adjacentes para fazer o cálculo da probabilidade, ou seja, é verificado o contexto

dos dados a serem comprimidos. Adicionalmente, a codificação aritmética não possui a restri-

ção de codificar um símbolo com sua entropia aproximada para um número inteiro de bits,

como acontece com a codificação de Huffman.

A codificação aritmética não utiliza tabelas auxiliares para comprimir os da-

dos; ela faz uso de uma técnica chamada de compressão adaptativa [8]. Nessa técnica, a en-

trada é comprimida dinamicamente, tomando-se como base um modelo que é construído com

base nos dados que acabaram de ser codificados.

O processamento da codificação aritmética gera números entre 0 e 1, os

quais são calculados a partir de um conjunto de probabilidades que é atribuída a cada símbolo.

Como exemplo, considere a palavra “DROMEDÁRIO”. A probabilidade de cada letra é dada

pela Tabela 3.2.

Tabela 3.2 - Exemplo da Codificação Aritmética

Símbolo Probabilidade Faixa A 1/10 0.0 <= f < 0.1 D 2/10 0.1 <= f < 0.3 E 1/10 0.3 <= f < 0.4 I 1/10 0.4 <= f < 0.5 M 1/10 0.5 <= f < 0.6 O 2/10 0.6 <= f < 0.8 R 2/10 0.8 <= f < 1.0

Com esta tabela, inicia-se a codificação, utilizando o algoritmo descrito em

Algoritmo 2.

Algoritmo 2 - Codificação Aritmética

Page 40: tcc-Marcelo-2004

40

São geradas duas tabelas, as quais possuem, respectivamente, os números

gerados pelo maior valor e pelo menor valor.

Tabela 3.3 - Resultado do Exemplo de Codificação Aritmética

Símbolo Menor Valor Maior Valor D 0.1 0.3 R 0.26 0.3 O 0.284 0.292 M 0.288 0.2888 E 0.28824 0.28832 D 0.288248 0.28848 A 0.288248 0.2882712 R 0.28826656 0.2882712 I 0.288268416 0.28826888 O 0.2882686944 0.2882687872

Como se pode notar pela Tabela 3.3, a codificação aritmética faz com que o

intervalo de cada símbolo fique cada vez menor. Constata-se que o intervalo do primeiro sím-

bolo é 0.2, e o do último símbolo é 0.0000000928. Isso contribui com que o número de bits a

serem armazenados para representar cada intervalo seja também cada vez menor.

A principal desvantagem da codificação aritmética é o fato de o algoritmo

consumir muitos recursos computacionais, tanto de CPU como de memória, prejudicando o

seu desempenho.

Page 41: tcc-Marcelo-2004

41

4 PRINCIPAIS PADRÕES DE CODIFICAÇÃO

Nesta seção serão apresentados alguns padrões de codificação e formatos de

vídeo. Cada especificação abordada será analisada, descrevendo de maneira simplificada os

conceitos, características e funcionalidades, apresentando exemplos de técnicas descritas ante-

riormente em cada formato.

4.1 AVI

O formato AVI é um padrão de vídeo digital desenvolvido pela Microsoft,

fornecendo suporte a vídeo e áudio intercalados através de segmentos. Os dados podem estar

em sua forma original ou pura, ou podem estar codificados, onde no próprio fluxo de dados é

especificado o codificador. Existem dois tipos de arquivos AVI: AVI tipo 1, onde o arquivo

AVI armazena o vídeo e/ou áudio em apenas um fluxo chamado “ivas”; e AVI tipo 2, onde o

arquivo AVI armazena o vídeo em um fluxo chamado “vids”, e o áudio em outro fluxo cha-

mado “auds”.

O padrão AVI possui uma sintaxe simplificada, com cabeçalhos divididos

através de RIFF´s (resource interchange file format) e de fourcc´s (four-character code) [12].

Os segmentos contendo os dados do arquivo AVI possuem um fourcc, que

identifica o tipo de dado contido no segmento. Os dois primeiros bytes contêm o número do

fluxo associado, e os dois últimos o código do tipo de dado, que está indicado na Tabela 4.1.

Tabela 4.1 - Tipos de dados contidos no trecho de dados

Código Descrição db Frames de vídeo não codificados dc Frames de vídeo codificados pc Mudança de Palheta de Cor wb Áudio

Desta forma, se o fluxo associado é o de número zero, e nele existem frames

não codificados, então o fourcc terá como tipo os caracteres ‘00db’.

4.2 H-261

O padrão de codificação de vídeo H-261 foi desenvolvido pela ITU (Inter-

national Telecom Union) em 1990, com suporte a taxas de dados múltiplas de 64 Kbits/s [5].

Page 42: tcc-Marcelo-2004

42

Este padrão utiliza a tecnologia ISDN4 na transmissão de seus dados, o que

permite que ele seja flexível a várias implementações, e versátil para incorporar novas tecno-

logias à medida que forem sendo desenvolvidas. Devido a isso, ainda hoje ele é utilizado jun-

tamente com a especificação H-3205 pela maioria das aplicações de videoconferência, embora

a ITU já tenha desenvolvido codecs mais eficientes do que ele.

O processo de codificação no padrão H-261 inicia-se pela aplicação de fil-

tragem de freqüência resultando em duas componentes básicas: luminância e crominância.

Em seguida, essas componentes são transformadas de modo que obedeçam à relação 4:2:0,

nas quais posteriormente é aplicada a quantização. Depois da quantização, a codificação é fei-

ta de acordo com o tipo de frame especificado: Intra ou inter-frame. A codificação em frames

do tipo Intra utiliza apenas a DCT, eliminando a redundância espacial. Já a codificação em

frames do tipo Inter utiliza a DCT para eliminar a redundância espacial e a Estimativa e Com-

pensação de Movimento para eliminar a redundância temporal. Para eliminar qualquer redun-

dância no fluxo de bits, é aplicada em ambas as codificações a codificação por entropia.

O padrão H-261 é utilizado aos pares, ou seja, é necessário um decodifica-

dor no receptor para decodificar os dados transmitidos pelo codificador. Entre eles, o fluxo de

bits é organizado em frames de 512 bits. Cada frame contém dois bits de sincronização, 492

bits descrevem o frame, e 18 bits são utilizados como detector de erros. Juntamente com o áu-

dio, eles são transportados em Px64 canais, onde P representa o número de canais de 64Kbits

que estão disponíveis para transmissão [5].

Ao contrário dos padrões MPEG de codificação de vídeo, o H-261 realiza a

Estimativa e Compensação de Movimento com base apenas em frames passados ao atual, não

utilizando os frames futuros como referência; além disso, o H-261 não possui suporte a reso-

lução em pixels fracionários, ou seja, ele realiza a Estimativa e Compensação de Movimento

com base apenas em pixels inteiros.

4.2.1 Funcionalidades Forward Error Encodig. O H-261 permite o uso de correções de erros futu-

ros (Forward Error Correction).

4 Integrated System Digital Network. É uma tecnologia digital que integra dois canais em uma mesma linha tele-fônica, ou seja, ele faz a multiplexação dos dados de forma que eles possam trafegar ao mesmo tempo em um ú-nico canal. 5 A especificação H-320 define todo o processo utilizado na videoconferência, desde a codificação de vídeo (uti-lizando o H-261) e áudio (G711, 722,728), até a transmissão de dados através da ISDN, passando pela multiple-xação dos dados e sistemas de controle.

Page 43: tcc-Marcelo-2004

43

Essa técnica pode reduzir o número de erros de transmissão em uma se-

qüência de vídeo, mas como conseqüência, aumenta a taxa de bits a ser transmitida. Pode ser

utilizada opcionalmente, onde a largura de banda seja suficiente para suportar essa informação

extra.

Layered Block Encodig. Consiste em dividir hierarquicamente cada frame

em quatro camadas diferentes. A primeira é o frame; a segunda é a divisão do frame em gru-

pos de blocos; a terceira é a subdivisão dos grupos de blocos em macroblocos; e a quarta são

os blocos que formam o macrobloco. Essa divisão sucessiva permite a fácil manipulação de

dados, além de transmissão e codificação de maneira ordenada.

4.3 H-263

O padrão de codificação de vídeo H-263 também foi desenvolvido pela ITU,

em 1996, e foi primeiramente projetado a suportar aplicações de baixas taxas de bits, cerca de

64 Kbits/s ou menos; mas em sua versão final, foi retirada essa limitação [5]. A transmissão

de seus dados pode ser feita através de ISDN, linhas telefônicas, Internet e rádio. É utilizado

em conjunto com a especificação H-324, em aplicações de videoconferência e videotelefonia,

entre elas: desktop room-based conferencing, vídeo através da Internet e linha telefônica,

monitoramento e vigilância, telemedicina e educação à distância.

O processo de codificação inicia-se com a aplicação da Estimativa e Com-

pensação de Movimento em frames do tipo Inter. Em seguida, os dados são submetidos a

DCT, e posteriormente à quantização; por fim, é feita a codificação por entropia dos dados.

Diferentemente do padrão H-261, o H-263 possui suporte à resolução de pixels fracionários

na Estimativa e Compensação de Movimento [5].

4.3.1 Funcionalidades Lower Data Rate or Better Error Recovery. O H-263 pode ser configurado

para trabalhar com baixas taxas de dados ou com menor ocorrência de erros. Isso é possível

porque parte da estrutura hierárquica do fluxo de dados é opcional. São incorporadas quatro

configurações para melhorar a performance do codec, as quais são descritas a seguir.

1. P-B framing. É utilizado amplamente nos codificadores MPEG.

Consiste em utilizar não apenas frames precedentes ao atual como

referência na Estimativa e Compensação de Movimento, podendo u-

tilizar frames futuros ao atual como auxilio na eliminação da redun-

dância temporal.

Page 44: tcc-Marcelo-2004

44

2. Unrestricted Motion Vectors. Pode ser utilizado eficientemente em

vídeos onde existem movimentos bruscos da câmera ou dos objetos

existentes. Contribui com uma menor taxa de bits por frame, porém,

além de provocar uma degradação na qualidade da imagem proveni-

ente de erros de codificação, essa técnica requer um tempo maior pa-

ra encontrar os macroblocos associados aos do frame atual.

3. Syntax-based Arithmetic Coding. Pode-se substituir a codificação

de Huffman pela codificação aritmética a fim de a codificação ser

baseada apenas em aspectos da seqüência de movimentos, não em

tabelas imensas de códigos de otimização.

4. Advance Prediction. É um modo opcional de codificação com o qual

o codec pode usar sobreposição de blocos da Estimativa e Compen-

sação de Movimento para criar frames do tipo Inter. Ao invés de se

utilizar quatro vetores de 8x8 pixels, o codec poderia utilizar um ú-

nico vetor de 16x16 pixels, diminuindo a quantidade de bits para re-

presentá-los, porém aumentando a taxa de erros de codificação.

4.4 MJPEG

O padrão MJPEG (Motion JPEG) é definido como a codificação de cada

frame de um vídeo separadamente, usando o padrão JPEG utilizado em codificação de ima-

gens. A técnica de Estimativa e Compensação de Movimento não é utilizada em nenhum fra-

me, ou seja, não há iteração entre um frame e outro. É um padrão com ótima qualidade final, e

também de fácil implementação, pois toda a informação referente a um frame está contida ne-

le mesmo. Por outro lado, a codificação é pequena, pois se elimina apenas a redundância es-

pacial. Pode-se dizer que o padrão MJPEG é uma concatenação de frames do tipo Intra, exis-

tentes em outros formatos.

O processo de codificação no formato MJPEG é o mesmo para todos os

frames do vídeo. Inicia-se pela aplicação da DCT, depois os coeficientes são quantizados, e

por fim, é feita a codificação por entropia.

A Tabela 4.2 relaciona o formato MJPEG com o formato MPEG-1 [13].

Nota-se através da Tabela 4.2 que a tolerância de erros do MJPEG é baixa,

em relação ao MPEG-1. Isso acontece porque os frames não se inter-relacionam no MJPEG, e

Page 45: tcc-Marcelo-2004

45

Tabela 4.2 - MPEG x MJPEG

Características MPEG-1 MJPEG Edição Linear Não-Linear Utilização de Banda Baixa Alta Tolerância a erros Alto Baixo Cabeçalhos e Tabelas Possui Não Possui Área de utilização Transmissão de Vídeo Edição de Vídeo Atraso de transmissão Baixo Nenhum Compatibilidade Existe um padrão Não existe um padrão

devido a isso, os erros existentes são exclusivos de cada frame. Além disso, o MJPEG não

possui um padrão de vídeo definido, como acontece com o MPEG e superiores. Isso dificulta

a visualização do vídeo, pois é necessário um decodificador específico para cada padrão.

4.5 MPEG-1

O padrão MPEG-1 foi desenvolvido pela International Standard Organiza-

tion (ISO) e pela International Eletrotechnical Commission (IEC), em 1992, com a finalidade

de padronizar uma versão codificada de vídeo e áudio, independentemente do formato de ví-

deo (PAL, NTSC ou SECAM). Foi o primeiro padrão a integrar dados de áudio e vídeo em

uma mesma especificação, através somente de implementações em software [14].

O MPEG-1 foi criado com o propósito de armazenamento de vídeo digital,

possuindo resolução equivalente ao formato VHS, e qualidade de áudio equivalente ao CD.

Sua taxa de bits é de 1.5 Mbits/s, e a resolução é 352x288 de luminância e 176x144 de cromi-

nância (relação 4:2:0).

O padrão MPEG-1 é subdividido em 5 partes [15]: Systems, Video, Áudio,

Compliance e Software Simulation. A descrição de cada uma é feita a seguir.

Systems. A primeira parte da especificação MPEG-1 descreve uma maneira

de se combinar um ou mais fluxos de dados de áudio e vídeo em um único fluxo, a fim de ar-

mazenamento ou transmissão dos dados. O MPEG-1 Systems é descrito através da Figura 4.1

[15].

Os dados são agrupados em pacotes de um fluxo de dados básico, os quais

são chamados de Packetised Elementary Stream (PES). Esses pacotes carregam consigo in-

formações a respeito de controle de tempo e taxa de bits, mas não a respeito de troca de in-

formações e interoperabilidade. Podem possuir tamanho fixo ou variável.

Page 46: tcc-Marcelo-2004

46

Figura 4.1 - MPEG-1 Systems

Os dados são recebidos pelo MPEG-1 System, o qual separa informações de

vídeo e áudio codificados. Juntamente com o módulo Clock Control, os decodificadores de

vídeo e de áudio decodificam os dados, mostrando-os na tela através de um player, de modo

que som e imagem fiquem sincronizados.

Video. O MPEG-1 Video descreve uma representação codificada para ser

usada na compressão de dados de vídeo. A taxa de bits referente ao vídeo é de cerca de 1.3

Mbits/s, com resoluções de 625 ou 525 linhas. Foi desenvolvido com a finalidade de armaze-

namento de vídeo digital, mas pode-se fazer a transmissão a uma taxa fixa de 1.5 Mbits/s.

A codificação no MPEG-1 é feita primeiramente aplicando-se a Estimativa e

Compensação de Movimento, depois é aplicado em cada macrobloco a DCT, em seguida é

feita a quantização e por fim, a codificação por entropia. Diferentemente do H-263, o padrão

MPEG-1 possui diferentes tabelas na codificação por entropia para os diferentes tipos de fra-

mes: I, P ou B. Por outro lado, é equivalente ao H-263 em relação à resolução de pixels fra-

cionários na Estimativa e Compensação de Movimento e também à quantização.

Audio. A terceira parte da especificação MPEG-1 define uma representação

codificada de dados de áudio. A taxa de bits referente ao áudio é de cerca de 0.3 Mbits/s, com

uma taxa de amostra de 32, 44.1 ou 48 KHz. Possui suporte tanto a sinais de áudio em um ca-

nal, como em sinais ocupando dois canais de dados (mono e estéreo).

O MPEG-1 descreve três faixas de compressão de sinais de áudio: Layer 1,

2 e 3. O nível de compressão, o poder de processamento da codificação e a qualidade final

aumentam proporcionalmente com o número da faixa. Por outro lado, a largura de banda ne-

Page 47: tcc-Marcelo-2004

47

cessária para transmissão diminui com o aumento do número da faixa. Desta forma, um sinal

de áudio codificado com o Layer 3 possui melhor taxa de compressão e um custo computa-

cional maior do que um sinal codificado com o Layer 1. A razão pela qual existem três faixas

de compressão de sinais de áudio se dá principalmente pelas diversas necessidades de certas

aplicações; enquanto uma requer altas taxas de compressão com um custo computacional bai-

xo, outra requer um algoritmo em tempo real com uma taxa de compressão limitada.

Através da Tabela 4.3 [1], podemos visualizar as diferenças existentes entre

as três faixas de compressão do MPEG-1. O Layer 3 refere-se ao formato MP3, conhecido a-

tualmente através de músicas que são baixadas da Internet.

Tabela 4.3 - Faixas de compressão do MPEG-1 Audio

Layer Taxa de Compressão

Taxa de Bits

Taxa de bits permitida Atraso Atraso mí-

nimo 1 1:4 192 Kbps 32-448 Kbps < 50 ms 19 ms 2 1:6 128 Kbps 32-384 Kbps 100 ms 35 ms 3 1:10 64 Kbps 32-320 Kbps 150 ms 58 ms

O processo de codificação de áudio na especificação MPEG-1 é feita com

base em algumas propriedades da audição humana. Basicamente uma pessoa não é capaz de

perceber algumas faixas de freqüências, e desta forma, elas podem ser eliminadas do sinal de

áudio sem degradar a qualidade do mesmo. Além disso, uma pessoa é incapaz de perceber

sons que são gerados antes (cerca de 2 a 5 ms) e depois (cerca de 100 ms) de algum som com

maior intensidade. Como exemplo, se ouvirmos um tiro de uma arma é impossível escutarmos

alguma coisa antes e depois do som emitido pela arma.

Compliance. A quarta parte da especificação MPEG-1 oferece maneiras de

como desenvolver testes a fim de verificar o fluxo de bits e o funcionamento do codificador e

do decodificador especificados nas três primeiras partes. A codificação pode ser verificada

analisando se um suficiente número de bits gerados pelo codificador foi decodificado com su-

cesso pelo decodificador. Além disso, pode-se verificar também se um decodificador atende

aos requerimentos especificados pelas três primeiras partes do MPEG-1. Pode-se ainda verifi-

car se as características de um dado fluxo de bits são compatíveis com os requerimentos da

aplicação sendo usada.

Software Simulation. Ao contrário das quatro primeiras partes da especifi-

cação MPEG-1, a última parte não é padronizada, isto é, sua descrição é feita de maneira in-

formal, que tem como objetivo beneficiar os usuários da especificação. Criado em 1994, ela é

Page 48: tcc-Marcelo-2004

48

um relatório técnico (technical report) da especificação, que oferece uma implementação

completa das três primeiras partes do MPEG-1.

4.6 MPEG-2

O padrão MPEG-2 foi desenvolvido também pela ISO/IEC, em 1996, com a

principal finalidade de transmissão, através da Internet, de dados de vídeo e áudio codifica-

dos. A especificação MPEG-2 descreve aspectos necessários para multiplexação de dados,

sincronização e links lógicos de rede, carregando informações de som e imagem [16].

O MPEG-2 possui uma taxa de bits que varia de 1.5 Mbits/s, onde a quali-

dade da imagem é compatível ao VHS, a 6 Mbits/s, que é utilizada em aplicações como TV

broadcasting [16]. Este padrão possui suporte a todas as relações de componentes descritas

anteriormente (relações 4:4:4, 4:2:2, 4:2:0 e 4:1:1). Também é permitido usar sinais de vídeo

entrelaçado na codificação.

O MPEG-2 é subdividido em 8 partes [15], as quais são descritas a seguir.

Systems. O MPEG-2 Systems possui a mesma finalidade do MPEG-1 Sys-

tems: multiplexação de dois ou mais fluxos de dados. Esta primeira parte da especificação

MPEG-2 é dividida em duas formas: Program Stream e Transport Stream, conforme o mode-

lo representado pela Figura 4.2.

Figura 4.2 - MPEG-2 Systems

Page 49: tcc-Marcelo-2004

49

O Program Stream equivale ao multiplexador existente no MPEG-1 Sys-

tems. É utilizado em armazenamento de dados, utilizando longas estruturas de dados para

transportar som e imagem. O sistema deve ser livre de erros, pois a perda de alguma destas es-

truturas pode resultar em sérios problemas de qualidade do vídeo.

O Transport Stream é utilizado na transmissão de vídeo. Utiliza pequenas

estruturas de dados, e devido a isso, pode ser utilizado em sistemas onde existe a probabilida-

de de ocorrerem erros.

Video. A codificação de vídeo no padrão MPEG-2 utiliza as mesmas carac-

terísticas do MPEG-1, porém adicionando certas funcionalidades para beneficiar uma ampla

variedade de aplicações. Ao invés de desenvolver diferentes padrões para cada aplicação, o

MPEG-2 utiliza o conceito de escalabilidade, no qual os dados são transportados em diferen-

tes fluxos complementares para o usuário. A aplicação então decide quais fluxos são apropri-

adas para o uso de acordo com suas características.

A escalabilidade existente no MPEG-2 é dividida em 4 partes: escalabilida-

de espacial, escalabilidade temporal, escalabilidade SNR e particionamento de dados [1].

1. Escalabilidade espacial. Consiste em oferecer suporte a diferentes

tamanhos da imagem, ou ainda, permitir com que o decodificador

escolha qual padrão utilizar na decodificação, podendo mudar de um

fluxo para outro.

2. Escalabilidade temporal. Permite utilizar diferentes taxas de fra-

mes em um mesmo fluxo de vídeo. Um fluxo pode ser combinado à

outro para oferecer taxas de frames mais altas.

3. Escalabilidade SNR. Consiste em oferecer diferentes qualidades de

imagem para a aplicação. Um fluxo pode ser combinado a outro com

a finalidade de aumentar a qualidade visual do vídeo.

4. Particionamento de dados. Os dados podem ser divididos em dife-

rentes fluxos de acordo com a sua importância. Alguns fluxos, onde

a probabilidade de ocorrência de erros é menor, poderiam levar in-

formações essenciais para a aplicação, enquanto que outros fluxos

sujeitos a maior probabilidade de erros levariam informações adicio-

nais do vídeo.

Page 50: tcc-Marcelo-2004

50

Essas características foram agrupadas em profiles e levels, a fim de oferecer

compatibilidade entre as aplicações e facilitar o uso de cada funcionalidade. Alguns profiles

são descritos pela Tabela 4.4 [1].

Tabela 4.4 - Profiles e Levels no MPEG-2

Profiles \ Levels Simple Main SNR Scalable

Spatial Scalable High Multiview 4:2:2

High level X X High-1440 level X X X Main level X X X X X X Low level X X

Novos profiles foram sendo criados desde o lançamento do MPEG-2 Video,

em Novembro de 1994.

Audio. A terceira parte da especificação MPEG-2 é equivalente ao MPEG-1

Audio, porém, ela oferece algumas funcionalidades adicionais, tais como suporte a vídeo com

vários idiomas, saídas surround e 5.1.

Compliance. A quarta parte da especificação MPEG-2 é equivalente ao

MPEG-1 Compliance.

Software Simulation. A quinta parte da especificação MPEG-2 é equivalen-

te ao MPEG-1 Software Simulation.

Digital Storage Media - DSM-CC. A sexta parte da especificação MPEG-2

(Figura 4.3) descreve um conjunto de protocolos que oferece funções específicas de controle e

operações para gerenciar fluxo de bits do MPEG-1 e MPEG-2. Estes protocolos podem ser

usados para sustentar aplicações em diferentes ambientes de rede.

Neste modelo, um fluxo é fornecido pelo servidor ao cliente. Cliente e ser-

vidor são considerados usuários da rede DSM-CC, a qual define uma entidade lógica chamada

SRM (Session and Resource Manager) que fornece um gerenciamento lógico central da rede

DSM-CC.

Real Time Interface for Systems Decoders. A penúltima parte da especifi-

cação MPEG-2 descreve uma interface em tempo real para decodificadores os quais podem

ser utilizados para adaptar todos os tipos de redes apropriados carregando pacotes Transport

Streams.

Page 51: tcc-Marcelo-2004

51

Figura 4.3 - DSM-CC

Conformance extensions for Digital Storage Media Command and Con-

trol (DSM-CC). A última parte da especificação MPEG-2 é a parte de testes do DSM-CC,

que ainda está em desenvolvimento.

4.7 MPEG-4

O padrão MPEG-4, desenvolvido pela ISO/IEC em 1998, possui uma enor-

me lista de funcionalidades que foram criadas após o MPEG-2 para beneficiar tanto usuários

finais e criadores de vídeo, como a rede de transmissão, evitando dessa forma, o desenvolvi-

mento de padrões próprios e players diferentes para cada aplicação. Isso é feito através de

meios padronizados que descrevem como representar, multiplexar, sincronizar e transmitir

contextos audiovisuais (chamados de objetos mídia) existentes em um sinal de vídeo. Diferen-

temente dos padrões anteriores, em que o vídeo era codificado e transmitido de forma linear, o

MPEG-4 divide a cena nesses objetos mídia, os quais são codificados e transmitidos separa-

damente para o destino [15].

Objetos mídia possuem três formas básicas: plano de fundo, objetos visuais

e áudio. Esses três elementos podem ser combinados formando cenas complexas, com um alto

poder de manipulação dos dados. Pode-se, por exemplo, colocar um objeto em qualquer coor-

Page 52: tcc-Marcelo-2004

52

denada do plano da imagem; aplicar transformadas para mudar a aparência geométrica ou a-

cústica de um objeto; e mudar a visão do telespectador para qualquer ponto da cena.

A entrega de dados do servidor ao cliente é feita separadamente para cada

stream de dados, as quais carregam objetos mídia. Cada fluxo possui uma QoS (Quality of

Service) diferente, de acordo com a disponibilidade da rede. O cliente, dependendo da cena,

pode interagir com o vídeo, mudando a posição da câmera, movendo objetos para outras posi-

ções, fazer um objeto reagir ao clicar nele, mudar o idioma e etc.

4.7.1 Funcionalidades Dependendo da parte da especificação MPEG-4, são fornecidas diferentes

funções para o usuário, as quais estão presentes na primeira versão do MPEG-4.

Transporte. O MPEG-4 não define, a princípio, nenhum padrão novo para

transporte de dados. Estes são transmitidos através do MPEG-2, ou diretamente através do

protocolo IP.

DMIF. O DMIF (Delivery Multimedia Integration Framework) faz a inter-

ligação entre uma aplicação e o transporte, fazendo com que a aplicação não precise se preo-

cupar com a transmissão dos dados. Desta forma, uma única aplicação pode utilizar diferentes

meios de transmissão, se estiver equipada com o DMIF.

Systems. Especifica a relação entre os componentes áudios-visuais que des-

crevem a cena. A descrição pode ser de dois tipos: BIFS (Binary Format for Scenes), que in-

forma as disposições espaço-temporal dos objetos; e ODs (Object Descriptors), que definem a

relação entre Elementary Streams pertencente a cada objeto, e também informações adicionais

como a URL necessária para acessar a Elementary Stream, as características e propriedades

do decodificador, entre outros.

Audio. O MPEG-4 Áudio fornece facilidades referentes a áudio a uma gran-

de variedade de aplicações, entre elas: General Audio Signals, Speech signals, Synthetic Au-

dio e Synthesized Speech Scalabl.

Visual. Descreve meios de codificação de vídeo não apenas em sinais reais,

ou seja, aqueles formados por pixels, mas também fornece codificação em sinais sintéticos, ou

seja, animações geradas pelo computador. A taxa de bits pode variar de 5 Kbits/s até 1

Gbits/s, com suporte a vídeo entrelaçado e resoluções compatíveis às usadas em estúdios. A

codificação é eficiente em qualquer taxa de bits, e o acesso aleatório é mais eficiente e rápido

do que no MPEG-2. A escalabilidade espacial, temporal, do codificador, do decodificador, e

Page 53: tcc-Marcelo-2004

53

da qualidade permite codificar/decodificar um vídeo de acordo com suas propriedades, obten-

do o máximo de compressão dos dados e variedade das aplicações.

Profiles. Por ter mais funcionalidades do que o MPEG-2, o MPEG-4 criou

um conjunto adicional de profiles e levels para facilitar a configuração do codificador e do de-

codificador em cada aplicação. Estes profiles são divididos em seis grupos: Visual Profiles,

Audio Profiles, Graphics Profiles, Scene Graph Profiles, MPEG-J Profiles e Object Decrip-

tor Profile.

MPEG-J. É um sistema programático que especifica uma API para combi-

nar players MPEG-4 com código Java. Relacionando MPEG-4 com código executável seguro,

criadores podem embutir controles complexos e mecanismos de processamento de dados com

seus dados de mídia para gerenciar a operação da sessão áudio-visual.

4.7.2 Exemplos de aplicação As aplicações para o padrão MPEG-4 estão classificadas de acordo com o

tempo disponível para execução; simetria de facilidades de transmissão e interatividade. Exis-

tem 5 classes de aplicações, especificadas pela Tabela 4.5.

Tabela 4.5 - Classes de Aplicações do MPEG-4

Alguns exemplos de cada classe são dados pela Tabela 4.6.

Tabela 4.6 - Exemplos de aplicação

Classe Aplicação 1 Videoconferência, videotelefonia, consulta remota a especialista com simetria. 2 Controle ou monitoramento remoto e consulta remota assimétrica à especialista. 3 Correio eletrônico. 4 Jogos, vídeo sob demanda, teleshopping, noticiário eletrônico. 5 Apresentações multimídias, ou aquelas em que não existe interatividade.

4.8 MPEG-7

Informações audiovisuais como o vídeo, estão presentes em grande quanti-

dade na Internet. A maior dificuldade de usuários hoje em dia, está em como encontrar esses

dados, através de valores de cores, áudio, formato de objetos, entre outros [17]. Sites de busca

Tempo Real Simétrica Interativa Classe 1 X X X Classe 2 X X Classe 3 X X Classe 4 X Classe 5

Page 54: tcc-Marcelo-2004

54

geralmente realizam a busca de determinada informação com base apenas em palavras e fra-

ses, contribuindo com a carência de ferramentas que fazem a pesquisa com base em outras in-

formações audiovisuais.

O padrão MPEG-7, iniciado em 1996, tem como objetivo acabar com esses

limites de identificação de conteúdo que existem hoje, especificando um conjunto padrão de

descritores que podem ser usados para descrever vários tipos de informações multimídia. Es-

tará fundamentado no MPEG-4, pois dessa forma, é possível ligar descrições para objetos

com a cena, permitindo diferentes granulosidades na sua descrição, ou seja, diferentes níveis

de discriminação. Como exemplo de um nível abstração baixo seria a cor, forma, tamanho e

posição de um objeto visual, assim como tom, duração, posição no espaço e mudança de tem-

po de um objeto auditivo. Um nível de abstração alto, por sua vez, poderia ser um músico to-

cando piano à esquerda do vídeo.

O MPEG-7 tem o esquema de processamento mostrado pela Figura 4.4.

Figura 4.4 - Esquema de processamento do padrão MPEG-7

A fase de Extração das Características consiste em fazer a análise dos obje-

tos da cena. Essa fase contribui bastante com a exploração das possibilidades da descrição do

MPEG-7 se ela for feita de maneira automática. Porém, algumas abstrações de alto nível são

impossíveis de serem feitas, necessitando a interação humana. Ferramentas de extração intera-

tiva podem facilitar esse trabalho, porém elas e a Máquina de Busca estão fora da especifica-

ção MPEG-7 [15].

4.8.1 Exemplos de aplicação Existem muitas aplicações para o padrão MPEG-7, como bibliotecas digi-

tais, serviços de diretório multimídia, seleção de mídia de difusão, edição multimídia, educa-

ção, jornalismo e turismo [15]. Entre essas aplicações, será possível fazer buscas de dados

complexas, informando chaves de busca em alto nível, tais como:

1. Músicas - tocar uma notas no teclado e ter como retorno uma lista

de partes musicais, relacionadas com as notas;

2. Gráficos - desenhar algumas linhas na tela e ter o retorno de um

conjunto de imagens contendo gráficos ou desenhos similares;

Page 55: tcc-Marcelo-2004

55

3. Imagens - definir objetos, incluindo cores e texturas e ter como res-

postas imagens que contenham os objetos que foram definidos;

4. Cenário - descrever ações e buscar uma lista de cenários onde ações

similares acontecem;

5. Voz - usando um extrator da voz de Pavarotti, e ter como resposta

uma lista de gravações do cantor.

4.9 MPEG-21

O principal objetivo do padrão MPEG-21 é descrever um esquema aberto

que permite a integração de todos os componentes de um sistema de entrega necessários para

usar, manipular, gerenciar e entregar dados multimídia através de uma ampla rede de compu-

tadores e dispositivos. Ele identificará e definirá os elementos necessários para sustentar o sis-

tema de entrega, suas relações e operações suportadas por eles. Dentro das partes do MPEG-

21, o padrão desenvolverá os elementos definindo a sintaxe e semântica de suas característi-

cas, como por exemplo, a interface desses elementos. O MPEG-21 descreverá também as fun-

cionalidades necessárias da especificação, tais como os protocolos associados com as interfa-

ces e os mecanismos para prover um armazenamento, criação, adaptação e etc [18].

O padrão MPEG-21 é baseado em dois conceitos principais: a definição de

uma unidade fundamental de distribuição e transação, chamado de Itens Digitais, e o conceito

de usuários interagindo com esses itens digitais. Os itens digitais são os dados do sistema, ou

seja, filmes, álbuns de música, shows, entre outros, os quais serão utilizados pelos usuários.

Os elementos descritos pelo padrão MPEG-21 são divididos em sete partes,

as quais estão descritas a seguir [15].

Digital Item Declaration. É uma abstração uniforme e flexível para declarar

itens digitais e suas interoperabilidades.

Digital Item Identification e Description. É um esquema para identificação

e descrição de qualquer entidade, exceto sua natureza, tipo ou granulosidades.

Content Handling and Usage. Fornece interfaces e protocolos que permi-

tem criação, manipulação, busca, acesso, armazenamento, entrega e uso de dados através do

sistema de distribuição.

Intellectual Property Management and Protection. Permite que os dados

sejam persistentemente gerenciados e protegidos através de qualquer rede de computadores e

periféricos.

Page 56: tcc-Marcelo-2004

56

Terminals and Network. Fornece interoperabilidade e transparente acesso a

dados através da rede.

Content Representation. Descreve a maneira com que os dados multimídia

são representados.

Event Reporting. Interface que permite com que os usuários entendam pre-

cisamente o desempenho de todos os eventos relatados dentro do padrão.

4.9.1 Exemplos de aplicação Uma aplicação poderia ser a comunicação de dados multimídia em redes

não uniformes, onde cada terminal tivesse a sua própria configuração de vídeo, áudio, e etc.

Como exemplo, um mesmo servidor poderia estar distribuindo dados de vídeo para um com-

putador de uma empresa, e ao mesmo tempo, para um celular equipado com a tecnologia

WAP.

Outro exemplo seria a sincronização de Itens Digitais, o que permitiria o

cliente a receber ao mesmo tempo vídeos, fotos, músicas e textos em um mesmo fluxo de da-

dos [19].

4.10 RESUMO DOS PADRÕES DE CODIFICAÇÃO

Nesta seção, apresentar-se-á através da Tabela 4.7 um resumo das principais

características dos padrões de codificação de vídeo descritos neste trabalho.

Tabela 4.7 - Resumo dos padrões de codificação

Padrão Taxa de Dados Codificação Transmissão Finalidade AVI Variável Pode ou não ha-

ver codificação dos dados.

- Criação e mani-pulação de vídeo digital.

H-261 Px64 Kbits/s Alta, elimina re-dundâncias espa-cial e temporal.

ISDN Videoconferência

H-263 Px64 Kbits/s Alta, elimina re-dundâncias espa-cial e temporal.

ISDN, Internet, Rádio, entre ou-tros.

Videoconferência

MJPEG >50 Mbits/s [20] Baixa, elimina apenas a redun-dância espacial.

- Aplicações que necessitam de al-ta qualidade da imagem codifi-cada.

Page 57: tcc-Marcelo-2004

57

MPEG-1 1.5 Mbits/s Alta, elimina re-dundâncias espa-cial e temporal.

- Armazenamento de vídeo digital.

MPEG-2 1.5 Mbits/s a 6 Mbits/s

Alta, elimina re-dundâncias espa-cial e temporal.

Internet, auxilia-da pelo DSM-CC.

Armazenamento ou Transmissão de vídeo digital.

MPEG-4 5 Kbits/s a 1 Gbits/s

Alta, elimina re-dundâncias espa-cial e temporal.

Feita através do MPEG-2, e auxi-liada pelo DMIF.

Manipulação e interatividade com a cena.

MPEG-7 - - - Busca de dados multimídia.

MPEG-21 Variável - - Auxílio na co-municação entre aplicações mul-timídia.

Page 58: tcc-Marcelo-2004

58

5 CONCLUSÃO

Com o advento do vídeo digital, a transmissão de dados entre aplicações

multimídia que utilizam vídeo tornou-se possível graças aos codificadores, os quais compac-

tam os dados significativamente e dependendo do padrão de codificação, chegam a fornecer

ainda funcionalidades adicionais para facilitar a transmissão. O armazenamento de vídeo tam-

bém foi beneficiado pela compressão dos dados, permitindo um menor espaço disponível em

disco para conter o vídeo. Diante dos codificadores, o vídeo digital está sendo cada vez mais

difundido na Internet, contribuindo com a criação de novas aplicações.

As técnicas de codificação de vídeo exploram a principal característica de

um sinal de vídeo, que é a redundância de informações. Enquanto a Estimativa e Compensa-

ção de Movimento elimina a redundância temporal, as Transformadas Discretas do Co-seno e

de Wavelet eliminam a redundância espacial. É na fase da quantização que a qualidade da i-

magem é alterada, pois é feito um arredondamento em cada coeficiente proveniente da Trans-

formada do Co-seno. Dependendo da necessidade da aplicação, essas técnicas podem atuar

com maior ou menor intensidade, aumentando ou diminuindo a taxa de compressão, porém

modificando a qualidade da imagem.

Alguns padrões de codificação de vídeo são próprios para certos tipos de a-

plicações; os padrões H-261 e H-263 são utilizados em videoconferência, onde a qualidade da

imagem não é primordial; já o padrão MPEG é utilizado em várias aplicações onde a qualida-

de da imagem é importante, como na telemedicina, por exemplo. O padrão MPEG fornece a-

inda várias funcionalidades adicionais para facilitar o trabalho da aplicação, entre elas: auxílio

na construção e transmissão de pacotes, multiplexação de dados de áudio e de vídeo, QoS, es-

calabilidade, suporte a interoperabilidade de usuários e ferramentas de busca multimídia.

A codificação de dados é uma ferramenta poderosa para diminuir os pro-

blemas de armazenamento e transmissão de dados multimídia, principalmente em aplicações

que utilizam o vídeo digital. Os principais codificadores de vídeo fazem uso das técnicas des-

critas neste trabalho, e podem ser usados para aumentar a performance da aplicação e melho-

rar o desempenho da rede e do sistema.

Page 59: tcc-Marcelo-2004

59

REFERÊNCIAS

[1] SOMMER, P.; ORZESSEK, M.; ATM & MPEG-2: Integrating Digital Video Into

Broad. Prentice Hall, 1998.

[2] PEREIRA F.; EBRAHIMI, T.; The MPEG-4 Book. New Jersey: Prentice-Hall, 2003.

[3] Home-page: “História do Vídeo”. Consultado na Internet em agosto de 2003.

http://www.historiadovideo.hpg.ig.com.br/historia.htm

[4] Home-page: “Tintim por Tintim #4-1”. Consultado na Internet em agosto de 2003.

http://www.fisica.ufc.br/tintim4-1.htm

[5] TROWT-BAYARD, T.; WILCOX, J. R. Videoconferencing. 2a. Ed. New York:

Telecom Books, 1997.

[6] Home-page: “Sinal de vídeo”. Consultado na Internet em setembro de 2003.

http://www.fazendovideo.com.br/vtsin.htm.

[7] Home-page: “Tutorial sobre Vídeo Digital: Mídias e formatos de vídeo”. Consultado

na Internet em setembro de 2003. http:// www.controle.net/suporte/suporte_video.shtml.

[8] GIBSON, J. D.; BERGER, T.; LOOKABAUGH, T.; LINDBERGH, D.; BAKER, R.

L. Digital Compression for Multimedia. Principles & Standards. San Francisco: Morgan

Kaufmann., 1998.

[9] Home-page: “MPEG Background”. Consultado na Internet em outubro de 2003.

http://bmrc.berkeley.edu/frame/research/mpeg/mpeg_overview.html.

[10] COCONU, C.; STOICA, V.; IONESCU, F.; PROFETA, D. “Distributed Implementa-

tion of Discrete Cosine Transform Algorithm on a Network of Workstation”. Consultado na

Internet em janeiro de 2004. 193.226.6.174/IT2002/pdf/L20.pdf

[11] KHALIL, H.; ATIYA A. F.; SHAHEEN, S. Three-Dimensional Video Compression

Using Subband/Wavelet Transform with Lower Buffering Requeriments. IEEE Transac-

tions on Image Processing. Vol. 8. No. 6. Junho de 1999.

Page 60: tcc-Marcelo-2004

60

[12] Home-page: “AVI RIFF File Reference”. Consultado na Internet em outubro de 2003.

http://msdn.microsoft.com/library/default.asp?url=/library/en-

us/directx9_c/directx/htm/avirifffilereference.asp.

[13] Home-page: “MPEG x M-JPEG [PRAV – Pesquisa em redes de alta velocidade]”.

Consultado na Internet em outubro de 2003. http://prav.unisinos.br/tutoriais/mpeg-vs-

mjpeg.php.

[14] PERKIS, A. Overview of MPEG. Consultado na Internet em outubro de 2003.

http://www.tele.ntnu.no/users/andrew/Papers/ LS-MPEG-4/mpeg-overview.pdf

[15] Home-page: “International Organization for Standardization (ISO) – MPEG stan-

dards”. Consultado na Internet em fevereiro de 2004. http://www.iso.ch/iso/en/prods-

services/popstds/mpeg.html

[16] RUIU, D. An overview of MPEG-2. Consultado na Internet em outubro de 2003.

http://cp.literature.agilent.com/litweb/pdf/5966-1031E.pdf

[17] Home-page: “MPEG-7 Main page”. Consultado na Internet em outubro de 2003.

http://ipsi.fraunhofer.de/delite/Projects/MPEG7/

[18] Home-page: “Mpeg-21”. Consultado na Internet em outubro de 2003.

http://ipsi.fraunhofer.de/delite/Projects/MPEG7/Mpeg21.html

[19] Home-page: “First MPEG-21 application online”. Consultado na Internet em janeiro

de 2004. http://www.innovations-report.com/html/reports/information_technology/report-

8000.html

[20] CAMPOS, L. J.; GOMES, A. T. A.; SOARES, L. F. G. “Transmissão de Fluxos de

Vídeo MPEG-2 Sobre Redes ATM”. Boletim bimestral sobre tecnologia de redes produzido

e publicado pela RNP – Rede Nacional de Ensino e Pesquisa. Vol. 4. No. 4. 28 de julho de

2000.