Aplicativos Para Televisao Digital Interativa

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Aplicativos Para Televisao Digital Interativa as PDF for free.

More details

  • Words: 3,184
  • Pages: 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]

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 TV Pacote javax.tv.carousel  javax.tv.graphics  javax.tv.locator  javax.tv.media 

função  Provides access to broadcast file and directory data through APIs that work with the java.io package.  Provides a mechanism by which Xlets may discover their root container and describes a mechanism for alpha blending.  Provides a means for referencing data and resources accessible via the Java TV APIs.   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  javax.tv.service.guide  javax.tv.service.navigati on  javax.tv.service.selectio n 

 Provides mechanisms for accessing the service information (SI) database and APIs representing the SI elements it contains.   Provides APIs to support electronic program guides (EPGs), including program schedules, program events and program ratings.   Provides APIs to navigate through services and hierarchical service information.   Provides a mechanism to select a Service for presentation.

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. 

 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]. javax.tv.xlet 

HAVi Level 2 User Interface  função Pacote 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  org.dvb.net.tuning org.dvb.si 

Provides session management for bi­directional IP connections which are session based from the point of view of an application.  Provides extensions to the tuning API from DAVIC. 

org.dvb.ui 

Provides access to DVB service information.  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. Provides extended graphics functionality. 

org.dvb.user 

Provides access to settings and preferences configured by the end­user.

org.dvb.test 

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. 

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... A televisão digital utiliza um modelo gráfico baseado em camadas.

No computador... No computador pessoal o modelo gráfico apresenta somente uma camada onde são colocados todos os componentes.

Deve­se configurar os dispositivos relacionados as camadas do modelo gráfico. Limitações de poder de processamento, diferentes tamanhos de telas.

Não é necessária a configuração explícita dos componentes relacionados ao modelo gráfico. 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

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 HScreen

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

Classe  configuração X

HScreenDevices

Classe abstrada que define os dispositivos lógicos constituintes da classe HScreen.

X

HBackgroundDevice

Representa a camada do fundo da tela.

HBackgroundConfiguration HStillBackgroundConfiguration

Representa a camada de exibição de HVideoConfiguration vídeo. Representa a camada de exibição de HGraphicsDevice componentes da interface gráfica com o HGraphicsConfiguration usuário. Tabela 6:  Esta tabela apresenta  as classes de mapeamento, suas funçõ es, e classes de configuração HVideoDevice

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].

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  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/

Related Documents