Fórum SBTVD
![]() |
![]() |
Da primeira patente no final do século XIX de um sistema de televisão eletro-mecânico por Paul Nipkow, até a primeira patente do sistema totalmente elétrico no início do século XX, muita coisa mudou e muita ainda vai mudar. Levantamento de requisitos;
Análise dos requisitos (exposição de motivos); Negociação dos requisitos; Especificação dos requisitos; Classificação dos requisitos. Para garantir implementações que variam em custo e complexidade e ainda assegurar que os serviços essenciais sejam recebidos enquanto durarem as transmissões digitais sem deixar legado, a Norma classifica os requisitos dos receptores em obrigatórios, recomendáveis, opcionais, não recomendáveis e proibidos. Para cada uma dessas categorias a Norma trata individualmente dos requisitos e especificações de processamento de áudio, vídeo e dados entre outros, para os receptores one-seg e full-seg.
Entretanto, as técnicas adotadas nas transmissões analógicas e digitais não são interoperáveis e, para atender ao imenso parque instalado de televisores analógicos, devem ser oferecidos ao mercado conversores de sinais digitais para analógicos, conhecidos pelo termo em inglês “set-top box”, que poderão ser facilmente conectados aos atuais televisores, possibilitando a estes velhos aparelhos acesso à grande parte dos benefícios da tecnologia digital. Nasce, assim, o Modelo Chateaubriand em duas versões: os conversores digitais e o televisor com receptor digital built-in. O sistema apresentado pode ser basicamente dividido em dois grandes módulos; front-end e back-end. |
Front-end |
Este módulo pode ser representado por dois subsistemas; demodulação e decodificação de canal. A função do subsistema de Codificação de Canal e Modulação é a de atribuir ao fluxo de dados transmitido proteção, os quais conferem robustez ao sinal. Por outro lado, o receptor deve restaurar o feixe de bits originalmente transmitido fazendo uso das ferramentas para correção de erros de modo que seja adequadamente entregue ao demultiplexador.
Em linhas gerais, o que diferencia cada sistema de TV digital hoje existente é a forma como o sinal é transmitido (codificação do canal e modulação), já que, na geração do fluxo de bits, todos empregam padrões bastante similares para multiplexação e codificação dos sinais fontes (áudio, vídeo, dados e etc). Neste quesito, o módulo de front-end é a diferença chave dos receptores, enquanto na transmissão a adição de redundância é um importante elemento para a robustez em ambientes hostis. Do lado do receptor o módulo de processamento de sinal deve proporcionar uma fácil sintonia, mesmo em ambientes de campo eletromagnético fraco, ruidoso e repleto de reflexões para a recuperação da portadora, sincronização de bits e estimação do canal, especialmente ao ligar o receptor. Mesmo utilizando técnicas de modulação há tempo conhecidas – tais como: aleatorização, codificação Reed-Solomon, entrelaçamento externo e interno de dados, codificação convolucional (todos com adição de redundância), como também diferentes interleaving (sem redundância) – a forma como estas técnicas se compõem é o grande diferencial. Considerando o decreto presidencial, o modelo da camada- física escolhida para o módulo do front-end foi o mesmo adotado pelo ISDB-T. As alterações em relação às especifi- cações japonesas são apenas no que se refere à canalização, relação de proteção co-canal e canal adjacente em VHF e na freqüência de FI. Afora estes pontos, a forma de processar o sinal, desde a sintonia de canais até a recuperação do fluxo de bits, obedecem rigorosamente as especificações ARIB (Association of Radio Industries and Businesses). |
Back-end |
No Sistema Brasileiro de TV Digital este foi o módulo que maiores alterações sofreu em relação ao sistema japonês e pode ser subdividido nos subsistemas que seguem:Demultiplexação:
A camada de transporte permite que informações contidas em um ou mais serviços sejam associadas em um único fluxo de bits. Os componentes individuais de áudio, vídeo, dados e serviços auxiliares de cada serviço, além de informações complementares para a apresentação sincronizada nos receptores, são combinados e o feixe resultante modulado é transmitido pelo canal de televisão. Esta camada, conhecida por MPEG-2 System, é responsável pela multiplexação e demultiplexação destes sinais e é baseada na recomendação internacional ITU-T H.222, a mesma utilizada em todos os sistemas de televisão digital hoje existentes. Cada um apresenta algumas particularidades, também aplicáveis ao Sistema Brasileiro de Televisão Digital, para atender especificidades aos requisitos locais, como, por exemplo, canal virtual, classificação indicativa, entre outros, além dos aspectos culturais e de linguagem. Apesar de originalmente a recomendação ter sido desenvolvida para a família MPEG-2, sua evolução permitiu suportar conteúdos da família MPEG-4 e, especialmente, o padrão ITU-T H.264. Na recepção, os componentes individuais de áudio, vídeo, dados e serviços auxiliares e informações de sincronização do serviço selecionado são separados e re-convertidos em imagens, sons, conteúdos interativos, textos, serviços de informação, guia de programação, entre outros. Decodificação do Sinal Fonte: Middleware: Canal de Interatividade: |
![]() |
Denota-se, assim, que a decisão brasileira foi adotar um sistema híbrido, “nipo-brasileiro”, ao utilizar a estrutura básica do sistema japonês e implementar inovações importantes sem, entretanto, perder de vista as premissas básicas inicialmente definidas. A aderência aos padrões internacionais está mantida, muitas vezes com desempenho e robustez superior a do sistema japonês.
|
![]() |
![]() |
![]() |
Resumo |
Este artigo apresenta a arquitetura de referência do middleware Ginga do Sistema Brasileiro de TV Digital Terrestre, chamando atenção para as diversas inovações introduzidas, que fazem desse middleware um dos mais expressivos e eficientes.
Palavras-chave: Ginga, NCL, Lua, Java, middleware, ambiente declarativo, ambiente imperativo, TV Digital. |
Introdução |
Middleware é uma camada de software posicionada entre o código das aplicações e a infra-estrutura de execução (plataforma de hardware e sistema ope- racional), como ilustrado pelo Modelo de Referência do Sistema Brasileiro de TV Digital Terrestre, apresentado na Figura 1.
|
![]() |
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 universo das aplicações de TVD (TV Digital) pode ser particionado em um conjunto de aplicações declarativas e em um conjunto de aplicações imperativas. A entidade inicial de uma aplicação, isto é, aquela que dispara a aplicação, é que define a que conjunto a aplicação pertence, dependendo se essa entidade é codificada segundo uma linguagem declarativa ou imperativa. Note que aplicações declarativas podem conter entidades imperativas e vice-versa, o que as caracteriza é apenas a entidade inicial. Linguagens declarativas enfatizam a descrição declarativa de uma tarefa em vez de sua decomposição passo a passo, em uma definição algorítmica do fluxo de execução de uma máquina, como fazem as descrições imperativas. Por ser de mais alto nível de abstração, tarefas descritas de forma declarativa são mais fáceis de serem concebidas e entendidas, sem exigir um programador especialista, como é usualmente necessário nas tarefas descritas de forma imperativa. Contudo, uma linguagem declarativa usualmente visa um determinado domínio de aplicações e define um modelo específico para esse domínio. Quando uma tarefa casa com o modelo da linguagem declarativa, o paradigma declarativo é, em geral, a melhor escolha. Linguagens imperativas são bem expressivas e de propósito geral, porém, a um elevado custo. Como mencionado, elas usualmente exigem um programador especialista, geralmente colocam em risco a portabilidade de uma aplicação, e o controle da aplicação é muito mais sujeito a erros cometidos pelo programador. No entanto, nos casos em que o foco de realização de uma tarefa não casa com o foco da linguagem declarativa, o paradigma imperativo é, em geral, a melhor escolha. Por tudo o mencionado acima, os middlewares para TV digital provêem suporte para o desenvolvimento seguindo tanto o paradigma declarativo quanto o imperativo. Muitas vezes, como é o caso do sistema Japonês, a entidade inicial de uma aplicação é sempre declarativa, mas outras entidades podem ser codificadas segundo o paradigma imperativo. Muitas vezes, como é o caso do sistema americano e europeu, é oferecido suporte tanto para aplicações declarativas quanto para aplicações imperativas, mas, em ambos os casos, entidades seguindo um paradigma diferente da entidade inicial podem ser definidas. O ambiente declarativo de um middleware dá o suporte necessário às aplicações declarativas, enquanto o ambiente imperativo dá o suporte necessário às aplicações imperativas. No caso do middleware do padrão brasileiro, os dois ambientes são exigidos nos receptores fixos e móveis, enquanto apenas o ambiente declarativo é exigido nos receptores portáteis. O Sistema Brasileiro de TV Digital Terrestre (SBTVD) trouxe como principal inovação seu middleware, denominado Ginga1. Em seu ambiente declarativo o Ginga provê suporte para o desenvolvimento de aplicações declarativas desenvolvidas na linguagem NCL (Nested Context Language), que podem conter entidades imperativas especificadas na linguagem Lua. Principalmente por sua grande eficiência e facilidade de uso, Lua é a linguagem de script de NCL. Em seu ambiente imperativo, o Ginga provê suporte a aplicações desenvolvidas em Java. Uma ponte desenvolvida entre os dois ambientes provê suporte a aplicações híbridas com entidades especificadas em NCL, Lua e Java. Este artigo tem por finalidade apresentar algumas das características do Ginga e sua arquitetura de referência. A Seção 2 é dedicada à arquitetura de referência, a Seção 3 aos ambientes declarativos e imperativos do Ginga e, finalmente, a Seção 4 é reservada às considerações finais. |
Arquitetura de Referência |
A arquitetura do Ginga pode ser dividida em três módulos principais: Ginga-CC, Ginga-NCL e Ginga-J, como mostra a Figura 2. Os dois últimos módulos compõem a camada de Serviços Específicos do Ginga.
|
![]() |
1 – 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 suas vidas. Ginga é flexibilidade, é adaptação, qualidades inerentes ao middleware brasileiro.
|
Ginga-J é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações imperativas escritas utilizando a linguagem Java. A especifi- cação desse subsistema caberá à Norma ABNT NBR 15606-4 e é assunto da Seção 3.1.
Ginga-NCL é o subsistema lógico do middleware Ginga responsável pelo processamento de aplicações declarativas NCL. NCL (Nested Context Language) e sua linguagem de script Lua compõem a base para o desenvolvimento de aplicações declarativas no SBTVD. A especificação desse subsistema cabe às Normas NBR 15606-2 e ABNT NBR 15606-5, e é assunto da Seção 3.2. Ginga-CC (Ginga Common Core) é o subsistema lógico provedor de todas as funcionalidades comuns ao suporte dos ambientes declarativo (Ginga-NCL), e imperativo (Ginga-J). A arquitetura do sistema garante que apenas o módulo Ginga-CC deva ser adaptado à plataforma em que o Ginga será embarcado. Ginga-CC provê, assim, um nível de abstração da plataforma de hardware e sistema operacional, acessível por meio de APIs (Application Program Interfaces) bem definidas. Um conjunto de exibidores monomídia comuns faz parte dos componentes do Ginga-CC. As características de tais exibidores são definidas na Norma ABNT NBR 15606-1. Eles são exibidores de áudio, vídeo, texto e imagem, incluindo, entre eles, o exibidor MPEG-4/H.264, implementado por hardware. O acesso a tais exibidores se dá através de adaptadores, responsáveis por notificar eventos de apresentação e seleção (interação do usuário). Entre os exibidores também se encontra o exibidor (agente do usuário) HTML, especificado nas Normas ABNT NBR 15606-2 e ABNT NBR 15606-5. A Seção 3.2 discute um pouco mais o suporte a aplicações HTML oferecido pelo middleware Ginga. Na Figura 2, o Gerenciador Gráfico é o responsável pelo gerenciamento do modelo conceitual do plano gráfico de apresentação. É ele que define o plano de exibição do vídeo principal H.264, os planos de exibição dos outros objetos de mídia que compõem uma aplicação TVD, e como esses planos se superpõem. A Norma ABNT NBR 15606-1 é responsável também pela tal definição. Todo o acesso a dados obtidos através do canal de retorno (ou canal de interatividade) é também de responsabilidade do Ginga-CC. As diversas possibilidades de canal de interatividade são especificadas na Norma ABNT NBR 15607. Ainda na Figura 2, os componentes DSM-CC e Processador de Dados oferecem o suporte para obtenção de dados, obtidos através de seções especiais MPEG-2, especificados na Norma ABNT NBR 15606-3. O componente de Persistência é o encarregado pelo gerenciamento do armazenamento de dados requisitados pelas aplicações, enquanto o componente Sintonizador é o responsável pela sintonização e controle do canal de rádio frequência. Os demais componentes do Ginga-CC são opcionais e dependem da implementação particular de cada receptor. O Gerenciador de Contexto é o encarregado de colher informações do dispositivo receptor, informações sobre o perfil do usuário e sua localização, e torná-las disponíveis ao Ginga-NCL e Ginga-J, para que eles possam efetuar adaptação de conteúdos ou da forma como conteúdos deverão ser apresentados, conforme determinado pelas aplicações. Ao Gerenciador de Atualizações cabe o controle das atualizações de todo o software residente e do middleware Ginga, durante o ciclo de vida de um dispositivo receptor. Os componentes CA (Conditional Access) e DRM (Digital Right Management) são os responsáveis por determinar os privilégios de acesso às diversas mídias que compõem uma aplicação (programa) TVD. Sobre o suporte oferecido pelo Ginga-CC, os módulos de serviço específico do Ginga (Ginga-NCL e Ginga-J) são implementados, como discutido na próxima seção. |
Ambientes Declarativo e Imperativo do Middleware Ginga |
Diferente de outros sistemas, por exemplo o sistema europeu, não existe qualquer relacionamento mestreescravo entre os ambientes declarativo e imperativo do middleware Ginga. Ao contrário, eles são ambientes pares com processo muito bem definido de comunicação, especificado por APIs simbolizadas na Figura 2, pela Ponte. O Ambiente Ginga-J O Ambiente Ginga-NCL |
![]() |
O primeiro grupo de comandos é responsável pela ativação e desativação de uma base privada, ou seja, a habilitação de aplicações de um determinado canal de TV. Em uma base privada, aplicações NCL podem ser ativadas, pausadas, retomadas e desativadas, por meio de comandos bem definidos pertencentes ao segundo grupo de comandos. O terceiro grupo define comandos para modificações de uma aplicação ao vivo. Finalmente, como o Ginga-J, o Ginga-NCL oferece suporte a múltiplos dispositivos de entrada e saída. Tal facilidade declarativa – juntamente com os comandos de edição ao vivo, únicos do sistema brasileiro – provê suporte para o grande domínio de aplicações interativas de TVD que se descortina: as aplicações para as chamadas TV em comunidade (Community ou Social TV), em que uma comunidade de usuários cria ao vivo, sobre o conteúdo e as aplicações recebidas, novas aplicações (geração de novos conteúdos e informações personalizados), que são trocadas entre seus membros para exibição em tempo real ou sob demanda. |
Considerações Finais |
O Sistema Brasileiro é, atualmente, o mais avançado sistema de TV digital terrestre, não apenas por usar as tecnologias mais avançadas, mas, principalmente, por dispor de tecnologias inovadoras, como é o caso de seu middleware Ginga. A implementação de referência do Ginga-NCL foi desenvolvida em código aberto e pode ser obtida em www.gingancl.org.br, sob a licença GPLv2. A máquina Lua também se encontra disponível pelo mesmo site, com uso da licença MIT. Ferramentas de autoria para o desenvolvimento de aplicações NCL, também em código aberto, estão disponíveis ainda no mesmo site, bem como tutoriais, livros, artigos e exemplos de várias aplicações NCL e Lua. Em http://clube.ncl.org.br, um repositório de aplicações interativas é encontrado; lá autores podem divulgar suas idéias, talentos, e, ainda, suas técnicas de desenvolvimento usando a linguagem NCL com scripts Lua. 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, podem ser obtidos em www.ginga.org.br. |
[ABNT NBR 15606-1] Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital – Parte 1: Codificação de dados. [ABNT NBR 15606-2] Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital – Parte 2: Ginga-NCL para receptores fixos e móveis – Linguagem de aplicação XML para codificação de aplicações. [ABNT NBR 15606-3] Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital – Parte 3: Especificação de transmissão de dados. Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital – Parte 4: Ginga-J para receptores fixos e móveis. Em elaboração. [ABNT NBR 15606-5] Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital – Parte 5: Ginga-NCL para receptores portáteis – Linguagem de aplicação XML para codificação de aplicações. [ABNT NBR 15607-1] Televisão digital terrestre – Canal de interatividade – Parte 1: Protocolos, interfaces físicas e interfaces de software. |
![]() |
|
![]() |
|
Este artigo da série sobre o Sistema Brasileiro de Televisão Digital apresenta a arquitetura de canal de interatividade e as tecnologias de comunicação de rede aplicáveis. A especificação técnica está disponível na Norma ABNT NBR 15607, e distribuída em três partes: 1- Protocolos, interfaces físicas e interfaces de software (já publicada); 2- Dispositivos externos; 3- Interfaces de configuração para as tecnologias de acesso (em elaboração). |
|
![]() |
|
Camadas do modelo OSI Os protocolos empregados nas camadas superiores, em geral para dar suporte à internet, estão indicados na tabela abaixo. |
|
![]() |
|
Protocolos para canal de difusão e interatividade
O detalhamento do protocolo para o canal de interatividade, que carrega a requisição, e para o canal de broadcasting, que carrega a resposta, é apresentado conforme a tabela abaixo. |
|
![]() ![]() |
|
![]() Para prover o acesso do usuário ao canal de interatividade é necessária a utilização de um modem, conforme visto anteriormente. A Figura 2 ilustra um esquema de difusão, recepção e acesso à rede IP, através de um modem externo ao receptor digital. O Sistema Brasileiro de Televisão Digital oferece ao usuário a opção de escolha do meio de telecomunicação mais conveniente para a funcionalidade do canal de interatividade dentre uma gama ampla de possibilidades, levando-se em consideração as especificidades e heterogeneidade das redes de comunicações. O SBTVD permite o emprego da funcionalidade de canal de retorno como um dispositivo externo ao receptor ou televisor digital. É possível ainda a forma embutida do modem de comunicação nos receptores. Arquitetura do receptor
Entre as camadas de protocolo e a camada de aplicações, existe uma camada intermediária responsável por fornecer APIs para utilização do canal de interatividade. Essa camada é conhecida por middleware, que permite abstrair do receptor as especificidades do sistema operacional e do hardware.
Dispositivos externos autenticados O Certificado Digital (CD) contém um conjunto de informações referentes à entidade para a qual o certificado foi emitido; a chave pública é referente à chave privada, de posse única da entidade especificada no certificado.
A chave privada do dispositivo externo é gerada em conjunto com a chave pública, e é utilizada no processo de autenticação do dispositivo externo pelo receptor, ambas com tamanho de 1024 bits. O RSA é o algoritmo criptográfico empregado. Os drivers permitem a comunicação com o dispositivo físico e encontram-se carregados na memória RAM do receptor. É obrigatório que o fabricante do dispositivo externo forneça todos os drivers necessários para a instalação do dispositivo externo. É utilizado um arquivo de configuração (XML), no formato XML, contendo as seguintes informações: família da tecnologia de acesso ao qual o dispositivo pertence, nome dos drivers, nome dos protocolos e dependência de drivers. Na figura 4, o aplicativo de configuração (Ginga) é opcional, o qual deve deve ser executado após à montagem do dispositivo externo, visando a configuração do modem. O processo de instalação e configuração do dispositivo externo pode ser visualizado através do fluxograma da Figura 5.
Conclusão A concepção dos receptores digitais e dos dispositivos externos permite fácil atualização e padronização de novas interfaces entre os mesmos, de forma a possibilitar a adoção de futuras tecnologias de comunicações apropriadas para a interatividade do Sistema Brasileiro de Televisão Digital.
As normas técnicas do SBTVD ampliaram sobremaneira as tecnologias previstas na estrutura normativa do ARIB, com grande ênfase dada às tecnologias de comunicação sem fio. Estas tecnologias, que possibilitam a conexão à rede Internet, tendem a predominar nesta década, a exemplo do que ocorreu com a introdução da telefonia celular que, em curto período de tempo, ultrapassou o número de telefones fixo. |
|
![]() |
|
Saiba Mais
As normas de TV digital estão acessíveis gratuitamente através do site www.abnt.org.br/tvdigital. Para saber mais sobre o canal de interatividade, procure pela Norma: ABNT NBR 15607-1: Televisão digital terrestre – Canal de interatividade – Parte 1: Protocolos, interfaces físicas e interfaces de software |
|
FÓRUM SBTVD 24 | |
Revista da SET – ed. 105 |