tcc-marcelo-2004
TRANSCRIPT
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
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
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_.
DEDICATÓRIA
Aos meus pais e irmãos, e aos meus amigos de facul-dade.
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.
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.
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.
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
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
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
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
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.
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.
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
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].
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:
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
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.
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.
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].
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
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
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 -
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.
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.
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
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.
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
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-
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
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á-
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:
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.
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]:
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
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.
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.
38
Algoritmo 1 - Huffman
Figura 3.10 - Construção da Árvore de Huffman
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
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.
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].
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.
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.
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
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.
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-
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 é
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
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.
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.
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-
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
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
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;
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.
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.
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.
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.
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.
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.