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

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