Integrando o Padrão MPEG-4 e o Ambiente NCL
Transcrição
Integrando o Padrão MPEG-4 e o Ambiente NCL
Integrando o Padrão MPEG-4 e o Ambiente NCL Romualdo M. R. Costa, Rogério Ferreira Rodrigues, Luiz Fernando Gomes Soares Departamento de Informática, PUC-Rio [email protected], [email protected], [email protected] Abstract This paper describes some features about the MPEG-4 integration with NCL (Nested Context Language) environmment. Exploiting the concept of templates, the paper proposal improves MPEG-4 document authoring, allowing the definition of new semantics for XMT-O compositions. Beside templates, the paper also proposes new relationships among objects inside distincts MPEG-4 scenes, not previously allowed. In the proposal, scenes can be represented using NCL compositions and relationships established using links and hypermidia connectors. Other benefits of the proposed integration discussed in the paper, is the conversion of an NCL document into an MPEG-4 specification (XMT-O), and vice-versa, allowing the use of specific players to present documents following any of these languages. 1. Introdução O MPEG (Moving Picture Experts Group) define uma família de padrões para codificação digital de informações de áudio e vídeo. Seus padrões iniciais, MPEG-1 [1] e MPEG-2 [2], focam principalmente em aspectos relacionados à codificação e decodificação dessas mídias. Por outro lado, a codificação do MPEG-4 [3], diferente da codificação linear de áudio e vídeo do MPEG 1 e 2, é baseada em objetos, isto é, as cenas audiovisuais são definidas em termos de objetos de mídia (vídeo, áudio, texto, imagem etc) codificados separadamente. Essa característica possui algumas vantagens: a abordagem orientada a objeto permite aos autores reusarem material áudio-visual; objetos podem ser codificados usando diferentes resoluções espaciais e temporais, e técnicas de compactação e compressão podem ser aplicadas de acordo com as características de cada mídia; objetos sintéticos, que variam entre objetos simples de duas dimensões como linhas e pontos até objetos complexos de três dimensões como animações faciais e corporais, podem fazer parte de uma apresentação em conjunto com os demais objetos de mídia naturais; e, finalmente, não há necessidade da decodificação dos objetos para poder manipulá-los e editar as seqüências, criando relacionamentos (espaçotemporais e interativos) entre eles. No MPEG-4, os relacionamentos entre os objetos são especificados através do formato BIFS (BInary Format for Scenes) [3]. A escolha de um formato binário facilita o armazenamento e a distribuição linear da especificação das relações entre os objetos em conjunto com o conteúdo desses objetos. No modelo proposto pelo MPEG-4, cada objeto de mídia de um documento pode ser codificado como um ou mais fluxos individuais, denominados fluxos elementares. Dois outros fluxos complementam o modelo: o fluxo descritor de cenas, que contém as informações das relações entre os objetos de mídia e é especificado usando o formato BIFS e o fluxo descritor de objetos, que especifica, entre outras informações, quais são os fluxos elementares que representam cada objeto de mídia do documento. Esse modelo pode ser aplicado em certos cenários, onde a sincronização de mídias provenientes de fontes diferentes é difícil de ser oferecida (ou mesmo inviável de ser obtida), como na distribuição de programas em plataformas de TV interativa. No entanto, especificar relacionamentos utilizando um formato binário é inapropriado para a autoria de cenas MPEG-4, que definem, de fato, documentos hipermídia/multimídia. Para facilitar a autoria de documentos, o padrão MPEG-4 propõe a utilização de duas linguagens declarativas: XMT-A e XMT-O [3]. Em XMT-A são definidas todas as expressões existentes em BIFS, sem perda de representatividade. No entanto, ao representar todas as expressões, essa linguagem tornou-se excessivamente complexa e extensa para a autoria. Como conseqüência, a linguagem XMT-O foi desenvolvida, com base na linguagem SMIL [6]. Essa linguagem reduz a complexidade da especificação, porém seu alto nível de abstração dificulta a sua tradução para o formato BIFS. Mais ainda, XMT-O herda uma série de limitações provenientes da benéfica simplicidade da linguagem SMIL [4], além de ter suas próprias limitações. NCL 2.0 (Nested Context Language) é uma linguagem modular que introduziu uma série de novos conceitos [4] para contornar limitações de linguagens modulares XML, e pode ter suas facilidades integradas ao padrão MPEG-4 com vantagens, como propõe este artigo. Na linguagem XMT-O, de forma similar a SMIL, as composições possuem semântica temporal. Dessa forma, para descrever relacionamentos de sincronização entre objetos pode ser necessário especificar composições com vários níveis de aninhamento. Templates NCL são estruturas hipermídia genéricas que podem ser herdadas por diferentes composições, dando-lhes semânticas genéricas, incluindo, como caso particular, a semântica temporal XMT-O. Sua utilização favorece o reuso e facilita o processo de autoria, principalmente quando é necessário especificar composições complexas, com vários níveis de aninhamento [4]. Com o objetivo de facilitar a autoria de documentos MPEG-4, a utilização de templates para XMT-O através da adaptação dos templates NCL é proposta neste trabalho. O padrão MPEG-4 define uma cena como uma composição que pode conter vários objetos, bem como, os relacionamentos entre eles. Independente do formato utilizado para especificar as relações, o MPEG-4 limita os relacionamentos entre objetos de cenas distintas. O único relacionamento definido é o de referência. Nesse caso, a cena de origem possui uma âncora associada a um objeto que, ao ser acionada, interrompe o desenvolvimento dessa cena e carrega a cena de destino, relacionada inicialmente através de um elo. O formato NCL [4] oferece vários recursos adicionais para autoria de documentos. Para permitir que os autores possam definir outros tipos de relacionamentos entre cenas MPEG-4, este trabalho propõe a utilização de composições para representação de cenas e o uso de conectores e elos NCL para definir novos relacionamentos. Conectores NCL permitem a especificação de relações de sincronização e de referência de forma independente das entidades relacionadas. Várias ferramentas de autoria e exibição foram desenvolvidas, tanto para NCL quanto para XMTO/MPEG-4. Documentos especificados no formato NCL podem ser apresentados através do formatador (player) do sistema HyperProp [5]. Por outro lado, o padrão MPEG-4 possui diversos exibidores (como M4Player2 e OSMO43) de fabricantes independentes. Para realizar a integração proposta neste trabalho, é necessário o desenvolvimento de conversores entre o formato NCL e os formatos definidos pelo MPEG-4 e vice-versa. A conversão entre os formatos permite que as ferramentas de autoria e exibição desenvolvidas para um formato possam ser utilizadas pelos demais. Como caso particular, documentos NCL poderão ser apresentados em exibidores MPEG-4 e documentos MPEG-4 no formatador HyperProp. Esta integração, entre outras possibilidades, permite se pensar na alternativa de uso do formatador HyperProp como middleware do terminal de acesso para o Sistema Brasileiro de TV Digital, bem como a NCL como 1 2 a linguagem para desenvolvimento de aplicações interativas, sem a perda de interoperabilidade com outros padrões, no caso, MPEG 4. 2. Integração dos Formatos MPEG-4 e NCL As propostas apresentadas neste trabalho exigem que várias implementações, ou adaptações, sejam realizadas. A seguir são descritos os trabalhos necessários para que os objetivos descritos na Seção 1 possam ser alcançados. 2.1. Templates para Autoria em MPEG-4 A linguagem NCL possui um módulo para definição de templates, denominado XTemplate, exemplificado na Figura 1, que pode ser utilizado em conjunto com XMTO. A definição é feita através de um vocabulário, que define tipos de componentes (nós), tipos de relações (modeladas por conectores e inclusão em composições) e pontos de interface; e de um conjunto de restrições sobre elementos do vocabulário e inclusão de instâncias de componentes e relacionamentos entre eles (modelados por elos). O módulo XTemplate é apresentado em detalhes em [4]. Como nem todas as entidades usadas em XTemplate existem no modelo em que XMT-O foi baseada (como, por exemplo, conectores), definiu-se um perfil XMTO/XTemplate, seguindo a mesma abordagem proposta para a utilização de XTemplate com SMIL [7]. No novo perfil, as relações são definidas principalmente nas inclusões de nós em composições. 1. 2. 3. 4. 5. 6. 7. <xtemplate id=”audio-with-subtitles”> <vocabulary> <component type=”song” ctype=”audio” maxOccurs=”1”> <port type=”track” maxOccurs=”unbounded” /> </component> <component type=”logo” ctype=”img” maxOccurs=”1” /> <connector src=”connector_base.xml#L” type=”L” maxOccurs=”unbounded” /> 8. <connector src=”connector_base.xml#P” type=”P” maxOccurs=”unbounded” /> 9. </vocabulary> 10. <constraints> 11. <constraints select=”count(child::*[@type!=’song’”] | child::*[@type!=’logo’]) = (count(child::*)-count(child::linkBase))”> description=”All components must be songs or logos”/> 12. <resource src=”logo.jpg” type=”logo” label=”logotele” /> 13. <link type=”L”> 14. <bind role=”source” select=”child::*[@type=’song’]”/> 15. <bind role=”target” select=”child::*[@type=’logotele’]”/> 16. </link> 17. <link type=”P”> 18. <bind role=”source” select=”child::*[@type=’song’]”/> 19. <bind role=”target” select=”child::*[@type=’logotele’]”/> 20. </link> 21. </constraints> 22. </xtemplate> Figura 1. Exemplo com o módulo XTemplate de NCL IBM Toolkit for MPEG-4: http://www.alphaworks.ibm.com/tech/tk4mpeg4 OSMO4 Osmose: http://www.comelec.enst.fr/osmo4/ Um conversor deve ser implementado para que essas especificações possam ser processadas antes da exibição. O processamento de templates pode estar agregado ao conversor utilizado para transformar as especificações XMT-O para o formato BIFS. A discussão sobre conversores é deixada para as próximas seções. 2.2. Relacionamentos entre Cenas MPEG-4 A especificação de relacionamentos entre cenas MPEG-4 necessita que a linguagem NCL seja adaptada para tratar essas cenas como objetos, no caso, nós de composição. Esses nós devem definir um ponto de interface para que, através de elos e conectores, os relacionamentos possam ser definidos. Todas as adaptações realizadas na linguagem NCL devem ser refletidas no seu formatador, para que exista consistência entre o trabalho de autoria e a apresentação dos documentos desenvolvidos. O formatador deve ser estendido para mostrar as cenas MPEG-4 como objetos de mídia e posteriormente obedecer aos relacionamentos definidos entre essas cenas. 1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2. <XMT-O> 3. <head> 4. <layout metrics="pixel" type="xmt/xmt-basic-layout"> 5. <topLayout height="350" id="window1" width="600"> 6. <region id="title" size="600 60" translation="0 145"/> 7. <region id="textRegion1" size="390 240" translation="-105 -5"/> 8. <region id="imageRegion1" size="210 240" translation="195 5"/> 9. <region id="audioRegion1" size="600 50" translation="0 -150"/> 10. </topLayout> 11. </layout> 12. </head> Figura 2. Exemplo de arquivo MPEG-4 A Figura 2 mostra um fragmento de um arquivo XMTO e uma tela com a exibição desse arquivo convertido para BIFS. O formatador adaptado poderá apresentar várias cenas simultâneas, permitindo estabelecer relacionamentos entre elas ou entre outros objetos do modelo, como vídeos, imagens, textos, entre outros. 3 GPAC Project on Advanced Content: http://gpac.sourceforge.net 2.3. Conversor do formato NCL para MPEG-4 A seção anterior apresentou como NCL pode ser usada para estender XMT-O e como programa (cenas) MPEG-4 pode ser exibido (com extensão de facilidades) no formatador HyperProp. Para permitir que documentos NCL sejam apresentados em exibidores MPEG-4, é necessário desenvolver uma ferramenta capaz de receber a especificação de um documento em NCL e convertê-la em uma descrição MPEG-4. Os princípios desse conversor são os mesmos da tradução de templates, mencionados em seção anterior, e da conversão do formato MPEG-4 para NCL. O desenvolvimento dessa ferramenta já foi concluído. A proposta para tradução de documentos NCL e dos objetos de mídia que compõem esses documentos em fluxos MPEG-4 é baseada em 3 camadas, conforme ilustrado na Figura 3. Inicialmente, na camada superior, o documento NCL é processado e representado em XMT-O. Na segunda camada, o documento XMT-O, anteriormente obtido, é convertido em XMT-A. Finalmente, na camada inferior, a partir do documento em XMT-A, é possível realizar um mapeamento direto para o formato BIFS. Nessa fase, os objetos de mídia também são convertidos em fluxos e agregados em um único arquivo. Figura 3. Arquitetura do conversor NCL – MPEG-4 Na camada superior as especificações originais em NCL são representadas em XMT-O. A dificuldade para a conversão entre essas linguagens varia de acordo com suas diferenças conceituais. Em alguns de seus módulos, que possuem representações semelhantes, a conversão é direta, em outros, com representações diferentes, essa tarefa exige uma reestruturação completa. Há ainda casos mais difíceis, como os dos módulos de NCL que não possuem representação em XMT-O. As propriedades dos documentos convertidos definem um novo perfil da linguagem NCL, XMT-O/NCL, garantindo a conversão de qualquer documento especificado segundo esse perfil. Na camada inferior foi utilizado um codificador do GPAC (GPAC Project on Advanced Content)3, um subconjunto de implementações dos softwares de referência do padrão MPEG-4, que disponibiliza um codificador para converter documentos especificados em XMT-A para descrições BIFS. Por ser licenciado como código aberto e por seguir o padrão de referência MPEG- 4, esse codificador foi escolhido para ser utilizado, através do seu arquivo executável, compilado previamente a partir do seu código fonte escrito em C. Note que a arquitetura em camadas do conversor NCL MPEG-4 permite sua extensão a outros projetos. A substituição da camada superior permite o uso em outros modelos conceituais. Outra extensão possível consiste na mudança de codificadores através da substituição da camada inferior. método define um framework para processamento de linguagens XML modulares, que foi utilizado na implementação de conversores NCL para SMIL e viceversa. 4. Conclusões A Seção 2.2 discutiu como um programa (cenas) MPEG-4 pode ser exibido (com relacionamentos diversos entre elas) no formatador HyperProp. Para tanto, o formatador HyperProp trata cenas MPEG-4 como um objeto de mídia, embutindo um player MPEG-4, em sua implementação, para a exibição das cenas. A última proposta deste trabalho é permitir a exibição de documentos MPEG-4 em um formatador (player) NCL, por meio de um conversor MPEG-4 para NCL. Nesse caso, o conversor realiza o trabalho oposto ao do conversor apresentado anteriormente, devendo esse conversor ser estendido para garantir a aplicação de ambas as proposições. Em virtude de suas características, a linguagem XMT-O foi escolhida para ser convertida para NCL. Novamente, um perfil XMT-O deverá ser definido, para garantir que qualquer programa especificado, usando esse perfil, possa ser convertido para NCL. Este trabalho apresenta várias possibilidades de integração do padrão MPEG-4 no contexto de sistemas hipermídia. A possibilidade de definir relacionamentos entre cenas MPEG-4 é uma das principais inovações propostas neste trabalho. Na fase de autoria são várias as contribuições. A possibilidade de definir templates para as composições na linguagem XMT-O favorecem a utilização do padrão MPEG-4 nessa fase. A integração entre o MPEG-4 e o NCL permite que ferramentas, principalmente aquelas projetadas para as fases de autoria e exibição, possam ser utilizadas por todos os formatos. Essa integração permite, por exemplo, que documentos especificados utilizando o formato NCL quando convertidos para o formato proposto pelo MPEG4 possam ser distribuídos (streaming) e exibidos por aplicações projetadas para o MPEG-4. Na fase de exibição uma contribuição importante é permitir que documentos especificados em MPEG-4 possam ser apresentados através do exibidor do sistema HyperProp, pois nos testes realizados, esse sistema apresentou uma qualidade superior no controle das apresentações. 3. Trabalhos Relacionados 5. Referências Existem alguns trabalhos que podem ser utilizados como base para implementação das propostas apresentadas. Os relacionamentos definidos entre cenas MPEG-4 devem ser apresentados no formatador (player) NCL, que deve ser estendido para aceitar esses objetos (Seção 2.2). Alguns exibidores oferecem bibliotecas para apresentação de cenas MPEG-4. Entre esses exibidores, destacam-se o M4Play do projeto IBM Tookit for MPEG4 e o OSMO4 do projeto GPAC. A adoção desses exibidores facilita o desenvolvimento, ao permitir o reuso de implementações complexas. Na definição dos templates para a linguagem XMT-O, o módulo XTemplate da linguagem NCL pode ser estendido seguindo a abordagem proposta em [7]. Nela, o módulo XTemplate foi estendido para trabalhar em conjunto com o SMIL, linguagem em que XMT-O foi baseada. O desenvolvimento dos conversores, para interpretar os templates de XMT-O, da linguagem NCL para as linguagens definidas pelo MPEG-4, e vice-versa, pode ser realizado utilizando o método proposto em [8]. Esse [1] L. Chiariglione, Short MPEG-1 Description, Technical Report ISO/IEC JTC1/SC29/WG11 NMPEG 96, Junho 1996. [2] L. Chiariglione, Short MPEG-2 Description, Technical Report ISO/IEC JTC1/SC29/WG11 NMPEG 00, Outubro 2000. [3] R. Koenen, Overview of the MPEG-4 Standard, Technical Report ISO/IEC JTC1/SC29/WG11 N4688, Março 2002. [4] H.V.O. Silva, D.C. Muchaluat-Saad, R.F. Rodrigues, and L.F.G. Soares, NCL 2.0: Integrating New Concepts to XML Modular Languages, ACM Symp. Document Engineering, Milwaukee, Novembro 2004. [5] R.F. Rodrigues, and L.F.G. Soares, Inter and Intra MediaObject QoS Provisioning in Adaptive Formatters, ACM Symposium on Document Enginnering, DocEng’03, Grenoble, França, Novembro 2003. [6] Syncronized Multimedia Integration Language, SMIL 2.0, W3C Recommendation, Agosto 2001. [7] H.V.O. Silva, R.F. Rodrigues, and L.F.G. Soares, SMIL + XTemplate, WebMedia & LA-Web 2004, Ribeirão Preto, Brasil, Outubro 2004 [8] H.V.O. Silva, R.F. Rodrigues, and L.F.G. Soares, Frameworks para Processamento de Linguagens XML Modulares, Relatório Técnico, Laboratório Telemídia, Puc-Rio, Brasil, 2004. 2.4. Conversor do formato MPEG-4 para NCL
Documentos relacionados
Produção de Conteúdo Declarativo para TV Digital - PUC-Rio
execução de seu programa. Entretanto, para isso, ele deve ser bem qualificado e conhecer bem os recursos de implementação. Nas linguagens declarativas, o programador fornece apenas o conjunto das t...
Leia mais