Programando em NCL 3.0.pdf - Telemidia - PUC-Rio
Programando em NCL 3.0.pdf - Telemidia - PUC-Rio Programando em NCL 3.0.pdf - Telemidia - PUC-Rio
programas não-lineares ao vivo pela emissora de TV. Em muitos programas,a decisão de quais objetos de mídia comporão o serviço pode ser decidida aovivo. Retornando ao nosso exemplo do jogo de futebol, suponha que nomomento em que um jogador marcar um gol será exibida a estatística dos golsem toda a sua carreira. Ora, a princípio não se sabe quem vai marcar o golnem se vai haver gol. A decisão de qual objeto de mídia com a estatística serátransmitido e quando só pode ser tomada após a ocorrência do gol.Isso nos leva a um quarto requisito que deve ser oferecido por ummiddleware: suporte à edição ao vivo (em tempo de exibição).Comentamos anteriormente que o vídeo principal é a fonte maisimportante de sincronismo, incluindo a interação do usuário. Diferentementedas aplicações usuais de navegação na Web, que são usualmente baseadas emtexto, as aplicações de TV são usualmente baseadas no conteúdo do vídeo(programa de TV) principal. Embutir informação de navegação em vídeo éproblemático, quando não impossível. Assim, permitir a definição derelacionamentos entre objetos de mídia sem “embutir” tais relacionamentosnos conteúdos é um requisito importante.Isso nos traz a um quinto requisito: suporte à definição derelacionamentos de sincronismo espacial e temporal separado da definição doconteúdo dos objetos de mídia relacionados. Na literatura isso é conhecidocomo definição baseada na estrutura (structure-based), em contraste com adefinição embutida no conteúdo dos objetos de mídia, conhecida comobaseada no conteúdo de mídia (media-based).Em resumo, um middleware deve oferecer um bom suporte para:o sincronismo de uma forma geral e, como caso particular, ainteração do usuário;a definição de relacionamentos de sincronismo espacial e temporalseparado 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;o uso de múltiplos dispositivos de exibição;a edição ao vivo (em tempo de exibição).No caso do Brasil, a TV pode representar um grande veículocomplementar para inclusão digital, permitindo às classes menosprivilegiadas não só o acesso à informação, mas também a geração(produção) de informação (conteúdo). Assim, acresce aos requisitos de ummiddleware o bom suporte a aplicações ditas cidadãs, como as voltadas paraas áreas de saúde, educação, cultura etc.28
1.3.2 Ambientes de ProgramaçãoAs aplicações de TV digital vão desde aquelas em que a aplicaçãotransmitida não tem nenhuma relação semântica com o programa principal emexibição (como, por exemplo, a exibição de mensagens de notícias urgentesdurante a exibição de um programa de TV) até os programas não-lineares(onde todos os objetos de mídia são sincronizados entre si, incluindo o áudioprincipal e o vídeo principal), passando pelas aplicações com vários objetosde mídia relacionados entre si e que só fazem sentido dentro do contexto doprograma sendo assistido, mas não tendo nenhum relacionamento temporalcom o áudio principal e o vídeo principal.Aplicações são usualmente desenvolvidas usando dois paradigmas deprogramação distintos: o declarativo e o não-declarativo.Linguagens de programação declarativas (linguagens que seguem oparadigma declarativo) são linguagens de mais alto nível de abstração, muitasvezes ligadas a um domínio ou objetivo específico. Nas linguagensdeclarativas, o programador fornece apenas o conjunto das tarefas a seremrealizadas, não estando preocupado com os detalhes de como o executor dalinguagem (interpretador, compilador ou a própria máquina real ou virtual deexecução) realmente implementará essas tarefas. Linguagens declarativasresultam em uma declaração do resultado desejado, em vez da suadecomposição em uma implementação algorítmica e, portanto, normalmentenão necessitam de tantas linhas de código para definir uma certa tarefa e sãomenos sujeitas a erros de programação. Entre as linguagens declarativas maiscomuns estão a NCL (Nested Context Language) [ABNT NBR 15606-2,2011] [ITU-T H.761, 2011], a SMIL [W3C REC-SMIL2-20051213, 2008],a SVG [W3C REC-SVG11-20110816, 2011] e a XHTML [W3C RECxhtml1-20020801,2002].Numa programação não-declarativa, devemos informar cada passo a serexecutado. Pode-se afirmar que, em uma especificação seguindo o paradigmanão-declarativo, o programador possui maior poder sobre o código, sendoobrigado a estabelecer todo o fluxo de controle e execução de seu programa.Entretanto, para isso, ele deve ser qualificado e conhecer bem os recursos deimplementação. Linguagens não-declarativas podem seguir diferentesmodelos. Temos, assim, as linguagens baseadas em módulos, orientadas aobjetos etc. Entre as linguagens não-declarativas mais comuns no domínio daTV digital estão C, Java e ECMAScript.O universo das aplicações de um sistema de TV digital pode serparticionado em um conjunto de aplicações declarativas e um conjunto deaplicações não-declarativas. Uma aplicação declarativa é aquela em que otipo do conteúdo de sua “entidade inicial” é declarativo. Por outro lado, umaaplicação não-declarativa é aquela cujo tipo do conteúdo de sua “entidade29
- Page 18 and 19: 8.2 Contextos .....................
- Page 20 and 21: 16.3.6 Adicionar uma Interface a um
- Page 22 and 23: D.1 Conectores Causais ............
- Page 24 and 25: Figuras, Listagens e TabelasFiguras
- Page 26 and 27: Figura 6.3Figura 6.4Figura 6.5Leiau
- Page 28 and 29: Figura 10.13 Conector com múltiplo
- Page 30 and 31: Figura 18.3 Visão estrutural do Ex
- Page 32 and 33: Listagem 3.41 Novo relacionamento c
- Page 34 and 35: Listagem 10.4Listagem 10.5Conector
- Page 36 and 37: Listagem 13.4Importação de docume
- Page 38 and 39: Tabela 1.1TabelasCodificação de
- Page 40 and 41: Tabela 13.1 Comportamento da Aplica
- Page 42 and 43: Capítulo 1TV Digital:Fundamentos e
- Page 44 and 45: contramedida for tomada, a ISI pode
- Page 46 and 47: aproximadamente três vezes a altur
- Page 48 and 49: celular, um PDA etc. Como há um gr
- Page 50 and 51: O processamento dos dados recebidos
- Page 52 and 53: O sistema brasileiro de TV digital
- Page 54 and 55: Da mesma forma que o padrão MPEG-2
- Page 56 and 57: xxxxMUXMPEG 2Systemzvídeo principa
- Page 58 and 59: decodificar os dados recebidos e co
- Page 60 and 61: 1.2.4 ModulaçãoUm dos padrões ma
- Page 62 and 63: à interferência de múltiplos per
- Page 64 and 65: middleware. A Figura 1.11 apresenta
- Page 66 and 67: Informações adicionais opcionais
- Page 70 and 71: inicial” é não-declarativo. Uma
- Page 72 and 73: Tabela 1.5 Ambientes de aplicaçõe
- Page 74 and 75: de código declarativo (HTML, SMIL,
- Page 76 and 77: Outras características de Lua, imp
- Page 78 and 79: ISO/IEC 13818-1 (2000). Internation
- Page 80 and 81: Capítulo 2Modelo ConceitualNCMToda
- Page 82 and 83: formulário etc.). No entanto, nenh
- Page 84 and 85: Os seres humanos se vestem de acord
- Page 86 and 87: airro, que está dentro de uma cida
- Page 88 and 89: Além da já mencionada lista orden
- Page 90 and 91: Capítulo 3Introdução àLinguagem
- Page 92 and 93: O novo vídeo acrescentado é uma r
- Page 94 and 95: A definição dos espaços de exibi
- Page 96 and 97: atores que exercerão os papéis da
- Page 98 and 99: Listagem 3.8 Elemento e seus eleme
- Page 100 and 101: 60
- Page 102 and 103: Todo elemento possui um identifica
- Page 104 and 105: Ao referenciar um conector definido
- Page 106 and 107: Listagem 3.16 Documento NCL com reu
- Page 108 and 109: elementos , mesmo que seus valores
- Page 110 and 111: 70Listagem 3.19 Definição dos nov
- Page 112 and 113: 72
- Page 114 and 115: onBeginonBeginonEndStartStartonBegi
- Page 116 and 117: 76
1.3.2 Ambientes de ProgramaçãoAs aplicações de TV digital vão desde aquelas <strong>em</strong> que a aplicaçãotransmitida não t<strong>em</strong> nenhuma relação s<strong>em</strong>ântica com o programa principal <strong>em</strong>exibição (como, por ex<strong>em</strong>plo, a exibição de mensagens de notícias urgentesdurante a exibição de um programa de TV) até os programas não-lineares(onde todos os objetos de mídia são sincronizados entre si, incluindo o áudioprincipal e o vídeo principal), passando pelas aplicações com vários objetosde mídia relacionados entre si e que só faz<strong>em</strong> sentido dentro do contexto doprograma sendo assistido, mas não tendo nenhum relacionamento t<strong>em</strong>poralcom o áudio principal e o vídeo principal.Aplicações são usualmente desenvolvidas usando dois paradigmas deprogramação distintos: o declarativo e o não-declarativo.Linguagens de programação declarativas (linguagens que segu<strong>em</strong> oparadigma declarativo) são linguagens de mais alto nível de abstração, muitasvezes ligadas a um domínio ou objetivo específico. Nas linguagensdeclarativas, o programador fornece apenas o conjunto das tarefas a ser<strong>em</strong>realizadas, não estando preocupado com os detalhes de como o executor dalinguag<strong>em</strong> (interpretador, compilador ou a própria máquina real ou virtual deexecução) realmente impl<strong>em</strong>entará essas tarefas. Linguagens declarativasresultam <strong>em</strong> uma declaração do resultado desejado, <strong>em</strong> vez da suadecomposição <strong>em</strong> uma impl<strong>em</strong>entação algorítmica e, portanto, normalmentenão necessitam de tantas linhas de código para definir uma certa tarefa e sãomenos sujeitas a erros de programação. Entre as linguagens declarativas maiscomuns estão a <strong>NCL</strong> (Nested Context Language) [ABNT NBR 15606-2,2011] [ITU-T H.761, 2011], a SMIL [W3C REC-SMIL2-20051213, 2008],a SVG [W3C REC-SVG11-20110816, 2011] e a XHTML [W3C RECxhtml1-20020801,2002].Numa programação não-declarativa, dev<strong>em</strong>os informar cada passo a serexecutado. Pode-se afirmar que, <strong>em</strong> uma especificação seguindo o paradigmanão-declarativo, o programador possui maior poder sobre o código, sendoobrigado a estabelecer todo o fluxo de controle e execução de seu programa.Entretanto, para isso, ele deve ser qualificado e conhecer b<strong>em</strong> os recursos deimpl<strong>em</strong>entação. Linguagens não-declarativas pod<strong>em</strong> seguir diferentesmodelos. T<strong>em</strong>os, assim, as linguagens baseadas <strong>em</strong> módulos, orientadas aobjetos etc. Entre as linguagens não-declarativas mais comuns no domínio daTV digital estão C, Java e ECMAScript.O universo das aplicações de um sist<strong>em</strong>a de TV digital pode serparticionado <strong>em</strong> um conjunto de aplicações declarativas e um conjunto deaplicações não-declarativas. Uma aplicação declarativa é aquela <strong>em</strong> que otipo do conteúdo de sua “entidade inicial” é declarativo. Por outro lado, umaaplicação não-declarativa é aquela cujo tipo do conteúdo de sua “entidade29