Ginga-NCL e a Democratização da Produção de Conteúdo

Documentos relacionados
Tópicos. Visão geral do sistema Modelo de referência Algumas demonstrações Requisitos para um middleware Ginga Consideraçõesfinais

Middleware Ginga. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) RuaPassoda Pátria, 156 Niterói RJ Brasil

Arquitetura do Sistema Brasileiro. Novos Recursos. Aplicações. Middleware

TV Interativa se faz com Ginga

1.1. Objetivos e Contribuições

As múltiplas possibilidades do middleware Ginga

comum apresentando, em caráter informativo, os três padrões anteriormente mencionados.

TV INTERATIVA SE FAZ COM GINGA

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas

Introdução à TV Digital

Middleware é um programa de computador que faz a mediação entre outros

Manoel Campos da Silva Filho Mestre em Engenharia Elétrica / UnB 16 de novembro de 2011

4 Testes Sistêmicos Formula 1

1 Introdução. (Pérez-Luque, 1996). 1 Qualquer ocorrência no tempo de duração finita ou, na maioria das vezes, infinitesimal

Roteiro. Módulo IV 3 horas. A arquitetura de um sistema digital de televisão Padrões de Middleware DASE MHP ARIB GINGA

Prof. Daniel Hasse. Multimídia e Hipermídia

TELEVISÃO DIGITAL INTERATIVA, UM NOVO HORIZONTE PARA A EDUCAÇÃO A DISTÂNCIA

TV Digital Interativa: Oportunidade ou Sonho? TV Digital

5 Implementação 5.1 Plataforma 5.2 Arquitetura

Universidade de Pernambuco Escola Politécnica de Pernambuco

2 Conceitos Básicos Nested Context Model

Aplicativo para TV Digital Interativa de acesso ao Twitter

PROPOSTA DE AMBIENTE VIRTUAL DE APRENDIZAGEM MEDIADO PELA TV DIGITAL INTERATIVA

1 Introdução Motivação

3 Trabalhos Relacionados

1 Introdução Motivação O Formato MPEG-4

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

Desde o surgimento dos primeiros jogos eletrônicos em meados dos anos 50, uma infinidade de aparatos eletrônicos foram desenvolvidos, principalmente

Conferência Internacional Espectro, Sociedade e Comunicação IV. Rafael Diniz - Universidade de Brasília

ABINEE-TEC. Painel: Padrão TV Digital e Rádio Perspectivas para a Indústria de Componentes Investimentos e Mercado.

O TDT e as televisões interconectadas

1 Descrição do Problema

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

6 Arquitetura do Sistema

SISTEMAS MULTIMÍDIA PROF MOZART DE MELO

7 Ciclo de Vida das Aplicações NCL

SENSIBILIDADE À LOCALIZAÇÃO PARA APLICAÇÕES

Um estudo sobre localização de serviços sensíveis ao contexto para Televisão Digital Móvel

Norma de TV digital criada a partir do ISDB-T (Integrated Services Digital Broadcasting Terrestrial) e adicionando modificações Brasileiras

Figura 16 Niagara - Visão de grupos de notas.

MDD Mídias Interativas

TV Digital: A nova ferramenta governamental para a inclusão o social

Brasília, 24 de maio de 2016.

Apresentação da matéria. Ing. Yamila Díaz Suárez

Curso online de. Formação em Front-End. Plano de Estudo

Introdução 15. representações definidas pelo MHEG-1, porém foi cancelado por falta de recursos.

Curso online de Fundamentos em Android. Plano de Estudo

Curso Online de E-commerce. Plano de Estudo

INTRODUÇÃO AO MULTIMÉDIA DIGITAL

Introdução ao middleware de TV Digital brasileiro

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Ciências da Computação Disciplina:Computação Gráfica

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

AULA 1 INTRODUÇÃO AO JAVA

Modelo Hipermídia. Documentos Hipermídia. Entidades Hipermídia. Componentes de um documento hipermídia

Desenvolvimento de Propaganda Interativa Sensível ao Contexto para TV Digital

O que é um sistema distribuído?

GINGAWAY UMA FERRAMENTA PARA CRIAÇÃO DE APLICAÇÕES GINGA NCL INTERATIVAS PARA TV DIGITAL

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

PORTAL DE CONTEÚDOS PARA APLICAÇÕES INTERATIVAS DE TELEVISÃO DIGITAL BASEADAS NO PADRÃO GINGA-NCL

Aprender os conceitos de sistemas multimídia Conhecer os elementos multimídia Desenvolver projetos multimídia

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Rui Carneiro, Rui Pereira, Tiago Orfão

PROJETO DE UM MODELO DE UM CONVERSOR ANALÓGICO DIGITAL PARA SOC S

Definição de Mídia. Em inglês: media Plural da palavra medium em Latim. Significa meio, centro Meio de distribuir e representar a informação

Programação para Web

Middleware Ginga. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil

TV Digital. Análise de Sistemas de Comunicações 2017/II Maria Cristina Felippetto De Castro

TV Digital : Uma Ferramenta para a

4 O sistema brasileiro de TV digital

Televisão Digital Interativa se faz com Ginga

SRTV/Sul Quadra 701, Bloco H, Sala 502 Edifício Record CEP: Tel./Fax: (0xx-61) Brasília DF

Comunicado de imprensa

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Manual do usuário Receptor de TV Digital com pendrive USB

EM Brasília,6 de 9 de Excelentíssimo Senhor Presidente da República,

Usabilidade e aplicabilidade na Televisão Digital Interativa

Instalando o conversor de TV Digital RE207

Revista FAMECOS: mídia, cultura e tecnologia ISSN: Pontifícia Universidade Católica do Rio Grande do Sul.

UNIDADE 2 CONCEITOS BÁSICOS DE MULTIMÉDIA. Objectivos

1 Introdução Motivação

Ginga-J ou Ginga-NCL: características das linguagens de desenvolvimento de recursos interativos para a TV Digital

Prof. Cláudio Henrique Albuquerque Rodrigues

Especificação de Esquemas XML para um Mecanismo de Integração entre o Moodle e uma Aplicação de TV Digital Interativa

2 Versão 1: Funcionalidade Básica e Interface Web

Introdução aos Sistemas Operacionais

TV: Mais um passo em direção à. Convergência. IPTV WORLD FORUM LATIN AMERICA Rio de Janeiro, 30 de janeiro de 2007

1.1. Posicionamento e Motivação

anexo 7 INFORMAÇÕES BÁSICAS PARA O USO DOS RECURSOS TECNOLÓGICOS DISPONÍVEIS EM SUA ESCOLA semana pedagógica 2012

CFTV Digital. CFTV Digital. Componentes Básicos de um Sistema de CFTV. Endereço IP.

IPTV. Fundamentos e Sistemas Multimídia. Alex da Costa Castro e Fabiano Rocha Abreu UFF Universidade Federal Fluminense Profª.

Desenvolvimento de Aplicações Distribuídas

SISTEMAS MULTIMÉDIA TESTE FORMATIVO ADICIONAL 1

Integração de Aplicações para TV Digital Interativa com Redes Sociais

Prof. Esp. Fabiano Taguchi SOFTWARES

Formatos de Áudio e Vídeo Digital Introdução ao Vídeo

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

Informática para Concursos

Transcrição:

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de Ginga-NCL e a Democratização da Produção de Conteúdo Luiz Fernando Gomes SOARES 1 Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, RJ RESUMO A democratização da informação não está apenas em seu acesso, mas também na sua produção. Este artigo apresenta a linguagem NCL (Nested Context Language) padrão do Sistema Brasileiro de TV Digital Terrestre (SBTVD-T) e padrão mundial da International Telecommnuciation Union (ITU-T) para serviços IPTV, chamando a atenção para sua importância como instrumento de inclusão social. Como uma linguagem de alto nível de abstração, NCL permite a definição de tarefas de forma muito próxima à de sua descrição por meio de linguagem natural, sendo, portanto, fácil de usar e muito pouco propensa a erros, não exigindo grande expertise para o projeto de aplicações, ao contrário das linguagens não-declarativas que, em geral, exigem um programador especialista. PALAVRAS-CHAVE: TV Digital; Interatividade; NCL; Ginga. 1. Introdução A mudança da TV analógica para a TV digital se faz sentir, primeiramente, pela melhor qualidade de imagem e de som. Por pior que um sinal analógico chegue à televisão, o telespectador consegue recebê-lo, mesmo que com chuviscos e fantasmas. No caso de um sinal digital, ou ele chega perfeito ou não chega. Como tudo digital, é tudo ou nada. Por isso, foi tão importante, na definição do Sistema Brasileiro de TV Digital Terrestre (SBTVD-T), avaliar qual sistema de transmissão era o mais robusto, para se garantir a chegada adequada do sinal digital nas residências. A discussão sobre qual seria o melhor sistema de modulação(melhor sistema de transmissão) permeou as discussões e as notícias divulgadas pela imprensa. Melhor imagem e som também se fazem sentir pela aplicação de técnicas de compressão de dados em sinais digitais, permitindo a produção de sinais de maior resolução, ou seja, sinais de melhor qualidade. Em um canal (faixa de freqüências) de 6 MHz é possível transmitir apenas um sinal analógico na qualidade chamada SDTV (Standard Definition TV), em termos mais técnicos, um sinal de vídeo com 1 Professor Titular do Departamento de Informática da PUC-Rio, email: lfgs@inf.puc-rio.br. 1

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de aproximadamente 30 quadros por segundo, cada quadro sendo composto por 480 linhas visíveis com 704 pixels por linha, e uma resolução de aspecto igual a 4x3. Com a aplicação de técnicas de compressão, nesse mesmo canal de 6 MHz é possível acomodar um sinal de mais alta qualidade, denominado HDTV (High Definition TV), com 30 quadros por segundo, 1080 linhas com 1920 pixels por linha, e uma relação de aspecto de 16x9, possibilitando ao telespectador não só uma melhor qualidade da imagem, mas também uma maior sensação de presença na cena (imersão). As técnicas de compressão digital também permitem a alternativa de se ter vários programas de menor qualidade de definição, por exemplo a qualidade SDTV, na faixa de 6 MHz 2. Essa nova possibilidade é o que se chama de multiprogramação. Todos os sinais em um canal de 6 MHz podem estar relacionados a um mesmo conteúdo ou transportarem conteúdos (programas de TV) completamente independentes. Quando o conteúdo da multiprogramação está relacionado, o processo é também chamado de multicâmera. O impacto da TV digital é, no entanto, muito mais significativo do que a simples e propalada melhora da qualidade de imagem e de som proporcionada pela troca de um sistema de transmissão analógico. Mais do que isso, um sistema de TV digital permite um nível de flexibilidade inatingível com a difusão analógica. Um componente importante dessa flexibilidade é a possibilidade de expandir as funções do sistema por aplicações construídas sobre a base de um sistema padrão. Tais aplicações são programas computacionais que podem estar residentes em dispositivos receptores ou podem ser provenientes de dados enviados conjuntamente com o áudio principal e o vídeo principal de um programa televisivo. A integração de uma capacidade computacional ao dispositivo receptor permite, assim, o surgimento de uma vasta gama de novos serviços e de novos programas de TV. Serviços como a oferta de guias eletrônicos de programas, sistemas de recomendação, controle de acesso e proteção de conteúdo, distribuição de jogos eletrônicos, serviços bancários (T-banking), serviços de saúde (T-health), serviços 2 Esse fato nos leva a revisitar o conceito de canal. Na TV analógica, o canal de 6 MHz (ou seja, o canal de freqüências) era confundido com o canal de programação (normalmente associado a uma radiodifusora). Agora não precisa ser mais assim. Em um mesmo canal de freqüência podemos ter vários programas diferentes. 2

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de educacionais (T-learning), serviços de governo (T-government), serviços de apoio a redes sociais (chamadas Social TV ), entre outros, se farão presentes. Em especial, ter-se-á na grade de programação os chamados programas nãolineares, programas de TV compostos não apenas pelo áudio principal e vídeo principal, mas também por outros áudios e vídeos, imagens, textos etc., sincronizados em uma aplicação possível de ser guiada por interações do usuário telespectador, ao qual poderá ser delegado o controle do fluxo de um programa. Como o fluxo de um programa deixa de ser contínuo em sua concepção e possui vários caminhos alternativos de exibição, esse programa é chamado de não-linear. Nesse novo cenário, o usuário telespectador passa a ter um papel ativo e preponderante, e essa nova mídia não pode ser ignorada no seu potencial de promover inclusão social. As Figuras 1 e 2 ilustram dois exemplos das chamadas aplicações cidadãs. Figura 1. Previdência: DataPrev Figura 2. Aplicação de saúde - UFSC O Sistema Brasileiro de TV Digital tem algumas características ímpares comparado aos sistemas similares existentes no resto do mundo, a começar pelo usuário de baixa renda a que deve atender. Tais usuários, como conseqüência da baixa renda e também do baixo nível de escolaridade, não têm acesso a serviços hoje possíveis graças aos avanços da tecnologia de comunicação e informação, entre eles os serviços oferecidos na Web. Isso cria uma nova vertente de exclusão que o país não pode aceitar passivamente. Não indiferente a essa questão, o decreto presidencial que instituiu o SBTVD colocou ênfase na inclusão social e no desenvolvimento de aplicações cidadãs, como: educação à distância, governo eletrônico, saúde, etc. Recentes pesquisas realizadas pelo Comitê Gestor da Internet Brasil revelam que 95% de lares brasileiros de classe D e E têm aparelho de TV, enquanto que apenas 4% 3

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de têm computador e 2% acesso à Internet. A situação ainda é pior se das pesquisas forem excluidas as grandes cidades. A partir desses números é visível que a TV digital tem um importante papel complementar na inclusão social. O primeiro desafio para os produtores desses novos conteúdos e aplicações de TV será criar formas de atingir e incluir esses usuários telespectadores, incluindo os mais idosos, usualmente mais resistentes a mudanças tecnológicas. A área multidisciplinar de usabilidade tem um enorme campo de atuação e experimento pela frente. A verdadeira inclusão não vem, entretanto, apenas pelo acesso a serviços e informações, vem também pela apropriação do conhecimento sobre como gerar informação. Um sistema de TV digital deve propiciar a produção fácil de conteúdo interativo por não especialistas. TVs Comunitárias devem poder tirar tanto ou mais proveito dessa nova tecnologia quanto os grandes radiodifusores. Mais ainda, a participação ativa de um telespectador permitirá, entre outras coisas, que ele possa gerar conteúdo adicional à programação, e distribuir esse conteúdo em sua rede social, no que é hoje chamado de TV social. Toda essa longa introdução é para evidenciar a necessidade de uma linguagem fácil para o desenvolvimento desses novos serviços e programas não-lineares. Essa linguagem deve ser facilmente aprendida por não especialistas. Deve ser suficientemente leve para que seu interpretador possa ser implementado em receptores de baixo custo, sejam eles conversores digitais, aparelhos de TV, dispositivos celulares etc. Deve ser inovadora, possibilitando aplicações (novos programas de TV) revolucionárias, sem impor limites à capacidade criativa de seus produtores. É sobre essa linguagem que trata o restante desse artigo; dela e do ambiente que suporta sua execução, denominado middleware. De fato, esse é o grande aspecto inovador do Sistema Brasileiro de TV Digital, sua linguagem declarativa NCL (Nested Context Language) e seu middleware Ginga. NCL e Ginga-NCL são hoje padrões não apenas para TVs terrestres [1], mas também recomendação ITU-T para serviços IPTV [2], isto é, TV transmitidas em redes com protocolo IP. A Seção 2 discute como são as aplicações desenvolvidas para TV digital, como elas são compostas e quais seus requisitos. A Seção 3 apresenta os tipos de linguagens usadas na especificação de aplicações para TV digital, em especial as linguagens declarativas, quando então é 4

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de apresentada a linguagem NCL. A Seção 4 é dedicada ao middleware Ginga e a Seção 5 às considerações finais. 2. Composição de Aplicações para TV Digital Uma aplicação de TV digital (um programa de TV) é composta por cenas, como usual. Diferente dos programas para TV analógica onde uma cena é composta apenas pelo vídeo e áudio correspondente sincronizados, em uma cena de uma aplicação de TV digital (aplicação DTV) vários objetos de mídia (imagens, textos, vídeo, áudios etc.) participam, sincronizados no tempo e espaço. Por exemplo, na Figura 3 temos um objeto de vídeo (o vídeo principal) com uma animação sobre a vida do jogador Garrincha; quatro imagens ícones para a escolha da música de fundo e quatro objetos de áudio correspondentes; um outro vídeo real simulando (temporalmente sincronizado) o drible realizado pelo Garrincha em sua infância; e uma imagem de uma chuteira, cuja função se verá a seguir. Todos esses objetos são enviados de forma independente, podendo um telespectador até optar se eles serão apresentados ou não. Figura 3. Objetos de mídia de uma cena Figura 4. Cena resultante da interatividade Diferente da TV analógica a passagem de uma cena para a outra pode não ser seqüencial e pode depender da intervenção do usuário telespectador. Por exemplo, se, e só se, o telespectador usar seu controle remoto e selecionar a imagem da chuteira, uma mudança de cena deverá ocorrer: o vídeo principal da animação será redimensionado no canto superior esquerdo da tela, um vídeo de propaganda da chuteira aparecerá logo abaixo e um formulário para compra da chuteira será apresentado na metade direita da tela, como ilustrado pela Figura 4. Uma vez preenchido o formulário, ele será enviado pelo canal de retorno (por exemplo, uma conexão telefônica) à loja que efetuará a entrega da chuteira adquirida. 5

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de Como mencionado anteriormente, o fato das cenas não serem puramente seqüenciais é que tornam tais programas não-lineares. Esse fato é fundamental, pois muda totalmente o paradigma utilizado hoje pelos produtores de conteúdo. O sincronismo temporal dos vários objetos e das diversas cenas não pode mais ser realizado tendo por base uma linha do tempo (timeline), pois é impossível saber o instante exato de alguns eventos imprevisíveis, como a interação do usuário. A única forma de tratar eventos imprevisíveis é utilizando a sincronização relativa (paradigma causalidade/restrição) onde são especificadas condições para que certas ações ocorram. No caso do exemplo anterior, poderíamos usar linguagem natural e especificar a transição de cenas como ao ser selecionado o ícone da chuteira, o vídeo deve ser redimensionado, o vídeo propaganda deve ser apresentado, e também o formulário. Mais ainda, a linguagem deveria também permitir especificar o sincronismo espacial, ou seja, onde e como os objetos seriam apresentados. Infelizmente, o dispositivo eletrônico que vai executar a ordem não entende linguagem natural, e linguagens naturais são cheias de dubiedades. A solução então é recorrer às linguagens de programação usuais, entendidas pelos processadores embarcados nos sistemas receptores. 3. Linguagens de Especificação de Aplicações As aplicações para TV digital são usualmente desenvolvidas usando dois paradigmas de programação distintos: o declarativo e o não-declarativo. Nas linguagens declarativas, o programador fornece apenas o conjunto das tarefas a serem realizadas, não estando preocupado com os detalhes de como o executor da linguagem realmente implementará essas tarefas. Toda inteligência da execução está na máquina e não no programador. Entre as linguagens declarativas mais comuns utilizadas em sistemas de TV digital estão a NCL (Nested Context Language) [1] [2], SVG [3] e XHTML [4]. Numa programação não-declarativa, devemos informar cada passo a ser executado. Pode-se afirmar que, em uma especificação seguindo o paradigma nãodeclarativo, o programador possui um maior poder sobre o código, sendo capaz e obrigado a estabelecer todo o fluxo de controle e execução de seu programa. Nesse caso, toda inteligência da execução está no programador que deve guiar a máquina 6

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de passo a passo no que ela deve fazer. Linguagens não-declarativas podem seguir diferentes modelos. Temos assim, as linguagens baseadas em módulos, orientadas a objetos, procedurais etc. Entre as linguagens não-declarativas mais comuns no domínio da TV digital estão C, Java, ECMAScript e Lua. A especificação de uma tarefa usando uma linguagem declarativa é, a princípio, muito mais fácil que o desenvolvimento usando uma linguagem não-declarativa, normalmente não necessitam de tantas linhas de código para definir a tarefa e são muito menos sujeita a erros de programação. Linguagens declarativas possuem um alto nível de abstração, não exigindo grande expertise para o projeto de aplicações, ao contrário das linguagens não-declarativas que, em geral, exigem um programador especialista. Linguagens declarativas usualmente são focadas em um domínio ou um objetivo específico. Quando o foco da linguagem casa com o foco do problema a resolver, o uso de uma linguagem declarativa é o ideal. Quando, no entanto, o foco do problema não casa com o foco da linguagem declarativa, sua resolução pode ser muito difícil. Nesse caso, o uso de uma linguagem não-declarativa é preferível. Praticamente todos os sistemas para TV digital oferecem suporte para o desenvolvimento de aplicações usando os dois paradigmas de programação. Quanto maior o domínio de tarefas que se consegue fazer declarativamente, mais fácil é o desenvolvimento de aplicações por não especialistas, mais democrático é o processo de produção. A pergunta que então se coloca é qual deve ser esse universo mínimo de tarefas. A primeira delas já foi anteriormente mencionada: suporte ao sincronismo de uma forma geral e, como caso particular, a interação do usuário. O foco no sincronismo em geral e não apenas no caso particular da interatividade é muito importante. Em uma aplicação para TV, a interatividade deve ser usada com parcimônia. Diferente de uma aplicação voltada para computador, uma aplicação de TV deve levar em consideração que a transmissão de grande parte das informações é por difusão e não é personalizada (isto é 100% verdadeiro com a interatividade apenas local). Além disso, em geral, se assiste a um programa de TV a uma distância razoável da tela (isso pode não ser verdade no caso de dispositivos portáteis), e seus dispositivos de interação (controle remoto) são ainda pobres em termos de expressividade e usabilidade. Mais ainda, assistir a um programa é muitas vezes uma atividade coletiva (novamente, no caso de 7

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de dispositivos portáteis isso pode não ser verdade) e o aparecimento de informações adicionais pela demanda de um telespectador pode aborrecer seu companheiro ao lado. Adicionalmente, a TV é usada na maioria das vezes para lazer e o telespectador não quer nada complexo em seu uso. Do ponto de vista do produtor de conteúdo interatividade é um recurso caro, pois demanda a produção de novos conteúdos. Tome como exemplo um filme com apenas 5 pontos de interatividade para escolha entre dois conteúdos alternativos; ao final, 32 conteúdos teriam de ser gerados. Com 6 pontos, 64 conteúdos, e assim exponencialmente. O uso de dispositivos de exibição pessoais (controle remoto com tela de baixa resolução, celulares, PDAs etc) poderia amenizar o problema do incômodo do aparecimento de conteúdos adicionais requisitados por outro telespectador em uma assistência coletiva. Como exemplo, tome novamente a Figura 3. Imagine agora que, ao ser selecionado o ícone da chuteira, o programa seguiria normalmente na tela da TV, com o vídeo propaganda e o formulário para compra aparecendo no dispositivo particular do telespectador que fez a seleção, como mostra a Figura 5. Isso nos leva a um segundo requisito a ser oferecido pela linguagem: suporte a múltiplos dispositivos de exibição. Figura 5. Interatividade com múltiplos dispositivos Dispositivos receptores pessoais podem também comunicar entre si. Poderiam, por exemplo, permitir a inclusão de comentários textuais ou outros objetos de mídia no aplicativo de TV recebido, e que o novo programa assim criado fosse distribuído aos demais participantes de uma comunidade (grupo de telespectadores), via canal de 8

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de retorno (ou canal de interatividade), constituindo o que foi chamado anteriormente de TV social ou TV em comunidade. A inserção de objetos de mídia sincronizados em um programa não-linear em tempo de exibição é importante não só por possibilitar a aplicação de TV em comunidade, onde a edição ao vivo é realizada pelo telespectador, mas também por possibilitar a geração de programas não-lineares ao vivo pela emissora de TV. Em muitos programas, a decisão de que objetos de mídia comporão o serviço pode ser decidida em tempo de exibição. Ainda com relação aos requisitos de uma linguagem declarativa, ao contrário da interatividade no computador, que é fortemente baseada na marcação de textos, o vídeo principal é a principal fonte de sincronismo em aplicação DTV, incluindo a interação, e marcar trechos em vídeo codificados pode não ser trivial. Isso nos traz outro requisito: suporte à definição de relacionamentos de sincronismo espacial e temporal separado da definição do conteúdo dos objetos de mídia relacionados (sem marcação nesses objetos). Na literatura isso é conhecido como definição baseada na estrutura (structurebased) em contraste com a definição embutida no conteúdo dos objetos de mídia, conhecida como baseada no conteúdo de mídia (media-based). Finalmente, os objetos de mídia a serem exibidos poderiam depender do telespectador, da localização e tipo do aparelho receptor, enfim, do contexto da recepção. Por exemplo, se uma criança estivesse assistindo a um jogo de futebol e aparecesse um ícone de uma empresa de bebidas, e se a criança selecionasse essa imagem, apareceria a propaganda de um guaraná; se fosse um adulto o telespectador, apareceria a propaganda de uma cerveja. Em resumo, uma linguagem declarativa deve oferecer um bom suporte para: o sincronismo de uma forma geral e, como caso particular, a interação do usuário; a definição de relacionamentos de sincronismo espacial e temporal separado da definição do conteúdo dos objetos de mídia relacionados; a adaptação do conteúdo e da forma como o conteúdo é exibido; múltiplos dispositivos de exibição; e a edição ao vivo (em tempo de exibição). NCL, desenvolvida no laboratório TeleMídia da PUC-Rio, é a única linguagem declarativa de domínio específico que cumpre todos esses requisitos, permitindo o 9

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de desenvolvimento de grande parte das aplicações DTV por não especialistas, sem qualquer conhecimento prévio de programação. Para as poucas tarefas mais complexas que demandam o uso de uma linguagem não-declarativa, NCL provê o uso de scripts Lua. Lua, também desenvolvida na PUC-Rio, é hoje uma das linguagens mais usadas no mundo na área de jogos e entretenimento. Poder-se-ia argumentar que um produtor de conteúdo provavelmente usaria ferramentas gráficas que esconderiam a complexidade da linguagem, podendo assim fazer igual bom uso de linguagens não-declarativas. Isso, no entanto, é apenas meia verdade. Ferramentas gráficas invariavelmente inibem funcionalidades de uma linguagem permitindo apenas o desenvolvimento de aplicações padronizadas, tirando toda a criatividade do produtor. Tais ferramentas permitiriam sim o desenvolvimento dessas aplicações padronizadas por não especialistas, mas continuaria a limitar a poucos o uso pleno da capacidade oferecida às aplicações. Mais ainda, as aplicações geradas por tais ferramentas são invariavelmente mais complexas, mais pesadas, exigindo receptores mais potentes e, portanto, mais caros, o que provavelmente não chegará às mãos da grande maioria da população. Ter uma linguagem declarativa com grande expressividade é um dos grandes diferenciais do Sistema Brasileiro de TV Digital Terrestre no sentido da democratização da produção de conteúdos para essa nova mídia. 4. O Middleware Ginga Para tornar as aplicações independentes da plataforma de hardware e software de um fabricante de receptor específico, e para dar um melhor suporte às aplicações voltadas para a TV, uma camada de software intermediária, denominada middleware, é colocada entre as aplicações desenvolvidas e a plataforma do receptor. Um middleware para aplicações de TV digital consiste de máquinas de execução das linguagens oferecidas, e bibliotecas de funções, que permitem o desenvolvimento rápido e fácil de aplicações. O Sistema Brasileiro de TV Digital Terrestre (SBTVD) traz como principal inovação seu middleware, denominado Ginga. Por que o nome Ginga? Ginga é uma qualidade de movimento e atitude que os brasileiros possuem e que é evidente em tudo o que fazem. É a forma como caminham, falam, dançam e se relacionam com tudo em 10

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de suas vidas. Ginga é flexibilidade, é adaptação, qualidades inerentes ao middleware brasileiro. Praticamente todos os middlewares para TV digital terrestre oferecem suporte para o desenvolvimento de aplicações usando os paradigmas de programação declarativo e não-decalarativo mencionados na seção anterior, e o middleware Ginga não foge à regra. A Figura 6 apresenta os três subsistemas que compõem o Ginga. Apl 1 Apl 2 Xlet i... Apl n Ginga - NCL Bridge Ginga-CC Ginga - J Rede Externa OS API SO IR CR CPU Memória RF in Demodulador Decod. do Canal Demux. Dec. Vídeo Dec. Áudio VC RF RF out Audio out Audio Surround Video out Figura 6. Middleware Ginga Ginga-NCL é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações declarativas NCL e sua linguagem de script Lua, que compõem a base para o desenvolvimento de aplicações declarativas no SBTVD. Ginga-J é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações imperativas escritas utilizando a linguagem Java. Ginga-CC (Ginga Common Core) é o subsistema lógico que provê todas as funcionalidades comuns ao suporte dos ambientes declarativo, Ginga-NCL, e imperativo, Ginga-J. Nem todos os subsistemas do Ginga são obrigatórios para todos os tipos de receptores no Sistema Brasileiro de TV Digital Terrestre. Para receptores fixos, isto é, aparelhos de TV, conversores digitais (set-top boxes) etc., todos os subsistemas são obrigatórios. Para dispositivos portáteis, apenas os subsistemas Ginga-NCL e Ginga-CC são obrigatórios. Assim, não importa o tipo de receptor, o suporte a aplicações NCL é sempre obrigatório. 11

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de No caso de terminais IPTV seguindo a Recomendação do ITU-T, apenas o módulo Ginga-NCL é recomendado, uma conquista importante da tecnologia brasileira. 5. Considerações Finais O potencial de uma linguagem e de seu ambiente de execução, bem como a facilidade de seu uso no desenvolvimento de aplicações não pode ficar apenas na teoria. Não são muitas as pesquisas sobre o uso de linguagens de programação/codificação como interfaces para o desenvolvimento de sistemas computacionais. No contexto do desenvolvimento de aplicações para TV digital, tais pesquisas são ainda mais raras. Durante o ano de 2008 um estudo empírico foi realizado com o intuito de obter indicadores da usabilidade da NCL no contexto da geração de conteúdos para TV digital. Adicionalmente, o estudo avaliou as dificuldades e facilidades no aprendizado de NCL. Foram também avaliados os pré-requisitos técnicos para a aprendizagem de NCL. O estudo foi realizado durante a semana Ginga Brasil, quando foram oferecidos cursos sobre programação em NCL em 15 capitais de todas as regiões do país. Os cursos tinham de 24 horas de duração e foram oferecidos para alunos do segundo grau de comunidades de baixa renda, ligados a Pontos de Cultura, Telecentros etc. Dois representantes de cada uma das 15 cidades fizeram, anteriormente, um curso de 32 horas na PUC-Rio para multiplicadores. Foram eles que, com o apoio da PUC-Rio, ministraram os cursos nas 15 cidades. Durante o curso para multiplicadores e os 15 outros cursos, foram feitas as coletas de dados para o estudo, por meio de preenchimento de formulários e a gravação em vídeo das aulas (gravação do comportamento dos alunos). Como esperado, a curva de aprendizado de NCL foi muito rápida. Os alunos tiveram mais dificuldade de entender os termos em inglês da linguagem do que a própria linguagem. Várias idéias surgiram do estudo em como melhorar ainda mais a usabilidade da NCL; idéias que acabaram sendo incorporadas à linguagem e hoje fazem parte do padrão. Apenas como dado curioso, um dos alunos do curso foi contratado, ainda durante o curso, pelo Canal Saúde de Manguinhos, para apoio no desenvolvimento de aplicações para o middleware Ginga. Esse fato corrobora a 12

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de facilidade do aprendizado da linguagem para geração de conteúdo mesmo por não especialistas. A adoção da linguagem NCL e do middleware Ginga como padrões mundiais mostra o acerto da decisão tomada pelo país e a qualidade da tecnologia desenvolvida. Mais ainda, a tecnologia o conhecimento é livre, é aberto. Ginga-NCL é o primeiro middleware totalmente oferecido em código aberto sob licença GPLv2. Uma preocupação muito grande tem sido em prover ferramentas de apoio à autoria de aplicações. Ferramentas sempre gratuitas e em código aberto. Em www.softwarepublico.gov.br reside o sitio da Comunidade Ginga. Aí se encontram para download a implementação de referência do middleware Ginga-NCL, as ferramentas de autoria Composer e NCLEclipse, o set-top box virtual Ginga-NCL, que permite rodar o Ginga-NCL para testes de aplicações em plataformas PC. Mais recentemente, foi lançado o Ginga Live CD, que não exige qualquer conhecimento de informática por parte dos seus usuários. Basta dar a partida em um computador pelo drive CD que o Ginga-NCL se auto-instala, transformando a máquina em um set-top box capaz de exibir aplicações NCL armazenadas em um pen drive, ou aplicações exemplo contidas no próprio CD, ou ainda aplicações residentes no Clube NCL (www.clube.ncl.org.br), um repositório público de aplicações NCL-Lua, sob licenças Creative Commons, que servem de exemplos para o desenvolvimento de novas aplicações. Através do Ginga Live CD e do NCLEclipse usuários podem ter um ambiente de desenvolvimento de aplicações totalmente gratuito. Várias listas de discussão e contribuições no desenvolvimento de aplicações podem ser encontradas na comunidade Ginga, em www.softwarepublico.gov.br. Documentos, artigos e tutoriais a respeito do middleware Ginga-NCL, podem ser obtidos em www.ncl.org.br. REFERÊNCIAS [1] ABNT NBR Associação Brasileira de Normas Técnicas. Digital Terrestrial Television Standard 06: Data Codification and Transmission Specifications for Digital Broadcasting, Part 2 GINGA-NCL: XML Application Language for Application Coding. 2007. [2] ITU-T Consented Recommendation H.761, 2009. Nested Context Language (NCL) and Ginga-NCL for IPTV Services. Genebra, Janeiro de 2009. 13

XXXII Congresso Brasileiro de Ciências da Curitiba, PR 4 a 7 de [3] W3C World-Wide Web Consortium. 2003. Scalable Vector Graphics (SVG) 1.1 Specification, W3C Recommendation. http://www.w3.org/tr/2003/rec-svg11-20030114/ [4] W3C World-Wide Web Consortium: Extensible HyperText Markup Language - XHTML 1.0, 2nd Edition (2002) 14