televisÃo digital interativa -...

13
APLICATIVOS PARA TELEVISÃO DIGITAL INTERATIVA Douglas Dal Pozzo (bolsista) PET Computação Universidade Federal de Santa Catarina Resumo: A televisão, um dos mais importantes e expressivos meios de comunicação, tem estado a maior parte de sua história atrelada ao objetivo primário de exibição de conteúdo desprovido de interação com o telespectador.  A tecnologia de televisão digital veio para mudar esse cenário, proporcionando, além de melhores qualidades de áudio e vídeo, a possibilidade de interação entre um serviço e o telespectador. Este trabalho foi desenvolvido a partir de um estudo bibliográfico dos padrões abertos de televisão digital interativa baseados no livro “Interactive TV Standards: a guide to MHP, OCAP and JavaTV” de Steven Morris e Anthony Smith-Chaigneau, especialistas no assunto. Apresentamos uma sinopse da tecnologia de TV digital e também introduzimos aspectos do desenvolvimento de aplicações para a TV Digital: Os Xlets. contato: [email protected]

Upload: dangcong

Post on 09-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

APLICATIVOS PARA TELEVISÃO DIGITAL INTERATIVA

Douglas Dal Pozzo (bolsista)

PET Computação

Universidade Federal de Santa Catarina

Resumo:

A televisão, um dos mais  importantes e expressivos meios de comunicação,  tem

estado a maior parte de sua história atrelada ao objetivo primário de exibição de conteúdo

desprovido de interação com o telespectador.   A tecnologia de televisão digital veio para

mudar esse cenário,  proporcionando,  além de melhores qualidades de áudio e vídeo,  a

possibilidade de interação entre um serviço e o telespectador. Este trabalho foi desenvolvido

a   partir   de   um   estudo   bibliográfico   dos   padrões   abertos   de   televisão   digital   interativa

baseados no livro “Interactive TV Standards: a guide to MHP, OCAP and JavaTV” de Steven

Morris e Anthony Smith­Chaigneau, especialistas no assunto. Apresentamos uma sinopse

da   tecnologia   de   TV   digital   e   também   introduzimos   aspectos   do   desenvolvimento   de

aplicações para a TV Digital: Os Xlets.

contato: [email protected]

Os sistemas de televisão digital

O sistema de televisão digital, um dos conceitos mais importantes quando se fala em

televisão digital,  é  um conjunto de definições que servem de referência para criação de

produtos compatíveis entre geradores de conteúdo, programadores de aplicações, fábricas

de   equipamentos   eletrônicos,   entre   outros.   Basicamente,   um   padrão   é   definido   pelos

esquemas de compressão e codificação de áudio e vídeo, pela camada de abstração de

software do set­top­box  (o  middleware)  e o esquema de multiplexação e modulação de

dados. Esses esquemas são escolhidos para atender aos requisitos de um padrão, que

pode ser, por exemplo, privilegiar a alta definição, a interatividade, a recepção móvel, etc.

A figura 1, abaixo, apresenta os componentes utilizados na definição de um sistema

de televisão digital interativa. 

Figura 1: Blocos na forma de caixa preta que definem um 

sistema de televisão digital

A parte mais importante desses blocos do ponto de vista das aplicações (considere

qualquer   referência   a   aplicação   como   sendo   uma   aplicação   para   televisão   digital)   é   a

camada de software denominado middleware. Um middleware é de forma simplificada uma

camada de software que liga dois sistemas separados. No caso da televisão digital ele liga o

hardware  e  o  sistema  operacional  do  set­top­box às  aplicações.  Sua  função  básica  no

contexto  de   um sistema  de   TV digital  é   fornecer  para  o  desenvolvedor  uma  API  para

manipulação de gráfico e vídeo, acesso ao canal de retorno,  acesso as  informações do

serviço, entre outros.

Existem hoje no mundo três grandes sistemas de televisão digital aberta: O sistema

europeu,  DVB ­  Digital  Video Broadcasting  –  com o seu middleware  MHP – Multimedia

Home Platform; O sistema americano, ATSC ­ Advanced Television Systems Committee –

com   o   seu   middleware  DASE   ­   Digital   Applications   Software   Environment;   O   sistema

japonês,  ISDB ­ Integrated Services Digital Broadcasting –  com o seu middleware  ARIB ­

Association of Radio Industries and Businesses.

As aplicações para tv digital

As   aplicações   para   TV   digital   trazem   para   a   televisão   um   pouco   do   teor

computacional proporcionado por um computador. Um possível cenário é o telespectador

estar   assistindo   um   jogo   de   futebol,   por   exemplo,   e   a   emissora   transmitir   pequenas

aplicações com diversas   informações sobre  o campeonato,   jogo ou  jogadores.  Além de

permitir a navegação por essas informações, aplicações mais avançadas permitem o envio

de dados ao provedor  do conteúdo utilizando possivelmente a própria  infra­estrutura  da

internet.

As aplicações para tv digital são classificadas em [6]: 

­ aplicações service­bound: Apresentam informações ou interatividade contextuais

ao conteúdo sendo exibido de um determinado serviço. São carregadas no STB toda

vez que são executadas.

­   aplicações  unbound:  Não  são   contextuais,   podem  ser   acessadas   a   qualquer

momento e não possuem um propósito específico. Guias de programação eletrônica,

home banking, jogos, etc.

­  aplicações armazenadas:  São mais  complexas e possuem funções bem mais

genéricas.   Geralmente   são   pagas   e   são   armazenadas   em   uma   dispositivo   de

memória para o usuário executá­la durante o período de validade dela. 

­   aplicações   embutidas:  São   aplicações   nativas   do   STB,   como   um   guia   de

programação eletrônica, serviços de alerta de catástrofes, etc. 

Cada  uma dessas classes  de aplicações  podem  apresentar  diferentes  níveis  de

interatividade. Interatividade está relacionada com a forma com que o usuário pode utilizar

essas aplicações: ele pode navegar pelos dados recebidos, requisitar novos dados ou até

mesmo enviar informações de volta ao serviço que disponibilizou a aplicação. Nesse sentido

os níveis de interatividade são:

­ local:  O usuário não envia dados ao serviço. Somente interage com dos dados

recebidos e carregados no set­top­box.  Exemplo: controle sobre apresentação de

informações contextuais, navegação.

­ intermitente: é feita uma conexão (geralmente por linha telefônica) ao serviço e a

conexão permanece até que o usuário entre com as informações e envie os dados.

Exemplos: home banking, home shopping, e­voting.

­ plena:  o usuário utiliza a mesma infraestrutura da internet (adsl) e permanece o

tempo   todo   conectado,   podendo   requisitar   e   enviar   informações   a   qualquer

momento: Exemplo; e­mail, internet.

Entre os sistemas de televisão digital abertos Java e html são as duas linguagem

predominantes   utilizadas   no   desenvolvimento   de   aplicações.   Para   os   desenvolvedores

Java,   surge   ai   mais   uma   possibilidade   de   desenvolvimento   com   a   linguagem.   Nesse

trabalho abordamos somente a utilização de Java, uma vez que ela oferece um poder de

expressão e interatividade muito maior do que uma linguagem descritiva como o html. 

Java é  uma  linguagem de programação  interpretada,  que  roda em cima de uma

máquina virtual. Essa é a grande vantagem da sua utilização já que uma vez escrita poderá

ser executada em qualquer set­top­box que implemente a maquina virtual Java, não tendo

necessidade de recompilação de código e outros problemas relacionados. Esse é um dos

objetivos da TV digital aberta:  a compatibilidade das aplicações.    Além disso,  existe um

canal de comunicação entre especialistas da área de TV digital e os desenvolvedores do

Java, através dos quais os especialistas fazem requisições que são ouvidas e padronizadas

pela linguagem. Um fruto dessas requisições é o documento Java specification request 927,

a API Java TV [].      A especificação Java TV é parte da plataforma  Java 2 Micro Edition

(J2ME) na configuração de Connected Device Configuration (CDC) [9]. 

Para   cada   um   dos   três   padrões   abertos,   a   API   Java   TV   forma   o   núcleo   das

definições.   Ela   especifica   o   modelo   de   ciclo   de   vida   das   aplicações,   abstrai   aspectos

relacionados ao hardware e sistema operacional do set­top­box e padroniza uma série de

requisitos básicos de uma aplicação.

Desse ponto em diante, escolhemos o sistema europeu DVB/MHP para o estudo do

desenvolvimento   de   aplicações.   Esse   é   o   sistema   mais   difundido   mundialmente   e

conseqüentemente é o que mais apresenta documentação e softwares de apoio na web.

Esse padrão é formado pelas seguintes APIs:

API Java TV

“A API Java TV é uma extensão da plataforma Java desenvolvida através de um

processo aberto da Sun Microsystems e líderes da industria de televisão digital. As maiores

fábricas de eletrônicos para consumidor anunciaram seu apoio na adoção dessa API como

um padrão de televisão digital mundial” [2].

A API Java TV está sendo projetada para oferecer acesso a funcionalidades do tipo:

• Definição do modelo das aplicações.

• Acesso a fluxo de áudio e vídeo;

• Acesso condicional;

• Acesso a informações de serviço;

• Controle remoto. 

API HAVi ­ Home Audio Video Interoperability

A interface de usuário definida pela HAVi permite que aplicações escritas em Java

determinem os recursos presentes em cada set­top­box e com isso desenhem sua interface

gráfica na tela, manipulem dados entrados pelo usuário, executem pequenos arquivos de

som, etc. Ela usa um subconjunto do AWT ­ Abstract Windowing Toolkit – definido na API

Java 1.1 e estende seus pacotes para suportar recursos específicos da plataforma HAVi.

API DAVIC ­ Digital Audio Visual Council

Baseado no padrão MHEG­6 [7],  esse padrão, publicado em 1998, adicionou um

conjunto de novas APIs Java ao padrão MHEG­6, capacitando essa nova API a acessar

informações de serviço, controlar a apresentação de áudio e vídeo e gerenciar recursos do

receptor. 

API DVB

A especificação DVB/MHP é construída a partir de outras APIs como Java TV, HAVi,

Davic. Para completar a especificação DVB/MHP [10] são necessárias novas interfaces de

programação e elas são definidas pela API DVB Core que estende algumas funcionalidades

oferecidas pelas outras APIs como também inclui novas funções para atender aos requisitos

da especificação.

Para   cada   uma   dessas   APIs   apresentamos   na   forma   de   tabelas   os   pacotes

utilizados pela especificação DVB/MHP.   Essas tabelas foram extraídas da documentação

dessas APIs e podem ser acessadas a partir de suas referências.

Java TVPacote função

javax.tv.carousel   Provides access to broadcast file and directory data through APIs that work withthe java.io package. 

javax.tv.graphics  Provides a mechanism by which Xlets may discover their root container anddescribes a mechanism for alpha blending. 

javax.tv.locator  Provides a means for referencing data and resources accessible via the Java TVAPIs. 

javax.tv.media   Provides controls and events for the management of real­time media in a televisionenvironment. 

javax.tv.media.protocol   Provides access to generic streaming data in the television broadcast.javax.tv.net   Provides access to IP datagrams transmitted in the broadcast stream. 

javax.tv.service   Provides mechanisms for accessing the service information (SI) database and APIsrepresenting the SI elements it contains. 

javax.tv.service.guide   Provides APIs to support electronic program guides (EPGs), including programschedules, program events and program ratings. 

javax.tv.service.navigation 

 Provides APIs to navigate through services and hierarchical service information. 

javax.tv.service.selection 

 Provides a mechanism to select a Service for presentation.

javax.tv.service.transport 

Provides additional information about the transport mechanisms that deliver thecontent the SI data describes. 

javax.tv.util   Provides APIs for creating and managing timer events. 

javax.tv.xlet   Provides interfaces used by applications and the application manager tocommunicate.

Tabela 1  Pacotes da API Java TV utilizados pela especificação MHP e suas respectivas funções [2].

HAVi Level 2 User Interface Pacote funçãoorg.havi.ui  Definição de elementos de interface gráfica com o usuárioorg.havi.ui.event   Definição dos esquemas de tratamento de eventos dos elementos de interface gráficaTabela 2  Pacotes da API HAVi utilizados pela especificação MHP e suas respectivas funções [1].

DVB CorePacote funçãoorg.dvb.application 

 Provides access to lists of applications which are available in this context and the abilityto launch those applications. 

org.dvb.dsmcc   Provides extended access to files carried in the broadcast stream.

org.dvb.event   Provides access to user input events before they are processed through the eventmechanism of the java.awt package. 

org.dvb.io.ixc   Provides support for inter­application communication. org.dvb.io.persistent 

Provides extensions to the java.io package for access to files held in persistent storage.

org.dvb.lang  Provides those core platform related features not found in the java.lang package. org.dvb.media  Provides DVB specific extensions to the Java Media Framework. org.dvb.net  Provides general networking features not found elsewhere. org.dvb.net.ca  Provides extensions to the conditional access API from DAVIC.

org.dvb.net.rc Provides session management for bi­directional IP connections which are session basedfrom the point of view of an application. 

org.dvb.net.tuning Provides extensions to the tuning API from DAVIC. org.dvb.si  Provides access to DVB service information. 

org.dvb.test Broadcast model In a broadcast­based conformance system, there are effectively threemain entities involved in an automated test process: The test server that is used to holdand initiate all of the tests.

org.dvb.ui  Provides extended graphics functionality. org.dvb.user  Provides access to settings and preferences configured by the end­user.Tabela 3:  Pacotes da API DVB utilizados pela especificação MHP e suas respectivas funções [10].

DAVIC CorePacote função

org.davic.media  Provides various extensions to the Java Media Framework for the control of TVoriented audio / video content.

org.davic.mpeg  Provides utility classes for common MPEG concepts. org.davic.mpeg.dvb  Provides utility classes for common MPEG concepts as used in DVB. 

org.davic.mpeg.sections  Provides access to MPEG­2 section filtering. 

org.davic.net  Provides general content referencing.

org.davic.net.ca  Provides an interface to various features of a conditional access system for thoseapplications which need it. 

org.davic.net.dvb  Provides DVB specific content referencing.org.davic.net.tuning  Provides access to tuning ­ MPEG multiplex selection. org.davic.resources  Provides a framework for scarce resource management.Tabela 4: Pacotes da API DAVIC utilizados pela especificação MHP e suas respectivas funções [3].

Desenvolvimento de aplicações interativas para o sistema DVB/MHP

Não existe nenhuma padronização aberta de desenvolvimento de   aplicações para

TV Digital. No entanto, como todo processo de desenvolvimento de software é aconselhável

a utilização do tradicional esquema de análise e projeto de sistemas.

O  objetivo   da  maioria   das   aplicação   é   a   exibição  de   conteúdo   através  de   uma

interface gráfica com o usuário. E para isso, apresentamos as APIs gráficas de suporte do

sistema  DVB/MHP para  demonstrar  um dos aspectos  mais   importantes  da maioria  das

aplicações: a criação de interfaces gráficas.

Para o desenvolvimento de qualquer aplicação gráfica para a TV digital precisamos

definir alguns conceitos.

­ Funcionamento do modelo gráfico do MHP

­ Configuração do dispositivo gráfico do receptor

­ Os componentes da interface gráfica de usuário

­ Tratamento de eventos gerados pelo usuário

Existem várias diferenças quanto a forma de desenvolvimento de aplicações para TV

digital   quando   comparada   com   o   desenvolvimento   de   aplicações   para   um   computador

pessoal (Tabela 5). 

Na televisão digital... No computador...

A televisão digital utiliza um modelo gráficobaseado em camadas.

No computador pessoal o modelo gráfico apresentasomente uma camada onde são colocados todos os

componentes.

Deve­se configurar os dispositivos relacionadosas camadas do modelo gráfico.

Não é necessária a configuração explícita doscomponentes relacionados ao modelo gráfico.

Limitações de poder de processamento, diferentestamanhos de telas.

Os computadores são mais genéricos

Tabela 5: Algumas diferenças encontradas entre desenvolvimento de aplicações para televisão digital eo desenvolvimento de aplicações para um computador pessoal.

Várias questões poderiam ser levantadas para tratar cada um dos aspectos relativos

ao desenvolvimento de aplicações, porém, iremos nos limitar a demonstração das APIs de

suporte a interface gráfica. Até mesmo no desenvolvimento de interfaces gráficas surgem

questões de como desenvolver uma interface robusta e compatível aos diversos aparelhos

receptores  ponteciais  da aplicação e  isso  implica em uma programação  cautelosa,  com

métodos de descoberta de recursos disponíveis no receptor para que quando a aplicação

for executada  não apresente problemas.

A modelo gráfico de um receptor de televisão digital é separado em duas partes:

uma trata da própria tela como um todo, mapeando o dispositivo  físico que é  a  tela de

apresentação; o outro modelo é um modelo lógico, ou seja existe somente do ponto de vista

do desenvolvedor.  Este modelo   lógico divide o modelo   físico   (a   tela)  em  três  camadas

lógicas   (Figura   2):  Background   layer,   Video   layer,   Graphics   layer.  Essas   camadas   são

empilhadas na seguinte ordem: a camada de trás é a Background layer, a próxima camada

é a Video layer enquanto a camada mais a frente de todas é a Graphics layer. A função de

cada uma dessas camadas é:

­ Background layer: Exibir uma única cor de fundo ou então uma imagem fixa. Sendo

a camada de fundo, ela será visível toda vez que o vídeo for redimensionado ou não for

usado.

­  Video  layer:  É  onde mostra­se o  fluxo de vídeo associado a uma  transmissão.

Geralmente os receptores oferecem suporte a exibição em tela cheia ou na resolução de

quarto da tela apresentado em um dos quatro quadrantes da tela.

­  Graphics   layer:  É  a  camada mais a  frente  de  todas,  no  topo.  É  nela que são

apresentadas as aplicações que utilizam interface gráfica com o usuário. A especificação

DVB/MHP determina um suporte de no mínimo 256 cores e resolução de 720x576 pixels

para os receptores desse padrão.

Figura 2: Separação em camadas dos dispositivos do modelo gráfico do MHP [5].

Configuração dos dispositivos 

Cada uma das camadas mencionadas são mapeadas em classes da API Havi. Além

disso, como as aplicações precisam estar preparadas para serem executadas em diferentes

modelos   de   set­top­box,   com   diferentes   recursos,   deve­se   configurar   cada   um   desses

dispositivos de modo que a aplicação seja compatível com os recursos do set­top­box em

que é  executada.  Para  isso a API  Havi   também oferece  classes de suporte  chamadas

“classes de configuração de dispositivos”.

As classes de mapeamento e classes de configuração são apresentadas na tabela 6.

As  classes  de configuração  de  dispositivos  existem para  cada uma  das subclasses  de

HScreenDevices  e  por   usa   vez,  as   classes  de   configuração  são   subclasses  da  classe

HScreenConfiguration. 

Classe Função Classe  configuraçãoHScreen Representa a tela física de um set­top­box X

HScreenDevicesClasse abstrada que define os dispositivoslógicos constituintes da classe HScreen.

X

HBackgroundDevice Representa a camada do fundo da tela.HBackgroundConfiguration

HStillBackgroundConfiguration

HVideoDeviceRepresenta a camada de exibição de

vídeo.HVideoConfiguration

HGraphicsDeviceRepresenta a camada de exibição de

componentes da interface gráfica com ousuário.

HGraphicsConfiguration

Tabela 6:  Esta tabela apresenta as classes de mapeamento, suas funções, e classes de configuraçãopara cada dispositivo do modelo gráfico de aplicações para TV Digital.

Existem várias  formas de se encontrar  a configuração adequada para cada uma

dessas classes de configuração e cada configuração é determinada por uma variedade de

parâmetros [1].

Construção da interface gráfica

Uma vez instanciados os modelos dos dispositivos gráficos do set­top­box, podemos

partir para o processo de construção propriamente dito da interface gráfica. Lembremos que

a interface gráfica é apresentada na camada gráfica da aplicação, representada pela classe

HGraphicsDevice. 

O elemento chave, na construção da interface gráfica é  representado pela classe

HScene. Essa classe é similar ao Frame, ou Window utilizado como top­level component no

desenvolvimento de interfaces gráficas Java. No entanto, uma HScene apresenta algumas

restrições   como   por   exemplo   a   exibição   de   uma   única   instância   dessa   classe   durante

qualquer momento da existência da aplicação. Quando a aplicação for finalizada, deverá ser

chamado o método HScene.dispose() para remover a instância daquela classe. 

O processo de construção de um objeto  HScene é bastante simples: Declara­se o

objeto e obtém­se uma instância através da classe auxiliar HSceneFactory.

Existem vários parâmetros que podem ser utilizados no momento da obtenção do

objeto  HScene  pela classe  HSceneFactory.  Esses parâmetros podem ser consultados na

documentação Havi [1].

Conjunto de componentes de interface gráfica e tratamento de eventos 

Agora começa a  fase de escolha dos componentes  que serão  inseridos sobre a

instância da HScene. O uso desses componentes é feito da mesma forma que se usa os

componentes  AWT ou Swing do Java.  Basta observar  os parâmetros dos contrutores e

seguir o modelo de tratamento de eventos tradicional. Todas essas informações, bem como

o   conjunto   completo   de   componentes   disponíveis   podem   ser   obtidos   da   própria

documentação Havi [1]. 

Resumidamente, podemos definir os seguintes passos que devem ser seguidos no

desenvolvimento de uma aplicação com interface gráfica de usuário.

Passo 1: Instanciação de um objeto do tipo HScreen.

Passo 2: A partir do objeto HScreen obter os correspondentes objetos das camadas

de fundo, de vídeo e gráfica.

Passo 3:  Instanciação  de um objeto  HScene no contexto  da camada gráfica.  É

nesse   objeto   que   serão   colocados   os   Contêineres   e   demais   componentes   de

interface gráfica.

Passo   4:  Tratamento   de   eventos   relacionados   aos   componentes   da   interface

gráfica.

Referências:

[1] HAVi Level 2 graphical user interface API. http://www.havi.org/

[2] Java TV API 1.0. http://java.sun.com/products/javatv/

[3]   DAVIC   1.4.1   Specication   Part   9,   Complete   DAVIC   Specications,   DAVIC.http://www.davic.org/

[4] Multimedia Home Platform. http://www.mhp.org/

[5]   Interactive TV web:  Your source  for  MHP,  OCAP, ACAP, and JavaTV  information  tohttp://www.interactivetvweb.org/

[6] Steven Morris and Anthony Smith­Chaigneau. Interactive TV Standards.

Focal Press, 2005.

[7]   P.   Hofmann.   MHEG­5   and   MHEG­6:   Multimedia   Standards   for   Minimal   ResourceSystems.   Technical   Report,   Technische   Universitat   Berlin,   April   1996.http://citeseer.ist.psu.edu/hofmann96mheg.html

[8] MHP stubs classes. http://www.interactivetvweb.org/resources/code/mhpstubs.jar

[9] J2ME CDC. http://java.sun.com/products/cdc/

[10] Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.1.Xhttp://www.mhp.org/mhp_technology/mhp_1_1/