So Paulo
2007
So Paulo
2007
ALUNOS
Nmero
Mdia
Nota
Matrcula da Banca Orientador
3040296-4
3042936-6
Mdia
Desconto Nota
por atraso Final
COMISSO JULGADORA
Orientador Ismar Frango Silveira
Titular 1
Titular 2
Suplente
Mdia Obtida pelo Grupo de Trabalho
NOTA
Para constar, lavrado o presente termo que vai assinado pela Comisso Julgadora e pelo
Coordenador de TGI.
So Paulo,
Comisso Julgadora
____________________________________________________________
Professor
____________________________________________________________
Professor
____________________________________________________________
Professor
Coordenador de TGI
____________________________________________________________
Professor
AGRADECIMENTOS
Agradecemos a todos aqueles que nos deram fora, acreditaram em nosso potencial e
contriburam, direta ou indiretamente para o desenvolvimento deste trabalho.
A todos os professores do Mackenzie que sempre atenderam nossas dvidas de forma
atenciosa sempre que precisamos.
Ao nosso orientador Ismar Frango que sempre nos atendeu e guiou com muita
pacincia desde o princpio.
RESUMO
O objetivo deste trabalho o estudo da plataforma de televiso digital para o desenvolvimento
de uma aplicao de loja virtual que faa uso dos padres MPEG-7 e MPEG-21. Esta
aplicao de televiso digital servir como uma ligao entre os elementos do padro MPEG7, utilizado para gerar metadados sobre arquivos multimdia, e os elementos do padro
MPEG-21, que servir para o encapsulamento e o controle de acesso arquivos multimdia.
A aplicao ser desenvolvida com o uso da API Java TV, por causa da sua alta portabilidade
entre sistemas de televiso digital, e tambm com o emulador XleTView, que ser utilizado
para testar as aplicaes durante o processo de desenvolvimento. Ao final deste estudo, ser
feita uma anlise da viabilidade de implantao desta aplicao na plataforma de televiso
digital.
ABSTRACT
The goal of this work is to study the digital television platform for the development of an
online store application that makes use of MPEG-7 and MPEG-21 standards. This digital
television application will be a connection between the MPEG-7 elements, used to generate
metadata about multimedia files, and the MPEG-21 elements, that will serve to encapsulates
and control the access to multimedia files. The application will be developed using the Java
TV API because of its highly portability between digital television systems and also with the
XleTView emulator which will be used to test the applications during the development
process. By the end of the study, an analysis will be made to evaluate the implementation
viability of his application in a digital television platform.
Lista de Ilustraes
FIGURA 1: FOTOS TIRADAS POR EDWARD MUYBRIDGE QUANDO VISTAS SEQENCIALMENTE, DO A IMPRESSO
DE MOVIMENTO................................................................................................................................................ 14
FIGURA 2: COMPARAO ENTRE REA DA TELEVISO COMUM (4:3) COM O PADRO HDTV (16:9) ...................... 18
FIGURA 3: ETAPAS PARA CONVERTER UM VDEO ANALGICO EM UM SINAL DE TV DIGITAL .................................. 21
FIGURA 4: PROCESSO DE TRANSMISSO E RECEPO DE DADOS DA TV DIGITAL.................................................... 23
FIGURA 5: ESTRUTURA DO MODELO FUNCIONAL DE UM MIDDLEWARE .................................................................... 29
FIGURA 6: PILHA DE SOFTWARE EM UM RECEPTOR DE TELEVISO DIGITAL ............................................................. 34
FIGURA 7: CICLO DE VIDA DE UM XLET .................................................................................................................... 35
FIGURA 8: MODELO DE EXIBIO DASE .................................................................................................................. 38
FIGURA 9: MODELO DE EXIBIO ARIB ................................................................................................................... 39
FIGURA 10: EXEMPLO DE ORDEM DE APRESENTAO EM RELAO ORDEM DE CODIFICAO ............................ 45
FIGURA 11: LOGO MPEG DESCRITO PELA ANOTAO MPEG-7.............................................................................. 51
FIGURA 12: EXEMPLO DE APLICAO DE DESCRIO EM UMA CENA DE VDEO, RETIRADO DE (MARTINEZ;
KOENEN; PEREIRA, 2002) .......................................................................................................................... 52
FIGURA 13: ORGANIZAO DAS FERRAMENTAS DE ACORDO COM A FUNCIONALIDADE .......................................... 54
FIGURA 14: EXEMPLO DO USO DOS ELEMENTOS DA DIGITAL ITEM DECLARATION LANGUAGE .............................. 57
FIGURA 15: IMAGEM DA JANELA DE LOG .................................................................................................................. 62
FIGURA 16: IMAGEM DA XLET EM EXECUO SOBRE O VDEO ................................................................................. 63
FIGURA 17: INTERFACES DE EXIBIO DE DETALHES E CONFIRMAO DE COMPRA ................................................ 64
FIGURA 18: INTERFACES DE RESULTADO DA CONFIRMAO DE COMPRA: SUCESSO E ERRO.................................... 65
FIGURA 19: PACOTE CLIENTE .................................................................................................................................... 66
FIGURA 20: PACOTE DE APRESENTAO ................................................................................................................... 68
FIGURA 21: PACOTE DE INTERFACE GRFICA DA CAMADA DE APRESENTAO ....................................................... 69
FIGURA 22: PACOTE DE NEGCIOS ............................................................................................................................ 71
FIGURA 23:PACOTE DE INGRAO ............................................................................................................................ 72
FIGURA 24: PACOTE DE DADOS ................................................................................................................................. 74
FIGURA 25: PRIMEIRA PARTE DO DIAGRAMA DE SEQNCIA DA ATIVAO DE UM ANNCIO ................................. 75
FIGURA 26: SEGUNDA PARTE DO DIAGRAMA DE SEQNCIA DA ATIVAO DE UM ANNCIO ................................. 76
FIGURA 27: DIAGRAMA DE SEQNCIA DE UM CENRIO DE COMPRA ...................................................................... 77
FIGURA 28: MODELAGEM DO CONTEDO DE UM PRODUTO ...................................................................................... 84
FIGURA 29: DIGITAL ITEM DE UM PRODUTO FEITO COM DID E DII .......................................................................... 85
FIGURA 30: REGRA APLICADA EXIBIO DE DIGITAL ITEM CONTENDO O VDEO DE UM PRODUTO DIGITAL
VENDIDO .......................................................................................................................................................... 86
Lista de Tabelas
TABELA 1: COMPARAO ENTRE OS PADRES DE TELEVISO DIGITAL ................................................................... 25
TABELA 2: SUPORTE A FORMATOS MULTIMDIA DA API JMF .................................................................................. 61
Sumrio
INTRODUO ...................................................................................................................................................... 12
CAPTULO 1 A TELEVISO DIGITAL ........................................................................................................ 14
1.1 - SISTEMAS DE TELEVISO ............................................................................................................................. 15
1.1.1 - Televiso Analgica ............................................................................................................................ 15
1.1.2 - Televiso Digital ................................................................................................................................. 17
1.2 PADRES DE TRANSMISSO DIGITAL ........................................................................................................... 21
1.2.1 - Padres para Codificao e Compresso .......................................................................................... 21
1.2.2 - Padro para Multiplexao e Transporte .......................................................................................... 21
1.2.3 - Padres para Modulao e Transmisso ........................................................................................... 22
1.3 - ARQUITETURA DA TELEVISO DIGITAL INTERATIVA .................................................................................. 23
1.4 - PADRES DE TELEVISO DIGITAL ................................................................................................................. 24
1.4.1 - ATSC (Advanced Television Systems Committee) .............................................................................. 25
1.4.2 - DVB (Digital Vdeo Broadcasting) ..................................................................................................... 26
1.4.3 - ISDB (Integrated Services Digital Broadcasting) .............................................................................. 26
1.4.4 - Padro Brasileiro ................................................................................................................................ 27
1.5 - MIDDLEWARES ............................................................................................................................................. 28
1.5.1 Blocos Fundamentais ......................................................................................................................... 30
1.5.1.1 DAVIC .......................................................................................................................................................... 30
1.5.1.2 HAVi ............................................................................................................................................................. 31
1.5.1.3 - Java TV API ................................................................................................................................................... 33
1.5.1.4 Microsoft TV ................................................................................................................................................. 35
12
Introduo
Com o surgimento da televiso digital, alm do grande avano na qualidade da
imagem, a interatividade entre a televiso e o telespectador se torna possvel, fazendo com
que este, passe a ser um usurio, permitindo a criao de diversas funcionalidades que no
eram possveis com o uso da televiso analgica.
A idia do trabalho o desenvolvimento de uma aplicao para a televiso digital que
funcionasse como uma loja virtual, na qual fossem exibidos anncios para os produtos em um
canto da tela, buscando no interferir na programao que estaria sendo exibida em
determinado momento. Em uma situao ideal, o produto que estivesse sendo anunciando na
loja virtual, teria alguma relao com a programao, para incentivar o usurio, que
possivelmente poderia ver o produto em uso antes de mesmo de compr-lo.
O uso das funcionalidades de interatividade desta plataforma permite que o usurio
compre aquilo que est vendo e tambm que ele veja o produto em uso no prprio programa
de televiso ou atravs de vdeos adquiridos em tempo real, fotos do produto, entre outros.
Desta forma abre-se a possibilidade de emissoras de televiso e lojas interessadas em formar
parcerias, obterem outra fonte de renda, trazendo a ao da compra para uma nova plataforma,
explorando as novas funcionalidades que so oferecidas, e sem interromper a programao da
emissora.
Seria uma grande diferena em comparao televiso analgica, onde grande parte
do lucro das emissoras proveniente de propagandas e anncios que so intercalados com a
programao da emissora, interferindo assim, em sua exibio. Assim, interagir com a
televiso digital ficaria muito mais parecido com o que possvel evidenciar em websites
acessados por computadores, onde o usurio pode navegar pela propaganda, obter mais
informaes sobre ele, ver mais fotos e compr-lo.
H uma dificuldade tambm em no deixar essa propaganda ser invasiva demais,
interferindo o programa de televiso. No momento da compra, tambm seria necessrio um
cdigo de segurana para garantir que o usurio responsvel pelo acesso a loja virtual que
est efetuando a compra. Essa segurana til tambm para famlias, impedindo que crianas
comprem produtos sem o conhecimento dos pais.
A aplicao que ser desenvolvida neste trabalho, focar no uso dos padres MPEG-7
e MPEG-21. Estes padres contero todas as informaes necessrias para a exibio do
anncio, porm, necessrio o desenvolvimento de uma aplicao para televiso digital
baseada na JAVA TV API, j que os STBs desenvolvimentos at o presente momento no
13
possuem suporte tais padres. Esta aplicao realizar a integrao entre os padres MPEG
e o programa de televiso sendo exibido, alm de operaes como sincronizao de anncio,
entre outras. Ser apresentada toda a parte relativa engenharia de software desta aplicao, e
tambm os modelos propostos para utilizao dos padres MPEG-7 e MPEG-21.
O uso desses padres MPEG um grande desafio, uma vez que h poucos estudos j
realizados com a utilizao dos mesmos, pois esto parcialmente definidos ou sujeitos a
alteraes devido ao crescente desenvolvimento da plataforma de televiso digital e outros
dispositivos multimdia.
14
Figura 1: Fotos tiradas por Edward Muybridge quando vistas seqencialmente, do a impresso de movimento
As fotos comprovaram que os cavalos tiram as quatro patas do cho ao mesmo tempo
durante o trote. Mas acabaram ficando famosas pela idia de movimento que do quando
vistas seqencialmente. Mais tarde, iriam inspirar os estudos de outros inventores, como o
fisiologista francs tienne-Jules Marey, que inventou em 1887, a cronofotografia. Ou
Thomas Edison, inventor do filme perfurado e do cinetoscpio em 1890. Em 1895, os irmos
Auguste e Louis Lumiere inventaram o cinematgrafo uma ancestral das filmadoras como
conhecemos hoje.
Assim como o vdeo, a televiso tambm no pode ser atribuda a um s inventor. Em
fevereiro de 1924, John Logie Baird faz a primeira demonstrao de televiso analgica. O
sistema completo, com a transmisso analgica surgiu pouco depois, em 1927, demonstrado
por Philo Farnsworth.
A partir de 1935, a televiso passou a ser oficialmente transmitida na Alemanha e na
Frana, sendo a Torre Eiffel o principal posto transmissor francs. A rede inglesa BBC foi
15
fundada em 1936. Londres, na poca, usava imagens com definio de 450 linhas. Uma das
primeiras grandes transmisses foi a dos jogos olmpicos de Berlim, em 1936. Durante a
Segunda Grande Guerra, a Alemanha foi o nico pas europeu que manteve suas transmisses
no ar. As transmisses em Paris s voltariam em outubro de 1944, e em Londres, somente em
junho de 1946, com a exibio, pela BBC, do desfile da vitria.
Apesar das primeiras imagens coloridas terem sido realizadas em 1929, por Hebert
Eugene Ives, as transmisses regulares em cores s comearam em 1954, nos Estados Unidos,
atravs da rede NBC. Nessa poca que surgiu o padro NTSC (National Television Standards
Comittee), para decidir como a exibio da transmisso a cores seria feita e de modo a no
inutilizar os 10 milhes de aparelhos em preto e branco da poca.
No Brasil, a primeira transmisso foi realizada na dcada de 1950, pela TV Tupi,
primeiro canal de televiso do pas, fundado por Assis Chateaubriand. A primeira transmisso
em cores no Brasil s veio a ocorrer em 1962.
16
combinando as linhas pares e as linhas mpares em cada um (Fischer, 04). Essas linhas so
transmitidas seqencialmente de forma entrelaada, resultando em uma taxa de atualizao de
quadros mais rpida, dobrando a quantidade de quadros por segundo. Desta forma, o padro
NTSC consegue exibir 60 quadros por segundo enquanto os padres PAL e SECAM
conseguem uma taxa de 50 quadros por segundo. Em ambos os casos, a transiao de quadros
segundo a segundo torna-se mais suave aos olhos humanos, dando melhor sensao de
movimento da imagem (Zimet, 2002).
Houve ainda padro de televiso analgica, o MUSE (Multiple sub-nyquist sampling
Encoding system), desenvolvido pela NHK (Nippon Hoso Kyokay) nos anos 80, que usava
uma tcnica de filtragem do sinal para diminuir a banda utilizada, e com isso, poder aumentar
a qualidade da imagem. Seu nome comercial era Hi-Vision. Este padro utilizava transmisso
via satlite e possua 1125 linhas de definio e proporo de 1.66:1, o que o difere bastante
das outras opes em televiso analgica. Ainda assim, este padro possua imagem um tanto
borrada, mas pode ser considerado um grande avano tecnolgico para a poca. O Japo
anunciou que as transmisses com este padro seriam encerradas em meados de 2007.
Em todos os padres apresentados, algumas linhas no so visveis, nos padres com
625 linhas, 50 linhas no so visveis, nos padres com 525 linhas, entre 38 e 42 linhas no
so visveis e no padro de 1125 linhas, 90 ou 55 no so visveis. As linhas restantes servem
para sincronismo ou funcionalidades extras como closed caption (Fischer, 2004).
Na televiso analgica dois sinais so responsveis pela imagem: o sinal de
luminosidade e o de croma. O sinal de luminosidade define o brilho e o contraste da imagem,
enquanto o croma fica responsvel por torn-la colorida a imagem. Esta separao faz com
que televises antigas monocromticas ainda sejam compatveis com sinal de televiso
analgica com imagem colorida.
A transmisso do sinal da televiso analgica ocorre atravs de ondas areas enviadas
por uma estao de televiso, em determinadas freqncias, que so pr-estabelecidas. Um
sinal de televiso analgica, composto por som e vdeo, necessita de uma banda de 6 MHz
para ser transmitido. Estas freqncias so organizadas em bandas da seguinte maneira:
17
A qualidade da imagem na televiso analgica limitada no s devido tecnologia
da poca, que no disponibilizava aparelhos de televiso com alta definio, mas tambm pela
falta de uma alta compresso dos dados. Na citao a seguir, o autor previa a necessidade de
utilizar-se compresso no sinal de televiso, visando um avano da tecnologia, que j estava
em estudo desde aquela poca (Lynch, 1985).
Broadcast television will still be analog as it arrives at the home receiver, but along the transmission
path from the studio transmitter to the home receiver a digital link will be used, such as is a communications
satellite link, and herein will be a logical place for compression.
18
melhoria da qualidade dos vdeos transmitidos, a resoluo 16:9, com propores de cinema,
tende a se tornar padro.
Figura 2: Comparao entre rea da televiso comum (4:3) com o padro HDTV (16:9)
19
canais pagos j possuem suas verses digitais que exibem dados sobre a programao para os
telespectadores. A LG lanou recentemente uma televiso que contm internamente um disco
rgido de 80GB que consegue gravar a programao para ser exibida posteriormente.
Nos Estados Unidos h uma espcie de televiso interativa chamada TiVo (Gartner,
2005). Trata-se de um aparelho instalado no televisor que permite no s que os usurios
gravem e assistam seus programas favoritos na hora que quiserem, mas tambm que criem
uma programao de acordo com seus gostos. possvel, por exemplo, criar um canal s de
desenhos. O aparelho se encarrega de verificar a programao dos canais disponveis e gravar
o que se adequar aos filtros definidos pelo prprio usurio. Atravs de uma linha telefnica, o
TiVo tambm se conecta internet. Dessa forma, ele consegue trazer para a televiso
informaes personalizadas pelo usurio.
Algumas promessas da televiso digital j so uma realidade em alguns lugares do
mundo, mas so conseguidas atravs de aparelhos anexados s televises com HDs internos
para armazenamento dos vdeos e que assim, conseguem simular essa tecnologia que est por
vir, na trasmisso analgica convencional. A televiso de alta definio, por sua vez, tambm
j uma realidade no Japo, onde, em 1 de dezembro de 2000, a NHK, que iniciou as
pesquisas da tecnologia, fez a primeira transmisso em HDTV. Entretanto h elementos que
ainda no conseguem ser reproduzidos com a transmisso analgica. Principalmente no que
diz respeito interao do usurio com o que est sendo transmitido.
Com a transmisso digital, ser possvel o envio de diversos canais de vdeo e udio.
Assim, ser possvel escolher se o filme ser transmitido dublado ou legendado, e ainda o
idioma das legendas. Em um show ou jogo de futebol, haver a disponibilidade de vrios
ngulos de cmera para que o telespectador escolha a que mais lhe agradar. A interatividade
estar presente na prpria programao, mesmo sem a necessidade de envio de um sinal de
retorno, ou seja, informao vinda das casas dos telespectadores emissora. Para uso de todas
as funcionalidades prometidas pela televiso digital, entretanto, necessria a existncia de
uma forma de retornar o sinal. O consenso atual que a forma escolhida seria a internet. A
televiso - ou o Set-Top-Box, aparelho que reproduz o sinal digital nos televisores
convencionais - teria que ser conectado linha telefnica, ou a redes domsticas conectadas
internet.
H trs formas de transmisso do sinal: transmisso terrestre, atravs de cabo ou a
transmisso via satlite. No caso do cabo, esse retorno do sinal pode ser realizado sem o uso
da internet. O cabo j vem sendo usado h algum tempo na televiso analgica e suporta
atualmente uma banda de at 550 MHz. Nos sistemas de transmisso analgica via cabo
20
atuais, o sinal embaralhado e decodificado nas residncias. O embaralhamento feito para,
por exemplo, limitar a quantidade de canais de um usurio. Um sinal inserido na
transmisso, levemente deslocado da freqncia e o sinal retirado com o uso do
decodificador. A televiso digital utiliza uma forma mais segura que o embaralhamento: a
codificao. O sinal enviado codificado e decodificado nas residncias atravs do uso de
uma chave apropriada. Caso no haja chave para decodificao, ao invs de um sinal
embaralhado, a televiso pode exibir propagandas ou uma tela qualquer. O sistema de
transmisso via cabo, porm, apresenta grandes desvantagens, como o alto custo e a
dificuldade de implantao em regies remotas, bem como sua disseminao local.
Para essas regies mais afastadas das grandes cidades, a transmisso por satlite
apresenta uma tima soluo. Ela eficaz porque o satlite possui uma rea de alcance muito
maior que as antenas de transmisso terrestre. Os dados so enviados e recebidos ao satlite
com o uso de antenas chamadas parablicas de satlite. Os satlites de televiso mantm-se
em rbita geossncrona em relao Terra, o que quer dizer que o movimento deles
acompanha o movimento de rotao da Terra. Dessa forma, as parablicas para recepo de
sinal de televiso por satlite s precisam ser ajustadas uma vez que continuaro recebendo o
sinal.
Porm a transmisso terrestre que dever ser usada para a transmisso digital, graas
ao seu baixo custo. Alm disso, no h necessidade de se pagar assinaturas s emissoras.
Atravs de grandes antenas, os sinais so transmitidos por ondas de radiofreqncia pelo ar e
podem ser captados nas residncias atravs de receptores apropriados, assim como
transmitido o sinal de televiso analgica pblica.
Alm da forma de transmisso, necessrio tambm realizar a escolha do padro de
televiso digital a ser usado (Fernandes et al., 2004). O padro escolhido decidir o mtodo a
ser usado em cada uma das trs etapas principais da transmisso digital.
21
1.2 Padres de transmisso digital
Na figura a seguir, so representadas as interaes entre as diversas estapas para que a
transmisso do sinal digital seja efetuada a partir de um vdeo analgico:
22
obrigatoriamente um header de no mnimo 4 bytes. Cada header possui um campo
denominado PID (Packet Identifier), usado para a indentificao do pacote. Os bytes
posteriores so a carga do pacote ou PES (Packetized Elementary Stream).
Como os pacotes possuem tamanho fixo, o primeiro byte de cada pacote chamado
byte de sincronismo e usado na verificao de erros. Assim, ele verifica o byte encontrado
a cada 188 bytes e confere para ver se o valor fixo correspondente ao byte de sincronismo.
Os pacotes de transporte esto sujeitos a erros ou interferncias. Quando esses erros
so detectados, um bit do pacote alterado de forma a informar o demultiplexador que aquele
pacote contm erros. Esse bit se encontra no header do pacote e usado especificamente para
a detecco de erros.
Uma seqncia de pacotes resultante de uma multiplexao pode ser multiplexada
novamente. Caber ao receptor fazer o processo inverso, demultiplexar a seqncia e entregar
os itens corretos para seus respectivos decodificadores.
23
grandes diferenas geogrficas, como So Paulo, com densidade de edifcios, produzindo
padres de sombra e multipercurso, que so prejudiciais propagao UHF.
24
possui memria, processador, disco de armazenamento e uma srie de componentes tambm
presentes em microcomputadores.
Tal aparelho tem a funo de realizar a receptao deste sinal de televiso digital, seja
qual for o meio de transmisso, e realizar a demodulao, transformando-o para a forma
lgica novamente. Em seguida, esses dados so demultiplexados, separando udio, vdeo e
dados novamente, descomprimidos e ento o sistema operacional e o middleware processam
essa informao. As informaes de udio e vdeo sero enviadas a um Controlador de Mdia
presente no middleware, que ser responsvel pela apresentao dessas informaes ao
usurio, e os outros dados sero enviados a um subsistema denominado SI (Service
Information), responsvel por disponibilizar aplicaes aos usurios, exibir dados como
legenda, imagens estticas, etc. H ainda o Gerador de Carrossel, que responsvel por
estabelecer uma fluxo de dados entre o provedor de servios e o STB, enquanto o servio
estiver sintonizado. O gerador recebe este nome porque os fluxos de dados que geram o
sistema de arquivos precisam ser re-transmitidos ciclicamente, a fim de que seja possvel a um
STB que sintonizou o servio receber este sistema de arquivos, mesmo aps o incio da
difuso (Fernandes et al., 2004)
Para o maior aproveitamento da interatividade disponvel nesta plataforma,
necessrio que o STB tenha um canal de retorno, ou seja, uma conexo com a internet, ou
com linha telefnica (h diversas outras maneiras propostas em (Oliveira, Albuquerque, 2005)
para que o STB possa enviar informaes ao prestador de servios, e no somente receber, o
que possibilita uma infinidade de novas aplicaes para o cliente.
25
Tabela 1: Comparao entre os padres de televiso digital
Padro
Tipo
Codificao Codificao
do vdeo
do udio
Banda
utilizada
DVB
DVB-S
DVB-T
MPEG-2
MPEG-2/1
Digital Sound
8 Mhz
AC-3
6 Mhz
DVB-C
ATSC-T MPEG-2
ATSC
ATSC-C
ISDB
ISDB-S
ISDB-T
ISDB-C
Taxa de
transmisso
(Mbps)
38
24
15 (disp.
mveis)
38
19.28
38.57
MPEG-2
MPEG-2
AAC
34,5 Mhz
5,6 Mhz
6 Mhz
52
21.47
4.06 (disp.
mveis)
31.644
Pases que
adotaram
Europa,
Austrlia,
Rssia,
Taiwan, etc
Amrica do
Norte,
Mxico,
Argentina,
etc
Japo, Brasil
26
de 1080 pixels verticais por 1920 pixels horizontais. O formato de 720p possui uma tela de
exibio menos - de 720 pixels verticais por 1280 pixels horizontais -, entretanto, possui uma
taxa de atualizao da tela de 60 quadros por segundo - duas vezes maior que o formato
1080i.
27
qualidade. O udio codificado em padro MPEG-2 ACC (Advanced Audio Coding) e o
vdeo codificado em MPEG-2 Video, com qualidade HDTV.
O middleware adota uma plataforma denominada ARIB (Association of Radio
Industries and Business), que usa em seu modelo declarativo uma linguagem semelhante ao
XML, denominada BML (Broadcast Markup Language).
28
seria transmitida juntamente com a televiso analgica, para que a nova tecnologia possa se
firmar gradativamente.
Alguns outros grandes problemas ainda no tm soluo aparente. Para uso completo
de todas as funcionalidades esperadas, por exemplo, seria necessrio o retorno do sinal, das
residncias s emissoras de televiso. Num pas onde apenas 20% da populao tm acesso
Internet, uma grande parcela - especialmente a mais pobre - no poderia usufruir de todas as
funcionalidades prometidas.
As mudanas com a chegada da televiso digital tambm atingem a gravao dos
programas. Com programas sendo transmitidos em qualidade altssima, os equipamentos de
gravao teriam que ser melhorados para conseguir melhor qualidade de imagem. As cmeras
atualmente usadas nas gravaes no suportariam a qualidade da imagem que seria
apresentada.
1.5 - Middlewares
Middleware um termo genrico usado para representar softwares que interagem com
o sistema operacional, hardware e alguns protocolos de comunicao, trabalhando como
mediadores dessas funcionalidades para outras aplicaes. Suas principais funes so:
29
Para facilitar o desenvolvimento de aplicaes nesta plataforma, e tornar as aplicaes
mais portveis, os STBs devem prover uma API (Application Programming Interface)
genrica bem definida, com o intuito de abstrair um pouco dessa heterogeneidade presente
para outras aplicaes (Fernandes et al., 2004).
Os benefcios do uso de um middleware no se fazem necessrios s no front-end
(STBs), mas tambm no back-end em caractersticas como: converso de contedo Web para
televiso, proxy, segurana, gerenciamento do assinante, etc. (Paes, Antoniazzi, 2005)
Devido a essa grande quantidade de benefcios, os rgos que projetam os padres de
televiso digital tambm desenvolvem seu prprio middleware, de forma com que este
funcione melhor com as caractersticas pr-estabelecidas no padro. Desta forma, o padro
DVB desenvolveu o middleware MHP (Multimedia Home Platform), o ATSC desenvolveu o
DASE (DTV Application Software Environment) e o ISDB desenvolveu o ARIB (Association
of RadioIndustries and Businesses).
A figura de (Paes, Antoniazzi, 2005) apresenta a estrutura do modelo funcional do
middleware para televiso Digital.
30
MPEG-2 Section Filter API serve para acessar dados anexos ao MPEG-2, como
metadados de outros padres MPEG por exemplo;
31
atravs da
A especificao ainda conta com uma extenso de API para tratamento de interface
para o usurio, utilizando o pacote AWT j disponvel na API do Java.
1.5.1.2 HAVi
HAVi (Home Audio Video interoperability) uma iniciativa de 8 grandes fabricantes
de produtos eletrnicos que visa fornecer uma especificao para a interoperabilidade entre
dispositivos de udio e vdeo dispostos em uma rede domstica. Prope uma rede onde
dispositivos de udio e vdeo tenham controle sobre outros dispositivos de udio e vdeo,
independentemente da configurao do dispositivo ou outro elemento de rede (HAVI, 1999).
Desta forma, qualquer elemento desta rede ter a possibilidade de exercer controle sobre outro
elemento.
Com esta arquitetura possvel fazer com que dispositivos de diferentes marcas
interajam entre si, j que uma arquitetura de especificao aberta, independente de
plataforma ou linguagem de programao. Assim, possvel fazer dispositivos se
comunicarem, mesmo sem utilizarem o mesmo sistema operacional ou linguagem de
programao, por exemplo. Basta que todos implementem uma verso desta arquitetura e
usem a API definida pela especificao.
A rede escolhida para suportar dados multimdia e troca de comandos entre os
dispositivos foi a IEEE-1394, tambm conhecida como Firewire. Este tipo de rede tem a
capacidade de transportar 400Mb/s e tem a vantagem de suportar comunicao sncrona,
tornando possvel que dados multimdia sejam transferidos em tempo real. Verses desta rede
32
utilizando tecnologia wireless, linhas telefnicas, entre outras, foram previstas desde o
comeo da especificao HAVi, possibilitando que adaptaes para as mesmas possam ser
desenvolvidas.
HAVi uma arquitetura de software distribudo que implementa elementos como
controle de rede, abstrao de dispositivo, comunicao entre dispositivos e ainda a interface
para o usurio (HAVI, 1999), que juntos, formam uma API para a interoperabilidade desta
arquitetura. Os elementos de software sao:
33
34
Uma caracterstica importante da plataforma Java sobre este tipo de hardware que ela
encapsula todas as funcionalidades que o sistema operacional expe para o controle do
hardware.
No lado do hardware, a Java TV API roda sobre um hardware muito especfico e
limitado, se comparado a um computador, que o receptor de televiso digital. Este receptor
lida com o sinal de vdeo e de dados de acordo com o meio de transmisso e realiza tarefas
como sintonizao, mudana de canal e demultiplexao dos dados. A Java TV API
proporciona uma abstrao ao hardware do receptor, fornecendo pacotes suficientes para o
controle de tais operaes, deixando que o desenvolvedor se preocupe apenas com o software
em si, e no com detalhes especficos da plataforma ou drivers para o controle do hardware.
Esta abstrao fundamental para o sucesso desta API, j que diferentes padres de televiso
digital foram desenvolvidos, e continuam sendo aprimorados, gerando assim, algumas
derivaes dos mesmos em uma grande escala. Tais padres sero implantandos nestes
receptores, e cada um ter suas particularidades, e caber ao fabricante do receptor adot-lo e
adapt-lo s especificaes Java. Esta caracterstica, h tempos est presente nos
computadores, como por exemplo, uma aplicao desenvolvida em Java sobre um sistema
operacional Mac capaz de ser executada, da mesma forma, sobre um sistema operacional
Windows. A mquina virtual residente no receptor e pode ser usada por outros blocos
fundamentais (Paes, Antoniazzi, 2005).
A figura abaixo caracteriza este ambiente de hardware e software para a Java TV API
quando implementada em um receptor de televiso digital. (Fernandes et al., 2004)
35
Uma aplicao desenvolvida com a Java TV API chamada xlet. Semelhante ao
Applet na web e ao Midlet nos dispositivos mveis, um xlet no precisa estar previamente
armazenado no STB para que seja executado, pois ele pode ser enviado da mesma forma
como o vdeo pelo canal de difuso, e posteriormente executado.
A figura a seguir mostra o ciclo de vida de uma aplicao xlet dentro de um STB.
(Fernandes et al., 2004)
Ao ser descarregado para o STB, a xlet encontra-se no estado Loaded. A seguir, pode
ser inicializada por um gerente de aplicao, que passa um objeto XletContext para a xlet, que
define seu contexto de execuo, que por sua vez, possibilita que a xlet notifique o gerente de
aplicao sobre mudanas de estado, num mecanismo semelhante ao de callbacks adotados
em diversas plataformas. Aps sua inicializao a xlet fica no estado Paused, onde ainda est
inoperante, e no retm informaes do servio. Neste estado, a xlet pode ser ativada e entrar
em execuo com todas as suas funcionalidades, passando para o estado Active, e em qualquer
estado a xlet pode ser destruda.
O objetivo da Sun Microsystems ao desenvolver esta API fazer com que as
necessidades dos fabricantes, desenvolvedores e distribuidores de contedo (canais de
televiso) sejam atendidas medida que estes procuram por solues seguras e portveis, pois
diferentes tipos de receptores so desenvolvidos para trabalharem com diferentes padres de
televiso digital. Alguns padres de televiso digital j adotam esta API, tornando-a um
grande recurso para desenvolvedores de aplicaes interativas.
1.5.1.4 Microsoft TV
A Microsoft tambm faz um importante trabalho no desenvolvimento para a
plataforma de televiso digital. Eles possuem uma plataforma toda baseada em softwares
36
prprios e buscam oferecer seu produto como uma alternativa utilizao da televiso digital
com outras APIs. Ao contrrio da Java TV API uma plataforma privada, e no de cdigo
aberto. Por outro lado, uma soluo para integrar as diferentes tecnologias necessrias para
se ter um ambiente de televiso digital adequado, pois ao invs de usar APIs de interface
grfica em conjunto com Java TV API, seria possvel usar apenas as APIs da prpria
Microsoft. Desta forma, o desenvolvedor encontra menos flexibilidade, porm mais facilidade
no desenvolvimento da aplicao.
Esta plataforma pode ser utilizada com diferentes meios de transmisso em que o sinal
de televiso digital capaz de ser transmitido e possui funcionalidades como suporte vdeos
de alta resoluo, gravao de vdeo no formato digital e aquisio de vdeos sob demanda.
1.5.2 - Padres
1.5.2.1 MHP
MHP (Multimedia Home Platform) o middleware desenvolvido pelo padro de
televiso digital europeu, o DVB (DVB, 2004). Este middleware define uma interface
genrica entre as aplicaes e o ambiente no qual essas aplicaes so executadas, por
exemplo o STB, criando uma abstrao entre as aplicaes e o ambiente (hardware e
software) em que elas residem. Desta maneira as aplicaes com base em MHP, sero
compatveis com STBs, televises com sistema digital integrado e computadores multimdia.
O MHP estende os padres DVB para broadcast e servios interativos em todos os
tipos de transmisso de sinal: cabo, terrestre, satlite, etc.
Sua arquitetura definida em 3 camadas (DVB, 2004):
37
linguagem declarativa baseada em HTML, denominada DVB-HTML (Paes, Antoniazzi,
2005).
O MHP possui trs tipos de perfis para implementao das plataformas de
servios(Paes, Antoniazzi, 2005):
1.5.2.2 DASE
DASE(DTV Application Software Environment) o middleware desenvolvido para o
padro de televiso digital americano ATSC (ATSC, 2004). O middleware DASE interage
com a camada de transporte, de modo a transformar a informao recebida pelo broadcast em
sada de vdeo e udio para a televiso acoplada.
Assim como as aplicaes MHP, as aplicaes DASE possuem forma declarativa e
procedural. Na forma declarativa as aplicaes podem ser escritas em HTML, XHTML ou
mesmo XML e conter folhas de estilos, scripts, etc. E na forma procedural a aplicao pode
ser uma xlet da API Java TV e conter outros arquivos.
O middleware DASE possui um subsistema chamado DAE (Declarative Application
Environment) para realizar o processamento das aplicaes declarativas. Este subsistema tem
um componente chave chamado DCDE (Declarative Content Decoding Engine) que atua
como analisador sinttico XDML e interpretador de scripts e estilos. J para as aplicaes
procedurais, existe um subsistema chamado PAE (Procedural Declarative Application
Environment) para realizar tal tarefa, como por exemplo, a JVM.
A arquitetura proposta por esta especificao basicamente composta por:
38
Entrada de dados o sistema deve suportar entrada de dados por parte do usurio;
1.5.2.3 ARIB
ARIB (Association of Radio Industries and Businesses) o middleware desenvolvido
pelo o padro de televiso digital japons ISDB (ISDB, 1998) para que seja efetuada a
comunicao entre sistema operacional, hardware e aplicaes. Neste middleware foi criada
uma linguagem de marcao chamada BML (Broadcast Markup Language), que possui
estrutura semelhante linguagem XML, para fazer o papel das aplicaes declarativas.
No ARIB o modelo de exibio mais elaborado, como na figura a seguir (Paes,
Antoniazzi, 2005):
39
Por enquanto pouqussimos pases so adeptos desta plataforma, portanto ela est
sendo reformulada de forma a ficar mais parecida com o MHP (Morris et al., 2005). Um dos
motivos que faz este padro ser menos aceito no mercado pode ser a falta de aplicaes do
tipo procedural, que restringem basante o ambiente do desenvolvedor.
40
1.5.2.4 Ginga
Ginga o nome do middleware desenvolvido para trabalhar com o padro brasileiro de
televiso digital, e destinado transmisso terrestre. o resultado do trabalho em conjunto de
diversos centros de pesquisa, destacando-se as universidades Pontifcia Universidade Catlica
do Rio de Janeiro (PUC-Rio) e Universidade Federal da Paraba (UFPB).
Este middleware tambm possui sua forma declarativa e sua forma procedural, assim
como possvel identificar nos outros middlewares apresentados. Na sua forma declarativa,
denominado Ginga-ncl e define uma linguagem declarativa chamada NCL, capaz de
enderear funcionalidades relativamente simples, no que diz respeito interatividade,
sincronismo de objetos de mdia, suporte diferentes tipos de dispositivos, entre outros.
Possui um mecanismo decodificador para esta linguagem NCL, suporte navegao
XHTML, incluindo CSS e um interpretador ECMAScript, alm de um mecanismo para
interpretar scripts LUA. (Filho et al, 2007)
J em sua forma procedural, h um subsistema denominado Ginga-J, que se baseia na
linguagem Java para prover suas funcionalidades. Seu ambiente de execuo uma Mquina
Virtual Java (JVM) e aplicaes sobre este middleware tem acesso todos os recursos do
STB, alm de possuir suporte comunicaes do tipo Bluetooth, Wi-fi, Ethernet, entre outras
formas. Prov funcionalidades bsicas como acesso a fluxo de dados de baixo nvel,
processamento do fluxo elementar de dados, componentes de interface, comunicao,
gerenciamento, persistncia e acesso condicional.
Para prover compatibilidade com outros middlewares de outros padres de televiso
digital, o Ginga dividido em um conjunto de trs APIs : A Verde, a Amarela e a Azul. A
API Verde compatvel com GEM (Globally Executable MHP), a API Amarela usada para
satisfazer necessidades especficas para o mercado brasileiro e pode criar aplicaes
compatveis com middlewares como MHP atravs de uma adaptao do software para a API
Verde, desde que essas ferramentas de adaptao sejam enviadas anteriormente ao STB. J a
API Azul produz aplicaes que s so capazes de executar em um ambiente com middleware
Ginga.
41
Captulo 2 MPEG
MPEG (Moving Picture Experts Group) o nome dado a uma famlia de padres ISO
(International Organization for Standardization) que so usados para a codificao de
elementos udio-visuais em um formato digital e comprimido. Tal famlia inclui os padres
MPEG-1, MPEG-2, MPEG-4, MPEG-7 e MPEG-21 que sero vistos sob mais detalhes ao
longo deste captulo. Esta famlia constantemente atualizada para a adaptao s novas
tecnologias que surgem com o tempo e no s os padres j existentes so atualizados, mas
tambm so criados novos padres.
2.1 - Padres
O Moving Picture Coding Experts Group iniciou seus trabalhos em 1988. O padro
MPEG-2 foi iniciado em 1991 e publicado em 1995, sendo uma evoluo do MPEG-1. O
MPEG-2 descrito pelas especificaes ISO/IEC 13818, que definem a forma de compresso
para o fluxo de dados do sistema (ISO, 2000a), para a compresso do vdeo (ISO, 2000b) e
para a compresso do udio (ISO, 1998). A camada de compresso de fluxo de dados MPEG2 Systems segue as recomendaes H.222.0 (ITU, 2000a) e a camada de compresso de vdeo
MPEG-2 Video segues as recomendaes H.262 (ITU, 2000b) no mbito do ITU-T
(International Telecommunication Union - Telecommunication Standardization Sector).
O objetivo do MPEG-2 prover uma taxa de vdeo adequado para os sistemas de
televiso. Assim, a taxa de vdeo varia entre 1,5 Mbps e 30 Mbps, sendo at 15Mbps
adequados para o padro SDTV e acima de 15 indicado para o padro de HDTV.
O padro MPEG-4 foi finalizado em 1998 e se tornou padro internacional em 2000.
O surgimento desse novo padro tornou-se necessrio como forma de permitir a transmisso
pela internet de vdeos com a qualidade do MPEG-2, em arquivos menores. A portabilidade
criada com o MPEG-4 permite que os filmes sejam executados nos mais diversos tipos de
aparelhos, de celulares a televisores.
Para garantir essa interoperabilidade, diversas empresas, como Apple, IBM, Philips,
HP, Cisco, Sun, entre outras, se uniram para a criao do ISMA (Internet Streaming Media
Alliance), que define os padres dos players que devero rodar o MPEG-4. Devido
capacidade do MPEG-4 de manter a qualidade do vdeo, mesmo a baixas taxas de
transmisso, o padro tambm usado em algumas transmissoras de televiso via satlite.
42
O padro MPEG-4 faz uso de um padro de compresso denominado H.264, que
possibilita a apresentao da mesma qualidade do vdeo MPEG-2, porm usando apenas um
tero de taxa de dados.
O padro MPEG-7, formalmente conhecido como Multimedia Content Description
Interface ou Interface para Descrio de Contedo Multimdia, disponibiliza ferramentas para
a descrio de contedo multimdia atravs de anotaes em XML. Dessa forma possvel,
por exemplo, fazer com que a letra de uma msica seja sincronizada com a prpria msica.
Assim como o MPEG-7, o MPEG-21 utiliza as anotaes em XML embutidas dentro do
vdeo de forma bem semelhante. O MPEG-21, entretanto possui uma segurana maior, alm
de outras funcionalidades, como proteger os direitos autorais dos vdeos e monitoria dos
estados de transmisso.
2.3 - MPEG-1
Aprovado inicialmente em 1991, o padro MPEG-1 define a codificao de elementos
audiovisuais para mdias de armazenamento com capacidade de transferncia de at 1,5Mbit/s
de dados. MPEG-1 foi o primeiro resultado dos esforos do grupo MPEG.
Este padro foi definido em 5 partes. So elas (MPEG1, 1996) :
43
especificam udio de qualidade elevada, porm com alta complexidade no
momento da compresso, enquanto a terceira tambm consegue atingir alta
qualidade de maneira mais simplificada, sendo esta, mais usada em aplicaes
digitais;
Software: uma implementao das trs primeiras partes com cdigo fonte fechado.
Tecnologias como Vdeo CDs (VCDs) e MPEG-1 Layer III (mais conhecido como
MP3) so os pontos fortes deste padro. Este ltimo vem sendo usado para comprimir udio e
a nica parte deste padro que ainda encontrada com alta freqncia em dispositivos
digitais (como MP3 players, celulares, etc), devido ao seu baixo custo de armazenamento e
fidelidade para com o udio original. A perda de qualidade do MP3 praticamente
imperceptvel.
2.4 - MPEG-2
Um arquivo no formato MPEG-2 divide-se em duas camadas. A camada de
compresso e a camada de sistema. A camada de sistema a responsvel pela multiplexao
do vdeo, ideal para a transmisso. A camada de compresso cuida da codificao e
compresso dos dados de udio e vdeo.
44
redesenhando apenas as linhas pares ou as mpares o top field ou o bottom field. J no vdeo
progressivo, todas as linhas so atualizadas.
O olho humano mais sensvel a mudanas no brilho do que na cromaticidade. Por
isso a diviso do frame em uma matriz de luminncia e duas de cromncia feita. As matrizes
de cromncia acabam ento, sofrendo uma compresso maior do que a matriz de luminncia.
O habitual mtodo de compresso usado o Discrete Cosine Transform (DCT), ou
transformada discreta de Cosseno. A tcnica reduz as componentes de alta-freqncia da
imagem, uma vez que o olho humano mais sensvel a reconstrues de componentes de
baixa-freqncia.
As imagens podem ser codificadas em trs tipos diferentes de frames. Os Intra-Coded
Frames (I-frames) so codificados usando apenas informaes contidas no prprio frame
original, no havendo dependncia com frames anteriores ou posteriores. Como cada frame
pode ser considerado como uma imagem, a compresso de um I-frame semelhante
realizada em uma imagem de padro JPEG, por exemplo. Os Predictive-Coded Frames (Pframes) so codificados de forma preditiva em relao a um quadro I-frame ou a um quadro
P-frame anterior. Ou seja, h pelo menos um macrobloco presente no quadro que possui uma
dependncia com algum macrobloco de outra figura. J os Bidirectionally-Predictive-Coded
Frames (B-frames) so codificados de forma preditiva em relao aos quadros I-frame ou Pframe anteriores ou posteriores. Dessa forma, pelo menos um macro bloco de um quadro Bframe possui dependncia com algum quadro posterior a ele. Logo, para uma codificao Bframe, necessrio que o quadro posterior ao qual ele possui essa dependncia j tenha sido
codificado (Cavendish, 2005).
Cada frame codificado possui o parmetro temporal_reference, que funciona como um
contador, utilizado para que o decodificador consiga detectar eventuais perdas de frames.
Os algoritmos que realizam a compresso MPEG buscam reduzir a redundncia
temporal que existe entre os frames consecutivos. Eles tentam, por exemplo, eliminar
elementos que so iguais em dois frames seqenciais. O mtodo consiste em calcular o erro
de predio entre os blocos nas imagens atuais e nas imagens anteriores.
Outro tipo de compresso possvel usando a predio por compensao de
movimento. feita uma estimativa de movimento entre as imagens do vdeo e a codificao
gera uma translao de pixels entre as imagens. Esse mtodo feito realizando a comparao
de macrobloco de uma figura com macroblocos pertencentes a figuras vizinhas. O macrobloco
da figura vizinha que mais se identificar com o do frame que est sendo codificado ser usado
como referncia na operao de predio. Um vetor de movimento indicando a diferena de
45
localizao do macrobloco entre os dois frames criado e transmitido junto com o
macrobloco codificado. Tambm transmitida junto com o macrobloco, a posio em relao
ao macrobloco anterior, a indicao do mtodo de predio e quais blocos de cromncia e
luminncia foram codificados.
Para facilitar a decodificao, a ordenao dos frames no fluxo diferente da ordem
que os frames devem ser exibidos. Essa ordem garante que as figuras usadas como referncia
pelos outros quadros sejam sempre recebidas antes dos quadros que as utilizam. Para a
exibio de um frame que usa codificao P-frame em referncia a outro frame I-frame,
necessrio que o decodificador j tenha recebido o I-frame antes de decodificar o P-frame
(Cavendish, 2005).
A Figura 10 ilustra como deve ser a ordem. Como os frames 2 e 3 utilizam codificao
B-frame, que necessita dos frames posteriores para serem usados como referncia (no caso, o
frame 4), o decodificador recebe primeiramente o frame 4 e depois os frames 2 e 3, que
possuem referncia a ele.
46
47
2.5 - MPEG-4
O MPEG-4 utiliza o padro H.264, desenvolvido pela ITU-T Video Coding Experts
Group (VCEG) em conjunto com a Moving Pictures Experts Group (MPEG). Ele foi criado
com o intuito de fornecer uma qualidade de vdeo to boa quanto a apresentada pelo MPEG-2,
mas gerando arquivos com apenas metade do tamanho. A implementao, entretanto, no
poderia ser muito complexa para no tornar o processo de codificao extremamente caro.
Para atingir seu objetivo, o MPEG-4 possui algumas diferenas em relao
compresso. Ele permite, por exemplo, o uso de at 32 frames de referncia, contra apenas 1
ou 2 frames nos mtodos anteriores. Isso permite a gerao de arquivos muito menores e
melhorias at na qualidade de imagem.
A tcnica de predio por compensao de movimento tambm evoluiu bastante,
permitindo blocos com tamanho 4x4 e 16x16 e preciso de movimento dos blocos de at de
pixel. A performance tambm amplamente melhorada nos efeitos de fade in e fade out.
Alm disso, usa sistemas chamados de flexible macroblock reordering (ordenao dos
macroblocos flexvel) e arbitrary slice ordering (ordenao arbitrria de fatias) para
reestruturar a maneira como os macroblocos so apresentados na imagem.
O H.264 ainda utiliza de duas tcnicas de codificao denominadas Codificao
aritmtica binria adaptvel segundo o contexto (context-adaptive binary arithmetic coding,
CABAC) e Codificao de comprimento varivel adaptvel segundo o contexto (contextadaptive variable-length coding, CAVLC), que usam algoritmos inteligentes para comprimir
streams de vdeo com perdas quase mnimas.
H diversos novos meios de se evitar erros na codificao e decodificao tambm.
Entre eles, pode-se destacar a partio de dados, que permite separar pedaos mais
importantes e menos importantes da imagem em pacotes separados, permitindo que se faa
um controle maior de erros naqueles pedaos mais importantes. Usa tambm redundant slices,
(fatias redundantes) que permite que um codificador crie uma imagem extra geralmente de
menor qualidade - de uma regio de um frame, para ser usada se a representao preliminar
original do frame estiver corrompida.
Essas tcnicas permitem que o MPEG-4 tenha um desempenho muito superior ao
MPEG-2, apresentando uma qualidade de vdeo semelhante e, por vezes, at superior com
arquivos que tm metade ou menos da metade do tamanho.
2.6 - MPEG-7
48
Seguindo os mesmos princpios do MPEG-4, o grupo MPEG iniciou um projeto de
outro padro, o MPEG-7. Seu intuito era de estabelecer descries (ou anotaes) para
contedos multimdia de forma a possibilitar que buscas, filtragens e outros processamentos
similares fossem realizados de forma mais rpida e eficiente. Tais anotaes tambm so
chamadas de metadados.
Este padro prov diversas ferramentas para auxiliar na descrio e gerenciamento do
contedo, organizao e navegao. A descrio do contedo pode ser transmitida ou
acessada por um dispositivo ou programa de computador, e pode ter diferentes interpretaes
dependendo do contexto da informao.
O MPEG-7 no est focado em apenas uma aplicao em particular, ao invs disso, os
elementos contidos no MPEG-7 do suporte uma larga escala de aplicaes possveis, pois
so bastante genricas (MPEG7, 2004). A necessidade de uma ferramenta de descrio em
contedos multimdia est diretamente relacionada com a necessidade que as novas
tecnologias tem com relao eficincia e rapidez.
Um grande conjunto de ferramentas de descrio so definidas, e ainda uma
linguagem prpria, com sintaxe semelhante linguagem de marcao XML, que possibilita
aos desenvolvedores expandir a funcionalidade do padro. H tambm uma srie de outras
ferramentas de sistema relativas distribuio final das anotaes MPEG-7, que realizam a
preparao dos dados para a transmisso (Martinez et al, 2002).
As ferramentas de descrio so representadas por elementos com metadados,
estruturas e relacionamentos, definidos como descritores e esquemas de descrio. A
descrio de um contedo multimdia feita atravs de descritores que possibilitam a
indexao e classificao das informaes. O padro MPEG-7 fornece ferramentas para
descrio de regies estticas, regies temporais e at mesmo regies dinmicas, que se
movem, no caso de vdeos.
A especificao deste padro, assim como nos outros padres MPEG, tambm est
definida em partes, cujas principais so: sistema, Description Definition Language (DDL),
vdeo, udio e Multimedia Description Schemes (MDS). Antes de explicar cada uma delas
preciso conhecer cada uma das definies a seguir, retiradas de (Martinez, 2002) de acordo
com definies presentes na especificao do padro:
49
50
referentes ao padro. H tambm uma camada no sistema responsvel por reagrupar essas
pequenas unidades para reconstituir os dados de descries (Martinez, 2002).
Outra caracterstica importante do sistema a utilizao do formato BiM (Binary
Formato for MPEG-7) para a representao binria das descries MPEG-7, que
originalmente so feitas em XML, que por sua vez no foi feita para trabalhar com sistemas
de tempo-real, por exemplo, contedo multimdia. O formato BiM possibilita a compresso e
distribuio streaming de documentos XML.
51
type=complete>
<ContentDescription xsi:type=ContentEntityType>
<MultimediaContent xsi:type=ImageType>
<Image>
<MediaLocator>
<MediaUri>
http://www.tilab.org/mpeg/mpeg_logo-anim_l.gif
</MediaUri>
</MediaLocator>
<CreationInformation>
<Creation>
<Title xml:lang=en>The animated MPEG Logo</Title>
<Creator>
<Role href=urn:mpeg:mpeg7:cs:RoleCS:AUTHOR>
<Name xml:lang=en>Author</Name>
</Role>
<Agent xsi:type=OrganizationType>
<Name>MPEG</Name>
</Agent>
</Creator>
</Creation>
<RelatedMaterial>
<MediaLocator>
<MediaUri>http://www.tilab.com/mpeg/</MediaUri>
</MediaLocator>
</RelatedMaterial>
</CreationInformation>
</Image>
</MultimediaContent>
</ContentDescription>
</Mpeg7>
Cdigo DDL da descrio do logo MPEG a seguir
52
como localizao de veculos e reconhecimento de faces (Martinez, 2002). J os genricos so
classificados em (MPEG7, 2004):
Figura 12: Exemplo de aplicao de descrio em uma cena de vdeo, retirado de (MARTINEZ; KOENEN; PEREIRA, 2002)
53
2.6.4 - MPEG-7 udio
Especifica ferramentas de descrio de elementos de udio, como msica e fala.
Descritores desse tipo so considerados de baixo nvel quando se referem caractersticas
paramtricas, temporais, e de espectros dos sinais de udio (tambm conhecido como MPEG7 Audio Framework) e de alto nvel quando so mais especficos para uma determinada
aplicao, usados em situaes como anotar o timbre ou melodia de um instrumento,
contedo falado ou at mesmo reconhecimento de som (MPEG7, 2004). Os descritores de
udio de alto nvel so classificados em (Martinez, 2002) :
Fala
54
2.7 - MPEG-21
O formato MPEG havia alcanado seus objetivos de compresso de formatos de mdia
com boa qualidade e utilizando pouco espao. Entretanto, a mdia somente no basta para
divulgar algumas informaes. O MPEG-21 surge com o objetivo de transportar mais do que
vdeo em um arquivo de mdia. Isso permite um uso mais especfico do contedo de mdia,
baseado, por exemplo, nas preferncias do usurio ou nas capacidades do dispositivo. Com
55
isso possvel fazer um controle sobre quem acessa a mdia, permitindo um maior controle
sobre os direitos autorais de um item digital.
H muitas semelhanas entre o MPEG-7 e o MPEG-21, principalmente no que diz
respeito s ferramentas de descrio que os dois sistemas adotam. O MPEG-21 focado em
estabelecer a relao entre um item digital e aquele que o usa. Entende-se por item digital a
combinao de recursos como vdeo, imagens, textos, metadados (que podem ser usados para
identificao do contedo) e a estrutura que descreve a relao entre esses recursos. Um
usurio qualquer um que possa interagir com aquele contedo, incluindo o criador, o
distribuidor, o detentor dos direitos autorais e o consumidor final.
Entretanto, por ser um formato ainda em desenvolvimento, vrias partes do padro
ainda no esto completamente definidas. Dentre as partes que j possuem especificao
definida, podemos citar:
Digital Item Declaration: Define uma srie de termos e conceitos que sero usados
para definir itens digitais;
Rights Data Dictionary: Define uma srie de termos bem estruturados e integrados
que visam atender todas as necessidades do Rights Expression Language;
File Format: Define um formato de arquivo para o MPEG-21, de forma que seja
compatvel com os demais formatos MPEG.
56
Condio: Descreve o elemento como sendo opcional e faz um link dele com as
condies que afetam a sua incluso. Mltiplos predicados inseridos em uma
mesma condio geram uma conjuno (relao AND). Mltiplas condies
associadas geram uma disjuno (relao OR);
57
Seleo: Descreve uma deciso que afeta uma ou mais condies em um item.
Pode retornar um predicado sendo verdadeiro, falso ou indefinido;
Figura 14: Exemplo do uso dos elementos da Digital Item Declaration Language
58
O MPEG-21 ainda composto por um Digital Item Identification Identificao de
Item Digital, cuja funo inclui identificar os itens digitais e suas partes, o endereo de IP
relacionado aos itens digitais e os esquemas de descrio. Alm disso o Digital Item
Identification especifica como usar os identificadores para relacionar os itens digitais com as
informaes contidas em suas respectivas descries em metadados. Digital Item
Identification tambm indica como devem ser identificados os diferentes tipos de Itens
digitais.
Outra preocupao com os direitos autorais dos arquivos de mdia. MPEG-21
estabelece um framework para o Intellectual Property Management and Protection (IPMP).
Para isso, ele faz uso de um Right Expression Language (REL), que permite declarar direitos
e permisses usando os termos definidos em um Right Data Dictionary (RDD). O RDD forma
a base de todas as expresses definidas no REL. O RDD e o REL provem mecanismos para
controlar o uso dos recursos digitais na publicao, distribuio e uso desses recursos udio,
filme, livros, jogos, softwares e qualquer outra criao em formato digital com o objetivo de
proteger o contedo e os direitos autorais especificados.
Por ser um formato muito recente, muito ainda vm sendo discutido em relao a
novas funcionalidades que o MPEG-21 pode vir a apresentar. Um exemplo o Digital Item
Adaptation, que especifica um conjunto de ferramentas de descrio para auxiliar a adaptao
de itens digitais.
59
3.1 O Emulador
O emulador utilizado, o XleTView, disponvel em http://xletview.sourceforge.net,
encontra-se em fase bastante inicial. Sua verso atual mais estvel que pode ser encontrada no
site oficial do emulador a 0.3.6, que apresenta uma implementao parcial, que deixa de
lados diversos elementos necessrios para o desenvolvimento total da aplicao de loja virtual
sugerida. Um exemplo dessa ausncia de funcionalidade a falta da simulao de um fluxo de
dados MPEG, como aconteceria em um STB, sendo assim, impossvel obter um vdeo em
tempo real, ou seja, para que o emulador rode vdeos necessrio que o vdeo esteja presente
por inteiro no disco local. Tambm no esto presentes decodificadores para os padres
MPEG-7 e MPEG-21, portanto no seria possvel extrair do vdeo, metadados MPEG-7 e
MPEG-21 ou mesmo fazer uso de ferramentas MPEG-21 para controle multimdia, de acesso,
entre outros.
O XleTView permite a visualizao de xlets Java sobre o middleware MHP no
computador e distribudo e desenvolvido pela GNU General Public License (GPL).
Desta forma impossvel desenvolver a aplicao da maneira desejada utilizando este
emulador, ou seja, recebendo os dados j decodificados do formato MPEG-7 e MPEG-21,
onde o STB ser o encarregado de separar estes dados e disponibiliz-los para a aplicao.
Devido a esta restrio outros emuladores que possuem implementao de algum padro de
televiso digital foram pesquisados, como o Cardinal Studio da Cardinal Systems e o
AltiComposer da Alticast, mas como todos estes so solues comerciais e disponibilizam
apenas verses de demonstrao que duram por 30 dias, tambm no foi possvel a sua
utilizao para desenvolvimento do sistema. Ainda assim, o que aparentou ser o mais
completo foi o AltiComposer e segundo sua descrio no site oficial, no implementa
60
decodificao de MPEG-7 nem MPEG-21. A implementao destes padres est diretamente
associada ao suporte de padres MPEG do padro de televiso digital, no caso, o MHP.
Segundo o site oficial do projeto XleTView, na verso 0.3.6, de 2004, das 373 classes
e interfaces listadas referentes s implementaes das APIs DAVIC, HAVi, DVB-MHP e
JavaTV, apenas 245 esto completamente implementadas, 1 tem um bug conhecido, 15 esto
sob implementao e 112 ainda no foram implementadas. Enquanto a verso mais atual,
listada como no-estvel, a verso 0.3.7 de 2005, apresenta 247 classes completamente
implementadas, 1 com bug conhecido, 16 sob implementao e 109 ainda no implementadas.
Desde esta ltima verso, nenhuma atualizao foi feita, o que sugere que o projeto foi
descontinuado.
A verso escolhida para o desenvolvimento da aplicao foi a XleTView 0.3.7, que,
mesmo sendo a ltima, j est defasada e no suporta diversas funcionalidades que estavam
nos planos da implementao inicial. Esta verso foi levemente modificada para facilitar a
depurao da aplicao.
61
Tabela 2: Suporte a formatos multimdia da API JMF
Formato
AVI (.avi)
Audio: 8-bit mono/stereo linear
Audio: 16-bit mono/stereo linear
Audio: DVI ADPCM compressed
Audio: G.711 (U-law)
Audio: A-law
Audio: GSM mono
Audio: ACM**
Video: Cinepak
Video: MJPEG (422)
Video: RGB
Video: YUV
Video: VCM**
MPEG-1 Video (.mpg)
Multiplexed System stream
Video-only stream
MPEG Layer II Audio (.mp2)
MPEG layer 1, 2 audio
JMF 2.1.1
Verso
independente de
plataforma
Leitura/escrita
D,E
D,E
D,E
D,E
D
D,E
D
D
D,E
D,E
Apenas leitura
D
JMF 2.1.1
Verso Windows
Leitura/escrita
D,E
D,E
D,E
D,E
D
D,E
D,E
D
D,E
D,E
D,E
D,E
Apenas leitura
D
D
Leitura/escrita
D,E
O formato utilizado nesta aplicao foi o Cinepak, convertido com o software RAD
Video Tools disponvel para download em http://www.radgametools.com/bnkmain.htm. A
princpio, a inteno era de utilizar o formato MPEG-2, por ser mais prximo da realidade
quanto aos padres de televiso digital, porm, com a verso da JMF utilizada pelo emulador
(que pouco difere da verso mais recente no quesito compatibilidade de formatos) no
possvel a decodificao do formato. O formato Cinepak tem baixa taxa de compresso se
comparado ao MPEG-2, e a perda de qualidade tambm maior: um vdeo de 1 minuto e 53
segundos compactado com o codec Windows Media Video (extenso .wmv) ocupava 2.53MB
de espao em disco, quando convertido para MPEG-2, passou a ocupar aproximadamente
23MB sem perda de qualidade perceptvel, e quando convertido utilizando-se o Cinepak,
ficou com 77MB e houve uma perceptvel reduo de qualidade.
62
executado, e este mecanismo no estava acompanhado de cdigo-fonte, apenas de cdigos
intermedirios Java.
Para contornar este problema, foi criada uma janela para o armazenamento de
mensagens das xlets, apenas para guardar a sada da aplicao, separando-a da sada do
emulador. Este mecanismo foi o mais prximo de uma depurao que foi possvel chegar
neste trabalho, se tratando de uma xlet, cujos arquivos binrios so carregados em tempo de
execuo e no so percebidos pela ferramenta de desenvolvimento utilizada. A figura a
seguir mostra o funcionamento da janela durante a execuo da xlet da loja virtual.
3.2 A aplicao
Para explicar como a aplicao funciona, bem como seu comportamento dentro de um
STB, necessrio entender suas funcionalidades primeiro. J se sabe que a aplicao uma
loja virtual para televiso digital, porm, uma aplicao para tal plataforma difere de uma em
plataformas mais convencionais para este tipo de aplicao, como por exemplo computadores
pessoais ou smart phones. possvel perceber melhor essa diferena analisando variveis
como resoluo da tela do dispositivo utilizado, poder computacional, e at o foco da
plataforma em questo: em uma televiso digital o foco na tela ser, na maior parte das vezes,
o vdeo que estar sendo exibido e no a loja virtual, enquanto em um computador pessoal, o
foco na tela geralmente ser a loja virtual.
No caso da televiso digital a aplicao deve ser mnima, estritamente relacionada com
a sua funcionalidade e sem quaisquer outros recursos que poderiam ser considerados de
importncia secundria. Baseado nisso, a aplicao, do ponto de vista do usurio contm
apenas uma interface que varia de contedo e tamanho de acordo com comandos do usurio.
So considerados comandos, toques nos botes do controle remoto. O usurio que desejar
63
visualizar os produtos da loja, dever primeiramente ativar a exibio de anncios, que poder
ser feita a qualquer momento, atravs de uma possvel aplicao para a configurao do
servio, ou ainda, atravs do boto azul do controle remoto. O usurio saber da interao
com o boto azul e sua relao com a loja virtual atravs de propagandas do prprio servio
durante a programao, ou atravs de um alerta sonoro ou um discreto alerta visual na tela,
notificando-o a respeito de uma possvel interao.Desta forma, quando houver um anncio
da loja disponvel naquele intervalo de tempo, a aplicao exibir sobre o vdeo, uma pequena
interface, alertando-o da existncia de um produto venda, como na figura a seguir.
Nesta interface, ser possvel visualizar uma miniatura da foto do produto, caso esteja
disponvel, bem como seu nome e uma breve descrio, acompanhados com um boto
vermelho e um boto verde, respectivamente simbolizando aes para ver mais detalhes do
produto e partir para a compra imediatamente. Ambas as cores, neste modelo, esto
diretamente ligadas s cores dos botes no controle, para facilitar a interao do usurio com
a aplicao.
64
Tambm possvel visualizar na figura anterior o remoto existente no emulador.
importante lembrar que um controle remoto para televiso digital deve ter mais botes do que
o normal para facilitar a interao com o usurio e o controle de aplicaes na tela. No caso
desta xlet, os botes coloridos serviro para aes dentro da aplicao e acarretaro em uma
transio nas formas da interface do programa enquanto o boto com o texto exit ter a
funo de desligar a exibio de propagandas daquele determinado servio (comumente
chamado de canal na televiso analgica), ou seja, invocar um mtodo de destruio da xlet
responsvel pela loja que ainda reside no STB, para que este d continuidade no ciclo de vida
desta xlet.
Quando o usurio aperta o boto vermelho referente tela de mais informaes, a
mesma interface tem o tamanho aumentado e seu contedo atualizado com uma foto maior do
produto caso esteja disponvel, sua descrio completa, preo de compra pela televiso digital
e opo de compra. Tanto a foto verso miniatura quanto a foto grande do produto podem ou
no aparecer no s devido a ela existir ou no para determinado produto, mas tambm por
possveis erros nas decodificaes dos padres MPEG-7 e MPEG-21 envolvidos.
65
de modo anlogo ao campo de senha em um formulrio web: o fato de que apertar os botes
numricos do controle de televiso digital, inutiliza funcionalidades de troca de canal durante
o tempo em que o campo detm o foco na tela e ter que digitar duas vezes aumentaria ainda
mais esse tempo, e tambm que este campo s ter validade no local onde se encontra o
respectivo STB, ou seja, o usurio s poder utilizar seu cdigo no local onde est cadastrada
a sua assinatura. Para esta aplicao, o ideal que houvesse assinatura de televiso digital
cabo, pois o mesmo cabo serviria para transmisso do sinal de televiso e para transmisso de
dados pela internet, que ser necessrio no momento da compra, j que estes dados precisam
ser retornados ao provedor de servio de televiso.
Esta comunicao com o servio ocorre de forma totalmente transparente para o
usurio sob as condies citadas, e realiza a autenticao no servidor, que retorna uma
resposta ao usurio pelo mesmo canal de comunicao, realizando assim, a operao de
autenticao e validao da compra. Esta ao pode gerar erro, caso o formulrio no tenha
sido preenchido corretamente ou o servio tenha recusado a requisio, ou pode finalizar a
compra caso o servio tenha validado a compra. Em caso de validao da compra, neste
modelo, o valor dever ser descontado na prxima fatura do usurio.
66
Alguns padres de programao GoF (Freeman et al., 2001) e tambm alguns padres
extrados da Java Enterprise Edition (Alur et al., 2003) foram utilizados e sero explicados
medida em que forem apresentados.
Em seguida, sero apresentados diagramas de seqncia para demonstrar como
funciona a execuo inicial do programa at o momento da exibio de um anncio e tambm
de um evento de compra gerado pelo usurio.
Nos testes realizados, foi possvel concluir que a xlet carregada dinamicamente pelo
STB. Em outras palavras, o STB, no momento em que recebe a xlet pelo fluxo de dados de
entrada, no conhece sua implementao, mas pode tentar carreg-la, fazendo-a passar para o
estado Loaded e execut-la atravs da interface j conhecida e padro para xlets
implementada na API Java TV. O mesmo acontece com quaisquer outras classes que so
utilizadas no decorrer da execuo da xlet.
Por exemplo, quando a xlet tentar acessar um objeto cuja definio no est disponvel
dentro do prprio STB, supe-se que esta classe tenha sido enviada junto com a xlet no fluxo
de dados, e ento o STB tenta carreg-la dinamicamente assim como fez com a prpria xlet.
67
Esse o esquema de funcionamento do emulador XleTView e talvez gere algum pequeno
atraso na execuo da aplicao, que pode se tornar quase imperceptvel dependendo do poder
computacional do STB e do tamanho do respectivo arquivo em disco.
Essa busca por definies de classe dinamicamente ocorre, no caso da aplicao da
loja virtual, quando a xlet se comunica com as classes da camada de apresentao.
A xlet se comunica com classe StoreController da camada de apresentao assim que
passa para o estado Active, para informar, atravs de seu contexto de execuo, a instncia do
gerenciador de execuo da mdia, no caso uma instncia de Player. Outras operaes
importantes que a xlet faz assim que passa para este estado, so os registros junto s classes
StoreController e ProductEventManager que fazem a classe receber eventos da camada de
apresentao, para que seja possvel atualizar a interface da aplicao. Para isso, a xlet
implementa as interfaces AnnounceListener e ProductListener, que so explicadas na prxima
camada. O registro nada mais do que uma referncia ao objeto da xlet que uma classe
gerenciadora de eventos possui.
68
Por se tratar de uma aplicao onde a parte visual extremamente importante, pois no
se deseja interferir excessivamente na exibio do vdeo, h bastante lgica de interface e
nesta camada que feita a comunicao com a camada de negcios para a efetuao da
respectiva lgica. Esta camada uma ponte entre a camada cliente e de negcios, e est mais
relacionada com a camada cliente do que com a camada de negcios.
A classe mais importante a StoreController que uma thread que implementada
utilizando-se o padro GoF Singleton (Freeman et al., 2001), para que haja apenas uma
instncia desta thread. Esta thread disparada assim que a xlet entra no estado Active, e tem a
funo de solicitar camada de negcios uma listagem dos anncios dos produtos descritos
no arquivo MPEG-7 recebido pelo fluxo de entrada de dados, e tambm de sincronizar a
exibio de anncios com o vdeo transmitido pelo canal. Para isto, esta thread verifica o
exibio do vdeo a cada segundo. Isto feito atravs de uma referncia ao objeto do
gerenciador de execuo da mdia, que por sua vez recebida pela classe Store, e analisa em
sua lista de anncios se algum dos anncios pertence quele segundo.
69
importante ressaltar que esta lista administrada da seguinte forma: assim que a
thread encontra um anncio para comear a ser exibido naquele instante de tempo, este
anncio removido da lista, pois no aparecer novamente e a thread pausa a sua execuo
por uma quantidade de tempo estipulada no prprio anncio. Tambm importante ressaltar
que nesta lista, os anncios esto organizados por ordem cronolgica. Estas duas medidas
foram tomadas para que a execuo do programa no necessitasse de muito processamento
por parte do STB, ou seja, a fim de otimizar a aplicao.
A classe StoreController ainda implementa o padro GoF Observer (Freeman et al.,
2001), semelhante ao mecanismo de listeners encontrado no pacote java.awt.event. Esta
classe mantm uma lista de objetos que implementam a interface AnnounceListener do pacote
org.tgi.store.presentation.event. Desta forma, quando a thread encontra um anncio para
exibio naquele segundo, ela gera eventos do tipo AnnounceEvent, e os envia para todos os
itens desta lista, avisando que o anncio deve ser exibido. Ento a thread pausa, e quanto
retorna, gera outro evento para que os anncios sejam escondidos.
70
J no pacote org.tgi.store.presentation.ui encontram-se componentes visuais, que
derivam da API HAVi para televiso digital, pois a mesma implementa componentes de
forma padronizada, e cada STB tem a sua implementao desta API, ou seja, podem haver
componentes que sejam visualmente diferentes de um STB para outro. Por isso, estes
componentes foram criados.
No pacote org.tgi.store.presentation.ui.layout encontram-se os components visuais
personalizados para a exibio do anncio. A classe StoreLayoutManager, que tambm adota
o padro GoF Singleton (Freeman et al., 2001), responsvel pela criao de novas instncias
de AnnounceContainer, que nada mais do que um continer visual, que engloba
componentes que representam o texto, a imagem e os botes do anncio. A maneira como
ser exibida esses componentes dentro do continer depender da instncia de StoreLayout.
A classe abstrata StoreLayout e todas as classes que a implementam fazem parte de
um padro GoF do tipo comportamental, denominado Strategy (Freeman et al., 2001). Cada
uma das classes que implementam esta interface, dispem de componentes visuais diferentes
para representar o anncio, ou seja, so maneiras diferentes de representar um mesmo tipo de
dado na tela. Neste caso so utilizadas para ilustrar as etapas de visualizao do anncio,
visualizao de detalhes do produto, autenticao e compra ou ainda mensagens de erro ou
sucesso
na
compra.
Todas
fazem
uso
da
classe
LineBreakHelper
do
pacote
recebe
um
evento
desse
tipo,
chamada
instncia
de
71
momento em que gerado um evento, pois o mesmo boto pode gerar diferentes aes
dependendo do StoreLayout atual.
72
para a camada de apresentao, onde utilizado como um dos atributos de classes como
AnnounceEvent e ProductEvent, que pertencem ao mecanismo do padro GoF Observer
(Freeman et al., 2001). Sendo assim, qualquer classe que se registrar para receber eventos dos
tipos citados, tambm ir receber, como atributo, uma instncia da classe AnnounceBO,
possibilitando que classes da camada de apresentao tenham acesso s informaes do
produto.
Outra funcionalidade desta classe, que foi deixada de lado nesta aplicao, a
validao da compra. O mtodo checkUser() da classe StoreFacade, do modo como foi
implementado apenas valida qualquer requisio. Esta validao no foi implementada pois
necessita da uma comunicao com o canal de retorno, que ainda no foi implementado nesta
verso do emulador.
Esta classe tambm poderia ser responsvel por se comunicar com o SI para obter
informaes temporais que poderiam ser utilizadas na sincronizao dos anncios com a
propaganda, mas as classes do pacote org.dvb.si e as classes referentes ao SI da API Java TV
tambm no foram implementadas no emulador.
73
A classe utilizada para efetivo acesso aos dados foi a XmlDataAccess, que
apropriada para ler especificadamente os dados de produtos relativos anncios da aplicao,
que provm do schema criado para MPEG-7 e descrito no prximo item deste captulo. Sendo
assim, esta classe l os dados do arquivo XML e transforma-os em objetos do respectivo tipo
definido na camada de dados, neste caso o tipo Product, para devolver classe solicitante do
acesso aos dados, neste caso a StoreFacade.
A leitura dos dados referentes ao MPEG-7 e armazenado em estrutura XML, feita
atravs da API Simple API for XML, tambm conhecida como SAX, que pode ser
considerada uma API rpida e eficiente neste caso, pois devido a baixa complexidade do
XML resultante, uma API com mais funcionalidades acarretaria em perda de desempenho da
aplicao. Com o auxlio do padro Java EE Data Access Object (Alur et al., 2003), outras
formas de leitura ao arquivo XML poderiam ser implementadas, expandindo-as facilmente
para outros tipos de dados e no s para produtos. At mesmo outra fonte de dados que no
fosse o MPEG-7 poderiam ser implementadas e tratadas. Nesta aplicao os tipos de dados
que so lidos do XML so definidos via cdigo, proporcionando pouca flexibilidade para a
obteno do produto, que deixa o acesso aos dados mais rpido j que se espera um XML
derivado do schema de produtos definido.
Algumas consideraes devem ser feitas quanto ao XML. Como a localizao do
anncio na tela definida tambm pelo XML, possveis problemas como se o tamanho da tela
da televiso digital e o tamanho do anncio forem incompatveis com a localizao do
mesmo, no sero responsabilidade desta camada e sero tratados mais frente, quando os
dados relativos ao anncio chegarem na camada de apresentao. E como o tempo de exibio
tambm definido via XML, a verificao e validao destes dados praticamente
inexistente, pois este processo feito item a item, pode retardar uma exibio de anncio o
suficiente para que ele no aparea. Assim, o sistema considera desde o incio, que o arquivo
XML contenha dados corretos para a exibio das propagandas. Um dado incorreto muitas
vezes no acarretaria em uma exceo, erro ou mensagem tratada pelo sistema.
Possveis erros na montagem do arquivo XML podem ser citados: em relao ao
tempo de exibio, um anncio poderia estar configurado para ser exibido no momento em
que outro anncio j estivesse em exibio, e desta forma ele seria automaticamente
descartado e no seria exibido ao usurio. Erros nos valores da posio do anncio da tela,
como anncios que ficam fora da rea de exibio, ou seja, ultrapassam os limites da tela, so
automaticamente corrigidos pela aplicao no momento da exibio do anncio.
74
3.3.4 Pacote org.tgi.store.data
Este pacote tem a funcionalidade de representar entidades relacionadas com o
contedo XML do MPEG-7 recebido. No caso da aplicao deste trabalho, a entidade produto
representada pela classe Product. Esta classe utilizada apenas pela camada de integrao e
no se estende s outras camadas da aplicao pois para tal funcionalidade foi criada a classe
AnnounceBO.
75
Para representar esta seqncia, que no faz parte de nenhuma ao do usurio, mas
sim da execuo inicial da aplicao e que ocorre de forma automtica, o diagrama poder ser
subdividido em duas partes. Tambm podemos perceber que considerada apenas a execuo
da xlet em si, e no das operaes do STB de carregamento da mesma no sistema.
Na primeira parte, a xlet Store apenas realiza inicializao de variveis internas e
recupera a instncia do gerenciador de mdias em execuo dentro do emulador e repassa
camada de apresentao. Em seguida a xlet inicia o servio de busca de anncios, ou seja,
instancia a thread StoreController, cujo papel solicitar classe StoreFacade que ela realize
a busca de anncios para exibio, e verificar a cada segundo se existem anncios a serem
feitos naquele intervalo de tempo. A classe StoreFacade, por sua vez, delega a tarefa de busca
de dados ao XmlStoreDataAccess que apenas adapta o schema MPEG-7 de produtos e os
transforma em objetos Product. Estes objetos do tipo Product quando retornados classe
StoreFacade, so encapsulados em objetos do tipo AnnounceBO.
E por ltimo, a classe StoreController gera um evento de exibio de anncio
AnnounceEvent. Para esta ltima chamada, vale lembrar, que ocorre apenas quando um
anncio foi encontrado para determinado intervalo de tempo, e que apenas feita para outros
objetos que esto previamente registrados para receb-los, seguindo a idia do padro GoF
Observer (Freeman et al., 2001).
76
Na segunda parte deste diagrama, ocorre a exibio de componentes visuais na tela, j
que se considera o cenrio onde uma ocorrncia de anncio foi encontrada para determinado
instante. A partir desse momento, a xlet avisada atravs de um mecanismo de eventos e
solicita classe que gerencia componentes visuais para exibio de anncios,
StoreLayoutManager, que crie um componente visual que atenda s especificaes do
produto em questo, ou seja, crie um anncio para um produto. Esse conjunto de componentes
visuais est contido em AnnounceContainer e definido por StoreLayout. Com essa criao e
inicializao do objeto AnnounceContainer, o anncio deve ser repassado xlet, que a nica
classe que contm referncia para a tela de exibio do usurio, podendo assim, anexar o
anncio tela.
77
Neste cenrio, o anncio envia ao seu ativador, ou seja, a thread StoreController, que
responsvel por eventos de ativao de anncio, as informaes contidas no campo para
preenchimento do cdigo de assinante, que o usurio dever preencher para que valide sua
inteno de compra. A StoreController faz apenas uma validao bsica nesse cdigo, como
por exemplo, se o campo foi realmente preenchido com a quantidade certa de caracteres, e
repassar StoreFacade. A classe StoreFacade de fato se encarregar da lgica de negcio
referente compra. nesta parte que deveria ocorrer uma chamada ao servio com o cdigo
de assinante para efetiva validao da compra, atravs do canal de retorno, porm, por
motivos j explicados, impossvel fazer esta operao atravs do emulador utilizado.
Em seguida, o prprio AnnounceContainer se encarrega de atualizar seus componentes
visuais de acordo com seu estado interno, para mostrar a resposta da solicitao de compra.
78
importante ressaltar que MPEG-7 e MPEG-21 so independentes do formato de
codificao de vdeo e udio utilizado, e o resultado da codificao do vdeo com os seus
metadados dar-se- a partir da combinao de ambos. Por exemplo, o padro MPEG-7,
quando utilizado em conjunto com o MPEG-4 (referente ao contedo de udio e vdeo), pode
ser chamado de MPEG-47.
Atravs das ferramentas de descrio e linguagem de declarao de itens digitais
presentes nesses formatos de vdeo, possvel, atravs do MPEG-7 classificar os itens, e com
o uso do MPEG-21 tambm seria possvel o anexo de imagens ou vdeos demonstrativos do
produto junto com o vdeo principal da programao.
3.4.1 MPEG-7
A partir da Description Definition Language do MPEG-7, ser obtido o XML de onde
os produtos e seus dados sero retirados para o uso no programa. A flexibilidade
proporcionada pelo MPEG-7 permite a passagem desse tipo de dados junto com o vdeo. O
MPEG-7, entretanto, ainda um formato recente e com algumas funcionalidades a serem
definidas.
A complexidade da Description Definition Language se deve alta flexibildade,
grande variedade de descritores diferentes, longa estrutura hierrquica a se seguir, entre
outros fatores. Por conta dessa complexidade e das indefinies ainda presentes no formato,
no foi possvel usar propriamente um arquivo MPEG-7. Os programas de anotaes para
vdeo ainda esto em fases iniciais de desenvolvimento, no permitindo gerar as estruturas
necessrias para o uso no programa. Entretanto, certo que essa estrutura possvel de ser
obtida e por isso, foi simulada de forma a funcionar da maneira mais prxima da estrutura que
esperada em um arquivo MPEG-7. Entre os programas que foram usados para a tentativa de
criao de anotaes em MPEG, pode-se citar o IBM Multimedia Annotation Tool, da IBM,
em sua verso 1.1, que, devido a diversos erros na gerao do arquivo, no pde ser explorado
com maiores detalhes. J o Semantic Video Annotation Tool, SVAT, permitiu a criao de
um arquivo MPEG-7 simples que serviu de base para o desenvolvimento do schema de XML
que foi usado no programa.
Entre outros programas para trabalhar com MPEG-7, pode-se citar o Caliph e Emir,
que trabalham na criao de metadados para arquivos de imagem. Entretanto, so tags
especficas para anotao de imagem, no sendo genrico o suficiente para especificar um
produto, por exemplo.
79
Maior do que a dificuldade de obter um arquivo MPEG-7 foi a dificuldade de
manipular o arquivo de vdeo corretamente na aplicao. Por ser uma tecnologia muito
recente, as bibliotecas de manipulao do vdeo ainda no existem, impedindo que o
programa trabalhasse com MPEG-7 da forma que era desejada. A escolha foi, portanto, partir
de uma situao ideal, considerando que o arquivo j tivesse sido tratado e o vdeo e o arquivo
descritivo XML com a descrio dos produtos da loja j estivessem devidamente separados.
Com o avano do padro MPEG-7 e com a disseminao da televiso digital,
softwares e bibliotecas que do suporte MPEG-7, ou maior nvel de compatibilidade, vo
conseqentemente surgir, possibilitando a manipulao desses arquivos de forma a chegar
facilmente na situao inicial com a qual se inicia a aplicao.
Devido dificuldade na gerao de um arquivo MPEG-7, o arquivo de Description
Definition Language, tambm foi simulado. A aplicao l o arquivo como se fosse um XML
comum. O cdigo a seguir um exemplo de header para esse tipo de arquivo que foi montado
na simulao do programa:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Mpeg7 xmlns="urn:mpeg:mpeg7:schema:2001"
xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mpeg:mpeg7:schema:2001 Mpeg7-2001.xsd ">
<DescriptionMetadata>
<Version>1.1</Version>
<LastUpdate>2007-05-20T20:13:15</LastUpdate>
<Comment>
<FreeTextAnnotation>FrangoStore
Movie</FreeTextAnnotation>
</Comment>
<PrivateIdentifier>TestId</PrivateIdentifier>
</DescriptionMetadata>
80
<Description xsi:type="ContentEntityType">
<DescriptionMetadata>
<PublicIdentifier></PublicIdentifier>
<PrivateIdentifier>PID_1</PrivateIdentifier>
<CreationTime>2007-05-20</CreationTime>
</DescriptionMetadata>
<Semantics>
<AbstractionLevel dimension="0"/>
<complexType name="FrangoStore">
<complexContent>
<sequence>
<complexType name="produto">
<attribute name="id" type="nonNegativeInteger" use="required"/>
<attribute name="start" type="nonNegativeInteger" use="required"/>
<attribute name="length" type="nonNegativeInteger" use="required"/>
<complexContent>
<sequence>
<element name="name" type="mpeg7:TextualType"/>
<element name="shortdescription" type="mpeg7:TextualType"/>
<element name="description" type="mpeg7:TextualType"/>
<element name="image" type="mpeg7:TextualType">
<attribute name="video" type="boolean" use="required"/>
</element>
<element name="imageLarge" type="mpeg7:TextualType">
<attribute name="video" type="boolean" use="required"/>
</element>
<element name="price" type="float">
<attribute name="currency" type="mpeg7:TextualType"
use="required"/>
</element>
<element name="layout" minOccurs="0">
<complexType>
<attribute name="transparency" type="float" use="optional"/>
<attribute name="positionX" type="nonNegativeInteger"
use="optional"/>
<attribute name="positionY" type="nonNegativeInteger"
use="optional"/>
<attribute name="height" type="nonNegativeInteger"
use="required"/>
<attribute name="width" type="nonNegativeInteger" use="required"/>
</complexType>
</element>
</sequence>
</complexContent>
</complexType>
</sequence>
</complexContent>
</complexType>
</Semantics>
</Description>
81
Um exemplo do tipo de XML que pode ser feito seguindo essa declarao:
<FrangoStore>
<produto id="72" start="2" length="8">
<name>Camisa Social DG</name>
<shortdescription>Camisa Social Dolce Gabbana</shortdescription>
<description>Camisa social Dolce Gabbana de mangas longas, boto na
frente, punhos com botes duplos e motivo listrado. Made in
Italy.</description>
<image video="false">prod3.jpg</image>
<imageLarge video="false">prod3_large.jpg</imageLarge>
<price currency="R$">319.90</price>
<layout transparency="0.3" positionX="500" positionY="20"
height="100" width="200"></layout>
</produto>
</FrangoStore>
A aplicao desenvolvida capaz de ler sem maiores problemas o XML citado atravs
da API SAX. O esquema de montagem do XML segue tambm o que foi definido no DDL
anterior, seguindo as regras de tipos e nomes dos campos, alm da hierarquia.
O continer externo frangostore engloba todos os produtos que sero usados no
programa. Cada produto definido junto com um id, que um campo numrico para controle
do produto pela loja. Alm disso, outros itens essenciais para a definio de um produto o
tempo de incio e durao do anncio na loja, definidos respectivamente nos atributos start e
length.
Cada produto engloba tambm uma srie de variveis que caracterizam-no. Entre os
campos pertencentes a um produto, temos name, que o nome do produto na loja,
shortdescription, que uma descrio curta do produto para exibio no anncio no
selecionado e description, que uma descrio mais detalhada que exibida quando o usurio
desejar ver mais informaes do produto.
O elemento image indica o endereo de uma imagem para exibio no anncio, se
existir uma imagem. Se um produto no possuir uma imagem, este campo pode vir vazio e o
anncio ser exibido somente com a descrio. Este elemento ainda possui um atributo
booleano video, que indica se ser mostrado uma imagem ou vdeo no anncio. J o elemento
imageLarge utilizado para especificar o endereo de uma segunda imagem ou trecho de
vdeo, que podero ser utilizados na tela de exibio de detalhes do anncio.
Um valor de ponto flutuante definido no elemento price, que ainda possui o atributo
currency, que indica em qual moeda aquele valor est sendo cobrado.
Um elemento mais complexo o elemento layout, que possui diversos atributos, que
podem definir a transparncia do layout (transparency), posio do anncio na horizontal,
82
posio do anncio na vertical (positionX e positionY), altura e largura do anncio (width e
height).
Cada um desses elementos precisa ser especificado com detalhes no schema do
MPEG-7. O continer produto, por exemplo, foi especificado como um complexType, pois ele
encapsula todos os elementos relacionados com o produto. Cada elemento deve ser detalhado,
incluindo a definio de seus atributos e seus respectivos tipos.
<element name="image" type="mpeg7:TextualType">
<attribute name="video" type="boolean" use="required"/>
</element>
O cdigo acima, por exemplo, define o elemento image do XML de produtos. A tag
element indica que um novo elemento que est sendo especificado, que receber o nome
definido no atributo name e que possuir o tipo definido em type. O n attribute, dentro de
element indica que o elemento ainda conter um atributo com nome definido em name e tipo
definido em type. O atributo use indica se este ser um atributo opcional ou obrigatrio. No
caso da definio de uma imagem para o anncio, por exemplo, era necessrio definir um
campo de texto que indique o nome da imagem ou vdeo a ser exibido no anncio do
programa. E era necessria tambm uma varivel booleana obrigatria que indicar se o
contedo daquele elemento uma imagem ou um vdeo.
O schema, ento, define um trecho do XML como exemplificado abaixo:
<image video="true">pizza1.avi</image>
83
3.4.2 MPEG-21
A utilizao do formato MPEG-21 bastante prejudicada pela constante atualizao
ou at mesmo indefinio de vrias partes do padro, cujo progresso pode ser verificado
atravs do site oficial dos padres MPEG. No site oficial possvel conferir um cronograma
das publicaes das especificaes que j foram realizadas. Tambm possvel observar que
atualmente menos da metade das partes do padro que foram propostas, j possuem
especificao. Isto se deve ao fato do constante trabalho focado nas primeiras partes, pois elas
serviro de base para as conseguintes.
Sendo assim, fabricantes de hardware e softwares em geral, como por exemplo, os
fabricantes de STBs, ainda no optaram pela adoo deste padro. A rpida mudana de
tecnologias, como a migrao de televises analgicas para televises digitais, bem como a
variedade de dispositivos receptores de sinal de televiso digital disponveis, impulsiona o
avano dos padres MPEG. H padres de televiso digital que utilizam MPEG-2 para o
vdeo, enquanto outros utilizam MPEG-4, e essa divergncia de padres que o MPEG-21
procura resolver, proporcionando interoperabilidade entre os padres em diferentes
plataformas. Da tem-se idia da complexidade da especificao do padro e das constantes
atualizaes que sero necessrias com o desenvolvimento de qualquer outro padro MPEG.
Ento, o uso deste padro trata-se de uma modelagem conceitual do que ele realmente
representaria na loja virtual. Este modelo usar algumas das principais partes do padro
MPEG-21 que j foram publicadas at agora e que esto passveis de atualizao, que so:
Digital Item Declaration, Digital Item Identification, Digital Item Adaptation, Rights
Expression Language e Rights Data Dictionary.
O modelo definido para esta aplicao ser um item digital denominado Produto, que
representar a entidade produto da loja virtual. Um item digital desse tipo, dever conter todas
as informaes necessrias para que a aplicao da loja virtual, que reside no STB, seja capaz
de exibir um anncio ao usurio.
O item digital ter imagens do produto, como miniaturas que sero usadas para o
anncio inicial e imagens maiores que sero exibidas em maior tamanho para a melhor
visualizao do mesmo, alm de metadados MPEG-7 informando detalhes como preo do
produto, descrio, se possui imagens relacionadas ou no, entre outros. Este item digital
tambm ter componentes que podero ser opcionais para a exibio do anncio, como vdeos
de utilizao do mesmo, por exemplo, ou ento udios e vdeos para o caso de o produto da
loja virtual ser necessariamente digital, e no um objeto fsico, externo ao sistema. Um
84
modelo do que seria um produto, do ponto de vista de um item digital, representado na
figura a seguir:
Diversos conceitos definidos em Digital Item Declaration, DID, sero utilizados nesta
parte, para a estruturao do item digital, como continer, item, descritor, componente e
recursos. Um continer poder conter um ou mais itens, que por sua vez, sero itens digitais
da entidade produto, ou seja, em um s arquivo MPEG-21, diversos produtos podero ser
armazenados e transferidos. Desta forma, tambm pode ser feita uma categorizao por
contexto em que aparecem, por exemplo, um continer pode ser utilizado para cada programa
de televiso que transmitido. Cada item digital ter seu descritor, onde estaro os metadados
no formato MPEG-7 referente ao produto o qual representa, e tambm ter estruturas internas
denominadas componente que representaro uma associao entre descritores e recursos, ou
seja, contedos multimdia presentes no item digital, que podero ser opcionais ou no. No
caso do componente, o descritor seguir a parte Digital Item Adaptation da especificao do
padro MPEG-21, pois esta descrio, ao contrrio do padro MPEG-7 que trata da descrio
do contedo multimdia, trata de informaes sobre a manipulao desse contedo
multimdia, encapsulado em recursos, como bit rate, mtodos de criptografia utilizados,
conjunto de caracteres, entre outros.
A parte Digital Item Identification, DII, que trata da identificao do item digital,
tambm tem grande utilidade nesta aplicao, pois servir para atribuir nomes nicos aos
componentes do item digital. Estes identificadores so atribudos pelo provedor de servios de
televiso digital de acordo com um sistema interno de nomenclatura. Neste caso,
85
identificadores so escolhidos para representar hierarquia entre os componentes de um item
digital, e tambm para representar um produto perante a loja virtual. Cada produto recebe uma
identificao nica, e cada componente do item digital que o representa, recebe uma
identificao padronizada, de acordo com a identificao nica do item digital e uma
funcionalidade atribuda a cada componente.
Esta estruturao, bem como a identificao do produto representada na figura a
seguir:
A parte da especificao Rights Expression Language pode ser usada pelo provedor de
servios de televiso digital, para definir diferentes mtodos de acesso ao item digital. Desta
maneira, possvel fazer com que a aplicao da loja virtual e o servio de exibio de
anncios sejam exibidos apenas para usurios que contrataram este servio perante o provedor
de servios, por exemplo. Tambm possvel a criao de regras mais complexas para a
visualizao deste item digital, ou de apenas partes dele.
Uma regra mais complexa para um item digital pode ser a validao do STB para a
exibio de um anncio, ou seja, verificar se a aplicao da loja virtual est disponvel no
STB, e at mesmo verificar a identificao do prprio STB por questes de segurana, para
saber se o item digital foi enviado para o STB correto, j que o sinal de televiso digital
distribudo atravs da difuso.
Outra possvel, e importante regra, para a definio do acesso a contedo protegido
dentro de um item digital. Este contedo interno pode ser considerado um produto digital, no
86
contexto da loja virtual, sendo imagens, outros vdeos, filmes, ou msicas. Para representar
essa hierarquia interna, de apenas partes de um item digital possurem regras de utilizao,
convm a adoo de termos comuns, definidos na parte Rights Data Dictionary da
especificao do MPEG-21.
Nesta parte esto presentes conjuntos de termos nicos e consistentes, que representam
relacionamentos ontolgicos entre regras presentes em um item digital, e o contedo sobre o
qual a regra infere. Assim, esta parte age como um complemento Rights Expression
Language, provendo uma associao lgica para as regras. Um exemplo de uma regra de
acesso um produto digital pode ser visto na figura a seguir:
Figura 30: Regra aplicada exibio de item digital contendo o vdeo de um produto digital vendido
87
identificao do item digital, seria possvel iniciar a execuo de uma determinada xlet. Por
exemplo, se o STB identifica que o item digital um produto de loja virtual, e o mesmo
contm a aplicao loja virtual, o STB simplesmente executa-a. Nesta situao, necessria
uma alta compatibilidade entre STB e xlet, que se pode alcanar atravs da adoo aos
padres MPEG-7 e MPEG-21, para que o STB faa a relao entre item digital e aplicao.
88
89
tambm no puderam ser testadas, pois o emulador no suporta tal funcionalidade. A
tendncia que a disseminao da televiso digital acarretar na melhoria das condies de
desenvolvimento para aplicaes voltadas tecnologia, com o surgimento de ferramentas que
possibilitaro a implementao de aplicaes para tal plataforma.
A precariedade do emulador tambm nos impossibilitou tirar maiores concluses sobre
o desempenho do aplicativo. A configurao do computador tambm influencia na execuo
do aplicativo. Sendo assim, espera-se que, rodado num STB, a aplicao no tenha quaisquer
problemas em relao ao desempenho, pois um STB deve ter poder computacional suficiente
para decodificar vdeos digitais e realizar todas as suas outras operaes, alm de deixar um
restante de sua capacidade para aplicaes disponveis pelas prprias emissoras
Diversas possibilidades para continuaes desta pesquisa se abrem. A implementao
do software em um emulador mais avanado, que tenha suporte funcionalidades como a
comunicao com o canal de retorno, ou a simulao de transmisso de dados de vdeo so
necessrias. Com a comunicao com o canal de retorno possvel a implementao da
validao de uma compra com o servidor, e outras aplicaes que necessitem de uma troca de
dados mtua. J com o suporte simulao de transmisso de dados de vdeo, possvel
recuperar dinamicamente metadados disponveis medida em que so transmitidos,
simulando um ambiente real de televiso digital. Outra opo seria a implementao do item
digital proposto, que no momento da realizao desta pesquisa, era invivel. possvel ainda,
fazer um estudo de usabilidade em interfaces de televiso digital, j que se encontram
precrias e as que foram usadas neste trabalho foram totalmente ou parcialmente criadas.
90
Referncias
Referncias Bibliogrficas
ALUR, DEEPARK; CRUPI, JOHN; MALKS, DAN. Core J2EE Patterns: Best Practices and Design
Strategies, 2/e. New Jersey: Prentice Hall, 2003
ATSC. Advanced Television Systems Committee. Disponvel em http://www.atsc.org. Acesso em 25
fev, 2004.
BOOCH, GRADY; RUMBAUGH, JAMES; JACOBSON, IVAR.; The Unified Modeling Language
User Guide. Addison-Wesley, 1998.
BURNETT, I.; WALLE, R. V.; HILL, K.; BORMANS, J.; PEREIRA, F.; MPEG-21: Goals and
Achievements. California: IEEE Computer Society, 2003.
CAVENDISH, S. A. Algoritmo de Ajuste Elstico para Vdeo em Fluxos MPEG-2. Dissertao
(Mestrado em Cincia da Computao), Pontifcia Universidade Catlica do Rio de Janeiro, Brasil,
2005
DAVIC. DAVIC 1.4.1 Specification Part 9: Information Representation. Disponvel em:
http://www.davic.org/Download/Spec1_2/part09.pdf. Acesso em 30 mar, 1999
DVB. Digital Video Broadcasting Project. Disponvel em http://www.dvb.org. Acesso em 25 fev,
2004.
FERNANDES, J.; LEMOS, G.; SILVEIRA, G. Introduo Televiso Digital Interativa: Arquitetura,
Protocolos, Padres e Prticas. Apresentado na Jornada de Atualizao em Informtica do Congresso
da Sociedade Brasileira de Computao, JAI-SBC, Salvador, 2004.
FISCHER, W. Digital Television: A practical Guide for Engineers. Springer, Berlin, 2004.
FILHO, G. L. S.; LEITE, L. E. C.; BATISTA, C. E. C. F. Ginga-J: The Procedural Middleware for
the Brazilian Digital TV System. Departamento de Informtica, Universidade Federal da Paraba , 2007
FREEMAN, E.; FREEMAN. E.; SIERRA, K.; BATES B. Head First: Design Patterns.
Sebastopol: O`Reilly, 2001.
GARTNER, J. TiVo, the Starving Actor. In: MIT Digital Review, September. Disponvel em:
http://www.technologyreview.com/BizTech/14734/. Acesso em 24 mar, 2005.
HAVI, HAVi, the A/V digital network revolution. Disponvel em: http://www.havi.org/pdf/white.pdf Acesso em 11 jul, 1999.
ISDB. ISDB-T - Terrestrial Integrated Services Digital Broadcasting (ISDB-T):
Specification of Channel Coding, Framing Structure and Modulation., 1998.
LYNCH, T. J., Data Compression: Techniques and Application. New York: Van Nostrand Reinhold,
1985.
MARTINEZ, J. M.; KOENEN, R.; PEREIRA, F. MPEG-7: Overview of MPEG-7 Description Tools.
California: IEEE Computer Society, 2002.
MARTINEZ, J. M.. MPEG-7: the generic Multimedia Content Description Standard. California:
IEEE Computer Society, 2002
91
Bibliografia Complementar
BURNETT, I. S.; PEREIRA, F.; WALLE, R. V.; KOENEN, R. The MPEG-21 Book. Chichester :
John Wiley & Sons Ltd, 2006.
CAPDA. TV Digital Interativa. Subgrupo de Trabalho 2 do CAPDA - Comit das Atividades de
Pesquisa e Desenvolvimento na Amaznia, 2004.
CHIQUITO, J. G.; ARANTES, D. S.; COSTA, M. H. M. Consideraes sobre o relatrio final da
SET/ABERT para definio do padro de televiso digital no Brasil. Departamento de Comunicaes,
Unicamp, So Paulo, 2000.
ERONEN, L. and VUORIMAA, P.. User interfaces for digital television: a navigator case study.
Disponvel em: from http://portal.acm.org/citation.cfm?id=345346. Acesso em 14 mar, 2000.
HERIGSTAD, D. and WICHANKY, A.. Designing user interfaces for television. Disponvel em:
http://portal.acm.org/citation.cfm?id=286645 Acesso em 22 mar, 1998.
KIM, H.; MOREAU, N.; SIKORA, T. MPEG-7 Audio and Beyond: Audio Content Indexing and
Retrieval. Chichester : John Wiley & Sons Ltd, 2005.
KOSCH, H. Distributed Multimedia Database Technologies Supported by MPEG-7 and MPEG-21.
London: CRC Press, 2004.
LIU, P.; HSU, L. Queries of Digital Content Descriptions in MPEG-7 and MPEG-21 XML documents,
2001.
LOUREIRO, J. A. Interfaces de Programao para o Desenvolvimento de Aplicaes para TV Digital.
Trabalho de Graduao, Universidade Federal de Pernambuco, 2004.
92
93
Anexo