Março de 2009
Arquivo Mensal
Qui 26 Mar 2009
Publicado por Valdecir Becker sob
InformaçãoSem Comentários
Ficou para a reunião do dia 6 de abril a decisão do Fórum do SBTVD sobre a definição do que vai ser exatamente o Ginga. Até o momento, apenas NCL e LUA estão efetivamente confirmados. O NCL pode ganhar a companhia do Java, através da especificação européia GEM ou da feita pela SUN com consultoria de algumas poucas empresas brasileiras, chamada JavaDTV.
Muitos temas ainda estão obscuros nesse assunto. Como por exemplo, o pagamento de royalties, cujos valores são fundamentais para analisar o impacto do Ginga no preço dos receptores. O Ginga-NCL e o JavaDTV estão livres de royalties no que se refere a sua especificação. Ou seja, podem ser adotados de graça. No entanto, dependendo das mídias individuais que comporem o middleware (as chamadas monomídias, como PNG e JPEG, que são grátis, e MPEG4 AAC e MP3, que são caríssimas), o valor total do que deve ser pago de licenças pode ser bastante alto.
Já o GEM continua um grande ponto de interrogação. A Via Licensing, que controla e centraliza os royalties do MHP, não licencia as APIs GEM individualmente. Ainda não se sabe, ou não se quer saber, se é possível ou não adotar apenas o GEM, sem colocar o defunto do MHP inteiro dentro do Ginga.
O JavaDTV possui as mesmas funcionalidades do GEM, livre de royalties, mas é dominado por uma única empresa estrangeira e prestes a ser vendida para a IBM.
Na reunião de segunda-feira passada houve uma clara divisão dos setores que compõe o Fórum. Os argumentos a favor do GEM vem da indústria de recepção, dona das patentes, e de parte da academia, que acredita ser essencial a interoperabilidade de conteúdos. Já o JavaDTV é defendido pelos setores de radiodifusão e de software. A terceira opção, que é usar apenas NCL e LUA, é defendida pela maior parte da academia. No entanto, há dissidências em todas as áreas. A maioria das emissoras de TV está indiferente; algumas empresas de software defende exclusivamente NCL e LUA.
Esse assunto ainda vai render muito. Há interesses e investimentos de empresas cujos resultados dependem da adoção de uma ou outra tecnologia. O que se sabe de fato é que finalmente será tomada uma decisão sobre a interatividade no ISDB-Tb. Lembrando apenas que a decisão final é do governo federal e que ano que vem teremos eleições. Isso significa que não necessariamente a decisão do Fórum será confirmada.
Analisando mais uma vez os argumentos de todos os lados, mantenho minha visão de que o melhor para o país é a opção exclusiva por NCL e LUA. O GEM é definitivamente caro demais e o risco atrelado ao JavaDTV é muito alto. O contrato assinado entre o Fórum e a SUN não dá qualquer garantia de que o país tenha alguma autonomia nas atualizações das próximas versões do Ginga. Lendo e relendo o contrato, percebe-se muito mais um protocolo de intenções, com a garantia de uso gratuito para sempre. E só. Me parece muito pouco para a impacto que esse tema terá na TV digital brasileira.
Além disso, temos desenvolvido muita coisa usando apenas NCL e LUA, e até o momento, Java não fez falta nenhuma.
Sex 20 Mar 2009
Publicado por Valdecir Becker sob
InformaçãoSem Comentários
Tornando pública posição tomada sobre tema debatido no Fórum do SBTVD e prestes a ter uma definição: Haverá Ginga-J? em caso afirmativo, o que o comporia? O debate dentro da academia foi conduzido pelo professor Luis Fernando Gomes Soares, que consultou 12 instituições para elaborar a posição deste setor dentro do Fórum. Em síntese, a opção da academia foi massiva em favor de Ginga-NCL complementada por Lua. Caso Java seja considerado realmente essencial, a opção recomendada é o GEM.
Caro prof. Luiz Fernando:
Na definição sobre os componentes do Ginga, alguns preceitos básicos precisam ser considerados. Após a escolha do sistema de modulação, cabe agora colocar inteligência na TV digital brasileira. É a interatividade que vai definir como a TV digital será usada no país: se com modelos semelhantes à TV analógica, com poucas alterações, ou com mudanças substanciais no conteúdo audiovisual e no mercado de comunicação brasileiro. Me parece que não cabe a tecnologia determinar, e nem limitar, esse mercado.
Estrategicamente, dada a importância do middleware na estrutura do ISDB-Tb, o país precisa manter o domínio tecnológico do middleware e de sua evolução. Esse passo já foi dado com a normatização das linguagens NCL e Lua, como padrão declarativo geral e como padrão para dispositivos portáteis. A definição do padrão não declarativo deve seguir a mesma linha de raciocínio. Ou seja, maximizar os ganhos com tecnologias nacionais e minimizar dependências estrangeiras. Portanto, não se pode correr o risco de ficar na dependência de uma única empresa, no caso a Sun Microsystems, que especificou o JavaDTV.
A opção JavaDTV não necessariamente deve ser descartada. O que precisa ficar claro na decisão é o quanto o país tem de autonomia nesse padrão. Como o middleware é um software, o mesmo tende a evoluir, agregando requisitos novos. Essa evolução precisa ser conduzida com responsabilidade, o que demanda trabalho conjunto entre quem gera a demanda (no caso o Brasil) e a oferta (no caso a Sun).
Quanto ao GEM, o pagamento de licenças parece inviabilizar a utilização num primeiro momento. Além dos valores envolvidos, cabe ressaltar que o mercado de interatividade internacional está tão restrito e fechado a alguns países que dificilmente surgirá, no curto e médio prazo, um mercado exportador de aplicações integradas aos produtos audiovisuais. Nos sistemas de TV por assinatura, mercado muito mais amplo, a comercialização internacional de aplicativos é praticamente inexistente. Os discursos sobre esse assunto estão iguais a pelo menos cinco anos, retratando potenciais sem subsídios estatísticos. Além disso, é preciso considerar os problemas que o MHP está enfrentando, com críticas de todos os lados na Europa.
No entanto, não se pode correr o risco de perder a compatibilidade com os sistemas internacionais, uma vez que mudanças em paradigmas tecnológicos são constantes. Além disso, ainda está em aberto o valor das licenças a serem pagas pelo uso das monomídias, que será negociado individualmente no caso de Ginga-NCL ou Ginga-J versão JavaDTV. No caso do GEM, a negociação poderia ser integrada.
Finalizando, todas as opções parecem ser compostas por tecnologias boas e eficientes. No entanto, a indefinição quanto ao domínio tecnológico do JavaDTV e o pagamento de royalties do GEM são limitantes. Dessa forma, a opção Ginga-NCL mais Lua, como linguagem não declarativa, é a melhor opção no momento, cabendo ainda uma avaliação sobre os valores dos royalties das monomídias.
Atenciosamente,
Valdecir Becker
Universidade Metodista de São Paulo
Seg 16 Mar 2009
Publicado por Valdecir Becker sob
InformaçãoSem Comentários
A TV Cultura de São Paulo desistiu de desafiar o governo federal e tirou do ar os dois canais adicionais, que caracterizava a multiprogramação. Depois de um debate mal formulado e centrado em questões políticas irrelevantes neste momento, perdeu-se a oportunidade de discutir algo muito mais relevante: a pertinência da multiprogramação.
Na semana passada, a troca de farpas entre o ministro Hélio Costa e o presidente da TV Cultura, Paulo Markun, pareceu briga de criança. Só faltou discutir quem era mais feio. Por um lado o ministro mandava tirar o sinal do ar, sem mais argumentos. Por outro, Markun afirmava que essa decisão não cabia a ele e que nada seria feito. Só depois da intervenção da Casa Civil, através do assessor André Barbosa, o clima foi apaziguado. Ambos saíram derrotados da briga: a TV Cultura, que tirou o sinal do ar; o ministério, que mais uma vez se viu submetido à Casa Civil. Lembram do bate boca público de uns anos atrás?
Nesta semana o governo federal deve conceder uma licença de caráter experimental para a TV Cultura recolocar os canais no ar. Vale lembrar que a maioria das emissoras comerciais é radicalmente contra a multiprogramação. Alegam que ela poderia canibalizar a audiência, o que não seria suportado pelo mercado publicitário. Lá no fundo, é medo da concorrência mesmo, uma vez que já está mais que provado que há recursos monetários disponíveis para manter mais canais, descentralizados e focados em mercados menores. É esse tipo de debate que deveria anteceder a briga jurídica que se instalou. Mais uma vez, como em praticamente todo processo de decisão da TV digital brasileira, os interesses sociais ficaram em segundo plano.
Quando isso acontece na esfera política ou econômica não há surpresas. No entanto, quando a TV Cultura se presta (ou é usada) a esse tipo de jogo, o debate fica totalmente comprometido e sem perspectivas de uma abordagem mais séria.
Sex 13 Mar 2009
Publicado por Günter H. Herweg Filho sob
Formação[2] Comentários
Texto originalmente publicado no portal iMasters
Neste primeiro artigo irei apresentar a linguagem de programação Lua, a linguagem procedural do subsistema Ginga-NCL, parte integrante do sistema Ginga. Explanarei sobre suas características, sua origem, qual sua aplicação no meio de televisão, enfim, uma introdução dos principais conceitos. Inicialmente o foco será na linguagem pura e, gradativamente, será voltada para aplicações para televisão digital.
Lua é uma linguagem de programação em script, planejada para estender aplicações escritas nas mais diversas linguagens. Oferece bom suporte a programação funcional, programação orientada a dados e até programação orientada a objetos. Por sua natureza extensível, Lua funciona embarcada em um programa “hospedeiro” ou, também chamado programa principal, que pode chamar funções ou trechos de código Lua, ler e escrever em variáveis e ainda registrar funções da linguagem C a serem invocadas por Lua, pois esta é escrita em C.
Logo veremos que um NCLua (programa Lua para plataforma de televisão digital), é justamente isso, uma parte de um documento NCL.
Existem outras linguagens de script similares a Lua nos propósitos, como Perl, Tcl, Ruby, Forth, e Python. Porém, nenhuma outra linguagem oferece esse conjunto de características:
• Extensibilidade: É fácil prover uma interface de comunicação de Lua com linguagens como C/C++, Fortran, Java, Smalltalk, Ada e outras linguagens de script.
• Simplicidade: Lua é simples e pequena (leve).
• Eficiência: Comparativos mostram que Lua esta entre as linguagens interpretadas mais rápidas.
• Portabilidade: Lua roda em TODAS plataformas existentes.
A biblioteca de Lua, ou seja, sua API, a máquina de execução, e o interpretador de linha de comando são softwares livre. A comunidade de programadores já é bem vasta principalmente no exterior onde a linguagem é mais popular e possui uma boa documentação como manuais, artigos e livros.
Surgimento.
A linguagem Lua teve seu inicio em 1993 quando seus criadores, Roberto Lerusalimschy, Luiz H. de Figueiredo e Waldemar Celes, juntaram suas idéias e esforços para a criação de uma linguagem ágil, portável, completa e, apesar disso, simples.
Foi projetada e desenvolvida no laboratório TecGraf e atualmente esta sob responsabilidade do LabLua, ambos na PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro).
Nos primeiros anos de existência, Lua era usada em projetos internos e sua evolução lenta e gradual, na medida em que se descobria o verdadeiro potencial da nova linguagem.
Mercado.
A comunidade internacional conhece Lua muito bem e já usufrui de seus benefícios a muito tempo.
Uma pesquisa informal feita pelo site gamedev.net de setembro de 2003 mostrou que Lua é a linguagem mais usada para script em jogos, cerca de 20% dos jogos são desenvolvidos com Lua, contra 7 % da segunda colocada, Python. Empresas como LucasArts, BioWare, Microsoft, Relic Entertainment, Absolute Studios eMonkeystone Games desenvolvem jogos usando Lua.
A ferramenta de gerenciamento de fotos digital da Adobe, o Lightroom tem mais de 40% de seu código escrito em Lua.
Podemos citar outras aplicações como firmware para impressoras, analisadores de protocolos,ferramentas de pós-produção de filmes e servidores Web.
Aqui no Brasil a linguagem faz parte do nosso sistema de televisão digital sendo usada para o desenvolvimento de aplicações interativas, sua engine será parte integrante do middleware Ginga.
Lua no Ginga.
Alguns conceitos importantes: As aplicações interativas para Ginga podem ser puras, onde somente uma linguagem é usada no desenvolvimento, ou híbridas, quando misturamos linguagens na aplicação. Vejamos os casos:
Podemos ter um documento NCL com código procedural (estendido) Lua, que chamamos NCLua. Neste caso, o programa principal é escrito em NCL e um de seus nós de conteúdo é um documento com código Lua, ou seja, um programa Lua que é invocado pelo programa NCL principal.
Um caso similar é quando temos um documento NCL com código procedural (também estendido) Java, que chamamos de NCLet.
Quando falamos de aplicações puras, podemos ter aplicações feitas somente em Java, que chamamos de Xlet, ou somente em NCL. Aplicações feitas somente em Lua não são permitidas, pois, como falei anteriormente, Lua precisa de um programa hospedeiro.
A arquitetura dos decodificadores full-seg prevê a máquina de execução Lua e a Máquina Virtual Java (JVM) como partes obrigatórias. Assim como NCL e Java como linguagens de programação obrigatórias. Isso quer dizer que a linguagem Lua junto de NCL e Java poderá ser usada em todas as aplicações interativas, pois a norma prevê suporte para que elas executem sem problemas.
Mas quando mudamos o foco para receptores one-seg, que são os dispositivos portáteis, como celulares, a linguagem Java passa a ser opcional, enquanto Lua é obrigatória. Em termos práticos isso quer dizer que se alguma empresa que desenvolve aplicativos para celular o fizer usando linguagem Java, corre o risco de algum receptor não aceitar a aplicação porque o fabricante do dispositivo decidiu não colocar a JVM no aparelho. Esse problema não acontece com aplicações feitas em Lua, pois a norma prevê que todos os aparelhos devem obrigatoriamente dar suporte a aplicações Lua.
As figuras abaixo resumem as arquiteturas. A primeira camada são os aplicativos, escritos em NCL, NCLua ou Java (Xlet) no caso de receptores fixos. Na segunda camada estão as máquinas de execução, e por último o sistema operacional.
Figura 1: Arquitetura com Ginga-J e Ginga-NCL obrigatoriamente presentes: full-seg.
Figura 2: Arquitetura de dispositivo one-seg opcionalmente sem a máquina virtual Java.
Nos próximos artigos irei explorar a linguagem com conceitos e exemplos.
Günter Heinrich Herweg Filho.
Qua 11 Mar 2009
Publicado por Valdecir Becker sob
InformaçãoSem Comentários
Está divertida a briga entre TV Cultura e o Ministério das Comunicações sobre a multiprogramação. Proibida por norma do Ministério de colocar canais novos no ar, a TV Cultura, com apoio do governo do Estado, lançou domingo os canais Univesp (que já estava no ar para testes) e o Multicultura. A Cultura afirma estar baseada em pareceres jurídicos indicando a legalidade da transmissão. O Ministério afirma que os canais são piratas.
Ontem o ministério deu prazo de dois dias para que a Cultura tire os canais do ar. Hoje de manhã os dois funcionavam plenamente, com conteúdo SD próprio.
Será que começou a corrida presidencial do ano que vem, com duas propostas de sistemas de comunicação? TV Brasil pelo lado federal e TV Univesp pelo lado tucano?
Seg 2 Mar 2009
Publicado por Valdecir Becker sob
Informação1 Comentário
Estão abertas as inscrições para o Curso “Desenvolvimento de aplicações para TV digital usando Ginga-NCL e LUA”, oferecido exclusivamente pela ITV Producoes Interativas em parceria com o Laboratório Telemídia da PUC-Rio, desenvolvedor do middleware Ginga. O curso fornece os conceitos necessários para desenvolver aplicações interativas para TV digital, nas linguagens NCL e LUA, ambas criadas pela PUC-Rio. Serão abordadas as tecnologias envolvidas e que dão suporte à interatividade na TV digital brasileira; as linguagens NCL e LUA, especificadas pela ABNT; e as APIs de comunicação NCL-LUA.. As aulas acontecerão na Faculdade IBTA, em São Paulo, nos dias 31 de marco a 03 de abril, das 8:30 às 12:00 e das 13:30 às 17:00. Todo material utilizado no curso é desenvolvido e licenciado pela PUC-Rio, o que garante a qualidade e a compatibilidade com a norma brasileira definida pela ABNT.
Fruto de uma parceria inédita entre o Laboratório Telemídia da PUC-Rio e a ITV Produções Interativas, o curso dá continuidade a uma série de treinamentos já realizados. A ITV atua no mercado de TV Digital desde 2005, sendo a primeira empresa do país especializada em desenvolvimento e treinamento para o Ginga.
O Ginga é o middleware, um software que faz a ponte entre o sistema operacional do receptor de TV e as aplicações. Em outras palavras, é a plataforma da interatividade da TV digital brasileira, desenvolvida totalmente no país. É com base nesse software que o conteúdo interativo é desenvolvido. Já as linguagens NCL e LUA foram criadas pela PUC-Rio e são utilizadas para desenvolver aplicações interativas na TV digital. Até o momento apenas as linguagens NCL e Lua estão definidas como padrão da TV interativa no Brasil. As especificações estão disponíveis gratuitamente no site da ABNT.
Mais informações e inscrições em www.itvproducoesinterativas.com.br
Pelo e-mail itvtreinamentos @ gmail.com, ou com Alia Nasim, pelo fone 11 8130-1923.
Seg 2 Mar 2009
Publicado por Valdecir Becker sob
FormaçãoSem Comentários
Texto originalmente publicado no Portal Imasters
O desenvolvimento de aplicações para TV digital depende do domínio do que é interatividade e de como funciona a televisão. A interatividade para TV é diferente da interatividade na web. Essa percepção é fundamental para compreender os recursos que o Ginga oferece e as limitações que surgem com essa tecnologia. Em síntese, interatividade na TV digital é transmitir software junto com o fluxo de áudio e vídeo, que pode ser usado pelo telespectador através do controle remoto (jamais se esqueçam que a televisão não tem mouse, logo, não tem clique). Esse software, chamado tecnicamente de aplicativo, pode trazer informações adicionais à programação, como sinopses, jogos, acesso a bancos de dados, enviar informações e personalizar parte da programação televisiva. No entanto, é preciso considerar que qualquer tipo de personalização depende de um canal de interatividade, normalmente linha telefônica ou banda larga. Apenas as informações oferecidas a todos os receptores são transmitidas pelo fluxo de áudio e vídeo.
Em outras palavras, para quem está acostumado a criar conteúdos para a internet, a interatividade na TV digital pode parecer limitada. Já para quem fazia vídeos, cuja única reação do telespectador era trocar de canal, colocar um DVD ou baixar o vídeo na web, a interatividade abre um mundo de possibilidades.
Com isso em mente, vamos apresentar na seqüência as principais ferramentas para começar a desenvolver e testar aplicações para TV digital. Como o NCL é uma linguagem declarativa baseada em XML, bastante complexa se comparadas a outras, mas por isso mesmo completa, é possível criar programas interativos em qualquer editor XML (para os mais conservadores, pode-se usar até mesmo o bloco de notas). Recomendo o XMLPad, simples de usar e que checa a sintaxe XML. Já para quem tem conhecimento intermediário de programação e domina a IDE Eclipse, é possível instalar um plugin que estende a IDE para a linguagem NCL. Este plugin, além de checar a sintaxe XML, checa também os elementos básicos da linguagem NCL, facilitando um pouco o processo de debug do código.
É preciso considerar que as ferramentas listadas abaixo são fruto de trabalhos acadêmicos, visando desenvolver conhecimento em TV digital e interatividade, além de fomentar o início do mercado de desenvolvimento de aplicações. Dessa forma, todas as ferramentas tem limitações e carecem de assistência técnica. No entanto, os manuais e demais documentos disponibilizados pelo pessoal da PUC são muito bons e completos. Todos os softwares podem ser baixados gratuitamente nos sites Ginga-NCL (http://www.gingancl.org.br/) e Clube NCL (http://clube.ncl.org.br/). Exceção para o XMLPad, que pode ser localizado facilmente por qualquer ferramenta de busca, e o Ginga live CD, distribuído como CD (a imagem para download deve estar disponível em breve nesses sites).
Emulador Ginga NCL
Este software é a ferramenta mais fácil de ser usada e mais acessível. Através dele é possível abrir um arquivo NCL e controlar as ações através do controle remoto. No entanto, por ser implementado em Java e estar baseado no JMF, tem uma série de limitações. As principais são:
* A seqüência dos vídeos não é linear. Quando um vídeo é tocado em loop ou quando vários vídeos são encadeados, há uma quebra na seqüência dos vídeos, sendo que o último quadro de um não é ligado perfeitamente ao primeiro quadro do vídeo seguinte.
* Não há suporte a transparência. Algumas interfaces podem ser desenvolvidas em softwares como Adobe Photoshop ou Gimp e salvas no formato PNG, com níveis de transparência. Esses níveis aparecem chapados, na cor cinza, no emulador.
Além disso, o emulador não dá suporte à linguagem Lua.
O emulado Ginga NCL vem embutido na ferramenta composer e pode ser instalado como plugin na IDE Eclipse, o que facilita o desenvolvimento e teste de aplicações.
Composer
Trata-se de uma iniciativa muito interessante buscando desenvolver aplicativos em NCL sem a necessidade de conhecimentos de programação. O Composer oferece desenvolvimento visual das aplicações, através de quatro tipos de visualização dos componentes hipermídia:
* Temporal: apresenta uma linha do tempo com o comportamento de cada mídia a ser executada, com os sincronismos temporais, espaciais e a participação do usuário.
* Leiaute: apresenta uma visão do leiaute da estrutura espacial do aplicativo.
* Textual: apresenta as linhas de código NCL.
* Estrutural: apresenta o roteiro hipermídia da aplicação, com todas as mídias e suas conexões espaciais e temporais.
Todas as seções podem ser editadas, com atualização instantânea das demais. Por exemplo, uma alteração no código NCL é refletida instantaneamente na visão temporal, espacial e estrutural do documento. No entanto, a ferramenta ainda é bastante instável, sendo recomendada apenas para aplicações bem simples, que não envolvem muitas mídias.
Ginga NCL Virtual STB
Trata-se de uma implementação em C++ rodando em Linux e emulada no Windows. Assim, é necessário a instalação de um player de máquina virtual e de um SSH para carregamento e controle das aplicações. Apesar das instruções bem detalhadas na interface do set top box virtual, é recomendável um conhecimento básico em Linux para um uso pleno. A visualização das aplicações no STB virtual é um pouco mais demorada do que no emulador para Windows, mas o esforço vale a pena. Nesta ferramenta estão implementadas a maioria das funções Lua e a transparência funciona muito bem. A máquina virtual é limitada à resolução 640X480, o que impede testes de aplicativos para alta definição.
Emulador C++
Disponível apenas em código fonte para ser implementado na distribuição Fedora do Linux, este emulador exige conhecimentos avançados de Linux e a instalação de suas bibliotecas para rodar. Apesar da dificuldade trata-se de uma implementação bastante completa e compatível com a norma do SBTVD. Recomendado apenas para usuários avançados de Linux e programadores experientes.
Ginga Live CD
Versão mais amigável do emulador C++, dispensa instalações e conhecimentos de informática. Todo sistema operacional Fedora vem no CD, incluindo as bibliotecas e as APIs do NCL e Lua. Semelhante a distribuição Linux do Kurumin, não é necessário instalar nada na máquina. Basta dar o boot pelo CD, que o mesmo será descarregado na memória do computador. A partir deste ponto, é possível ver alguns exemplos que acompanham o CD, carregar aplicações por USB ou puxar a aplicativos do Clube NCL. É a ferramenta mais completa disponível para testes em computadores, mas tem o problema de necessitar um computador específico para ser executado, ou reiniciar o computador a cada teste.

Essas ferramentas são boas para desenvolver aplicações simples e testar conceitos. Em ambientes profissionais, para colocar aplicações no ar, são necessárias ferramentas mais completas e aderentes à norma da ABNT. Há empresas desenvolvendo soluções deste tipo, como Mopa, TQTVD e RCASoft. Essas estações de desenvolvimento e teste serão abordadas no futuro, quando tivermos esmiuçado as linguagens NCL e Lua, tema dos próximos textos.