o uso da linguagem declarativa ncl no desenvolvimento de software para tv digital brasileira

121
Faculdade Estácio do Recife Bacharelado em Sistemas de Informação O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira Diogo Dostoiévsky Robespierre de

Upload: diogo-dostoievsky-robespierre-de-sa

Post on 06-Jun-2015

1.028 views

Category:

Technology


2 download

DESCRIPTION

Trabalho de conclusão de curso sobre a linguagem de programação NCL, prós e contras do middleware Ginga-NCL e padrões de TV digital adotados no mundo.

TRANSCRIPT

Page 1: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Faculdade Estácio do Recife Bacharelado em Sistemas de Informação

O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Diogo Dostoiévsky Robespierre de Sá

Recife, 2011

Page 2: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Diogo Dostoiévsky Robespierre de Sá

O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Orientador: Prof. Msc. Álvaro Pinheiro

Monografia apresentada como requisito complementar para obtenção do grau de Bacharel em Sistemas de Informação da Faculdade Estácio do Recife.

Recife, 2011ii

Page 3: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

  S111u

SA, Diogo Dostoiévsky Robepierre de.           O uso da linguagem declarativa NCL no desenvolvimento de software para tv digital brasileira / Diogo Dostoievsky Robespierre de Sá. –

Recife: 2011.              70 f.; 30 cm.

Orientação: Alvaro F. Pinheiro.Trabalho de conclusão de curso (Bacharelado) - Faculdade Estácio do Recife, 2011.

Inclui anexo e bibliografia.

         1. Linguagem de programação NCL. I. Título.

CDU 004.438               

iii

Page 4: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Faculdade Estácio do Recife Bacharelado em Sistemas de Informação

O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

Diogo Dostoiévsky Robespierre de Sá

Monografia submetida ao corpo docente do Curso de Sistemas de Informação

da Faculdade Estácio do Recife, em Dezembro de 2011.

BANCA EXAMINADORA:

-----------------------------------------------------------------------------------------------------------------Prof. Msc. Álvaro Pinheiro, Faculdade Estácio do Recife (Orientador)

-----------------------------------------------------------------------------------------------------------------Prof. Msc. Roberto Mendonça, Faculdade Estácio do Recife (examinador interno)

----------------------------------------------------------------------------------------------------------------- Prof. Msc. Faculdade Estácio do Recife.

iv

Page 5: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

AGRADECIMENTOS

Ao amigo Pedro “Desastre”, Guilherme e o professor de música Moura por me

permitir ter contato com o mundo das artes, através da música e por seus exemplos

de caráter.

Ao meu avô, seu Antônio, pelas suas palavras de ensinamento sobre a importância

do trabalho e do caráter para um homem e a minha avó, dona Maria, por seu grande

coração e seu exemplo de perseverança e vitória.

A minha tia Dôra e meu tio Ramos com quem sempre pude contar.

A minha mãe, uma batalhadora e exemplo de profissional.

Ao Professor e Orientador Álvaro Pinheiro pela orientação e apoio na execução e

conclusão desta Monografia.

Aos professores do Curso de Sistemas de Informação, pelos conhecimentos

transmitidos.

Aos funcionários da FIR pelo atendimento.

Ao amigo Weli, pela apoio.

v

Page 6: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

RESUMO

A TV digital trata-se de uma evolução do modelo de transmissão de sinal televisivo e é composto por um conjunto de padrões de audio e vídeo que permitem a transmissão de uma quantidade maior de dados e consequente maior qualidade de audio e vídeo na mesma faixa de frequência do modelo de transmissão televisivo anterior. Com o advento dos dispositivos portáteis com acesso a redes wireless ao cotidiano das pessoas, se tornou comum a utilização de celulares, notebooks ou video-games portáteis ao mesmo tempo em que se assiste televisão, então de uma forma natural a TV digital passou a convergir tecnologias, afim de provê maior interatividade e entretenimento ao usuário ou telespectador através de um único aparelho, utilizando de integração de sistemas interativos que podem ou não fazer conexão com internet e fazer utilização da web.

Palavras-Chave: TV Digital. Middleware. Interatividade. Ginga. NCL.

vi

Page 7: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

ABSTRACT

The digital TV it is an evolution of the transmission of television signals and consists of a set of standards for audio and video that enable transmission of an increased amount of data and consequent higher quality audio and video in the same range frequency of previous television broadcast model. With the advent of portable devices with wireless access to the daily lives of people, has become common to use mobile phones, laptops or portable video games while you watch television, then in a natural way digital TV has to converge technologies in order to provide more interactivity and entertainment to the user or viewer through a single device, using the integration of interactive systems that may or may not connect to the Internet and make use of the web.

Keywords: Digital TV. Middleware. Interactivity. Ginga. NCL.

vii

Page 8: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

1

LISTA DE FIGURAS

Figura 1 (2) How digital Tv Works ………………………………………………. 6

Figura 2 (2) Transmissão simultânea da programação analógica e digital... 7

Figura 3 (2) TV digital .................................................................................... 8

Figura 4 (2) Televisão analógica televisão digital ..........................................11

Figura 5 (2) A evolução da imagem ............................................................... 12

Figura 6 (2) Exemplo de ilustração do canal de retorno/interatividade ......... 13

Figura 7 (2) Interatividade em suas mãos ..................................................... 14

Figura 8 (2) Diagrama de blocos do ISDB ..................................................... 16

Figura 9 (2) Padrões de Tv digital .................................................................. 17

Figura 10 (3) Sistema operacional ................................................................... 27

Figura 11 (4) Modelo de um sistema de televisão digital interativa.................. 29

Figura 12 (4) Difusão de sinal ..........................................................................31

Figura 13 (4) Recepção de sinal ......................................................................32

Figura 14 (5) Tipos de dados utilizados nos aplicativos de Tv digital ..............34

Figura 15 (5) Entidades NCM e elementos da linguagem NCL ......................35

Figura 16 (5) Interfaces de um nó NCM ..........................................................35

Figura 17 (5) Estrurura básica de um documento NCL..................................41

Figura 18 (5) Mostra a seleção da máquina virtual do Ginga-NCL para execução através do software VMware ..................................... 42

Figura 19 (5) Mostra o virtua software VMware após ser selecionada a máquina virtual a ser executada e suas configurações de hadware, podendo essas configurações de hadware, podendo essas configurações serem alteradas pelo usuário ..................

43

Figura 20 (5) Mostra a máquina virtual do Ginga-NCL em execução ............44

Figura 21 (5) Mostra localização do recurso que permite adicionar plug-ins a IDEECLIPE ................................................................................. 45

Figura 22 (5) Mostra a tela de inclusão de localização do plugin a ser instalado, após selecionar o botão: “Add...”................................ 46

Figura 23 (5) Mostra a versão do plugin da linguagem NCL disponível para dowload ...................................................................................... 46

1

Page 9: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

2

Figura 24 (5) Mostra a perspectiva do remote system explorer.......................48

Figura 25 (5) Configuração de protocolo SSH .................................................49

Figura 26 (5) Mostra a configuração de conexão remota com a máquina virtual Ginga-NCL .......................................................................

50

Figura 27 (5) Mostra a tela para login na máquina virtual Ginga-NCL ............ 50

Figura 29 (5) Terminal para execução de aplicativos NCL máquina virtual ... 52

Figura 30 (5) Definição da localização de mídias ............................................ 54

Figura 31 (5) Exemplifica as mídias contidas no sistema e sua forma de armazenamento em pastas distintas entre imagem, vídeo e arquivo WEB...............................................................................

55

Figura 32 (5) Definição do leiaute do sistema através de Tags <region base> e <region>...................................................................................

56

Figura 33 (5) Demonstra como os descritores são declarados no projeto “vida viajante” .............................................................................

57

Figura 34 (5) Importação da base de conectores para o documento de hipermídia “Race.Na”..................................................................

58

Figura 35 (5) Mostra a lista de conectores e suas respectivas funções no projeto “vida viajante’ .................................................................

59

Figura 36 (5) É demonstrado as declarações de mídias pro software “vida viajante” ......................................................................................

61

Figura 37 (5) Mostra a porta de contexto do software “vida viajante” .............. 62

Figura 38 (5) Mostra o início do software “vida viajante” ................................ 63

Figura 39 (5) Mostra os elos de repetição do software “ vida viajante” ao término de u ma mídia do tipo vídeo ..........................................

63

Figura 40 (5) Mostra os elos responsáveis pela interação através de controle remoto ........................................................................................

64

Figura 41 (5) Mostra os elos responsáveis pela execução das mídias de ícones, paralização de algum vídeo em execução e inicialização de outro vídeo ao se selecionar algum ícone no menu apresentado .................................................................... 65

Figura 42 (5) Menu customization, responsável por a partir de botões selecionados pelos usuário, indicar a melhor praia para o perfil indicado .....................................................................................

67

Figura 43 (5) Indicação da melhor praia para o perfil indicado ..................... 68

Figura 44 (5) Jogo 4x4 de licença livre desenvolvido por Blender 3D.......... 69

2

Page 10: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

3

LISTA DE TABELAS

Tabela 1 - Comparação genérica entre analógica e Tv digital ...................... 9

Tabela 2 - Tipos de resolução suportados pela Tv digital .............................. 10

Tabela 3 - 14 áreas funcionais da linguagem NCL ........................................ 37

Tabela 4 - Tabela NCL.....................................................................................

38

Tabela 5 - Tabela SMIl..................................................................................... 39

...

3

Page 11: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

4

LISTA DE ABREVIATURAS

AAC - Advanced Audio Coding

AC3 - Audio Coding

API - Application Programming Interface

ATSC - Advanced Television Systens Committee

COFDM - Coded Orthogonal Frequency Division Multiplex

DTV - Digital Television

DVB - Digital Video Broadcasting

EPG - Electronic Program Guide

ISBD - Integrated Services Digital Broadcasting

LCD - Liquid Crystal Display

MHP - Multimedia Home Platform

MPEG - Moving Picture Experts Group

SBTVD - Sistema Brasileiro de TV Digital

SDTV - Standard Definition Television

STB - Set-Top-Box

TS - Transport Stream

TV - Televisão

TVD - TV Digital

TVDI - TV Digital e Interativa

HDTV - High-Definition Television

4

Page 12: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

5

DASE - Digital Applications Software Environment

ARIB - Association of Radio Industries and Businesses

HTML - HyperText Markup Language

XML - Extensible Markup Language

BML - Better Markup Language

GEM - Globally Executable MHP

DMB - Digital Multimedia Broadcasting

IDE - Integrated Development Environment

NCL - Nested Context Language

8 - VSB 8-Level Vestigial Sideband

5

Page 13: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

6

SUMÁRIO

1 INTRODUÇÃO..................................................................................................... 11.1 Delimitação da pesquisa .................................................................................. 21.2 Hipótese ........................................................................................................... 21.3 Objetivos ........................................................................................................... 31.3.1Objetivo geral................................................................................................... 31.3.2 Objetivos específicos...................................................................................... 31.4 Justificativa........................................................................................................ 4

2 REFERENCIAL TEÓRICO ................................................................................. 62.1 TELEVISÃO DIGITAL ..................................................................................... 62.1.1 Características............................................................................................... 82.1.1.1 Imagem e som ........................................................................................... 102.1.1.2 Interatividade .............................................................................................. 132.1.1.3 Acessibilidade ............................................................................................ 152.2 Ferramentas de desenvolvimento Ginga-NCL para TV digital ISDB-TB............................................................................................................................ 152.2.1 Middleware..................................................................................................... 162.3 Principais padrões de TV digital ....................................................................... 172.3.1 DVB-T (Digital Video Broadcast Terrestrial) ………………………………….. 172.3.2 ATSC (Advanced Television Systems Committee)…………………………… 192.3.3 ISDB-T (Integrated Services Digital Broadcasting Terrestrial)………………. 192.3.4 ISDB-TB (Integrated Services Digital Broadcasting Terrestrial Brazil)……... 20

3 TECNOLOGIA DE MODULAÇÃO, APLICAÇÃO, COMPRESSÃO E MIDDLEWARE UTILIZADAS PELA TV DIGITAL.................................................

22

3.1Tecnologia de modulação ................................................................................. 223.1.1OFDM.............................................................................................................. 223.1.2 8 – VSB ......................................................................................................... 233.2 Tecnologia de aplicação.. ................................................................................. 243.3 Tecnologia de compressão ............................................................................... 243.3.1 Padronização MPEG2.................................................................................... 243.3.2 Padronização MPEG4 ................................................................................... 253.3.2.1 Padronização DOLBY AAC ........................................................................ 253.4 Tecnologias de middleware.............................................................................. 263.4.1 Dase .............................................................................................................. 263.4.2 ARIB............................................................................................................... 273.4.3 GINGA........................ ................................................................................... 27

6

Page 14: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

7

4 COMPONENTES DA TV DIGITAL INTERATIVA ............................................... 294.1 Difusão ............................................................................................................. 294.2 Receptor set-top box......................................................................................... 314.3 Datacasting, carrossel de dados e carrossel de objetos .................................. 334.3.1 Datacasting ................................................................................................... 334.3.2 Carrosel de dados ......................................................................................... 33

5 LINGUAGEM DECLARATIVA NCL..................................................................... 345.1 Identificadores da linguagem NCL 3.0.............................................................. 375.2 Estrutura básica de um documento NCL........................................................... 415.3 Sistema para TV digital – “Vida Viajante” ......................................................... 41

5.3.1 Configuração do ambiente de desenvolvimento............................................. 425.3.1.1 Instalação da máquina virtual Ginga-NcL.................................................... 425.3.2 Configurações do IDE Eclipse ....................................................................... 445.3.3 Instalação e configuração do plug-in Remote System Explorer RSE)........... 465.3.4 Criação de projeto e conexão do ambiente de desenvolvimento como a máquina virtual através de protocolo SSH ............................................................. 475.4 Criação de aplicativo utilizando a Linguagem NCL .......................................... 50

5.4.1 Definição de mídias e sua localização .......................................................... 505.4.2 Definição do código e explicação de trechos do código ............................... 535.4.2.1 Definição de regiões ................................................................................. 535.4.2.2 Definição de descritores ............................................................................. 55

5.4.2.3 Definição de conectores ............................................................................. 565.4.2.4 Definições de mídia..................................................................................... 595.4.2.5 Definindo a porta que irá determinar o início do software.......................... 605.4.2.6 Definindo elos para sincronizar início e término de exibição de mídias .... 605.4.2.7 Subsistema web colaborativo do sistema “Vida Viajante” ..........................5.4.2.7.1 Menu web................................................................................................5.4.2.7.2 Menu game..............................................................................................

636365

6 CONSIDERAÇÕES FINAIS ................................................................................ 67

7 REFERÊNCIAS.................................................................................................... 69

7

Page 15: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

8

1 INTRODUÇÃO

Presente em países de primeiro mundo antes da sua implantação em território

brasileiro, a tecnologia de TV digital, foi uma tecnologia bastante debatida em

relação ao modelo a ser seguido (padrão americano, japonês ou europeu),

entretanto foi escolhido o padrão japonês como modelo, principalmente por sua

capacidade de recepção de sinal televisivo por dispositivos móveis e isenção de

tarifas no mesmo.

Em meados dos anos 2000, os primeiros sinais digitais começaram a ser

transmitidos ao mesmo tempo em que os consumidores estavam voltados para as

televisões de LCD e Plasma, buscando interatividade e uma maior qualidade de

imagem e som, também se tratando da “TV digital”, porém alguns dos consumidores

não estavam atento ao fato que a TV digital, não se trata de um aparelho, mas da

transmissão de um tipo de sinal que deve ser receptado por um set-top box externo

ou interno ao aparelho de televisão para que se possa usufruir da qualidade de

áudio e vídeo dos canais de televisão, aparelho este que não havia no mercado e

muito menos era acoplado aos aparelhos de televisão no início das transmissões de

sinal digital, causando frustração de alguns. Situação essa que foi mudando de

acordo com o tempo, hoje é relativamente fácil se encontrar set-top box no mercado

e alguns aparelhos de televisão já o possue acoplado.

O set-top box é um aparelho responsável pela recepção de sinal digital e

que possibilita a interatividade com o usuário através de um middleware, no caso da

TV digital brasileira o middleware presente no set-top box é o middleware Ginga, que

possue duas variações: Ginga-J que utiliza linguagem de programação Java para

possibilitar a interação com o usuário e o Ginga-NCL que utiliza linguagem

declarativa NCL e linguagem de script Lua com o mesmo objetivo. Com exceção da

linguagem Java, todas as outras tecnologias foram desenvolvidas por instituições

brasileiras, com destaque para a universidade PUC-Rio, principal responsável pela

8

Page 16: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

9

criação da linguagem NCL e linguagem de script Lua, buscando a potencialização

da tecnologia de TV digital brasileira, já que a mesma utiliza recursos de última

geração como exemplo a codificação para áudio e vídeo MPEG-4, enquanto os

outros padrões, utilizam a codificação MPEG-2.

Por ser uma tecnologia não tão abrangente como o Java, que está presente

em todos os padrões de TV digital, a tecnologia NCL não possui uma grande

quantidade de referência acadêmica, desenvolvedores e aplicativos em relação a

tecnologia Java, porém é uma tecnologia prática e de paradigma mais simples do

que ao paradigma do Java, não necessitando conhecimentos avançado no

desenvolvimento de software.

O presente trabalho pretende fazer um estudo sobre as tecnologias da TV

digital brasileira, com foco na linguagem NCL e para exemplificação, a criação de

um protótipo utilizando a tecnologia NCL, tendo como tema o automobilismo e o

turismo.

1.1 Delimitação da pesquisa

A pesquisa se limita a análise dos padrões de TV digital em utilização no

mundo, com foco no padrão de TV digital brasileiro, seu middleware Ginga-NCL e

software de modelagem 3D. A partir dessa análise será desenvolvido um sistema

com a utilização das seguintes tecnologias: middleware Ginga-NCL e Blender 3D-

Engine. O sistema criado terá o objetivo de apresentar a TV digital como ferramenta

colaborativa e de entretenimento para todas as faixas etárias e classes sociais.

1.2 Hipótese

Após seu lançamento a televisão se tornou um dos principais meios de

comunicação e entretenimento, ocupando lugar estratégico na sala-de-estar, onde

familiares, amigos e casais de namorados se reuniam para assistir programas

televisivos diversos. Porém, com a invenção da internet e massificação dos

computadores pessoais a televisão perdeu seu lugar de destaque como meio de

comunicação e entretenimento, pois a internet permitia maior interatividade e

potêncial de entretenimento maior do que a televisão podia oferecer. Porém isso

9

Page 17: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

10

está mudando, pois as tecnologias de televisão e computação pessoal estão

convergindo, agora já é possível conectar a televisão a internet e até fazer com que

ela adquira comportamento semelhante a computadores pessoais. Se um sistema

for bem projetado para permitir interatividade, entretenimento e colaboração através

da televisão poderá facilitar a vida das pessoas.

1.3 Objetivos

Este capítulo busca demonstrar a finalidade do presente trabalho e quais aspectos

do tema serão focalizados durante o desenvolvimento do mesmo. O tema abordado

se trata da tecnologia de TV digital e seus aspectos com relação a utilização de

software.

1.3.1 Objetivo geral

Verificar conceitos e padrões de TV digital, visando desenvolver

software utilizando ferramentas criadas e mantidas por organizações

responsáveis pela manutenção do padrão brasileiro de TV digital, que

permita a interação entre mídias e que seja um subsistema de um

sistema que utiliza conceito de Smart TV.

1.3.2 Objetivos específicos

Este capítulo apresenta de forma detalhada os objetivos que o presente trabalho busca alcançar.

       Estudar e apresentar conceitos sobre TV digital, padrões de TV digital,

com foco no padrão de TV digital brasileiro.

    Explanação sobre os tipos de middleware, com foco no middleware

brasileiro Ginga e configuração de emulador do middleware Ginga-

NCL, visando o estudo, desenvolvimento e execução de software para

TV digital, utilizando linguagem declarativa NCL.

10

Page 18: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

11

       Criar protótipo de software para TV digital que utilize plataforma do

middleware Ginga-NCL e conceito de Smart Tv.

1.4 Justificativa

O presente trabalho se mostra relevante, diante do crescimento da economia

brasileira, do sistema de TV digital no Brasil e a escassa fonte de referências

acadêmicas sobre as tecnologias que compõem o middleware Ginga-NCL que utiliza

a linguagem Nested Context Language (NCL) e a linguagem de script Lua e

aplicativos utilizando as tecnologias citadas. Apesar da existência do middleware

Ginga-J que utiliza linguagem de programação Java para desenvolvimento de

aplicativos e o middleware Ginga-CC que é uma camada que suporta os ambientes

existentes no Ginga, implementando os exibidores de mídia dos ambientes Ginga-

NCL e Ginga-J, o presente trabalho irá focar no middleware Ginga-NCL, pois é o

middleware que utiliza tecnologias brasileiras para o desenvolvimento de aplicações.

Tanto a linguagem NCL, o middleware Ginga-NCL e a linguagem de programação

Lua, foram desenvolvidos pela Pontifícia Universidade Católica do Rio de Janeiro

(PUC-Rio).

Junto a isso, segundo notícias do portal Nova Brasil FM (2011), o Ministério

do Turismo destaca que o crescimento do turismo nacional vai girar em torno de

16,5% no ano de 2011, isso influenciado pela classe “C”. Para alcançar a

expectativa, o ministério considerou o crescimento das 80 maiores empresas de

turismo em 2010. Juntas, elas faturaram 42 bilhões e 800 milhões de reais somente

no ano passado. Com a perspectiva de crescimento as maiores empresas do setor,

que já empregam 96 mil pessoas, deverão gerar mais postos de trabalho em 2011 e

com a realização da copa do mundo em 2014 e as olimpíadas em 2016 no Brasil, há

grandes inventimentos em infra-estrutura para poder atender bem os turistas e

aquecer o mercado nacional como um todo.1

A partir da análise dos fatos citados anteriormente, surgiu a idéia de se criar

um sistema que permitisse a integração das áreas de turismo, automobilismo e TV

digital, de forma que através de entretenimento, proporcionado por um sistema

executado através de TV digital, os usuários pudessem fazer uma viagem virtual em

1NOVA BRASIL FM. Turismo nacional deve crescer 16,5% em 2011. Disponível em: <http:/www.novabrasilfm.com.br/noticias/nova-noticia/turismo-nacional-deve-crescer-165-em-2011/> Acesso em: 09 setl 2011.

11

Page 19: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

12

diferentes cidades do Brasil, com possibilidade de usufruir de serviços diversos

através de integração do jogo 3D com internet ou simplesmente com o acesso direto

ao portal do sistema Vida Viajante.

O presente trabalho e seu resultado também deve ser utilizador por

estudantes, pesquisadores e profissionais para o desenvolvimento de tecnologia em

TV digital, que se beneficiarão das qualidades do projeto proposto para ajudar a

implementar suas idéias ou propor melhorias do sistema, assim como a economia

das regiões brasileiras incluídas no sistema que devem se beneficiar de mais uma

oportunidade de oferecer seus serviços e alcançar mais clientes, através da

tecnologia proposta por esse trabalho.

12

Page 20: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

13

2 REFERENCIAL TEORICO

Este capítulo busca demonstrar o embasamento teórico no qual está alicerçado o

presente trabalho, através de leitura, compreensão e explanação sobre as

tecnologias abordadas a partir de trabalhos acadêmicos e técnicos.

2.1 TELEVISÃO DIGITAL

A televisão digital surgiu em meados dos anos 70 no Japão, quando

cientistas do NHK Science & Technical Research Laboratories, obteve patrocínio da

rede pública de televisão Nippon Hoso Kyokai (NHK) e de mais 100 estações

privadas de televisão, com o objetivo de realizar pesquisas buscando chegar a uma

tecnologia que permitisse provê ao telespectador sensações tão próximas quanto às

sentidas pelos espectadores de cinema.

Assim, para que essas mudanças ocorressem houve um consenso de que

deveria ser efetuada uma alteração na forma de difusão do sinal televisivo,

passando de sinal analógico para sinal digital, ou seja, o sistema de transmissão

adotado transmitiria sinal televisivo através de códigos binários, dessa forma seria

possível processar os dados televisivos, possibilitando assim que esses mesmo

dados pudessem ser facilmente manipulados e como resultado seria possível

proporcionar novos serviços aos espectadores e tornar a televisão algo mais atrativo

às pessoas.

A transmissão digital transporta dados codificados em 0 e 1 no qual um

receptor ou set-top box é responsável por converter os dados digitais ou bits em

áudio, vídeo e serviços interativos para que o usuário ou espectador possa ter uma

experiência próxima a experiência proporcionada pelo cinema no qual se objetivou

em meados dos anos 70 com o início das pesquisas sobre transmissão digital.

Pode-se exemplicar os modelos de transmissão digital e analógica,

conforme mostra, a figura 1, o detalhe para transmissão digital, com recurso de

multi-programação, ou seja, possibilidade de assistir mais de um canal ao mesmo

13

Page 21: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

14

tempo. Na figura 2, é possível visualizar os formatos de transmissão do mais baixo

até o mais alto nível de qualidade de imagem e a frequência padrão de 6 MHz,

praticamnete utilizada em todos os padrões de TV digital.

Figura 1.2 - How Digital TV Works.Fonte: http://electronics.howstuffworks.com/digital-converter-box2.htm

14

Page 22: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

15

Figura 2.2 - Transmissão simultânea da programação analógica e digitalFonte:http://www.clicrbs.com.br/especiais/diversos/tvdigital_equipamentos_transmissao19082008.jpg

A televisão digital ou HDTV teve seu primeiro sinal transmitido, uma hora por

dia, em meados do ano 2000. Este dispositivo eletrônico obteve relevância, pois

passou a concorrer com os computadores pessoais de acesso a internet por se

tornarem atrativos aos usuários devido a sua gama de funcionalidades.

2.1.1 Características

A receptividade das pessoas, fabricantes e redes de televisão em relação a

capacidade de interação e alcance da TV digital, retrata o fato da TV digital ser uma

grande evolução no mundo televisual, após a criação da TV em Preto e Branco e TV

Colorida.

Objetivando uma recepção de alta qualidade, em diversas áreas, é

necessário que a transmissão digital de TV, apresente um sistema que tenha

condições de ampla cobertura e robustez, ou seja, um sistema bem configurado, que

atenda aos requisitos que forem propostos. Exemplificado na figura nº 3.

15

Page 23: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

16

Figura 3.2 - TV DigitalFonte: http://www.dtv.org.br/index.php/entenda-a-tv-digital/50/

No Brasil a TV digital só foi lançada no final de 2007. A transmissão digital

atinge, em sua maioria, diversos estados brasileiros e observa-se a existência de

políticas de incentivos visando o crescimento dessa tecnologia.

O crescimento dessa tecnologia pode ser analisado verificando-se, conforme

tabela nº 1, os fatores que compõem a diferença entre a TV analógica e TV digital.

Tabela nº 1 – Comparação genérica entre TV analógica e TV Digital.

Fator Analógico Digital

Resolução 525 linhas (4:3) Mínimo – 240 linhas horizontais e 320 pixels por linha e varredura progressiva.

Máximo – 1.080 linhas horizontais e 1.920 pixels por linha e varredura progressiva.

Qualidade de imagem

Degrada Não degrada

16

Page 24: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

17

Novos Recursos Nenhum Interatividade (datacasting)Múltiplos fluxos de áudio evídeo

Otimização do espectro

Uso do espectro limitado por interferências

Possível uso de canais adjacentes

Interatividade Através de outros recursos (internet – telefone – celular)

Imediato, através do próprio aparelho – Canais de Áudio, Jogos e Compras

Interferência Sim Nunca

Programação Única Múltipla – até 6 programações por canal

Formato de imagem

4:3 (vertical) 16:9 (mais horizontal)

Som Mono ou estéreo (até 2 canais)

Dolby Digital (até 6 canais)

Impressão em tela

Canhão de elétrons Em bits

Fonte: SILVA2, 2008

Dados demonstrados na tabela acima, observa-se no tocante as

características de imagem, som, interatividade, acessibilidade e cobertura do sinal

possibilita-se dizer que a TV digital, deve ser considerada uma grande evolução

tecnológica.

Ainda nesse sentido, merece destaque os tipos de resolução suportados

pela TV digital descritos na tabela nº 2 que segue abaixo:

Tabela nº 2 – Tipos de resolução suportados pela TV Digital

Sistema Definição Imagem

LDTV Baixa Resolução de 240 linhas horizontais, 320 pixels por linha e varredura progressiva.

SDTVPadrão Resolução de 480 linhas horizontais, 640

pixels por linha e uma resolução temporal de 60 quadros por segundo em modo intercalado.

EDTV Estendida Resolução de 480 linhas horizontais, 720 pixels por linha e varredura em modo progressivo.

HDTV Alta Resolução de 1.080 linhas horizontais, 1920 pixels por linha em modo intercalado ou 720 linhas horizontais, 1280 pixels por linha com varredura

2 SILVA, George Martins da. TV analógica x TV digital. Disponível em: <http://meuartigo.brasilescola.com/atualidades/tv-analogica-x-tv-digital.htm>. Acesso em: 11 jul. 2011.

17

Page 25: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

18

progressiva.

Fonte: SILVA3, 2008.

Caminhos vêm sendo trilhados com a implantação da Tv Ditigal,

precisamente quando se observa a definição que cada sistema proporciona. O

sistema televisivo HDTV apresenta uma resolução de tela bem superior comparada

a dos formatos tradicionais.

O termo varredura progressiva, citado na tabela n° 2, significa que desenha

cada linha da imagem em seqüência, criando uma imagem nítida, completa e sem

cintilação (flicker), enquanto na varredura intercalada a imagem é formada em duas

etapas, primeiro aparecem metade das linhas da imagem espalhadas pela tela,

depois em um curto espaço de tempo ocorre outra varredura mostrando as linhas

que faltam, assim comprometendo a qualidade da imagem.

2.1.1.1 Imagem e som

A característica que mais se destaca na TV digital é a qualidade de som e

imagem, bem maior do que a qualidade da transmissão analógica. Nas mídias essa

maior qualidade aparece com as siglas HD (High Definition) ou HDTV, que indica

que será possível ver mais detalhes na imagem, como nos cinemas.

A transmissão de imagem em formato HDTV nem sempre será possível na

atual conjuntura, mas em determinados casos será possível transmitir a imagem de

TV digital com qualidade ou resolução igual a da TV analógica. Uma das diferenças

é que ao contrário da transmissão de TV analógica no qual imagem e som é

transmitido de modo contínuo, o que faz com que imagens adquiram contornos

borrados, chuviscos, fatasmas, ruídos, distorções, dificuldade para vizualizar

caracteres na tela e ouvir um som pobre, às vezes em formato estéreo, a

transmissão digital transforma cada minúsculo elemento da imagem e do som em

número binário e não há interferências, a imagem é perfeita durante todo o percurso

de transmissão dos dados ou ela não existe.

3 SILVA, George Martins da. TV analógica x TV digital. Disponível em: <http://meuartigo.brasilescola.com/atualidades/tv-analogica-x-tv-digital.htm>. Acesso em: 11 jul. 2011.

18

Page 26: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

19

A TV digital e HDTV, não são as mesmas coisas. Todo sinal de TV digital

tem maior qualidade do que o sinal de TV analógico, porém o HDTV é apenas uma

parte da TV digital, pois nem todos os programas são transmitidos utilizando o maior

padrão de qualidade que é o HDTV.

A resolução padrão de um televisor nos dias atuais é entre 480 e 525 linhas

(padrão 4:3), na televisão digital essa resolução chega a mais que o dobro, para

1080 (16:9) linhas com o maior padrão de qualidade o HDTV, com exceção da

utilização do recurso de multi-programação, onde é possível assistir mais de um

programa ao mesmo tempo é utilizado a resolução padrão, não há suporte para

multi-programação em resolução HDTV.

Através da figura 4 é possível verificar a diferença entre televisão analógica

e televisão digital.

Figura 4.2 - Televisão analógica Televião digital.Fonte: OLIVEIRA, 2009.

A maior qualidade de imagem acompanhada da maior qualidade de audio,

onde antes só havia o formato mono (um canal de aúdio) e estéreo (dois canais de

aúdio) na TV analógica é possível com a TV digital ter até seis canais de aúdio, som

surround 5.1, porém só será disponibilizado com o uso de HDTV.

Observa-se na figura (5), citada abaixo, a diferença de resolução em cada

sistema, identificando a que permite um melhor detalhamento.

19

Page 27: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

20

Figura 5.2 - Evolução da Imagem.Fonte: http://abandonemicrosoft.net/portal/wp-content/uploads/2007/12/resolucaotvs.jpg

Vários estudos foram realizados sobre os temas correlatos com o sistema de

TV digital e pode-se alega que no tocante a imagem a qualidade é excelente,

independente de ser exibida ou não, em tv de pequeno, médio ou grande porte. O

sinal digital pode resistir a uma resolução maior, também assim a imagem continua

com qualidade mesmo quando é transmitida em uma tela de TV maior. Com relação

ao vídeo este pode ser entrelaçado, ou seja, assim a imagem é mostrada inteira

para cada quadro o oposto de uma linha de pixels sim, outra não.

20

Page 28: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

21

Ainda dentro deste contexto, a utilização pelos canais de TV do sistema de

multitransmissão, utilizando-se nesse aspecto da tramissão de vários sinais usando

a mesma banda, com a possibilidade das TVs adotarem, em caso de interesse, a

inclusão de teor interativo ou dados diversos ao sinal da TV digital. Baseado nessas

análises pode-se afirmar que a TV digital tolera emissoras de alta definição (HDTV).

2.1.1.2 Interatividade

A TV digital apresenta outro paradigma ao mundo da televisão que é a

interatividade. Agora é possível que os telespectados que desejam interagir com os

programas exibidos. A interatividade ocorre através de middleware, no caso do

trabalho em questão. O middleware Ginga-NCL, desenvolvido pela PUC-Rio é

definido como padrão para o modelo brasileiro de TV digital (ISDB-TB) é

responsável por gerenciar toda interatividade.

Figura 6.2 - Exemplo de Ilustração do Canal de Retorno/Interatividade.Fonte: Site Oficial da TV Digital Brasileira. 2010.

A TV digital (ISDB-TB) através do seu middleware permite que o

telespectador possa interagir com a TV, podendo escolher a câmera de sua

preferência para vizualisar determinado programa televisivo, pode comprar algum

objeto que apareça em uma cena de filme ou novela, pode fazer votações, realizar

operações bancárias, além de outros serviços que irão aparecer de acordo com a

popularização da TV digital e aperfeiçoamento de suas ferramentas de

21

Page 29: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

22

desenvolvimento de software. Nesse caso, podemos exemplificar uma tela de

interatividade utilizando a figura 7, apresentada no texto a seguir:

Figura 7.2 - Interatividade em suas mãos. Fonte: Portal BLOG da TV Digital.

Pode-se afirmar que existem três tipos de interatividade: interatividade local,

interatividade com canal de retorno não-dedicado e interatividade com canal de

retorno dedicado.

No tipo de interatividade local, o conteúdo é transmitido unilateralmente para

o receptor, de uma só vez e são armazenados no receptor. O usuário pode interagir

livremente após o armazenamento dos dados, só haverá um novo armazenamento

de dados quando o usuário efetuar uma atualização ou acessar outro serviço.

Na interatividade com canal de retorno não-dedicado a interatividade é

estabelecida a partir de uma troca de informações por uma rede à parte do sistema.

utilizando o ar como meio de recebimiento e retorno por linha telefônica.

A interatividade com canal de retorno dedicado é caracterizada pois pode

ser desenvolvido um meio específico para operar como canal de retorno. Nesse

caso o usuário precisa de além de antenas receptoras, também antens

22

Page 30: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

23

transmissoras e os sistemas, de forma a viabilizar a transportar os sinais até a

central de transmissão.4

2.1.1.3 Acessibilidade

A TV digital provê um maior grau de acessibilidade do que a TV analógica.

Alguns modelos de aparelhos receptores ou mesmo conversores podem incorporar

gravadores que permitem ao usuário armazenar muitas horas de gravação, a

televisão digital permite ao usuário fazer sua própria grade de programação

televisiva, além de também proporcionar maior acessibilidade aos deficientes físicos

como a possibilidade de se ativar legendas ou língua de sinais aos programas com

um simples toque no botão do controle remoto. A tendência é cada vez mais tornar a

TV digital mais acessível a todo tipo de pessoas e necessidades de acordo com o

amadurecimento das tecnologias e ferramentas.

2.2 Ferramentas de desenvolvimento Ginga-NCL para TV digital ISDB-TB

As ferramentas para desenvolvimento de aplicativos utilizando o middleware Ginga-NCL, são:

Ginga Live CD;

CD bootavel do sistema Linux, contendo Ginga-NCL C++ v. 0.12.3 e interface gráfica amigável, v 1.2;

Ginga-NCL Virtual STB;

Máquina virtual Linux para VMWare, contendo Ginga-NCL C++ v. 0.12.3; e

Eclipse – NCL Eclipse Plugin. (IDE desenvolvida em Java, com grande

facilidadoldave de desenvolvimento e integração de plugins, com uma

extensa lista de plugins e que conta também com o plugin para

desenvolvimento de software utilizando a linguagem NCL.

2.2.1 Middleware

4 Disponível em:< http://wikipedia.org/wiki/Televis%C3%A3o_digital >. Acesso em: 02 jul. 2011.23

Page 31: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

24

Com base no conceito dado pela Rede Nacional de Ensino e Pesquisa-

RNP, de que um middleware é o neologismo criado para designar camadas de

software que não constituem diretamente aplicações, mas que facilitam o uso de

ambientes ricos em tecnologia da informação. Sendo assim, absorve serviços como

identificação, autenticação, autorização, diretórios, certificados digitais e outras

ferramentas para segurança. O texto a seguir vem reforçar:

Aplicações tradicionais implementam vários destes serviços, tratados de forma independente por cada uma delas. As aplicações modernas, no entanto, delegam e centralizam estes serviços na camada de middleware. O middleware serve como elemento que aglutina e dá coerência a um conjunto de aplicações e ambientes.5

No caso da televisão digital, o middleware está localizado entre a rede de

transmissão (hardware) e as aplicações. Sua principal finalidade é fornecer um

conjunto de ferramentas que possibilite a interoperabilidade entre os sistemas de

transmissão de vídeo para os vários tipos de mídias de transmissão. Também é

possível executar aplicações, gerenciar os eventos captados, desenhar na tela do

televisor, controlar todas as fases do ciclo de vida e acessar o fluxo de vídeo, áudio

e dados. A arquitetura básica dos elementos do middleware está representada na

figura 8, em seguida a descrição de cada camada.

Figura 8.2 - Diagrama de blocos do ISDB.Fonte: ALENCAR, 2007.

Recursos: aborda a camada mais baixa da arquitetura, local onde estão

centradas as portas e recursos de hardware;

Middleware: responsável por implementar a camada de API, apresentando

assim um modelo abstrato de comandos, eventos, registros, arquivos de

dados, recursos de hardware e streams de áudio e vídeo;

5 Disponível em:< http://pt.wikipedia.org/wiki/Televis%C3%A3o_digita.>. Acesso em: 11 set. 2011.24

Page 32: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

25

API: camada de interface de programação de aplicações que provê os

serviços associados às aplicações.

Aplicações: camada que permite implementar serviços interativos para TV digital.

2.3 Principais padrões de TV digital

O presente trabalho se propõe a abordar com ênfase o padrão brasileiro de

TV digital (ISDB-TB) e para fins de complementação os três principais padrões de

TV digital: DVB/T, ATSC e ISDB-T.

Figura 9.2 - Padrões de TV digital.Fonte: http://muitopelocontrario.files.wordpress.com/2010/01/digital_broadcast_standards.png?

w=658&h=334

2.3.1 DVB-T (Digital Video Broadcast Terrestrial)

Segudo a organização DVB6, em 1993, como resultado de uma parceria de

mais ou menos 300 empresas europeias, criou-se o projeto DVB, porém com o

passar do tempo essa aliança resultou num envolvimento mundial. A administração

desse consórcio situa-se em Genebra (Suíça) e desenvolve trabalhos visando os

interesses destes membros.

O principal objetivo do projeto DVB é especificar uma família de padrões

mundiais para sistemas de televisão digital interativa, incluindo a transmissão do

sinal e serviços de dados associados.

6 Disponível em: < http://dvb.org/>. Acesso em: 13 nov. 2011.

25

Page 33: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

26

Acredita-se que em torno de 120 milhões de receptores DVB estão, agora,

em residências localizadas em várias partes do mundo e que além desse padrão ser

adotado por diferentes países da comunidade européia como em outras regiões, na

Inglaterra observa-se que adoção do padrão DVB atingiu um patamar consolidado,

com um quadro de mais de um milhão de receptores digitais instalados.

Na definição do projeto DVB decidiu-se que, para a codificação de fonte dos

sinais de áudio e vídeo e para a multiplexação de diferentes sinais, o padrão MPEG-

2 seria utilizado. A razão para essa decisão foi o fato de que o MPEG-2 prometia se

tornar uma solução que pudesse ser aceita mundialmente. A complexidade do que

foi documentado é refletida no fato de os receptores decodificadores integrados

(IRDs) serem classificados considerando cinco fatores: taxa de quadros de vídeo

sendo 25 Hz ou 30 Hz, resolução (SDTV ou HDTV), presença de interface digital ou

linha básica, codificação de vídeo MPEG-2 ou H.264/AVC e diversos formatos de

áudio.

O modelo terrestre do DVB apresenta as seguintes características:

Opera nas frequências de 6, 7 ou 8 MHz

Modulação: COFDM;

Taxa de transmissão: entre 5 e 31,7Mbps;

O DVB-T dá suporte a transmissão tanto de alta definição quanto de

baixa definição;

Aplicações: EPG, t-GOV, t-COM, Internet;

Compressão: MPEG-2 (aúdio) e MPEG-2 SDTV(vídeo);

Middleware: MHP/MHEG;

Transporte: MPEG-2;

2.3.2 ATSC (Advanced Television Systems Committee)

A ATSC (Advanced Television Systems Committee) Inc.7, é uma organização

7 Disponível em:< http://www.nhk.or.jp/strl/open99/de-2/shosai-e.html>. Acesso em: 15 out. 2011.

26

Page 34: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

27

internacional sem fins lucrativos, formada em 1982, que desenvolve padrões para

televisão digital. Ela é representada por aproximadamente 140 membros

representativos dos vários ramos das indústrias de: equipamentos de transmissão,

eletrônicos, cinema, computadores, cabos, satélites e semi-condutores e atua

coordenando padrões televisivos entre diferentes tipos de mídias de comunicação,

com foco em TV digital, sistemas interativos e comunicação multimídia

O padrão ATSC apresenta as seguintes características:

Opera na frequência de 6 MHz

Modulação: 8-VSB;

Taxa de transmissão de 19,8 Mbps;

Dificudade de recepção por antenas internas.

Não permite recepção por dispositivos móveis.

Aplicações: EPG, t-GOV, t-COM, Internet;

Compressão: Dolby AAC (aúdio) e MPEG-2 HDTV (vídeo);

Middleware: DASE;

Transporte: MPEG-2;

2.3.3 ISDB-T (Integrated Services Digital Broadcasting Terrestrial).

O padrão ISDB-T foi estabelecido em 1999 no Japão pelo grupo DiBEG –

Digital Broadcasting Experts Group (DiBEG, 2004), criado em 1997 e composto por

várias empresas e operadoras de televisão do segmento público e privado e mais

conhecido como o padrão japonês. É considerado como uma evolução do padrão

DVB-T e vem sendo desenvolvido desde a década de 70 pelo laboratório de

pesquisa da rede de TV NHK.

Revelado como o padrão mais completo e altamente versátil o ISDB-T além

de enviar os sinais da televisão digital, pode ser empregado em diversas atividades,

tais como: trasmissão de dados; receptor para recepção parcial em um PDA e em

um telefone celular; recepção com a utilização de um computador ou servidor

doméstico; acesso aos sites dos programas de televisão; serviços de atualização do

receptor por download; sistema multimídia para fins educacionais, etc. como

também em serviço de transmissão para plataforma: fixa, móvel ou portátil no

mesmo sinal.

O padrão ISTB apresenta as seguintes características:

27

Page 35: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

28

Opera na frequência de 6 MHz

Modulação: BST-COFDM;

Taxa de transmissão de 19,8 Mbps;.

Aplicações: EPG, t-GOV, t-COM, Internet;

Compressão: Dolby AAC (aúdio) e MPEG-2 HDTV (vídeo);

Middleware: ARIB;

Transporte: MPEG-2.

2.3.4 ISDB-TB

O padrão ISDB-TB é o padrão de TV digital desenvolvido no Brasil, baseado

no padrão de TV digital japonês. Apresenta diferenças na utilização de tecnologias

desenvolvidas no Brasil e na exclusão do mecanismo anti-cópia, existente no padrão

japonês.8

A principal diferença do padrão brasileiro para o padrão japonês foi a adoção

do padrão MPEG-4, conhecido como H.264 para codificação de vídeo, em vez de

MPEG-2 adotado no padrão japonês e o HE-AAC v2, em vez do, MPEG-2 AAC do

padrão japonês, para codificação de áudio.

A TV digital brasileira praticamente surgiu em 1999, como resultado da

parceria da Anatel e do CPqD, pois nesse período teve início o processo de

avaliação técnica e econômica para escolha do padrão de transmissão digital a ser

aplicado no Brasil. Como resultado em 27 de novembro de 2003, ocorreu a criação

do Comitê do SBTVD, responsável pelos estudos que definiriam o padrão a ser

adotado no país.

O governo brasileiro escolheu o modelo ISDB-T após desenvolver vários

estudos junto a universidades e emissoras de televisão, que mostraram como

conclusão que o melhor sistema de TV digital para o Brasil seria o modelo em

questão desenvolvido pelo Japão. Assim, em junho de 2006 o governo Informou

sobre a escolha do ISDB-T como base para o desenvolvimento do SBTVD.

A escolha do padrão de transmissão ISTB-T pelas empresas de

telecomunicação brasileiras foi devido a possibilidade desse módulo em atender

dispositivos portáteis, permitindo que o público assista TV, por exemplo, em

8 Disponível em:< http://www.forumsbtvd.org.br/>. Acesso em: 13 out. 2011.

28

Page 36: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

29

celulares, mini-televisores e outros dispositivos móveis, além da possibilidade em

proporcionar alta definição e interatividade para terminais fixos e móveis.

Com o aperfeiçoamento técnico desenvolvido, pelo Brasil, no modelo ISDB-T,

proporcionou a transmissão de conteúdo de altíssima qualidade para os

telespectadores, possibilitando ao mesmo tempo a recepção móvel e portátil dos

sinais de TV digital, nos mais diversos tipos de dispositivos, como celulares, mini-

televisores, notebooks etc. Tudo isso sem custos para o consumidor, uma vez que o

SBTVD é um sistema de televisão digital aberto, livre e gratuito. No DVB-T (Digital

Video Broadcast Terrestrial), o padrão europeu, por exemplo, a transmissão para

dispositivos móveis é tarifada pelas operadoras de telefonia.

As características do padrão ISDB-TB são as seguintes:

Opera na frequência de 6 MHz

Modulação: BST-CODFM;

Taxa de transmissão de 19,8 Mbps;.

Aplicações: EPG, t-GOV, t-COM, Internet;

Compressão: MPEG-4 AAC (aúdio) e MPEG-4 H.264 (vídeo);

Middleware: Ginga;

Transporte: MPEG-2.

Segundo Site Oficial da TV Digital, o Brasil,  Peru,  Argentina,  Chile,

Venezuela, Equador, Costa Rica, Paraguai, Bolívia, Nicarágua e Uruguai já

anunciaram a adoção do padrão brasileiro de televisão digital ISDB-TB.

3 TECNOLOGIAS DE MODULAÇÃO, APLICAÇÃO, COMPRESSÃO E MIDDLEWARE UTILIZADAS PELA TV DIGITAL

29

Page 37: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

30

Este capítulo apresenta as principais características de software e transmissão e

conversão de dados em formato digital, para sinais que permitam aos equipamentos

televisivos apresentarem áudio, imagem e interatividade.

3.1 Tecnologias de modulação

Este capítulo apresenta os modelos de transmissão de sinal adotados pelos padrões

japonês, americano, europeu e brasileiro, com suas diferenças, prós e contras de

cada tipo de modulação.

3.1.1 OFDM

A modulação OFDM é uma técnica de modulação utilizada geralmente por

ambientes de comunicação que utiliza altas taxas e consiste em dividir os bits em

diversos streams de taxa menor, para em vez de transmitir os bits em único stream,

transmiti-los em canais paralelos, que devem ser canais ortogonais para que não

interfiram uns nos outros.

Quando a modulação OFDM é utilizada em conjunto com condificação de

canal (técnica de correção de erro), é denominada CODFM e quando é utilizada a

sigla BST (exemplo: BST-CODFM) para designar alguma mudança no tipo da

modulação CODFM, significa que o canal é dividido em 13 segmentos, cada

seguimento pode levar um conteúdo diferente. O sétimo seguimento é utilizado para

transmitir para celulares e equipamentos portáteis, principal diferencial para os

padrões que adotam este tipo de modulação.

Na modulação OFDM, inicialmente é feita a inserção de um código corretor

de erros e embaralhamento, de maneira que bits de um mesmo byte sejam todos

misturados, para em seguida efetuar o entrelaçamento, ou seja, a reorganização dos

bits, fazendo com que os bits subsequentes passem a ser separados no tempo.

Esse processo permite evitar erros do tipo rajada (burst) e permite a recuperação do

sinal original do receptor de maneira mais fácil, pois ao fim deste processamento os

erros passam a atingir bits pertencentes a diversos bytes diferentes, distantes da

informação original e não a bits subsequentes.

30

Page 38: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

31

3.1.2 8-VSB

Procurando robustez e aperfeiçoamento do sinal de televisão, através de

inserção de códigos de correção de erros, com finalidade de evitar a presença de

ruídos no sinal, foi criada a modulação 8-VSB, onde o fluxo de bits passa por vários

estágios até apresentar características adequadas a ser transmitido.

A primeira fase da modulação 8-VSB é o embaralhamento espectral dos

dados. Nessa fase a informação se encontra fora de ordem e se utiliza o código

Redd Solomon, como um sistema de correção de erros e que insere bytes de

paridade com finalidade de formação de segmentos. Para aumentar a robustez do

sinal, é inserido mais um código de correção de erros, o código treliça. A partir deste

momento as últimas adaptações para que se possa irradiá-los através do meio, é a

modulação de sinal na frequência correta para a propagação do sinal televisivo e a

amplificação do mesmo em um estágio de potência.

Segundo Ana Luiza Rodrigues e Regina Gomes9 as vantagens da

modulação CODFM em relação a modulação 8-VSB, são as seguintes:

1) Apresenta melhor desempenho em situações de multipercurso intenso

verificadas em áreas densamente povoadas;

2) Permite implementação do modelo de transmissão em alta definição com

adequada robustez.

3) Possibilita a recepção em áreas não atendidas por nenhum sistema, mediante

o emprego de frenquência única.

4) Apresenta melhor desempenho em situações em que o ambiente de

propagação é variável no tempo, possibilitando recepção móvel.

5) Possibilita grande versatilidade, pois um grande número de parâmetros pode

ser levado em consideração.

6) Economia espectral.

Ana Rodrigues e Regina Gomes, salienta ainda as desvantagens da

modulação CODFM em relação a modulação 8-VSB,:

1) Baixa tolerância a ruído impulsivo.

9RODRIGUES, Ana Luiza; GOMES, Regina Missias. Modulação COFDM – uma proposta atrativa para os padrões de TV Digital. Disponível em: <http://www.revdigonline.com/artigos_download/art_16.p>. Acesso em: 02 nov. 2011.

31

Page 39: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

32

2) O aumento da banda de guarda entre sub-portadoras implica no aumento

direto da banda a ser transmitida. No caso da redução da banda de guarda

implica em interferência co-canal.

3) Deve haver uma relação entre a potência de pico e a potência média

relativamente grande, o que afeta diretamente a eficiência do modulo

amplificador de RF.

3.2 Tecnologias de aplicação

Este capítulo lista os tipos de aplicativos que podem ser utilizados através da TV

digital.

EPG (Eletronic Programming Guide) - Interface gráfica que permite a

navegação pelas possibilidades de programação encontrada na TV

digital.

t-GOV- Permite a interação do governo com cidadão, empresas e

outros governos através da televisão.

t-COM - Permite ao telespectador comprar, vender ou contratar

serviços através da televisão.

Internet - Permite ao telespectador interagir com sistemas web.

3.3 Tecnologias de compressão

Este capítulo apresenta os formatos de compressão de áudio e vídeo utilizado pelos

padrões de TV digital brasileiro, japonês, americano e europeu e a diferença entre

os modelos de MPEG-2 e MPEG-4.

3.3.1 Padronizações MPEG 2

Os tipos de padronizações MPEG 2 conhecidas são: MPEG-2 (aúdio),

MPEG-2 SDTV (vídeo padrão), MPEG-2 HDTV (vídeo de alta resolução)

O MPEG-2 foi lançado em 1994, como uma evolução do MPEG-1, sendo

posteriormente a tecnologia adotada pelo padrão japonês, americano e europeu de

TV digital para codificação de áudio e vídeo de alta qualidade e resolução, também

oferece suporte a varredura progressiva e varredura intercalada. O sinal da TV 32

Page 40: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

33

digital dos padrões citados é codificado utilizando a tecnologia MPEG-2 e quando o

sinal alcança o destino é decodificado pelo set-top box.

O MPEG-2 é constituído por 10 partes, no qual se destacam as seguintes

partes: ISO/IEC 13818-1 Systems, ISO/IEC 13818-2 Video coding, ISO/IEC 13818-3

Audio coding e ISO/IEC 13818-6 Data broadcast e DSM-CC.

3.3.2 Padronizações MPEG 4

Os tipos de padronizações MPEG 4 conhecidas são: MPEG-4 H.264 (vídeo).

O MPEG-4 é um padrão de compressão de áudio e vídeo, introduzido no ano

de 1998 e que também foi adotado pelo padrão brasileiro de TV digital.

O padrão brasileiro para compressão é o H.264/MPEG-4 para todos os

sinais, que é mais eficiente que o MPEG-2, ou seja, é possível trafegar a mesma

quantidade de vídeo em uma taxa de dados menor (TV Globo Digital, 2008).

Vale salientar ainda que o esquema de codificação AAC foi projetado para

se obter uma alta qualidade de áudio, capaz de incluir 48 canais em um único fluxo

de dados, até 16 canais de efeitos de baixa frequência, diálogos “casados” e fluxo

de dados.

A codificação MPEG-4 se caracteriza pela capacidade de descrever cenas

na forma de objetos, mas compartilha das mesmas compressões de imagem que o

MPEG-2. O que difere estes dois tipos de compressão são as formas dos

macroblocos, enquanto o MPEG-2 tem macrobloco quadrado, os macroblocos do

MPEG-4 possui outras formas geométricas e a capacidade do MPEG-4 de

incorpoção de metadados do arquivo, responsáveis pelo transporte de informações

relacionadas ao arquivo.

3.3.2.1 Padronização Dolby AAC

A tecnologia Dolby AAC foi adotada pelo padrão ATSC e trata-se de um

padrão de compressão proprietário criado pela empresa Dolby Laboratories. O Dolby

AAC permite até 5 canais principais e um canal subwoofer que podem ser

comprimidos em um único fluxo de dados.

33

Page 41: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

34

3.4 Tecnologias de middleware

O MHP é o middleware do padrão europeu TV digital (DVB). Este

middleware suporta dois tipos de aplicações: DVB-HTML e DVB-J. A principal

diferença entre os tipos de aplicações citados é que a aplicação DVB-HTML é uma

aplicação apresentada através de conteúdo hipermídia, enquanto a aplicação DVB-J

é apresentada através de conteúdo compilado na linguagem Java e oferece funções

de alto nível, estrutura de dados e protocolos que provê uma interface padrão para

desenvolvimento de software.

O middleware MHP é formado pela combinação de suporte à broadcast e à

internet, dividido por perfis. Existem três perfis: Enhanced, Interactive e o Internet

Access.

No perfil Enhanced, não há suporte a canal de retorno e conexão IP,

executando as aplicações via broadcast. No perfil Interactive, há possibilidade de

interatividade, pois este perfil suporta um canal de retorno e conexão IP. O perfil

Internet Access, provê suporte para aplicações em Java e web.

3.4.1 DASE

O DASE é o middleware do padrão americano de TV digital (ATSC) e que

permite a execução de serviços interativos por qualquer receptor. O conteúdo de

uma aplicação no middleware DASE pode ser de natureza declarativa ou procedural.

As aplicações declarativas buscam apresentar os dados de forma estática,

utilizando tecnologias que basicamente fazem uso de conceitos de desenvolvimento

de software para web, como XHTML, CSS, DOM, fluxo de áudio e vídeo. Enquanto

os aplicativos procedurais, são desenvolvidos utilizando a linguagem de

programação Java e permite processar tarefas mais complexas e de forma

dinâmica.

3.4.2 ARIB

34

Page 42: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

35

O ARIB é o middleware adotado pelo padrão japonês (ISTB) e utiliza para

transmissão um TS (Transport Stream), através de um broadcasting de rádio, para

transportar áudio, vídeo e serviços de dados, que são multiplexados antes de serem

enviados pelo sinal. Para permitir a interatividade das comunicações são

disponibilizados canais interativos na rede, o ARIB também permite adiciona EPG

(Eletronic Program Guide), índices e funções de gravação automática, como forma

de facilitar a interação do usuário.

Aplicações em tempo real que necessitam de sincronização na

decodificação e reprodução, fazem uso do sistema de transmissão de dados que

utiliza o armazenamento dos pacotes como um fluxo de pacotes no PES(Packetized

Elementary Stream).

3.4.3 GINGA

O middleware GINGA foi desenvolvido pelo laboratório TeleMídia do

departamento de informática da PUC – Rio em parceria com o laboratório LAVID da

Universidade Federal da Paraíba, cada um desses laboratórios ficou com a

responsabilidade de desenvolvimento das versões Ginga-NCL e Ginga-J,

respectivamente.

O Ginga-NCL é uma infraestrutura de apresentação para aplicações

declarativas escritas na linguagem NCL (Nested Context Language), no qual está

focado o presente trabalho, que é uma linguagem de marcação assim como o BML

(padrão japonês) e o DVB-HTML (padrão europeu) com sintaxe semelhante a XML e

que permite facilidades de interatividade e sincronismo de espaço e tempo entre

mídias, ou como também é denominado, objetos de mídia, através da criação de

documentos hipermídia. O Ginga-NCL também permite como linguagem de script a

linguagem Lua, também desenvolvida pela PUC-Rio.

O Ginga-J é uma infraestrutura de apresentação para aplicações

procedurais (Java Xlet), através desta versão do Ginga é possível prover uma

interação com o usuário de maior complexidade nas aplicações, de forma

semelhante aos DVB-J e compatível com o padrão ARIB B23 japonês, no qual é

baseado a tecnologia de TV digital do Brasil.

35

Page 43: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

36

O Ginga desde seu projeto inicial buscou a interação entre aplicativos

declarativos e procedurais, o middleware Ginga também o permite, pois em sua

arquitetura existe o módulo Commom Core que é a camada de software que dá

suporte aos módulos do Ginga-J e Ginga-NCL, através de codec e procedimentos

para obter dados do MPEG-TS ou do canal de retorno que possibilite a

interatividade.

Figura 10.3 - Sistema operacionalFonte: http://www.gingadf.com/blogGinga/?p=13

O susbistema lógico do Ginga é composto por vários módulos, porém o mais

importante é o formatter, pois esse é o responsável por receber um documento NCL

e controlar a sua apresentação, garantindo o correto funcionamento dos

relacionamentos entre as mídias.

Os objetos, seus relacionamentos e especificações de espaço-tempo são

declarados em um documento NCL, este documento é executado pelo formatador

NCL. Os tipos de objetos suportados dependem diretamente do NCL player

embutido no formatador NCL.

Outro módulo a se destacar no Ginga-NCL é o módulo da linguagem de

script Lua, que é uma linguagem de programação projetada para extender

aplicações, seus scripts são acoplados em programas maiores que precisam ler e

executar programas escritos pelos usuários.

4 COMPONENTES DA TV DIGITAL INTERATIVA

36

Page 44: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

37

Os componentes da TV digital interativa, segundo Montez e Becker, são:

1- Um difusor, responsável por prover o conteúdo a ser transmitido e suportar

as interações com os telespectados.

2- Um receptor, responsável por receber, apresentar o conteúdo e possibilitar

ao telespectador interagir com o difusor;

3- Um meio de difusão, composto por canal de difusão e canal de retorno

(canal de interatividade), que habilita a comunicação entre difusor e

receptor. (MONTEZ ; BECKER, 2004, p. 27).

Figura 11.4 - Modelo de um sistema de televisão digital interativaFonte: MONTEZ; BECKER, 2004, p. 27.

4.1 Difusão

Montez e Becker, afirmam que difusão é o envio do conteúdo (áudio, vídeo

ou dados) de um ponto provedor do serviço de difusão (responsável pelo

gerenciamento de diversos canais televisivos) para outros pontos, os receptores,

onde se encontram a recepção digital e os telespectados. Os meios de difusão mais

comuns são via satélite, cabo e difusão terrestre (radiodifusão). (MONTEZ;

BECKER, 2004, p. 28).

A difusão via cabo tem como vantagem uma boa largura de banda para o

canal de difusão e para o canal de retorno e permite ao provedor deter e controlar o

37

Page 45: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

38

seu meio de difusão, como desvantagem a transmissão nesse meio de difusão só

atinge as residências que estão ligadas fisicamente.

Difusão por satélite permite um alcance maior do sinal, facilitando a sua

recepção em lugares remotos, com pouco custo, já que não há necessidade de

ligação física. Como desvantagem a difusão via satélite apresenta dificuldade em

estabelecer um canal de retorno, entre o provedor e o telespectador, problema esse

que geralmente é solucionado com a utilização de linhas telefônicas como canal de

retorno.

Na difusão terrestre é que esse meio já é utilizado nas televisões

convencionais, assim em teoria se torna mais simples a migração de

telespectadores da TV convencional para a TV digital. Como desvantagem a difusão

terrestre possui o mesmo problema de estabelecimento de canal de retorno, assim

como a difusão via satélite, o menor número de canais televisivos e serviços

interativos devido a menor faixa de banda, em relação a difusão por cabo e satélite.

Além da difusão de áudio e vídeo, também existe a difusão de dados. Como

exemplo, tem legendas, guia de programação de canais, dados para T-GOV, T-

COM, T-MAIL, etc e para processamento desses dados a TV digital executa

aplicativos que geralmente são escritos em Java, apesar de existir outras linguagens

para se efetuar esse processamento, como a linguagem Lua.

A geração de conteúdo televisivo se dá de duas maneiras: transmissão ao

vivo ou a gravação para depois edição e difusão do conteúdo. Nas duas formas de

geração de conteúdo, os sinais de áudio e vídeo precisam ser codificados por um

encoder (codificador) e encapsulados em pacotes de transporte MPEG2-TS por um

multiplexador para então serem difundidos.

Ao final da multiplexação, cabe ao modulador transformar o sinal digital em

sinal analógico para que seja possível a difusão do sinal por meios convencionais. O

modulador gera um sinal analógico de baixa frequência que precisa ser convertido

para um sinal de maior frequência, através de um equipamento denominado

UpConverter, para poder ser difundido pelos meios convencionais.

38

Page 46: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

39

Figura12.4 - Difusão de sinalFonte: MONTEZ; BECKER, 2004, p. 29.

4.2 Receptor set-top box

Após difusão do sinal, o sinal em primeiro lugar terá que ser captado por

uma antena específica para o meio de difusão utilizado, para então ser processado

pelo receptor, que pode estar acoplado a uma televisão ou ser um equipamento à

parte, conhecido como set-top box ou terminal de acesso. O set-top box é

responsável por converter os sinais digitais de forma que seja possível a televisões

convencionais apresentarem o conteúdo de áudio e vídeo do sinal convertido.

O set-top box, terminal de acesso ou receptor pode permitir interatividade

entre o telespectador e os serviços disponíveis, utilizando diversas tecnologias como

linhas telefônica e cabo para fazer a comunicação no sentido inverso da difusão.

A interatividade entre o telespectador e serviços interativos se dá pela

capacidade do set-top box em processar dados, devido a sua arquitetura que se

assemelha ao de um computador comum, contando com unidade de processamento

39

Page 47: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

40

(CPU), unidade de armazenamento volátil e não-volátil e leitor de cartões para

controle de acesso e tudo isso é controlado por device drivers de sistemas

operacionais, sistemas estes que são mais simples do que um sistema operacional

de computador comum e possuem código armazenado em memória ROM, uma

memória não volátil, enquanto sistemas operacionas de computadores comuns são

armazenados em HD, que também é uma memória não-volátil, mas de maior

capacidade, compatível com o tamanho do sistema operacional instalado.

Segundo Montez e Becker, o primeiro elemento que capta o sinal difundido é

o sintonizador, em seguida o sinal passa pelo demodulador, que extrai o fluxo de

transporte MPEG-2, passando-o para o demultiplexador, responsável por extrair

todos os fluxos elementares. Esses, por sua vez, são então encaminhados para o

decodificador, que os converterá para o formato apropriado de exibição utilizado

pelo equipamento televisivo. (MONTEZ ; BECKER, 2004, p.30).

Figura 13.4 - Meios de sinalFonte: MONTEZ; BECKER, 2004, p.30.

40

Page 48: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

41

4.3 Datacasting, carrossel de dados e carrossel de objetos.

Este capítulo apresenta as formas como os dados digitais são transmitidos, através

de conceitos de datacasting e carrosel de dados.

4.3.1 Datacasting

Datacasting ou data broadcasting é a trasmissão de dados digitais, através

de ondas de rádio.

Os tipos de data broadcasting destacados por Montez e Becker:

Datacasting fortemente acoplado: dados difundidos tem relacionamento temporal com o fluxo de áudio e vídeo.Datacasting fracamente acoplado: dados são relacionados ao áudio e vídeo, porém o usuário pode escolher o melhor momento para acessar esses dados.Datacasting desacoplado: dados são enviados em um fluxo totalmente independente de outros fluxos.( MONTEZ; BECKER, 2004, p. 31).

4.3.2 Carrossel de dados

O carrossel é um mecanismo onde áudio, vídeo ou dados são enviados de

forma cíclica, entrelaçados com outros dados digitais. Baseado em Montez;Becker o

DSM-CC (Digital storage media command and control) é incompleto na forma de

determinar como as aplicações nos set-top boxes irão lidar com um carrossel de

dados ou objetos, por esse motivo os padrões europeu, americano e japonês

especificam APIs com esse objetivo, contudo o carrossel de dados é mais simples e

limitado do que o carrosel de objetos, por possuir apenas um pedaço monolítico de

dados, enquanto que um carrossel de objetos estende o de dados, fazendo uma

forma de difusão de dados identificáveis.

41

Page 49: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

42

5 LIGUANGEM DECLARATIVA NCL

Toda linguagem declarativa é baseada em um modelo conceitual de dados,

que deve representar os conceitos estruturais dos dados, suas regras e operações

sobre os dados para manipulação e atualização das estruturas, assim como eventos

e relacionamentos entre os mesmos.

Figura 14.5 - Tipos de dados utilizados nos aplicativos de TV digital.Fonte : http://www.telemidia.puc-rio.

Como forma de apresentação de mídias de forma estruturada foi criada a

linguagem declarativa NCL que proporciona alto grau de abstração para

desenvolvimento de software utilizando o middleware Ginga. Característica essa faz

com que a linguagem declarativa tenha preferência na resolução de um problema

que possa ser resolvido tanto por linguagem declarativa quanto por uma não-

declarativa, já que o alto grau de abstração torna relativamente mais fácil o

desenvolvimento de software.

O foco da linguagem NCL é com a estrutura e o(s) relacionamento(s) das

mídias através do conceito de tempo e espaço. Não há uma restrição quanto as 42

Page 50: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

43

mídias, no entanto o suporte as mídias está relacionado com o exibidor NCL, no

caso o MPEG-4.

O NCL também permite a execução de uma linguagem de script, no caso a

linguagem de programação Lua, tecnologia essa também desenvolvida no Brasil.

A linguagem Lua possui um desempenho muito superior ao ECMAScript em

todos os quesitos importantes para uma aplicação em TV digital e também permite

código imperativo Java (Xlets), parte da ponte entre o ambiente declarativo e o

procedural do middleware Ginga.

A linguagem NCL tem como base conceitos do modelo NCM (Nexted

Context Model), no qual a figura 16 a seguir representa as entidades básicas do

modelo:

Figura 15.5 - Entidades NCM e elementos da linguagem NCL. .

Figura 16.5 - Interfaces de um nó NCMFonte: BARBOSA; SOARES, 2008.

Merece destaque as definições de Barbosa e Soares (2008) sobre os

elementos NCM:

43

Page 51: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

44

Descriptor: um descritor define como o objeto de mídia deve ser exibido, onde e por quem, sendo a base de suporte para múltiplos dispositivos de exibição. É possível associar vários descritores a um nó de mídia, que serão escolhidos de acordo com a situação e de acordo com uma regra (rule) e também podem ser associados ao nó através de uma ligação (bind) de um elo;DescriptorSwitch:define um conjunto de descritores alternativos e é responsável por permitir à NCL a definição declarativa da forma como um conteúdo deve ser apresentado a um certo contexto de exibição.Connector: um conector define uma relação através de seus papéis (roles) e da cola (glue) entre os papéis. No NCM os conectores podem ser causais e de restrição, porém no NCL é adotado apenas os conectores causais, ou seja, a cola (glue) é sempre de causalidade, ou seja, quando condições em um conjunto de papéis forem satisfeitas, um conjunto de ações devem ser aplicadas em um conjunto de papéis;Context: utilizado para estruturar o documento NCL.Link: o elo é composto por um conector e por ligaçõs (binds) entre os papéis dos conectores e interfaces de nós que exercem o papel. Através de elos, relacionamentos de sincronismo temporal e espacial podem ser definidos.Node: um nó possui um identificador, um conteúdo e um conjunto de âncoras, sendo constituído por um conjunto de unidades de informação. Anchor: uma âncora é um subconjunto das unidades de informação de um nó e são definidas em separado do conteúdo de um nó. Media: conhecido como nó de mídia ou nó de conteúdo, representam um objeto de mídia, esses se relacionam através de propriedades. Os nós de conteúdo devem ser especializados em subclasses para melhor definir a interpretação do conteúdo (texto, imagem, áudio, vídeo, objetos com código imperativo Lua, objectos com código imperativo Java, etc).Composition: define um documento hipermídia.Property: define propriedades para nós de mídia como corde fundo, posição da mídia na tela, etc;Port: são elementos que permitem à composição expor, controladamente, as interfaces de seus nós internos e o acesso externo ao conteúdo de um contexto.Switch: é uma especialização de nós de composição, sendo o seu conteúdo constituído por nós de conteúdo ou de contexto. O nó de switch tem um atributo adicional que define para cada nó contido no seu conjunto de nós, uma regra associada. Em determinado instante o primeiro nó que tem sua regra avaliada como verdadeiro, deve ser eleito a alternativa selecionada. O nó switch difere do nó de descritores, pois o primeiro é o suporte necessário para a definição de alternativas de conteúdos, enquanto que o segundo é o suporte necessário para a definição de alternativas de Switch Port: definem um conjunto de mapeamentos para interfaces de nós contidos no nó switch.

A norma da ABNT- Associação Brasileira de Normas Técnicas (15606-

5:2008), regulamenta a versão mais atual da linguagem NCL, versão 3, é constituído

por 14 áreas funcionais e cada uma dessas áreas são subdividadas em módulos.

44

Page 52: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

45

Tabela 3 - 14 áreas funcionais da linguagem NCLFonte: Associação Brasileira de Normas Técnicas-ABNT

1 Structure Módulo Structure2 Layout Módulo Layout3 Components Módulo Media

Módulo Context4 Interfaces Módulo MediaContentAnchor

Módulo CompositeNodeInterfaceMódulo PropertyAnchorMódulo SwitchInterface

5 Presentation Specification Módulo Descriptor6 Linking Módulo Linking7 Connectors Módulo ConnectorCommomPart

Módulo ConnectorAssessmentExpressionMódulo ConnectorCausalExpressionMódulo ConnectorTransitionAssessmentMódulo ConnectorConnectorMódulo ConnectorCausalConnectorFuncionalityMódulo ConnectorBase

8 Presentation Control Módulo TestRuleMódulo TestRuleUseMódulo ContentControlMódulo DescriptorControl

9 Timing Módulo Timing10 Reuse Módulo Import

Módulo EntityReuseMódulo ExtendedEntityReuse

11 Navigation Key Módulo KeyNavigation12 Animation Módulo Animation13 SMIL Trasition Effects Módulo TransitionBase

Módulo BasicTransitionMódulo TransitionModifiers

14 SMIL Meta-Information Módulo Metainformation

5.1 Identificadores da Linguagem Ncl 3.0

A norma da Associação Brasileira de Normas Técnicas – ABNT, (15606-

5:2008) normatiza a linguagem de programação NCL.

Os identificadores dos módulos NCL 3.0 estão de acordo com a tabela.

Segundo a ABNT 15606-5:2008 os identificadores dos módulos NCL 3.0,

estão de acordo com a tabela 3 e os identificadores do SMIL 2.0 de acordo com a e

os identificadores do SMIL 2.0 de acordo com a tabela 5.

45

Page 53: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

46

Tabela 4 - NCL.Fonte: Associação Brasileira de Normas Técnicas-ABNT

Módulos Identificadores

Animation http://www.ncl.org.br/NCL3.0/Animation

CompositeNodeInterface http://www.ncl.org.br/NCL3.0/CompositeNodeInterface

CausalConnector http://www.ncl.org.br/NCL3.0/CausalConnector

CausalConnectorFunctionality http://www.ncl.org.br/NCL3.0/CausalConnectorFunctionality

ConnectorCausalExpression http://www.ncl.org.br/NCL3.0/ConnectorCausalExpression

ConnectorAssessmentExpression http://www.ncl.org.br/NCL3.0/ConnectorAssessmentExpression

ConnectorBase http://www.ncl.org.br/NCL3.0/ConnectorBase

ConnectorCommonPart http://www.ncl.org.br/NCL3.0/ConnectorCommonPart

ConnectorTrasitionAssessment http://www.ncl.org.br/NCL3.0/ConnectorTrasitionAssessment

ContentControl http://www.ncl.org.br/NCL3.0/ContentControl

Context http://www.ncl.org.br/NCL3.0/Context

Descriptor http://www.ncl.org.br/NCL3.0/Descriptor

DescriptorControl http://www.ncl.org.br/NCL3.0/DescriptorControl

EntityReuse http://www.ncl.org.br/NCL3.0/EntityReuse

ExtendedEntityReuse http://www.ncl.org.br/NCL3.0/ExtendedEntityReuse

Import http://www.ncl.org.br/NCL3.0/Import

Layout http://www.ncl.org.br/NCL3.0/Layout

Linking http://www.ncl.org.br/NCL3.0/Linking

Media http://www.ncl.org.br/NCL3.0/Media

MediaContentAnchor http://www.ncl.org.br/NCL3.0/MediaContentAnchor

KeyNavigation http://www.ncl.org.br/NCL3.0/KeyNavigation

PropertyAnchor http://www.ncl.org.br/NCL3.0/PropertyAnchor

Structure http://www.ncl.org.br/NCL3.0/Structure

SwitchInterface http://www.ncl.org.br/NCL3.0/SwitchInterface

TestRule http://www.ncl.org.br/NCL3.0/TestRule

TestRuleUse http://www.ncl.org.br/NCL3.0/TestRuleUse

Timing http://www.ncl.org.br/NCL3.0/Timing

TransitionBase http://www.ncl.org.br/NCL3.0/TransitionBase

46

Page 54: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

47

Tabela 5: SMIL.Fonte: Associação Brasileira de Normas Técnicas-ABNT

Módulos Identificadores

BasicTransitions http://www.w3.org/2001/SMIL20/BasicTransitions

Metainformation http://www.w3.org/2001/SMIL20/Metainformation

Tabela 6: Atributos e elementos do perfil NCL 3.0Fonte: Associação Brasileira de Normas Técnicas-ABNT

Elementos Atributos Conteúdo

Módulo StructureNcl id, title, xmlns (head?, body?)Head (importedDocumentBase? ruleBase?,

regionBase*, descriptorBase?, connectorBase?)

Body Id (property| media|context|switch|link)*Módulo Layout

regionBase id, device (importBase|region)+Region id, title, left, right, top, bottom,

height, width, zIndex

(region)*

Módulo MediaMedia id, src, refer, instance, type,

descriptor (area|property)*

Módulo Context

contextid, refer (port|property|media|context|link|

switch)*Módulo MediaContentAnchor

Area id, coords, begin, end, text, position, first, last, label

vazio

Módulo CompositeNodeInterfacePort id, component, interface vazio

Módulo PropertyAnchorproperty name, value vazio

Módulo SwitchInterfaceswitchPort Id mapping+

Módulo Descriptordescriptor id, player, explicitDur, region,

freeze, moveLeft, moveRight, moveUp; moveDown, focusIndex, focusBorderColor; focusBorderWidth; focusBorderTransparency, focusSrc,focusSelSrc, selBorderColor

(descriptorParam)*

Módulo Linking

47

Page 55: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

48

Bind role, component, interface, descriptor

(bindParam)*

Elementos Atributos ConteúdobindParam name, value vaziolinkParam name, value vazio

Linkid, xconnector (linkParam*, bind+)

Módulo CausalConnectorFunctionalitycausalConnector Id (connectorParam*, (simpleCondition |

compoundCondition), (simpleAction | compoundAction))

connectorParam name, type vaziosimpleCondition role, delay, eventType, key,

transition, min, max, qualifiervazio

compoundCondition operator, delay ((simpleCondition | compoundCondition)+, (assessmentStatement | compoundStatement)*

simpleAction role, delay, eventType, actionType, value, min, max, qualifier, repeat, repeatDelay

vazio

compoundAction operator, delay (simpleAction | compoundAction)+assessmentStatement comparator (attributeAssessment,

(attributeAssessment | valueAssessment))

attributeAssessment role, eventType, key, attributeType, offset

vazio

valueAssessmentValue vazio

compoundStatementoperator, isNegated (assessmentStatement |

compoundStatement)+

Módulo ConnectorBaseconnectorBase Id (importBase|causalConnector)

Módulo TestRuleruleBase Id (importBase|rule|compositeRule)+Rule id, var, comparator, value vaziocompositeRule id, operator (rule | compositeRule)+

Módulo TestRuleUsebindRule constituent, rule vazio

Módulo ContentControlSwitch id, refer (defaultComponent?,(switchPort|

bindRule|media| context | switch)*defaultComponent Component vazio

Módulo DescriptorControldescriptorSwitch Id (defaultDescriptor?, (bindRule |

descriptor)*)defaultDescriptor Descriptor vazio

Módulo ImportimportBase alias, documentURI, region vazioimportedDocumentBase

Id (importNCL)+

importNCL alias, documentURI, vazio

48

Page 56: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

49

5.2 Estrutura básica de um documento NCL

Figura 17.5 - Estrutura básica de um documento NCL.Fonte: BARBOSA; SOARES, 2008.

Basicamente um documento NCL ou documento de hipermídia é constituido

por cabeçalho (head), onde se define as regiões de tela onde as mídias serão

apresentadas e como serão apresentadas, corpo (body) do documento, onde se

define porta(s), nós de mídias ou contexto, elos, outros elementos e no final do

documento se declara o encerramento do documento. A mídia a ser executada

inicialmente é definida através de porta ou portas, ou seja, mais de uma mídia de

entrada para o documento NCL, porém quando a porta não é especificada o

formatador executará uma porta-padrão que depende da implementação do mesmo.

5.3 Sistema para TV digital – Vida Viajante

49

Page 57: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

50

A construção do protótipo de software para TV digital utiliza como auxílio a

máquina virtual Ginga-NCL Virtual STB que contém o middleware Ginga e promove

a simulação de um set-top box, plug-in da linguagem NCL para ambiente de

desenvolvimento Eclipse e plug-in para utilização do protocolo SSH em ambiente de

desenvolvimento Eclipse para comunicação com a máquina virtual e

consequentemente com o middleware para execução do aplicativo para TV digital.

Devido a limitações técnicas e de tempo parte do projeto será representado por

projetos já existentes e desenvolvidos por outras pessoas, como exemplificação de

funcionalidades específicas.

5.3.1 Configuração do ambiente de desenvolvimento

A seguir será apresentado a configuração da IDE Eclipse que serve para

auxiliar na codificação, com auxílio de plugins e máquina virtual Ginga-NCL.

5.3.1.1 Instalação da máquina virtual Ginga-NCL.

Figura 18.5 - mostra a seleção da máquina virtual do Ginga-NCL para execução através do software VMWare.

Fonte: Autor.Para execução da máquina virtual Ginga-NCL é necessário a instalação do

software VMWare Player ou VMWare Workstation, utilizado para execução de

50

Page 58: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

51

diversos sistemas operacionais em modo de máquina virtual, incluindo a distribuição

do linux de nome Ubuntu, no qual é ambientado o middleware do Ginga-NCL. Após

a instalação do VMWare somente é necessário a execução do arquivo (máquina

virtual já criada), caso o usuário ache necessário é possível alterar configurações da

máquina virtual, de forma a potencializar a utilização de recursos ou diminuir a

utilização de recursos de hardware.

Figura 19.5 - Mostra o software VMWare após ser selecionada a máquina virtual a ser executada e suas configurações de hardware, podendo essas configurações serem alteradas pelo usuário.

Fonte: Autor.

51

Page 59: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

52

Figura 20.5 - Mostra a máquina virtual do Ginga-NCL em execução.Fonte: Autor.

5.3.2 Configuração da IDE Eclipse

A IDE Eclipse é uma plataforma de desenvolvimento contruída em

linguagem Java e que provê flexibilidade no desenvolvimento de aplicativos, devido

a diversos plugins, open-source ou não, que provê o desenvolvimento em diversas

linguagens como C, C++, Java, PHP, Lua, NCL, etc e auxílio de outras diversas

ferramentas para desenvolvimeno de projetos como SVN, CVS, UML, SSH, Server,

etc.

Com foco no presente trabalho, será abordado a configuração do Eclipse

utilizando plugin para desenvolvimento de aplicativo NCL e comunicação remota

através de protocolo SSH.

Para iniciar o desenvolvimento é necessário baixar o arquivo compactado da

IDE Eclipse e descompactá-la, após descompactar basta executar o arquivo binário

da IDE. Quando o aplicativo estiver pronto para ser utilizado, deve-se então efetuar

o download do plug-in da linguagem NCL, que pode ser obtido através do site:

http://www.laws.deinf.ufma.br/ncleclipse/update, para poder integrar o plug-in a IDE

Eclipse, deve-se acessar o menu: Help >> Install New Software. Como mostra a

figura 21.

52

Page 60: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

53

Figura 21.5 - Mostra localização do recurso que permite adicionar plugins a IDEEclipse.Fonte: Autor.

53

Page 61: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

54

Figura 22.5 - Mostra a tela de inclusão de localização do plugin a ser instalado, após selecionar o botão: “Add...”.Fonte: Autor.

Quando acionamos o item de inclusão de novo software, será exibido uma

tela que pode adicionar a localização do plugin para que seja possível o download e

instalação do mesmo, após ser selecionado e solicitada a sua instalação, como a

figura 22 e 23.

Após selecionar o plug-in a ser instalado, deverá ser acionado o botão

“finish” e esperar o download e instalação do plugin e suas dependências de forma

automática.

54

Page 62: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

55

Figura 23.5 - Mostra a versão do plugin da linguagem NCL disponível para download. Fonte: Autor.

5.3.3 Instalação e configuração do plug-in Remote System Explorer (RSE)

A máquina virtual contendo o middleware Ginga-NCL, funciona de forma

remota, como se estivesse alocado em outro computador, mesmo o aplicativo

responsável por sua execução, o VMWare, esteja instalado na mesma máquina que

executa o Ginga-NCL. Para podermos efetuar a comunicação entre as máquinas é

preciso utilizar protocolo de comunicação através da rede de internet, no caso

iremos utilizar o plug-in RSE que permite a comunicação com dispositivos remotos

utilizando protocolo SSH e FTP, o que é suficiente que seja possível transferir

arquivos entre o computador onde se encontra o ambiente de desenvolvimento e a

máquina virtual, no caso, a máquina remota e a consequente execução do aplicativo

para TV digital pelo ambiente Ginga-NCL.

Por padrão a IDE Eclipse para Java EE, já possui esse plugin instalado e

não é necessário efetuar o download, porém caso o desenvolvedor utilize outra

versão da IDE Eclipse que não possua o plugin instalado, o desenvolvedor seguir os

mesmos passos já demostrados na instalação do plugin para NCL, apenas alterando

55

Page 63: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

56

o site onde está localizado o plugin, no caso o endereço web para o RSE é:

http://download.eclipse.org/dsdp/tm/updates/3.0.

5.3.4 Criaçao de projeto e conexão do ambiente de desenvolvimento com a

máquina virtual através de protocolo SSH

Após a instalação do plugin NCL e RSE na IDE Eclipse, deve-se efetuar a

conexão com o sistema remoto onde está alocada a máquina virtual e o middleware

e abrir a perspectiva “Remote System Explorer” na IDE Eclipse, para isso deve se

acessar o link através do menu: Window >> Open Perspective >> Other e escolher a

perspectiva Remote System Explorer.

Figura 24.5 - Mostra a perspectiva do Remote System Explorer.Fonte: Autor.

Quando a perspectiva do Remote System Explorer estiver disponível, deve-

se criar uma conexão SSH only com a máquina remota, acessando a opção: New >>

Connection.

Após selecionar a conexão do tipo SSH, como mostra a figura 25, devemos

configurar o número IP da máquina virtual, que se encontra no canto inferior

esquerdo da máquina virtual, como mostra a figura 33:

56

Page 64: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

57

Figura 25.5 - Configuração de protocolo SSH.Fonte: Autor.

Em seguida deve-se conectar a máquina remota utilizando User ID e

Password, para iniciar a tela de conexão: botão direito do mouse na conexão criado

>> connect. Conforme figura 26 por padrão o usuário é “root” e a senha é

“telemidia”.

Figura 26.5 - Mostra a configuração de conexão remota com a máquina virtual Ginga-NCL.Fonte: Autor.

57

Page 65: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

58

Figura 27.5 - Mostra a tela para login na máquina virtual Ginga-NCL.Fonte: Autor.

É possível efetuar qualquer tipo de operação (incluir, alterar, localizar,

deletar, transferir e criar diretório) em arquivos tanto na máquina virtual ou remota

quanto na máquina local. Para tornar esse processo tão mais fácil quanto efetuar

essa operação como o windows explorer do sistema operacional Windows, deve-se

configurar uma conexão de forma semelhante a conexão SSH, apenas na tela de

seleção do tipo de conexão, escolher a conexão do tipo local e preencher nome para

essa conexão, fará com que a tela do RSE, mostre as duas conexões como mostra

a figura 29.

Para se executar a aplicação de TV digital sem necessidade de sair do

eclipse, basta executar um terminal, de acordo com a figura 29, para execução de

comandos.

58

Page 66: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

59

Figura 29.5 - terminal para execução de aplicativos NCL na máquina virtual.Fonte: Autor.

5.4 Criação de aplicativo utilizando a Linguagem NCL

Abordaremos a seguir as mídias a serem executadas, sua relação,

localização na tela e o desenvolvimento de aplicativo responsável pela execução

das mídias.

5.4.1 Definição de mídias e sua localização

59

Page 67: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

60

Em primeiro lugar foi definido a localização de mídias, como botões de

acesso e local de execução, através de wireframe, como mostra a figura 30:

Figura 30.5 - definição da localização de mídias.Fonte: Autor.

As mídias serão divididas em 4 canais das maiores montadores de

automóveis do Brasil, um canal para acesso a sistema web e um canal para

execução de game ou jogo online, no qual usuários poderão testar carros de forma

virtual e passear por pontos turísticos do Brasil.

Região definida para vídeo em execução:

Movie 1: Botão de acesso ao canal da montadora FIAT.

Movie 2: Botão de acesso ao canal da montadora FORD.

Movie 3: Botão de acesso ao canal da montadora GM.

Movie 4: Botão de acesso ao canal da montadora Volkwagen.

WEB: Botão de acesso a sistema web.

Game: Botão de acesso a jogo online.

60

Page 68: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

61

Após ser definida as mídias foram tratadas as imagens correspondentes aos

botões através de photoshop, como exemplificado na figura 31:

Figura 31.5 - execução de mídias iniciais do software Vida Viajante.Fonte: Autor

A idéia inicial é haver um vídeo principal que será executado com repetição

até que haja interação do usuário com outras mídias através dos botões laterais

esquerdos, responsáveis pela execução de outras mídias, ou seja, cada montadora

tem seu canal institucional próprio e que o usuário pode acessá-lo ao clicar nos

botões em que se encontra o logotipo que faz referência a montadora.

No projeto “Vida Viajante” existem três pastas para armazenar os tipos de

mídias a serem executadas, divididas em:

Image: esta pasta armazena as imagens utilizadas nos botões do software.

Video: esta pasta amarzena os vídeos que serão executados durante a

interação do sistema com o usuário.

Web: esta página armazena arquivo HTML.

61

Page 69: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

62

Figura 31.5 - exemplifica as mídias contidas no sistema e sua forma de armazenamento em pastas distintas entre imagem, vídeo e arquivo web.

Fonte: Autor.

5.4.2 Definição do código e explicação de trechos do código

Após ser definida as mídias que serão executadas, localização de forma

visual através de wireframe e seu armazenamento no sistema, deve-se então criar o

código de contexto (NCL) que irá determinar os relacionamentos entre as mídias.

5.4.2.1 Definição de regiões

Dentro da tag <head> se declara regiões, descritores e conectores, uma

região é definida pela tag <region> , dentro da tag <regionBase> onde pode ser

declarado mais de uma <region> ou apenas uma <region> com várias tags <region>

aninhadas assim como um documento hipermídia pode apresentar mais de uma tag

62

Page 70: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

63

<regionBase>, como no caso apresentado, onde é apresentada uma <regionBase>

e uma <region> que contém várias outras tags <region> dentro dela, onde ficará

localizada as mídias de forma visual, o leiaute, como o código de declaração de

regiões do projeto “Vida Viajante” demonstrado na figura 32:

No trecho de código da figura 32 é determinado o leiaute de botões e região

de vídeo.

Figura 32.5 - definição do leiaute do sistema através de tags <regionBase> e <region>.Fonte: Autor.

As regiões do sistema “Vida Viajante” possuem os seguinte atributos:

Id: identificador único, utilizado nas referências a descritores.

Width: dimensão horizontal da região.

Height: dimensão vertical da região.

Left: coordenada a esquerda da região em questão com relação

a região pai.

Top: coordenada referente ao topo da região em questão com

relação a região pai.

zIndex: número entre 0 e 255 que define a camada da região,

definindo quais regiões estarão sobrepostas com relação a outras regiões.

63

Page 71: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

64

5.4.2.2 Definição de descritores

A partir do momento que se define as regiões ou leiaute das mídias na tag

<head> do documento de hipermídia, se declara os descritores de mídia que

também são declarados dentro da mesma tag <head> e são responsáveis pelo

modo como o vídeo é ou será exibido.

Um descritor é representado pelo elemento <descriptor> e cada <descriptor>

pode definir parâmetros de exibição de mídia, através de elementos filhos

<descriptorParam>.

Figura 33.5 - demonstra como os descritores são declarados no projeto “Vida Viajante”.Fonte: Autor

Os descritores do sistema “Vida Viajante” possuem os seguinte atributos:

Id: identificador único, utilizado nas referências aos descritores por nós de

mídia.

Region: identificador da região associada ao descritor, ou seja, o objeto de

mídia será apresentado na região correspondente.

FocusIndex: marcador para ítens selecionáveis.

MoveDown: redireciona o marcador para o focusIndex atribuído a este

atributo ao se movimentar o item selecionado para cima.

MoveUp: redireciona o marcador para o focusIndex atribuído a este atributo

ao se movimentar o item selecionado para baixo.

FocusBorderWidth: define a espessura do contorno de uma mídia.

64

Page 72: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

65

FocusBorderColor: define a cor da espessura de contorno de uma mídia.

5.4.2.3 Definiçaõ de conectores

Ao se criar um projeto do tipo NCL na IDE Eclipse com o auxílio do plug-in

NCL, automaticamente é criado um arquivo NCL com vários conectores que podem

ser reutilizados em documentos hipermídias. Os conectores são os elos que iniciam

ou terminam um objeto de mídia e também são declarados dentro da tag <head>,

assim como regiões e descritores.

A reutilização de conectores disponibilizados pela ferramenta Ginga-NCL,

pode ser feito através da importação da base de conectores através do elemento

<importBase>, e também necessário declarar um alias que será utilizado na

conexão dos elos, como exemplificado na figura 34:

Figura 34.5 - importação da base de conectores para o documento de hipermídia “Race.ncl”.Fonte: Autor.

No projeto “Vida Viajante” se optou por construir uma lista de conectores

próprios, para facilitar a manutenção e evitar excesso de código que não seria

reutilizados no presente projeto, no entanto o ambiente configurado com a IDE

Eclipse permite ao desenvolvedor a criação de projetos já com conectores padrões

com uma lista grande de conexões, fica a critério do desenvolvedor criar ou não uma

nova lista para melhor entendimento. A figura 35.5 explica o conector criado de

forma simplificada, em vez dos conectores criados de forma automática:

65

Page 73: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

66

Figura 35.5 - mostra a lista de conectores e suas respectivas funções no projeto “Vida Viajante”.Fonte: Autor.

66

Page 74: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

67

O sincronismo em um documento hipermídia é feito através de ações

casuais que são declaradas através de conectores (connectors). O conector é quem

define os papéis (roles) que os nós de origem e de destino exercem nos elos que

utilizam o conector.

Na NCL 3.0 existe apenas um tipo de connector, o conector causal (causal

connector).

Um conector causal define condições (conditions) sobre as quais o elo pode

ser ativado e as ações (actions) que serão realizadas quando o elo for ativado. Um

conector causal deve possuir ao menos uma condição e uma ação. Para haver mais

de uma ação, deve-se marcar a propriedade que determina a condição como “max =

‘unbounded’”. Cada condição ou ação é associada a um papel (role), ponto de

interface do conector que participará das ligações (bind) do elo.

O comportamente de um conector pode ser lido da seguinte maneira:

“quando condição, então ação”, ou seja, quando um nó iniciar é finalizado outro nó.

Os conectores causal do sistema “Vida Viajante” possuem os seguinte

atributos:

Id: identificador único do conector.

Role: define os pápeis dos conectores.

o Roles de condições (padrão)

onBegin - quando começar;

onEnd - quando terminar;

onAbort - quando abortar;

onPause - quando pausar;

onResume - quando sair da pausa e começar a tocar;

onSelection - quando for selecionado;

onBeginAttribution - quando uma atribuição começar;

onEndAttribution - quando uma atribuição terminar.

o Roles de ações (padrão)

start – comece;

stop – pare;

abort – aborte;

pause – pause;

67

Page 75: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

68

resume – reinicie;

set  - configure.

Max: define o número máximo de simpleAction. Qualifier: define se será do tipo sequencial (seq) ou paralelo (par). CompoundAction: design elementos pai dos elementos simpleCondition e

simpleAction e determina o “Operator”. Operator: determina se a compoundAction será parelala ou sequencial. SimpleCondition: determina a condição que será satisfeita através de

roles de condições. ConnectorParam: define um valor como parâmetro para satisfazer uma

condição. SimpleAction: define a ação que será executada de acordo com uma

única assim do tipo roles de ações.

5.4.2.4 Definição de mídia

Após definir as tags de regiões, descritores e conectores dentro da tag

<head>, o próximo passo é definir as mídias que serão executadas pelo documento

de hipermídia do software “Vida Viajante”. A partir dessa fase todas as tags terão

que estar localizadas dentro da tag <body>. A função da tag <media> é definir um

identificador para a mídia e o descritor que definirá como a mídia será apresentada,

conforme figura 36.

Figura 36.5 - é demonstrado as declarações de mídias pro software “Vida Viajante”.Fonte: Autor.

68

Page 76: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

69

As mídias do sistema “Vida Viajante” possuem os seguinte atributos:

Id: identificador único de mídia.

Src: local onde está armazenada a mídia.

Descriptor: identificador que controla a apresentação da mídia.

5.4.2.5 Definindo a porta que irá determinar o início do software

Após definir as mídias que serão utilizadas no documento hipermídia, dentro

da tag <body>, deve-se definir pelo menos uma porta de contexto que mapeie um nó

de mídia, que será executado ao se iniciar o programa.

Figura 37.5 - mostra a porta de contexto do software “Vida Viajante”.Fonte: Autor.

A porta de contexto do sistema “Vida Viajante” possuem os seguinte

atributos:

Id: identificador único da porta.

Component: nó de mídia ou contexto ao qual a porta mapeia.

5.4.2.6 Definindo elos para sincronizar início e término de exibição de mídias

Os elos <link> associam nós através de conectores <causalConnector> que

definem a semântica da associação entre os nós.

69

Page 77: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

70

Figura 38.5 - mostra o início do software “Vida Viajante” e o acionamento dos compontes do tipo botão, através do atributo “role”.

Fonte: Autor.

Figura 39.5 - mostra os elos de repetição do software “Vida Viajante” ao término de uma mídia do tipo vídeo.

Fonte: Autor.

70

Page 78: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

71

Figura 40.5 - mostra os elos responsáveis pela interação através de controle remoto.Fonte: Autor.

Figura 41.5 - mostra os elos responsáveis pela execução das mídias de ícones, paralização de algum vídeo em execução e inicialização de outro vídeo ao se selecionar algum ícone no menu

apresentado.Fonte: Autor.

Os elos do sistema “Vida Viajante” possuem os seguinte atributos:

Xconnector: identificador do conector associado ao elo.

Bind: indica uma ligação entre um componente (nó de mídia ou de contexto) e

seu papel (role) no elo.

Component: nó de mídia ou de contexto.

Role: define os pápeis dos conectores.

o Roles de condições (padrão)

onBegin - quando começar;

onEnd - quando terminar;

onAbort - quando abortar;

onPause - quando pausar;

onResume - quando sair da pausa e começar a tocar;

onSelection - quando for selecionado;

onBeginAttribution - quando uma atribuição começar;

71

Page 79: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

72

onEndAttribution - quando uma atribuição terminar.

o Roles de ações (padrão)

start – comece;

stop – pare;

abort – aborte;

pause – pause;

resume – reinicie;

set  - configure.

BindParam: define um parâmetro específico do bind. As propriedades e seus

valores são dependentes da definição do conector ao qual está associado.

Name: define o nome ou identificador do parâmetro.

Value: define o valor do parâmetro atribuído ao conector ao qual o bindParam

está associado.

5.4.2.7 Subsistema web colaborativo do sistema “Vida Viajante”

Este capítulo aborda a parte web do sistema “Vida Viajante” subdividido entre jogo

on-line e website.

5.4.2.7.1 Menu web

O menu WEB do software “Vida Viajante” deverá ser baseado em sistema

colaborativo com conceito de web 3.0, com finalidade de interação entre usuários do

sistema e incentivar debates a respeito de veículos, pontos turísticos do Brasil e

qualquer outro tipo de debate, também acesso a canais de compras on-line ,

fornecimento de informações sobre o usuário com o conceito de web 3.0 para

customização do sistema WEB e integração com redes sociais.

72

Page 80: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

73

Para exemplificação será utilizado um website criado por Pedro, como

projeto de monografia de mestrado em Design. O website desenvolvido por pedro é

um website estático, não há como o usuário criar conteúdo, também é limitado pelo

tema de praias e número limitado de praias.

Figura 42.5: menu customization, responsável por a partir de botões selecionados pelo usuário, indicar a melhor praia para o perfil indicado.

Fonte: www.intobrazil.net

Figura 43.5 - indicação da melhor praia para o perfil indicado.Fonte: www.intobrazil.net.

73

Page 81: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

74

O sistema “Vida Viajante” deverá permitir ao usuário, criar o próprio

conteúdo a respeito de lugares que seriam interessantes para turísta conhecer,

comentar com outros usuários, além de permitir uma viagem virtual ao local com

a utilização de ambiente 3D, no qual será explicado mais adiante.

5.4.2.7.2 Menu game

O menu Game do sistema “Vida Viajante” deve fornecer link direto para

acesso a game do tipo corrida ou do tipo simulador de ambiente 3D, esse game

poderá ser acessado indiretamente também através do menu WEB.

Essa aplicação 3D será desenvolvido em Blender, onde através de plugin

é possível ser executada em browser e deverá permitir ao usuário, competir ou

fazer um test-drive de veículo de alguma das montadoras do sistema “Vida

Viajante” passeando por pontos turísticos modelados através da ferramenta

Blender 3D.

A ferramenta Blender 3D permite facilidade de criação, já que aplica leis

da física aos componentes criados de forma automática, facilitando o

desenvolvimento de aplicação 3D. Usuários também disponibilizam diversos

ambientes e componentes com licença livre na internet, como é o caso do jogo

4X4 usado para exemplificação desse trabalho.

Figura 45.5 - jogo 4X4 de licença livre, desenvolvido por Blender 3D.Fonte: http://4x4.duskydolphin.co.uk/.

74

Page 82: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

75

A modelagem de ambientes para o sistema “Vida Viajante” deve se dar

através de convênios com instituições, como o centro de música e tecnologia de

Peixinhos, onde jovens de classe baixa aprendem música e informática, já que o

software Blender 3D, não necessita de conhecimento técnico apurado, pois maior

parte das funções é automatizada pelo software, maior trabalho é o dom artistíco do

profissional responsável pela modelagem 3D.

75

Page 83: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

76

6 CONSIDERAÇÕES FINAIS

A televisão analógica está sendo substituída gradualmente pela televisão

digital, que surgiu como forma de obter maior qualidade de áudio, vídeo e

interatividade. Para aumentar a interatividade houve a necessidade de se

desenvolver diversas tecnologias, que permitissem a criação de software para

promoção de interatividade. Entre as diversas tecnologias de transmissão de TV

digital, como por exemplo, a de padrão japonês, europeu e americano, pode-se

destacar a disponível no padrão brasileiro, que permite a integração de aplicativos

declarativos e procedurais, porém esses dois tipos de aplicativos são desenvolvidos

em ambientes separados e para restrição a um tema, no caso do presente trabalho,

foi escolhido o ambiente Ginga-NCL, devido à utilização de linguagem pouco

difundida que é a linguagem NCL, enquanto que o outro ambiente tem como base a

linguagem Java, linguagem muito difundida e utilizada por todos os ambientes de

desenvolvimento para TV digital, caso diferente da linguagem NCL que só é utilizada

no padrão de TV digital brasileiro.

A linguagem NCL é uma linguagem de programação, com poucas instruções

a serem declaradas e executadas de acordo com a necessidade ou contexto,

bastando apenas criar a lógica de execução de mídias através de um ou mais

documentos hipermídias.

Entretanto, o desenvolvimento de software sem o auxílio da IDE Eclipse,

plugins para linguagem NCL e acesso remoto ao middleware Ginga-NCL, torna-se

muito trabalhoso para TV digital, pois mesmo com a facilidade que a linguagem NCL

provê para criação de documentos hipermídia, há uma dificuldade em declarar as

tags NCL em estilo XML e suas propriedades, problema esse que pode ser resolvido

com o plugin NCL para IDE Eclipse que fornece auxílio através de documentação

enquanto se digita trechos de tags no documento.

76

Page 84: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

77

Também se encontra dificuldade em lidar com a transferência de arquivos de

mídia, entre o computador local e o middlware Ginga-NCL, já que o middleware

Ginga-NCL é executado em uma máquina remota. Para isto não ocorrer é

necessário utilizar protocolo SSH. O desenvolvimento de software sem a utilização

da IDE Eclipse e plug-in RSE, resulta na necessidade de sucessivamente alterar o

documento na pasta local onde está sendo desenvolvido o projeto para TV digital.

Sendo assim, há necessidade de se transferir através de protocolo SSH,

manualmente os arquivos de uma pasta para outra, já no caso da utilização da IDE

Eclipse com o plug-in RSE os arquivos de hipermídia podem ser alterados, criados,

consultados e deletados de forma direta na area de trabalho do middleware Ginga-

NCL, a partir de uma configuração de IDE e plug-in que permite conexão automatica

e ininterrupta.

A partir do estabelecimento de um ambiente de trabalho otimizado, foi iniciada

a construção de um software para TV digital, porém, devido as limitações técnicas

do middleware e de tempo, o projeto “Vida Viajante” não foi possível ter todas as

funcionalidades implementadas, já que apesar da possibilidade do set-top box

permitir conexão com internet em teoria, ainda não é possível utilizar a internet

através do emulador disponibilizado para a criação de software e também não é

possível a utilização de browser para indexar plugin que permita a execução de

software 3D construído através da ferramenta Blender 3D até o momento, entretanto

não deixa de ser um software com potencial, sem software similar publicado. Diante

dos impedimentos não foi possível concluir o sistema “Vida Viajante” de forma plena.

Como trabalho futuro, tem-se o desenvolvimento de website com conceitos

de sistema colaborativo e WEB 3.0 e modelagem de ambiente 3D, para referência a

pontos turísticos, com o intuito de aumentar a interatividade com os usuários.

77

Page 85: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

78

7 REFERÊNCIAS

ALENCAR, Marcelo Sampaio de. Televisão digital. São Paulo: Érica, 2007.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR15606-5 Televisão digital terrestre- codificação de dados e especificações de transmissão digital. Parte 5: GINGA-NCL para receptores portáteis XML para codificação de aplicações. Rio de Janeiro, 2008.

BARBOSA, S. D. J.; SOARES, L. F. g. Tv interativa no Brasil se faz com Ginga: fundamentos, padrões, autoria declarativa usabilidade em T. Kowaltowski ; BREITMAN (orgs). Rio de Janeiro: 2008.

CRUZ, Renato. Tv Digital No Brasil:Tecnologia Versus Politica. São Paulo: Senac, 2008.

FERNANDES, Jorge ; LEMOS, Guido; SILVEIRA, Gledo. Introdução à televisão digital interativa, arquitetura, protocolos, padrões e prática. In: Anais do JAI-SBC, Salvador, 2004.

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. 2. ed. SP: Atlas, 2010.

JUCA, Paulyne; LUCENA, Ubirajara. Experiências no desenvolvimento de aplicações para televisão digital interativa. Publicado em 20 de maio de 2005, no III Forum de oportunidades em televisão digital interativa, Poços de Caldas. Disponível em: <http://www.cesar.org.br/node/217. Acessado em 07 ago. 2011.

LAKATOS, Eva e Marconi, Marina. Metodologia do Trabalho Científico. SP : Atlas, 2010.

NOVA BRASIL FM. Turismo nacional deve crescer 16,5% em 2011. Disponível em: <http:/www.novabrasilfm.com.br/noticias/nova-noticia/turismo-nacional-deve-crescer-165-em-2011/> Acesso em: 09 jul 2011.

O'Driscol, Gerard.The Essential Guide to Digital Set-Top Boxes and Interactive TV. Set-Tops, 2009.

78

Page 86: O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Digital Brasileira

79

OLIVEIRA, Juliana. Saiba tudo sobre televisão digital. Disponível em: <http://www.tecmundo.com.br/2134-saiba-tudo-sobre-televisao-digital.htm>. Acesso em: 09 jul. 2011.

REIMERS, U. DVB – The family of International standards for digital video broadcasting. IEE, 2006.

RODRIGUES, Ana Luiza; GOMES, Regina Missias. Modulação COFDM – uma proposta atrativa para os padrões de TV Digital. Disponível em: <http://www.revdigonline.com/artigos_download/art_16.p>. Acesso em: 02 nov. 2011.SANTOS, Danilo F. de Souza. DVB: a solução de TV Digital. Disponível em: <www.dee.ufcg.edu.br/~danilo/dvbt.pdf>. Acesso em: 12 set. 2011.

SILVA, George Martins da. TV analógica x TV digital. Disponível em: <http://meuartigo.brasilescola.com/atualidades/tv-analogica-x-tv-digital.htm>. Acesso em 11 jul. 2011.

SOARES, Luiz Fernando Gomes; BARBOSA, Simone Diniz Junqueira. Programando Em NCL. Rio de Janeiro: Campus, 2009.

SQUIRRA, Sebastiao; BECKER, Valdecir. Tv Digital.Br Conceitos e estudos Estudos Sobre O Isdb-Tb . São Paulo: ATELIE Editorial, 2009.

WILSON,Tracy V. Como funciona a televisão de alta definição (HDTV). Disponível em: <http://eletronicos.hsw.uol.com.br/hdtv.html>. Acesso em: 09 julho 2011.

WOOD, David. History of the DVB Project. (trad.) Disponível em: <http://www.dvb.org/about_dvb/history/>. Acesso em 09 jul. 2011.

79