• Nenhum resultado encontrado

APLICATIVOS PARA TELEVISÃO DIGITAL INTERATIVA. A televisão, um dos mais importantes e expressivos meios de comunicação, tem

N/A
N/A
Protected

Academic year: 2021

Share "APLICATIVOS PARA TELEVISÃO DIGITAL INTERATIVA. A televisão, um dos mais importantes e expressivos meios de comunicação, tem"

Copied!
13
0
0

Texto

(1)

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.

(2)

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.

(3)

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. 

(4)

­   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

(5)

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

(6)

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 TV Pacote função javax.tv.carousel   Provides access to broadcast file and directory data through APIs that work with the java.io package.  javax.tv.graphics  Provides a mechanism by which Xlets may discover their root container and describes a mechanism for alpha blending.  javax.tv.locator  Provides a means for referencing data and resources accessible via the Java TV APIs.  javax.tv.media   Provides controls and events for the management of real­time media in a television environment.  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 APIs representing the SI elements it contains.  javax.tv.service.guide   Provides APIs to support electronic program guides (EPGs), including program schedules, program events and program ratings.  javax.tv.service.navigati on   Provides APIs to navigate through services and hierarchical service information.  javax.tv.service.selectio n   Provides a mechanism to select a Service for presentation.

(7)

javax.tv.service.transpo rt  Provides additional information about the transport mechanisms that deliver the content 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 to communicate. 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ção org.havi.ui  Definição de elementos de interface gráfica com o usuário org.havi.ui.event   Definição dos esquemas de tratamento de eventos dos elementos de interface gráfica Tabela 2  Pacotes da API HAVi utilizados pela especificação MHP e suas respectivas funções [1]. DVB Core Pacote função org.dvb.applicatio n   Provides access to lists of applications which are available in this context and the ability to 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 event mechanism of the java.awt package.  org.dvb.io.ixc   Provides support for inter­application communication.  org.dvb.io.persiste nt  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 three main entities involved in an automated test process: The test server that is used to hold and 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 Core Pacote função org.davic.media  Provides various extensions to the Java Media Framework for the control of TV oriented 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. 

(8)

org.davic.mpeg.sectio ns  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 those applications 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áfico baseado em camadas. No computador pessoal o modelo gráfico apresenta somente uma camada onde são colocados todos os componentes.

(9)

Deve­se configurar os dispositivos relacionados as camadas do modelo gráfico. Não é necessária a configuração explícita dos componentes relacionados ao modelo gráfico. Limitações de poder de processamento, diferentes tamanhos de telas. Os computadores são mais genéricos Tabela 5: Algumas diferenças encontradas entre desenvolvimento de aplicações para televisão digital e o 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

(10)

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ção

(11)

HScreenDevices Classe abstrada que define os dispositivos

lógicos constituintes da classe HScreen. X

HBackgroundDevice Representa a camada do fundo da tela. HBackgroundConfiguration HStillBackgroundConfiguration HVideoDevice Representa a camada de exibição de vídeo. HVideoConfiguration HGraphicsDevice Representa a camada de exibição de componentes da interface gráfica com o usuário. HGraphicsConfiguration Tabela 6:  Esta tabela apresenta as classes de mapeamento, suas funções, e classes de configuração para 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].

(12)

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.

(13)

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  to http://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   Resource Systems.   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.X http://www.mhp.org/mhp_technology/mhp_1_1/

Referências

Documentos relacionados

Uma associação de resistores é denominada paralela quando os resistores que a compõem estão interligados de forma que exista mais de um caminho para a circulação da

ado a necessidade de modificar o pré- se manter o dorso do frango à 95C por 30 minutos, este procedimento desnaturava o colágeno, formando um gel scrito

Como conseqüência da receptividade de diferentes pessoas para a prática do turismo nas mais variadas modalidades agregam o envolvimento sócio-econômicocultural, sendo estes capazes

As we show in this review, both methodologies of the modified polyol process and thermal decomposition allow to successfully obtain monodisperse nanoparticles of metals, metal

O estudo tem como objetivo compreender a percepção dos alunos do primeiro ano do curso de mestrado em Educação de uma Universidade pública da cidade de Londrina em

Apesar de existirem algumas pesquisas na Caatinga com espécies exóticas com tratamento imunizante pelo método de substituição de seiva, poucos são as que

Análise de Dados Para testar a hipótese que a biomassa arbórea acima do solo de cada parcela está relacionada com a diversidade de espécies e de grupos funcionais, foi realizada

2.1 Aedes aegypti Linnaeus , 1758 e sua importância 2.2 Biologia 2.3 Distribuição no mundo 2.4 Distribuição no Brasil 2.5 Dengue no Mundo 2.6 Dengue no Brasil 2.7 Dengue em Alagoas