You are on page 1of 31

3 Converso entre os Formatos NCL e MPEG-4

Um dos motivos para se definir padres de codificao do contedo audiovisual flexibilizar o intercmbio desse contedo entre diversas ferramentas, facilitando a sua concepo, distribuio e reutilizao. Em uma viso geral, esses benefcios podem ser estendidos s aplicaes multimdia/hipermdia. Porm, para essas aplicaes, faz-se necessrio, alm do intercmbio do contedo, prover o intercmbio dos formatos, utilizados na descrio das relaes entre os objetos de mdia que compem os documentos multimdia/hipermdia.
PUC-Rio - Certificao Digital N 0220932/CC

As linguagens declarativas NCL 2.0 e MPEG-4 (XMT-O, XMT-A) favorecem o intercmbio dos documentos de/para outros sistemas, por se basearem no formato padro XML. No entanto, mesmo entre linguagens declarativas XML, necessrio realizar a traduo das expresses na linguagem de origem quando se quer represent- las em uma outra linguagem de destino. A converso entre as linguagens NCL 2.0 e MPEG-4 (XMT-O, XMT-A) introduzida na Seo 3.1, atravs da anlise dos seus objetivos e requisitos. A seguir, na Seo 3.2, a converso entre NCL 2.0 e XMT-O discutida. Esse processo de traduo finalizado na Seo 3.3, atravs da converso de XMT-O para XMT-A. Finalmente, a implementao do conversor, automatizando as tarefas de traduo, apresentada na Seo 3.4. 3.1. Objetivos e Requisitos A converso primria, objeto deste captulo, consiste em representar no formato XMT-O, documentos, originalmente especificados no formato NCL, com a menor perda de representatividade possvel. O formato XMT-O, entre os formatos MPEG-4, foi escolhido por possuir uma representao declarativa mais prxima de NCL, em relao ao XMT-A e BIFS. Porm, como XMT-O no o formato de apresentao usual dos exibidores MPEG-4 (Joung & Kim, 2002),

Converso entre os Formatos NCL e MPEG-4

60

deve tambm existir um conversor, dos documentos XMT-O obtidos, para o formato XMT-A. Nesse ponto, a converso para BIFS direta, podendo inclusive ser realizada por ferramentas licenciadas como cdigo aberto. O intercmbio de documentos NCL para linguagens MPEG-4 possui vrias vantagens, entre as quais podem ser destacadas: Entre O armazenamento integrado da especificao dos relacionamentos com o contedo dos objetos de mdia; A distribuio de documentos NCL atravs de servidores de fluxos, facilitando sua divulgao a vrios usurios (clientes) simultneos; A apresentao de documentos NCL em exibidores MPEG-4 7 . os formatos MPEG-4, XMT-A e BIFS so diretamente

intercambiveis, ou seja, existe uma correspondncia biunvoca entre suas entidades. A converso de XMT-O para XMT-A, e conseqentemente para BIFS, tambm possvel, apesar do fato de que algumas construes de XMT-O
PUC-Rio - Certificao Digital N 0220932/CC

podero corresponder a vrias representaes no formato XMT-A, cabendo ao conversor escolher uma das possveis representaes (Kim et al., 2000). Porm, a converso de XMT-A, ou BIFS, para XMT-O no trivial, pois nesses casos pode ser necessrio descobrir as intenes do autor, num nvel mais alto de abstrao, a partir de especificaes num paradigma de sincronizao timeline, utilizadas pelas duas primeiras, como abordado na Seo 3.3. A abordagem de converso proposta nesta dissertao possui uma desvantagem em termos de eficincia, quando a converso de documentos NCL tem por objetivo a representao no formato XMT-A, ou BIFS, pois, nesses casos, duas ou trs converses em seqncia precisam ser aplicadas. Por essa razo, pode-se, como trabalho futuro, sintetizar os aspectos da converso em mdulos nicos. Como objetivo complementar, documentos no formato XMT-O devem poder ser convertidos para o formato NCL. Essa converso segue os procedimentos inversos da converso de documentos NCL para XMT-O. Entre as vantagens desse intercmbio destacam-se:

Espera-se desses exibidores, por adotarem um padro ISO/IEC, uma distribuio em

escala industrial, de forma similar ao que atualmente ocorre aos exibidores compatveis com os padres MPEG anteriores (MPEG-1, MPEG-2).

Converso entre os Formatos NCL e MPEG-4

61

A preservao da semntica dos relacionamentos especificados em XMT-O, atravs da sua representao utilizando conectores NCL; A disponibilidade de ferramentas para autoria (Costa, 1996; Pinto, 2000; Moura, 2001; Coelho, 2004), controle de verses (Batista, 1994), trabalho cooperativo (Gorini, 2001) e apresentao (formatao) (Rodrigues, 2003), fornecidas pelo sistema HyperProp.

Alm das vantagens citadas, a integrao NCL / XMT-O expe as construes de XMT-O que no possuem representao em NCL, trazendo como contribuio a possibilidade de uma eventual incluso dessas estruturas em uma nova verso de NCL. 3.2. Traduo entre NCL e XMT-O Em alguns casos da converso entre NCL 2.0 e XMT-O, tem-se uma converso direta, uma vez que seus mdulos so idnticos. Em outros casos, essa converso necessita de uma reestrurao completa, considerando a existncia de mdulos que possuem funes semelhantes, porm estruturas distintas. Os casos mais complexos, entretanto, so aqueles onde no existem representaes comuns entre as linguagens, como, por exemplo, o mdulo dos conectores NCL. Com exceo dos casos onde a converso entre os mdulos de NCL 2.0 e XMT-O direta, nos demais podem existir restries para a traduo, sendo que, para alguns mdulos, essas restries podem inviabilizar a traduo. A fim de destacar os mdulos onde a converso possvel, nesta seo so propostos perfis 8 , que definem documentos interoperveis entre as linguagens. Para favorecer a compreenso das tarefas desenvolvidas no processo de converso, no restante desta seo apenas pontos crticos sero apresentados. Os detalhes envolvendo a traduo de atributos e entidades, bem como os exemplos das tradues, so abordados no Apndice B. Durante todo o restante deste captulo, as referncias linguagem NCL correspondero a sua verso 2.0.

PUC-Rio - Certificao Digital N 0220932/CC

Perfis de linguagem, normalmente, estabelecem um subconjunto dos mdulos de uma

linguagem.

Converso entre os Formatos NCL e MPEG-4

62

3.2.1. Traduo de NCL para XMT-O Os mdulos de NCL, apresentados na Tabela 3.1, definem um perfil denominado NCL-XMT, cujos mdulos podem ser convertidos para XMT-O e, conseqentemente, para XMT-A. Esse perfil tem como objetivo conter todos os mdulos de NCL que possuem alguma representao em XMT-O, mesmo que exista algum tipo de restrio para a traduo.
Mdulos Structure Module BasicMedia Module MediaInterface Module Linking Module XConnector Module XTemplate Module XTemplate Use Timing BasicTiming Module AdaptableTiming Module Layout BasicLayout Module Presentation Specification BasicDescriptor Module Presentation Control ContentControl Module TestAttributes Module DescriptorControl Module Metainformation Metainformation Module Tabela 3.1 Mdulos de NCL que compem o perfil NCL-XMT reas Funcionais Structure Components Interfaces Linking Connectors Composite Templates

PUC-Rio - Certificao Digital N 0220932/CC

Entre os mdulos apresentados na Tabela 3.1, apenas os mdulos Structure, Metainformation e BasicTiming podem ser diretamente convertidos para XMT-O, no apresentando, portanto, restries nas tradues. Os dois primeiros so convertidos para os mdulos homnimos de XMT-O e, o ltimo, para o mdulo de XMT-O denominado BasicInlineTiming. Os mdulos BasicMedia, AdaptableTiming, BasicLayout , TestAttributes e ContentControl, apresentados na Tabela 3.1, possuem especificaes semelhantes s construes especificadas por alguns mdulos de XMT-O. No entanto, para a traduo entre os respectivos mdulos dessas linguagens, faz-se necessrio algum tipo de reestruturao. Entre os mdulos citados, destaca-se o BasicMedia, que define os objetos de mdia de um documento NCL, pois a maior parte da sua especificao pode ser diretamente traduzida para as construes do mdulo xMedia, definido em XMT-O. Apenas alguns dos tipos bsicos especificados no BasicMedia, bem como alguns de seus atributos, precisam ser interpretados e representados por outras construes em XMT-O, conforme discutido no Apndice B.

Converso entre os Formatos NCL e MPEG-4

63

Os mdulos BasicTiming e AdaptableTiming, que especificam o comportamento temporal da apresentao de um componente em NCL, possuem construes prximas ao mdulo FlexTime de XMT-O. No mdulo AdaptableTiming, uma funo de custo pode ser especificada. Nessa funo so especificados os valores, relativos ao tempo da apresentao, onde a taxa de exibio do objeto pode ser aumentada ou diminuda, bem como o custo dessas operaes. Por outro lado, no mdulo FlexTime, a adaptao especificada atravs da definio dos tempos mnimo, ideal e mximo para a apresentao, sem definir custos especficos relativos aos tempos mnimo e mximo. No FlexTime tambm possvel especificar as aes a serem executadas a fim de alcanar os limites de tempo estabelecidos. Dessa forma, na converso das construes do mdulo AdaptableTiming para XMT-O, os tempos para exibio podem ser representados sem a definio dos seus custos relativos. O mdulo BasicLayout de NCL, na converso para XMT-O, tambm
PUC-Rio - Certificao Digital N 0220932/CC

necessita de adaptaes, pois define uma estrutura de apresentao diferente da estabelecida pelo mdulo respectivo em XMT-O, denominado Layout . No mdulo BasicLayout a estrutura para apresentao de um documento formada por um conjunto de janelas, cada qual podendo conter um conjunto de regies, que, por sua vez, podem conter outras regies, recursivamente. No entanto, em XMT-O, o mdulo Layout , apesar de especificar as regies de forma similar ao BasicLayout , define uma estrutura formada por uma nica janela. Assim, na traduo das construes especificadas pelo mdulo BasicLayout para o mdulo Layout , uma nica janela deve ser construda, correspondendo a todas as janelas originais de NCL. Alm disso, pelo fato de NCL adotar o sistema de coordenadas geomtricas e XMT-O o sistema cartesiano, converses nas especificaes dos valores relativos ao posicionamento e s dimenses das regies tornam-se necessrias na traduo entre as linguagens. Os demais mdulos de NCL que, embora possuam representao em XMT-O, necessitam de adaptaes so definidos pela rea funcional Presentation Control. Na converso de documentos NCL para XMT-O, as construes dos mdulos ContentControl e TestAttributes podem ser representadas atravs do mdulo BasicContentControl. No ContentControl, um conjunto de componentes alternativos pode ser especificado atravs de um n switch. Complementarmente, os atributos de teste, que estabelecem as regras a serem consideradas para a

Converso entre os Formatos NCL e MPEG-4

64

escolha entre os componentes alternativos, so especificados atravs das construes do TestAttributes. Em XMT-O, o mdulo BasicContentControl, de forma similar ao ContentControl de NCL, tambm especifica um n switch para a escolha de alternativas. No entanto, esse n em XMT-O possui algumas diferenas em relao ao n homnimo definido em NCL. Entre essas diferenas, destaca-se a possibilidade, oferecida por NCL, de associar, atravs de elementos especficos (bindrule), as regras estabelecidas para a escolha dos ns alternativos. Essa forma de associao permite o reuso dos ns, independente das regras estabelecidas sobre eles, pois as regras encontram-se relacionadas ao n apenas no contexto da composio switch. Para realizar a converso para XMT-O as regras estabelecidas devem ser diretamente distribudas aos ns alternativos, na forma de atributos pertencentes aos ns. Para a definio das regras, atributos de testes so pr-estabelecidos em
PUC-Rio - Certificao Digital N 0220932/CC

XMT-O, atravs das construes especificadas pelo mdulo BasicContentControl. Em NCL, os atributos de teste, especificados atravs do mdulo TestAttributes, so, originalmente, iguais aos definidos pelo mdulo BasicContentControl. No entanto, ao contrrio do BasicContentControl, o mdulo TestAttributes exige que os atributos de teste sejam declarados no cabealho do documento, onde o nome do atributo e o seu valor associado devem ser especificados (Muchaluat-Saade, 2003). Essa declarao explcita ocorre em XMT-O apenas quando os autores necessitam especificar seus prprios atributos de teste, alm daqueles pr-definidos pela linguagem, utilizando para isso, as construes do mdulo CustomTestAttributes. O mdulo TestAttributes de NCL, pelas suas caractersticas, pode ser estendido, a fim de especificar tambm atributos especficos definidos pelos autores. Nesse caso, as construes desse mdulo podem ser convertidas para construes do mdulo CustomTestAttributes. Os demais mdulos do perfil NCL-XMT, apresentados na Tabela 3.1, correspondem aos casos mais complexos de converso, pois no possuem mdulos correspondentes em XMT-O. Entre eles, o mdulo BasicDescriptor especifica elementos descritores, no definidos em XMT-O. Em XMT-O, as informaes relativas aos descritores NCL encontram-se especificadas diretamente nos objetos. Assim, na converso de NCL para XMT-O, as

Converso entre os Formatos NCL e MPEG-4

65

informaes contidas nos descritores devem ser distribudas nos atributos dos objetos que os referenciam. Tambm sem correspondncia em XMT-O, o mdulo DescriptorControl especifica descritores que definem um conjunto de opes alternativas, destinadas a adaptaes no documento. Na converso para XMT-O, um conjunto de descritores alternativos torna-se um conjunto de objetos alternativos, cujas diferenas so apenas as informaes contidas originalmente nos seus descritores. Outros mdulos de NCL que no possuem representao em XMT-O so aqueles para especificao de interfaces. Em XMT-O, as nicas interfaces definidas so as ncoras embutidas nos elos dessa linguagem (ISO/IEC, 2001). Nos demais relacionamentos, como os estabelecidos atravs de eventos, XMT-O no define o uso de interfaces 9 . Apesar dessa restrio, as construes do mdulo MediaInterface, pertencente ao perfil NCL-XMT, podem ser parcialmente representadas em XMT-O atravs dos uso dos objetos sintticos, especificados no
PUC-Rio - Certificao Digital N 0220932/CC

mdulo xMedia. O mdulo MediaInterface especifica ncoras para os objetos de mdia da linguagem NCL, cujas propriedades (Muchaluat-Saade, 2003) so similares s dos objetos sintticos que representam figuras geomtricas em XMT-O, como retngulos e crculos (ISO/IEC, 2001). Para os elos e conectores de NCL, especificados pelos mdulos Linking e XConnector, respectivamente, ambos pertencentes ao perfil NCL-XMT, tambm no existem mdulos correspondentes em XMT-O. Como j mencionado, em XMT-O os relacionamentos so definidos atravs de composies com semntica de sincronizao, especificadas atravs dos mdulos BasicTimeContainers e ExclTimeContainers. Alm das composies, eventos, especificados principalmente atravs dos mdulos XMTEvents e EventTiming de XMT-O, tambm so empregados para especificar relacionamentos entre objetos de um documento. Elos de XMT-O so especificados atravs do seu mdulo Linking, definindo relacionamentos entre cenas audiovisuais distintas. Os elos e conectores definidos em documentos NCL podem ser representados, com algumas restries, atravs das composies e eventos de XMT-O. Os conectores NCL so especializados de
9

Exceto pelas ncoras que podem ser definidas no prprio contedo dos objetos de mdia,

atravs do mdulo MediaMarkerTiming (ISO/IEC, 2001).

Converso entre os Formatos NCL e MPEG-4

66

acordo com a sua semntica, em conectores causais ou de restrio (MuchaluatSaade, 2003). Independente do tipo do conector, a funo dos participantes determinada por um conjunto de papis que sero associados a eventos. Nos conectores causais, condies devem ser satisfeitas para a execuo de aes. Nesses conectores, os papis podem corresponder s condies ou s aes de uma relao. Na realidade, para cada evento, seus estados e transies, controlados pela mquina de estados especfica desse evento (Muchaluat-Saade, 2003), podem ser empregados na especificao dos papis de um conector. Na converso de documentos NCL contendo conectores causais para XMT-O, os eventos e papis desses conectores devem ser interpretados para a traduo. Papis que definem eventos de apresentao podem ser representados por construes especificadas atravs dos mdulos EventTiming ou SyncbaseTiming, ambos de XMT-O. O mdulo EventTiming define os atributos de incio (begin) e fim (end), que podem ser utilizados para representar o evento
PUC-Rio - Certificao Digital N 0220932/CC

de apresentao nas aes estabelecidas pelos conectores. Complementarmente, o mdulo SyncbaseTiming define o uso das mesmas expresses (begin e end), relacionadas a algum objeto do documento, podendo representar os eventos de apresentao como condio do conector causal. Alm do SyncbaseTiming, o mdulo XMTEvents especifica uma srie de outros eventos (ISO/IEC, 2001) que podem ser utilizados para representar as condies de um conector causal. A especificao de como os papis de um conector so relacionados definida por um elemento denominado glue. Em um conector com semntica causal, o glue define tanto uma expresso de condio ( condition-expression) quanto uma expresso de aes (action-expression), que podem ser simples ou composta (Muchaluat-Saade, 2003). Uma expresso de condio simples pode ser representada em XMT-O, desde que os eventos e transies relacionados ao conector sejam definidos nos mdulos de XMT-O. Por outro lado, as expresses de condio composta, que permitem relacionar qualquer nmero de papis atravs de operadores booleanos, somente podem ser representas no caso do operador ou ( o r), atravs do mdulo MultiArcTime de XMT-O. De forma similar, uma expresso de aes simples pode ser representada em XMT-O, desde que os eventos relacionados a essa ao sejam definidos nos mdulos dessa linguagem. As expresses de aes compostas so definidas por expresses utilizando os operadores par, seq ou excl, envolvendo outras expresses de aes.

Converso entre os Formatos NCL e MPEG-4

67

Essas expresses, caso contenham eventos que iniciem a apresentao dos objetos, podem ser traduzidas para as composies da linguagem XMT-O, conforme apresentado no Apndice B. Para os demais eventos essa traduo restrita a casos especficos. Ao contrrio dos conectores com semntica causal, os conectores com semntica de restrio no possuem representao em XMT-O. Nesses conectores os papis esto associados a alguma propriedade. Como exemplo, um conector desse tipo pode estabelecer uma relao onde dois objetos devem estar alinhados pelo topo, o que significa que as suas propriedades de deslocamento nessa dimenso devem ser iguais. Em XMT-O, esse tipo de especificao define uma referncia cruzada entre as propriedades dos objetos da cena audiovisual, sem expressar o valor efetivo dessas propriedades. Por fim, na Tabela 3.1, os mdulos da rea funcional Composite Templates, denominados XTemplate Module e XTemplate Use, tambm no possuem
PUC-Rio - Certificao Digital N 0220932/CC

representao nos mdulos de XMT-O, porm so considerados nesta dissertao componentes de pr-compilao. Portanto, antes da converso efetiva entre NCL e XMT-O, esses mdulos devem ser traduzidos para outras construes dentro da prpria linguagem NCL. Os mdulos de NCL que apresentam uma forte restrio para a representao em XMT-O e que, portanto, no foram includos nesta dissertao no perfil NCL-XMT so apresentados na Tabela 3.2. Um desses mdulos o BasicComposite, que em NCL responsvel pela definio dos ns de composio. Composies em NCL representam relacionamentos de incluso sem outra semntica associada. Por outro lado, as composies de XMT-O possuem semntica de sincronizao embutida. Dessa forma no possvel representar em XMT-O as relaes de incluso isoladamente.
Mdulos BasicComposite Module CompositeInterface Module AttributeInterface Module SwitchInterface Module Connectors CompositeConector Module Presentation Specification CompositeDescriptorModule Tabela 3.2 Mdulos de NCL no pertencentes ao perfil NCL-XMT reas Funcionais Components Interfaces

Devido as restries na traduo das composies de NCL para XMT-O, outros mdulos tambm tornam-se restritos, como os mdulos CompositeInterface, SwitchInterface, CompositeConector e CompositeDescriptor

Converso entre os Formatos NCL e MPEG-4

68

(Muchaluat-Saade, 2003). Alm dos mdulos relacionados s composies, o mdulo AttributeInterface, que permite a definio de atributos como pontos de interface, tambm possui restries de representao em XMT-O, pois nessa linguagem, de forma geral, no so previstas alteraes ou comparaes nos valores dos seus atributos. 3.2.2. Traduo de XMT-O para NCL A Tabela 3.3 apresenta os mdulos de XMT-O que fazem parte do perfil XMT-NCL. Os mdulos desse perfil, de forma complementar aos mdulos do perfil NCL-XMT, podem ser convertidos para os mdulos da linguagem NCL, ainda que com algumas restries para a traduo.
Mdulos BasicInlineTiming Module BasicTimeContainers Module ExclTimeContainers Module EventTiming Module MinMaxTiming Module MultiArcTiming Module RepeatTiming Module SyncbaseTiming Module XMT Events Module Time Manipulations FlexTime Module Content Control BasicContentControl Module CustomTestAttributes Module PrefetchControl Module Layout Layout Module Linking Linking Module Media Objects xMedia Module MediaDescription Module Metainformation Metainformation Module Structure Structure Module Macros Macros Module DEFS DEFS Module Tabela 3.3 Mdulos de XMT-O que compem o perfil XMT-NCL reas Funcionais Timing

PUC-Rio - Certificao Digital N 0220932/CC

Entre os mdulos da Tabela 3.3, os mdulos Structure, Metainformation e BasicInlineTiming, conforme citado na seo anterior, podem ser diretamente convertidos para os mdulos Structure, Metainformation e BasicTiming de XMT-O. Outros mdulos, apresentados na Tabela 3.3, foram abordados anteriormente, como os mdulos xMedia, Flextime, Layout, BasicContentControl e CustomTestAttributes, relativos, respectivamente, aos mdulos BasicMedia, AdaptableTiming, BasicLayout , ContentControl e TestAttributes, especificados

Converso entre os Formatos NCL e MPEG-4

69

em NCL. Entre esses mdulos, o xMedia possui elementos sem representao no mdulo BasicMedia, como os objetos sintticos de duas e trs dimenses (ISO/IEC, 2001). Ainda nesse mdulo, as informaes relativas apresentao devem ser traduzidas para as especificaes do mdulo BasicDescriptor de NCL. Complementarmente, o BasicDescriptor contm as informaes do mdulo MinMaxTiming de XMT-O, relativas aos tempos para apresentao de um determinado objeto. As construes relativas ao mdulo FlexTime de XMT-O, quando convertidas para NCL, podem ser parcialmente representadas atravs das especificaes do mdulo AdaptableTiming. Como o mdulo FlexTime no define o intervalo de tempo da apresentao em que a ao escolhida pode ser aplicada, nem o custo associado a essa ao, esses valores devem ser informados na converso dos documentos. As construes do mdulo Layout , quando traduzidas para as especificaes
PUC-Rio - Certificao Digital N 0220932/CC

do BasicLayout apresentam restries nas unidades dos valores, relativos s dimenses e ao posicionamento da janela e regies, uma vez que XMT-O utiliza o sistema de coordenadas cartesianas e, NCL, o geomtrico. Alm dessa diferena, em XMT-O, os valores dessas dimenses podem ser especificados em pixels ou metros (meter). Caso o sistema mtrico seja utilizado, na converso para NCL necessria a traduo dos valores dessas dimenses para pixels, medida adotada em NCL. Para a converso das construes do mdulo BasicContentControl de XMT-O, as especificaes dos mdulos ContentControl e TestAttributes de NCL so empregadas. Em XMT-O, as regras estabelecidas para a escolha dos objetos so definidas nos seus atributos. Na converso para NCL, essas regras, mesmo que pr-estabelecidas, devem ser explicitamente declaradas atravs das construes do mdulo TestAttributes. Como esse mdulo realiza a declarao das regras, ele pode ser estendido, a fim de declarar regras prprias dos autores, que em XMT-O so declaradas por construes do mdulo CustomTestAttributes. Os demais mdulos apresentados na Tabela 3.3, exceto os mdulos Macros, DEFS e PrefetchControl, so destinados especificao de relacionamentos em documentos XMT-O. As composies de XMT-O com semntica de sincronizao podem ser representadas atravs de ns e elos NCL. No Apndice B os modelos para essas representaes so apresentados. Em relao aos eventos,

Converso entre os Formatos NCL e MPEG-4

70

os mdulos EventTiming, RepeatTiming, MultiArcTiming, SyncbaseTiming e XMTEvents podem ser traduzidos para conectores causais, especificados atravs do mdulo XConnector. Entre esses mdulos, o EventTiming define os eventos, associados aos papis do tipo ao do conector causal. Na traduo, apenas o evento NCL de apresentao ( presentation) utilizado, com sua transio de incio (starts) ou de fim (stops), dependendo do atributo especificado em EventTiming (begin, end ). Por outro lado, os mdulos SyncbaseTiming e XMTEvents definem os eventos associados aos papis do tipo condio do conector causal. A Tabela 3.4 apresenta os eventos definidos nesses mdulos e a correspondncia com os eventos definidos em NCL.
Mdulo XMT-O Eventos XMT-O Eventos NCL EventTiming begin presentation EventTiming end presentation SyncbaseTiming begin presentation SyncbaseTiming end presentation XMTEvents click mouseclick XMTEvents mouseover mouseover Tabela 3.4 Correspondncia entre os eventos do perfil XMT-NCL Transies starts stops starts stops starts starts e NCL

PUC-Rio - Certificao Digital N 0220932/CC

O mdulo RepeatTiming

de XMT-O, quando traduzido para NCL,

especifica o nmero de vezes que um evento de apresentao deve ocorrer. O mdulo MultiArcTiming permite que mltiplas condies sejam associadas ocorrncia de um evento, correspondendo a uma expresso de condio composta do conector. Alm desses mdulos, o PrefetchControl de XMT-O tambm pode ser representado por conectores NCL que definem um evento de prefetch (Muchaluat-Saade, 2003). Por fim, na Tabela 3.3 os mdulos Macros e DEFS so considerados componentes de pr-compilao, de forma similar aos mdulos dos templates de composio hipermdia da linguagem NCL, devendo ser traduzidos para outras construes de XMT-O, antes de serem convertidos para NCL. Os mdulos de XMT-O que apresentam uma forte restrio para a representao em NCL e que, portanto, no esto includos no perfil XMT-NCL so apresentados na Tabela 3.5. As especificaes desses mdulos so descritas no Captulo 2.

Converso entre os Formatos NCL e MPEG-4

71

Mdulos AccessKeyTime Module FillDefault Module MediaMarkerTiming Module RepeatValueTiming Module RestartDefault Module RestartTiming Module SyncBehavior Module SyncBehaviorDefault Module SyncMaster Module Time Manipulations TimeManipulations Module Animation BasicAnimation Module SplitAnimation Module DragAnimation Module Media Objects MediaClipping Module MediaClipMarkers Module MediaGroup Module MediaAugmentation Module CustomXMT-AMedia Module Transitions BasicTransitions Module InlineTransitions Module TransitionsModifiers Module Tabela 3.5 Mdulos de XMT-O no pertencentes ao perfil XMT-NCL
PUC-Rio - Certificao Digital N 0220932/CC

reas Funcionais Timing

Entre os mdulos apresentados na Tabela 3.5, o MediaMarkerTiming, SyncBehavior, SyncBehaviorDefault e SyncMaster possuem funes especficas, herdadas de SMIL 2.0 e adaptadas s caractersticas do MPEG-4 Systems. O mdulo AccessKeyTime define eventos com origem no teclado, que poderiam estar includos aos eventos de NCL, de forma similar aos eventos obtidos atravs do mouse (mouseclick , mouseover). Os mdulos FillDefault , RepeatValueTiming, RestartTiming e RestartDefault definem condies para a execuo de um evento ou, no caso do FillDefault , o estado em que um objeto deve se encontrar quando a sua exibio termina. O mdulo TimingManipulations em XMT-O permite ao autor especificar operaes temporais sobre os objetos de mdia contnua. Essas operaes no so diretamente oferecidas em NCL, razo pela qual no foi explorada a converso desse mdulo nesta dissertao. Outros mdulos que no possuem ainda representao em NCL, so os mdulos de XMT-O relativos s reas funcionais Animation e Transitions. Embora presentes na verso 1.0 de NCL e presentes na verso 2.0, ainda no foram exploradas as definies de conectores para especificao de relacionamentos espaciais e baseados em atributos que poderiam dar suporte animao dos objetos de mdia pertencentes a uma apresentao (Moura, 2001).

Converso entre os Formatos NCL e MPEG-4

72

Por fim, entre os mdulos da rea funcional Media Objects, o mdulo CustomXMT-AMedia, que permite a insero de especificaes em XMT-A nos documentos XMT-O, poderia ter suas construes representadas em NCL, no entanto, como a traduo direta de construes em XMT-A para NCL no foi abordada, essa representao no foi considerada na traduo de XMT-O para NCL. 3.3. Traduo de XMT-O para XMT-A Na referncia (ISO/IEC, 2001) so definidas as tradues das construes no formato XMT-O para XMT-A. Nessa traduo a especificao em XMT-A, alm de representar as expresses em XMT-O, deve atender aos requisitos definidos pela arquitetura MPEG-4 Systems. Para isso, pode ser necessrio
PUC-Rio - Certificao Digital N 0220932/CC

especificar outras informaes, ausentes nos documentos XMT-O, tais como: Descritor de objetos inicial; Perfis e nveis adotados pela apresentao; Descritor de cenas para os comandos BIFS utilizados; Descritor de objetos, caso objetos de mdia sejam utilizados; Atualizao no descritor de objetos dos objetos de mdia utilizados; Definio de outros fluxos que sejam considerados necessrios (OCI, IPMP, MPEG-J etc.). Para cada informao adicionada ao documento XMT-A, vrios dados complementares podem ser fornecidos. Para o descritor de cenas, por exemplo, podem ser fornecidas informaes sobre o tamanho do buffer para armazenamento no receptor, sobre a prioridadade desse fluxo entre os demais, sobre a sua dependncia em relao a outros fluxos, entre outras. Devido ao fato do padro MPEG-4 j definir um mapeamento geral do formato XMT-O para XMT-A, esta seo ir concentrar-se na traduo dos seus relacionamentos, (ISO/IEC, 2001). Entre os relacionamentos definidos no formato XMT-A, destacam-se os relacionamentos de sincronizao temporal. A especificao desses pela importncia desse aspecto nos sistemas multimdia/hipermdia. Outros aspectos da converso podem ser obtidos em

Converso entre os Formatos NCL e MPEG-4

73

relacionamentos tradicionalmente segue o paradigma timeline,

onde

sincronizao definida atravs do posicionamento dos componentes de uma apresentao em relao a um eixo do tempo, ao contrrio do paradigma de eventos de restrio e causalidade seguido por NCL e XMT-O. O paradigma de timeline apresenta vrias limitaes, como, por exemplo, a restrio para representar eventos temporais de durao varivel ou desconhecida antes da execuo 10 , e dificuldades no reuso das especificaes e na manuteno das apresentaes, pois as mudanas individuais nos elementos para apresentao podem alterar toda a distribuio da sincronizao. Alm dessas limitaes, a ausncia de relacionamentos que especifiquem as intenes do autor em relao aos objetos na cena, uma vez que essas intenes so perdidas na linearizao do timeline, pode comprometer o sincronismo de toda a apresentao. Geralmente, objetos sincronizados possuem um significado em conjunto, motivando o estabelecimento desse relacionamento, como, por exemplo,
PUC-Rio - Certificao Digital N 0220932/CC

a exibio sincronizada de um vdeo e um udio para apresentao de um filme. Como os atrasos em um dos objetos sincronizados pode comprometer toda a apresentao, pode-se adotar estratgias de ajuste (Rodrigues, 2003), a fim de garantir que os relacionamentos sejam obedecidos e, conseqentemente, a qualidade da apresentao. Em um paradigma timeline, como as intenes do autor na concepo do documento no so conhecidas pelo exibidor, tais operaes de ajustes tornam-se impossveis, pois o exibidor no tem como inferir os relacionamentos pelo simples posicionamento temporal entre os objetos da apresentao. Na Figura 3.1 um documento XMT-O define uma composio seqencial (seq) contendo duas composies paralelas (par). Cada composio paralela, por sua vez, contm dois objetos, um do tipo udio e outro do tipo vdeo, exibidos simultaneamente quando a composio executada. As composies paralelas so subseqentes, isto , a segunda composio declarada ser executada logo aps a primeira.

10

Documentos hipermdia especificados em XMT-O, onde relacionamentos de

sincronizao so estabelecidos com a participao de um n switch, no podem ser representados em XMT-A, pois os componentes alternativos desse n podem conter duraes distintas para exibio, sendo desconhecido, antes da execuo do documento, o componente escolhido.

Converso entre os Formatos NCL e MPEG-4

74

<XMT-O xmlns=urn:mpeg:mpeg4:xmto:schema:2002" xsi:schemaLocation="urn:mpeg:mpeg4:xmto:schema:2002 xmt -o.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <layout type="xmt/xmt-basic-layout" metrics="pixel"> <topLayout height="120" width="160"/> </layout> </head> <body> <seq> <par> <img src="../multimedia/imagem1.jpg" /><audio src="../multimedia/audio1.mp3"/> </par> <par> <img src="../multimedia/imagem2.jpg" /><audio src="../multimedia/audio2.mp3"/> </par> </seq> </body> </XMT-O> Figura 3.1 Documento XMT-O com sincronizao temporal

Na converso do documento apresentado na Figura 3.1 para a linguagem XMT-A, ao invs de composies com semntica de sincronizao seqencial e
PUC-Rio - Certificao Digital N 0220932/CC

paralela, por restries dessa linguagem, apenas duas composies paralelas sero representadas. A primeira composio paralela de XMT-A, que ser executada a partir do incio da apresentao, ser responsvel pela exibio de dois objetos, relativos aos objetos da primeira composio paralela de XMT-O especificada na Figura 3.1. Na segunda composio paralela de XMT-A, dois objetos sero exibidos, relativos aos objetos de imagem e udio da segunda composio paralela de XMT-O tambm especificada na Figura 3.1. Seguindo o paradigma timeline, o incio da execuo dessa segunda composio ser determinado pelo clculo do tempo de apresentao do objeto de udio, especificado na primeira composio de XMT-A. Durante a apresentao de um documento hipermdia, como o documento XMT-O especificado na Figura 3.1, atrasos, impossveis de serem previstos, podem ocorrer. Esses atrasos podem ser provocados pelo sistema operacional utilizado na aplicao de exibio, pelo acesso ao contedo atravs de uma rede de comunicaes etc. Nesse caso, a ferramenta de exibio, conhecendo as intenes do autor, pode realizar ajustes na apresentao, garantindo que os objetivos na concepo do documento sejam alcanados. No entanto, no caso dos documentos XMT-A, como a especificao para apresentao dos objetos , tradicionalmente, temporalmente linear, ajustes no podem ser efetuados.

Converso entre os Formatos NCL e MPEG-4

75

Devido ao fato do paradigma timeline possuir vrias limitaes, o prprio padro MPEG-4 definiu o modelo FlexTime (ISO/IEC, 2001). Esse modelo permite especificar uma durao flexvel, atravs do estabelecimento de limites mnimos e mximos para a apresentao de um contedo. Alm dessa funcionalidade, o FlexTime, aplicado ao XMT-A, contrasta com o seu modelo temporal tradicional, ao permitir que relacionamentos possam ser efetivamente definidos entre objetos de mdia (Kim & Wood, 2002). Para alcanar seus objetivos, o FlexTime define trs tipos de relaes temporais, apresentadas a seguir: PUC-Rio - Certificao Digital N 0220932/CC

CoStart: O incio da execuo dos objetos realizado simultaneamente; Meet: O incio da execuo de um objeto subseqente ao trmino de outro; CoEnd: O trmino da execuo dos objetos realizado simultaneamente.

O modelo FlexTime possui uma representao declarativa em XMT-A, atravs, principalmente, dos elementos TemporalTransform e TemporalGroup. O primeiro permite especificar uma durao flexvel para os objetos de mdia, estabelecendo limites temporais, equivalentes aos definidos no mdulo FlexTime de XMT-O. O segundo define efetivamente os relacionamentos, atravs dos atributos booleanos, coStart , coEnd e meet , que podem, individualmente, ter valor booleano verdadeiro (true) ou falso (false). Os objetos a serem relacionados so definidos internamente a esse elemento, como em uma composio. A Figura 3.2 apresenta o documento XMT-A obtido a partir da converso do documento XMT-O apresentado na Figura 3.1, utilizando, desta vez, o mdulo FlexTime. No documento da Figura 3.2 so especificados quatro elementos do tipo TemporalTransform , cada um relativo a um objeto de mdia (dois udios e duas imagens). Cada elemento TemporalTransform define o tempo ideal da apresentao do objeto, atravs do seu atributo optimalDuration, e os tempos mximos e mnimos para apresentao, que podem ser utilizados como limites em operaes de ajuste elstico (Bachelet et al., 2000). Para definir os relacionamentos entre esses objetos, um elemento TemporalGroup especificado. Na Figura 3.2, esse elemento possui o atributo meet com valor verdadeiro (true). Dessa forma, os componentes internos a esse elemento sero apresentados seqencialmente.

Converso entre os Formatos NCL e MPEG-4

76

Ainda na Figura 3.2, internamente ao elemento TemporalGroup, dois outros elementos do mesmo tipo so especificados. Em cada um, seus atributos coend e costart possuem valores booleanos verdadeiros, significando que os componentes definidos internamente a eles iro iniciar e terminar simultaneamente suas apresentaes. Nesse documento XMT-A, a semntica especificada no documento XMT-O original preservada, pois os relacionamentos entre os objetos so mantidos no documento obtido na converso.
<XMT-A> ... <Body> <TemporalTransform DEF="Id_01" optimalDuration="30" scalability="20 40"> <children><Sound2D><source> <AudioSource url="od://ODID_1"/> </source></Sound2D></children> </TemporalTransform> <TemporalTransform DEF ="Id_02" optimalDuration="30" scalability="20 40"> <children><Shape> <geometry><Bitmap/></geometry> <appearance><Appearance> <texture><ImageTexture url="od://ODID_2"/></texture> </Appearance></appearance> </Shape></children> </TemporalTransform> <TemporalTransform DEF="Id_03" optimalDuration="20" scalability="10 30"> <children><Sound2D><source> <AudioSource url="od://ODID_3"/> </source></Sound2D></children> </TemporalTransform> <TemporalTransform DEF="Id_04" optimalDuration="30" scalability="20 40"> <children><Shape> <geometry><Bitmap/></geometry> <appearance><Appearance> <texture><ImageTexture url="od://ODID_4"/></texture> </Appearance></appearance> </Shape></children> </TemporalTransform> <TemporalGroup DEF="Id_05" coend="false" costart="false" meet="true"> <children> <TemporalGroup DEF="Id_05" coend="true" costart="true" meet="false"> <children> <TemporalTransform USE="Id_01"/> <TemporalTransform USE="Id_02"/> </children> </TemporalGroup> <TemporalGroup DEF="Id_05" coend="true" costart="true" meet="false"> <children> <TemporalTransform USE="Id_03"/> <TemporalTransform USE="Id_04"/> </children> </TemporalGroup> </children> </TemporalGroup> </Body> </XMT-A> Figura 3.2 Documento XMT-A com sincronizao atravs do FlexTime

PUC-Rio - Certificao Digital N 0220932/CC

Converso entre os Formatos NCL e MPEG-4

77

Um grande problema, contudo, vem do fato que, apesar das suas funcionalidades, o modelo FlexTime no obrigatrio e, portanto, no usado na implementao de algumas ferramentas, como o exibidor OSMO4 (Osmose) (GPAC, 2002) e o conversor MPEG4Box (GPAC, 2000). A biblioteca dos softwares de referncia do MPEG-4 (ISO/IEC, 2000b) possui uma implementao desse mdulo, cujo desenvolvimento creditado ao centro de pesquisas da IBM11 . No entanto, as ferramentas desenvolvidas nesse centro de pesquisas, voltadas para a traduo de XMT-O para XMT-A, tambm no utilizam o modelo FlexTime (AlphaWorks, 2005). A Figura 3.3 apresenta um documento XMT-O, que especifica uma composio seqencial contendo dois objetos de vdeo. Esse documento foi convertido para um documento XMT-A, apresentado na Figura 3.4, atravs da ferramenta XMTBatch, desenvolvida pelo centro de pesquisas da IBM 12 . No documento obtido a semntica da composio XMT-O foi perdida, mantendo-se apenas a seqencialidade da apresentao.
PUC-Rio - Certificao Digital N 0220932/CC

<XMT-O xmlns="urn:mpeg:mpeg4:xmto:schema:2002" xsi:schemaLocation="urn:mpeg:mpeg4:xmto:schema:2002 xmt -o.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <layout type="xmt/xmt-basic-layout" metrics="pixel"> <topLayout height="120" width="160"/> </layout> </head> <body> <seq> <video src="../multimedia/FlatPanel160x120.cmp" /> <video src="../multimedia/FlatPanel160x120.cmp"/> </seq> </body> </XMT-O> Figura 3.3 Documento XMT-O com composio seqencial <XMT-A> <Body> <par begin="0.0"> <Insert atNode="ROOT_ORDEREDGROUP_1"> <OrderedGroup DEF="GROUP_1"> <children><Shape> <geometry><Bitmap/></geometry> <appearance><Appearance> <texture> <MovieTexture url="od://ODID_1"/> </texture>

11 12

IBM Research (T.J. Watson), http://www.research.ibm.com Alphaworks emerging technologies IBM Toolkit for MPEG-4,

http://www.alphaworks.ibm.com/tech/tk4mpeg4

Converso entre os Formatos NCL e MPEG-4

78

PUC-Rio - Certificao Digital N 0220932/CC

</Appearance></appearance> </Shape></children> </OrderedGroup> </Insert> </par> <par begin="39.888"> <Delete atNode="GROUP_1"/> </par> <par begin="39.888"> <Insert atNode="ROOT_ORDEREDGROUP_1"> <OrderedGroup DEF="GROUP_4"> <children><Shape> <geometry><Bitmap/></geometry> <appearance><Appearance> <texture><MovieTexture url="od://ODID_2"/></texture> </Appearance></appearance> </Shape></children> </OrderedGroup> </Insert> </par> <par begin="79.776"> <Delete atNode="GROUP_4"/> </par> </Body> </XMT-A> Figura 3.4 Documento XMT-A convertido pela ferramenta XMTBatch

Na Figura 3.4, a composio seqencial definida em XMT-O transforma-se em duas apresentaes individuais dos seus componentes, com os intervalos das apresentaes calculados pelo conversor. A partir do clculo dos tempos de apresentao, os objetos so dispostos em composies paralelas. Dessa forma, quatro composies paralelas so instanciadas, a primeira, no incio da apresentao, exibe o primeiro vdeo, atravs de uma referncia ao descritor de objetos (od://ODID_1 ). Na segunda, o vdeo inicial removido, no instante de tempo 39,888 segundos, decorridos do incio da apresentao. No mesmo instante de tempo, calculado pelo conversor, a terceira composio iniciada, exibindo o segundo vdeo, atravs da referncia ao descritor de objetos (od://ODID_2). Finalmente, no instante de tempo 79,776 segundos, ao trminio do segundo vdeo, sua referncia removida, atravs do comando Delete especificado na ltima composio paralela. A Figura 3.5 apresenta os relacionamentos MPEG-4 das duas configuraes abordadas para uma apresentao seqencial de objetos de mdia, a primeira (1) no paradigma usado em XMT-O e a segunda (2) na representao tradicional de XMT-A.

Converso entre os Formatos NCL e MPEG-4

79

(1)
Figura 3.5 Relacionamentos MPEG-4 em XMT-O e XMT-A

(2)

3.4. Instncia do Framework para Compiladores As converses de documentos NCL para XMT-O e vice-versa, e dos documentos XMT-O obtidos para XMT-A so realizadas modularmente. Por exemplo, na converso inicial (NCL para XMT-O), cada mdulo do documento original analisado e as estruturas equivalentes em XMT-O so geradas. Essa abordagem proposta em (Silva, 2005), como um meta-framework para
PUC-Rio - Certificao Digital N 0220932/CC

linguagens XML modulares, a partir do qual os conversores foram gerados. A implementao do meta-framework para linguagens XML modulares (Silva, 2005) foi desenvolvida usando o pacote JAXP (Java API for XML Processing) (JAXP, 2003), biblioteca para processamento de documentos XML. Esse framework utiliza o modelo de documentos DOM Document Object Model (W3C, 1998b), padronizado pelo W3C, com o objetivo de manipular a estrutura XML contendo os elementos do documento. O meta-framework favorece a criao de instncias, frameworks, de estruturas de classes voltadas para a compilao especfica de uma linguagem, isto , para a traduo de uma linguagem declarativa para vrias outras. A estrutura de classes definidas nos frameworks subjetiva, porm baseia-se na modularizao das linguagens, onde, normalmente, uma classe criada para cada rea funcional definida na linguagem de origem. A partir da estrutura das classes, seus mtodos, abstratos e concretos, so definidos. Os mtodos concretos t m como objetivo realizar as tarefas genricas envolvidas na converso, enquanto os mtodos abstratos devem ser instanciados de acordo com a linguagem destino da converso. Na converso de NCL para XMT-O, a especificao do framework , com os mtodos concretos para selecionar os mdulos existentes em documentos NCL j se encontrava definida, sendo utilizada em trabalhos relacionados, por exemplo, na converso de NCL para SMIL (Silva, 2005). Para converso de NCL para

Converso entre os Formatos NCL e MPEG-4

80

XMT-O, teve-se, no entanto, de instanciar as classes relativas aos mtodos abstratos, a fim de definir as tarefas envolvidas na traduo. Para a converso de XMT-O para XMT-A, foi desenvolvido um framework para a linguagem XMT-O, permitindo a converso dessa linguagem para vrias outras. Como ins tncias especficas, foram desenvolvidos os conversores para NCL e XMT-A, atravs da instanciao de classes relativas aos seus mtodos abstratos. A Figura 3.6 apresenta o diagrama de classes da instncia do framework para compiladores NCL aplicado traduo para XMT-O. As classes principais so: NclXmtoComponentsParser, NclXmtoLayoutParser, NclXmtoLinkingParser, NclXmtoConnectorParser, NclXmtoInterfaceParser e NclXmtoPresentationSpecificationParser, NclXmtoPresentationControlParser. As reas

funcionais Timing e Structure de NCL, por inclurem poucos elementos tiveram suas funes absorvidas por outras classes. A rea funcional Metainformation no definida nessa verso do framework .
PUC-Rio - Certificao Digital N 0220932/CC

As classes principais apresentadas na Figura 3.6 so herdadas das classes originais do framework NCL, correspondentes s seguintes classes: NclComponentsParser, NclLayoutParser, NclLinkingParser, NclInterfaceParser e

NclConnectorParser, NclPresentationSpecificationParser,

NclPresentationControlParser. Alm dessas classes, uma outra, chamada NclXmtoDocumentCompiler, definida como a estrutura bsica de gerncia do compilador, centralizando as operaes. Atravs do seu mtodo parse, a converso entre as linguagens iniciada, utilizando a estrutura DOM do documento, onde o elemento raiz passado para o mtodo parseRootElement . Nessa classe, a estrutura do documento analisada, atravs dos mtodos definidos na classe NclStructureParser. Para cada parte especfica do documento, a classe relativa rea funcional dessa parte instanciada, por exemplo, no layout a anlise da estrutura responsabilidade da classe NclXmtoLayoutParser. Ao fim da converso, a classe NclXmtoDocumentCompiler, atravs do seu mtodo serialize, converte a estrutura DOM, obtida na transformao, para um arquivo declarativo. As classes principais apresentadas na Figura 3.6 definem, alm dos seus construtores, necessrios para iniciar parmetros gerais (como valores de variveis, instncias de listas e vetores etc.), uma srie de mtodos. As funes desses mtodos podem, geralmente, ser identificadas de acordo com sua nomenclatura, definida na especificao do meta-framework (Silva, 2005).

Converso entre os Formatos NCL e MPEG-4

81

Os mtodos iniciados com o nome parse sempre retornam objetos no modelo da linguagem de destino. Os mtodos iniciados com o nome create instanciam os objetos que representam o elemento declarativo na linguagem destino. Normalmente, os mtodos nomeados como create criam os objetos nas instncias finais dos elementos declarativos. comum um mtodo parse, concreto, acionar vrios mtodos create, criando vrios filhos no elemento declarativo e, por fim, retornando um elemento composto por vrios outros. Finalmente, os mtodos iniciados com o nome add so responsveis por adicionar objetos aos objetos pai do modelo de destino. Esses mtodos so sempre chamados pelos mtodos concretos do tipo parse, definidos nas classes herdadas do framework . Na Figura 3.6 algumas associaes diretas entre classes, exceo daquelas que contam com a participao de NclXmtoDocumentCompiler, foram omitidas, a fim de facilitar a compreenso do diagrama de classes e, conseqentemente, do processo de traduo.
PUC-Rio - Certificao Digital N 0220932/CC
NclConnectorParser XmtoConnector NclLinkingParser NclComponentParser XmtoParserFile

NclXmtoConnectorParser NclXmtoConnectorParser () parseActionRole() parseCausalGlue() parseConditionRole () parseConstraintGlue () parsePropertyRole() createCausalHypermediaConnector() createConnectorBase() createConstraintHype rmediaConnector() addConnectorToConnectorBase() addGlueToConnector() addRoleToConnector ()

NclXmtoLinkingCompiler NclXmt oLinkingCompiler () parseBind() createLinkByConnector () addLinkToLinkBase()

NclXmtoComponenteCompiler NclXmtoComponenteCompiler () createTimeBar() createArea() createBackGroudColorRegion() createBasicMedia () createBodyComposite() createComposite() addAreaToBasicMedia() addBaicMediaToComposite() addBindDescriptorToComposite() addChildToComposite() addCompositeToComposite() addDescriptorToBasicMedia() addLinkBaseToComposite() addPortToComposite()

NclXmtoDocumentCompiler NclXmtoInterfaceCompiler NclXmtoInterfaceCompiler() parseArea() parsePort() NclXmtoDocumentCompiler () parse() parseRootElement() addNewXmtoElement() addNewXmtoLayoutElement() appendBodyComposite() serialise()

NclStructureParser

NclInterfaceParser NclXmtoPresentationControlParser NclXmtoPresentationSpecificationCompiler NclXmtoPresentationSpecificationCompiler () parserDescriptor () createDescriptorBase () createParam () createDescriptor() createBindDescriptor() addDescriptorSwitchToDescriptorBase() addDescriptorToDescriptorBase() addParamToDescriptor() NclXmtoPresentationControlParser() parsePresentationRule () createCom positePresentationRule() createDescriptorSwitch() createPresentationRuleBase() createSwitch() addCompositeRuleToParentRule() addDescriptorToDescriptorSwitch () addPresentationRuleToRuleBase() addSimpleRuleToParentRule () addSwitchToComposite ()

NclXmtoLayoutCompiler NclXmtoLayoutCompiler() createLayout() createRegion() createTopLayout() addRegionToParentRegion () setCommonAttributes()

NclPresentationSpecificationParser

XmtoRule

NclPresentationControlParser

NclLayoutParser

Figura 3.6 Diagrama de classes do conversor NCL para XMT-O

Converso entre os Formatos NCL e MPEG-4

82

Na Figura 3.6, alm das classes e dos mtodos citados, outros so empregados com o objetivo de favorecer a traduo entre as linguagens. Como exemplo, pode-se citar a classe XmtoParserFile, empregada na traduo de objetos de mdia textuais para objetos sintticos XMT-O. Outras classes com funes similares so as classes XmtoRule e XmtoConnector, responsveis, respectivamente pela traduo das regras para controle da apresentao e pela traduo da semntica dos conectores. O diagrama de classes do framework para compiladores XMT-O apresentado nas Figuras 3.7 e 3.8. A primeira define o diagrama da converso para NCL e a segunda da converso para XMT-A. As classes principais representam Animation ContentControl
PUC-Rio - Certificao Digital N 0220932/CC

as

seguintes

reas

funcionais

de

XMT-O:

Timing

TimeManipulations

(XmtoNclTimingCompiler,

XmtoXmtaTimingCompiler); XmtoXmtaAnimationParser);

(XmtoNclAnimationParser, Layout Linking Transitions

(XmtoNclContentControlCompiler, (XmtoNclLayoutCompiler, (XmtoNclLinkingCompiler, (XmtoNclTransitionsCompiler, Metainformation e

XmtoXmtaContentControlCompiler); XmtoXmtaLayoutCompiler); XmtoXmtaLinkingCompiler); XmtoXmtaTransitionsCompiler); XmtoXmtaMediaObjectCompiler);

MediaObjects (XmtoNclMediaObjectCompiler,

(XmtoNclMetaInformationCompiler, XmtoXmtaMetaInformationCompiler); DEFS (XmtoNclDefinitionCompiler, XmtoXmtaDefinitionCompiler).

A rea funcional Structure tem suas funes especificadas pela classe XmtoStructure definida no framework . A rea funcional Macros, como j anteriormente mencionado, deve ser compilada antes de qualquer converso para outras linguagens.

Converso entre os Formatos NCL e MPEG-4

83

XmtoMetaInformationParser

XmtoMediaObjectParser

XmtoLinkingParser

XmtoTimingParser

XmtoNclMetaInformationCompiler

XmtoNclMediaObjectCompiler

XmtoNclLinkingCompiler

XmtoNclTimingCompiler

XmtoEventToLink

XmtoNclAnimationParser

XmtoNclDocumentCompiler

XmtoStructureParser

XmtoScheduleToComposite XmtoAnimationParser

XmtoNclContentControlCompiler

XmtoNclTransitionsCompiler

XmtoNclDefinitionCompiler

XmtoNclLayoutCompiler

XmtoContentControlParser

XmtoTransitionsParser

XmtoDefinitionParser

XmtoLayoutParser

Figura 3.7 Diagrama de classes do conversor XMT-O para NCL

XmtoMetaInformationParser

XmtoMediaObjectParser

XmtoLinkingParser

XmtoTimingParser

PUC-Rio - Certificao Digital N 0220932/CC

XmtoXmtaMetaInformationCompiler

XmtoXmtaMediaObjectCompiler

XmtoXmtaLinkingCompiler

XmtoXmtaTimingCompiler

XmtoXmtoAnimationParser

XmtoXmtaDocumentCompiler

XmtoStructureParser

XmtoAnimationParser

XmtoXmtaContentControlCompiler

XmtoXmtaTransitionsCompiler

XmtoXmtaDefinitionCompiler

XmtoXmtaLayoutCompiler

XmtoContentControlParser

XmtoTransitionsParser

XmtoDefinitionParser

XmtoLayoutParser

Figura 3.8 Diagrama de classes do conversor XMT-O para XMT-A

3.4.1. Exemplo do Uso dos Compiladores Os compiladores desenvolvidos para a converso entre os formatos NCL e MPEG-4 podem ser u tilizados tanto individualmente quanto em conjunto. Em (Costa et al., 2004) apresentada uma arquitetura para emprego dos compiladores. Nessa arquitetura, apresentada na Figura 3.9, o documento NCL convertido para MPEG-4 em camadas. Inicialmente, na camada superior, o

Converso entre os Formatos NCL e MPEG-4

84

documento processado e representado em XMT-O. Na segunda camada, intermediria, o documento XMT-O, anteriormente obtido, convertido para XMT-A. Finalmente, na camada inferior, a partir da descrio em XMT-A, possvel realizar um mapeamento direto para o formato BIFS. Nessa fase, os diversos objetos de mdia, referenciados no documento NCL original, tambm so convertidos em fluxos e agregados em um nico arquivo.
Documento NCL Camada Superior XMT -O Camada Intermediria XMT -A Camada Inferior Arquivo MP4

Figura 3.9 Arquitetura em camadas para o conversor MPEG-4


PUC-Rio - Certificao Digital N 0220932/CC

Para a implementao da camada inferior, pode-se usar o pacote de software oferecido pelo GPAC (GPAC Project on Advanced Content )13 devido s suas funcionalidades e tambm por ser licenciado como cdigo aberto. GPAC um subconjunto de implementaes dos softwares de referncia do padro MPEG-4. Dentro desse subconjunto existe um codificador capaz de converter documentos especificados em XMT-A para descries em BIFS. Alm disso, ele tambm capaz de converter os objetos de mdia em fluxos MPEG-4 e de realizar a multiplexao de todos os fluxos em um nico arquivo. A gerncia das trs camadas citadas realizada por uma interface de controle da troca de informaes e contedo entre os compiladores Java (NCL para XMT-O e XMT-O para XMT-A) e o codificador MP4Box, do GPAC, disponibilizado atravs de um arquivo executvel, compilado previamente a partir do seu cdigo fonte, escrito em C. Para ilustrar o uso dos compiladores, considere um documento NCL onde, no cabealho, um leiaute especificado definindo duas janelas com vrias regies. Ainda no cabealho, as informaes para apresentao so especificadas atravs de descritores. Nesse documento, uma composio, identificada por coisapele, contm um n de udio com uma msica. Nessa mesma composio, uma srie de

13

http://gpac.sourceforge.net

Converso entre os Formatos NCL e MPEG-4

85

arquivos texto contm partes da letra dessa msica. Esses arquivos so sincronizados com os respectivos intervalos do udio, atravs de elos. A Figura 3.10 apresenta esse documento NCL.
<?xml version="1.0" encoding="UTF-8"?> <ncl id="ncl_example-processed" xmlns="http://www.telemidia.puc-rio.br/specs/xml/NCL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.telemidia.puc-rio.br/specs/xml/NCL http://www.telemidia.puc-rio.br/specs/xml/NCL.xsd"> <head> <layout> <topLayout id="window1" title="Music Lyrics" height="300" width="600" > <region id="title" height="20%" width="100%" /> <region id="textRegion1" top="20%" height="80%" width="65%" /> <region id="imageRegion1" top="20%" left="65%" height="80%" width="35%" /> </topLayout> <topLayout id="audioWindow" title="Audio Control" top="300" height="50" width="600"> <region height="100%" id="audioRegion1" width="100%" /> </topLayout> </layout> <descriptorBase> <descriptor dur="94s" enableTimeBar="on" id="audio_d1" region="audioRegion1"/> <descriptor id="text_d0" region="title"/> <descriptor id="text_d1" region="textRegion1"/> <descriptor id="img_d1" region="imageRegion1"/> </descriptorBase> </head> <body> <port id="entrada1" component="coisaPele" port="musica"/> <composite id="coisaPele"> <port id="musica" component="samba"/> <audio descriptor="audio_d1" id="samba" src=" coisa.mp3"> <area id="part1" begin="8.4s" end="18s"/> <area id="part2" begin="18.5s" end="28s"/> <area id="part3" begin="29s" end="39s"/> <area id="part4" begin="39.5s" end="50s"/> <area id="part5" begin="50.5s" end="71.4s"/> <area id="part6" begin="72s" end="94s"/> </audio> <text descriptor="text_d0" id="title -coisaPele" src=" titulo01.txt"/> <text descriptor="text_d1" id="lyrics-part1" src="versos01.txt"/> <text descriptor="text_d1" id="lyrics-part2" src="versos02.txt"/> <text descriptor="text_d1" id="lyrics-part3" src="versos03.txt"/> <text descriptor="text_d1" id="lyrics-part4" src="versos04.txt"/> <text descriptor="text_d1" id="lyrics-part5" src="versos05.txt"/> <text descriptor="text_d1" id="lyrics-part6" src="versos06.txt"/> <img descriptor="img_d1" id="logotele1" src="logo.jpg"/> <linkBase> <link id="link1" xconnector="file:../ mediaContent/connectors/starts.xml"> <bind component="samba" role="on_x_presentation_begin"/> <bind component="logotele1" role="start_y"/> </link> <link id="link2" xconnector="file:../mediaContent/connectors/finishes.xml" > <bind component="samba" role="on_x_presentation_end"/> <bind component="logotele1" role="stop_y"/> </link> <link id="link3" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part1" role="on_x_presentation_begin"/>

PUC-Rio - Certificao Digital N 0220932/CC

Converso entre os Formatos NCL e MPEG-4

86

<bind component="lyrics-part1" role="start_y"/> </link> <link id="link4" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part1" role="on_x_presentation_end"/> <bind component="lyrics-part1" role="stop_y"/> </link> <link id="link5" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part2" role="on_x_presentation_begin"/> <bind component="lyrics-part2" role="start_y"/> </link> <link id="link6" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part2" role="on_x_presentation_end"/> <bind component="lyrics-part2" role="stop_y"/> </link> <link id="link7" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part3" role="on_x_presentation_begin"/> <bind component="lyrics-part3" role="start_y"/> </link> <link id="link8" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part3" role="on_x_presentation_end"/> <bind component="lyrics-part3" role="stop_y"/> </link> <link id="link9" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part4" role="on_x_presentation_begin"/> <bind component="lyrics-part4" role="start_y"/> </link> <link id="link10" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part4" role="on_x_presentation_end"/> <bind component="lyrics-part4" role="stop_y"/> </link> <link id="link11" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part5" role="on_x_presentation_begin"/> <bind component="lyrics-part5" role="start_y"/> </link> <link id="link12" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part5" role="on_x_presentation_end"/> <bind component="lyrics-part5" role="stop_y"/> </link> <link id="link13" xconnector="file:../mediaContent/connectors/starts.xml"> <bind component="samba" port="part6" role="on_x_presentation_begin"/> <bind component="lyrics-part6" role="start_y"/> </link> <link id="link14" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part6" role="on_x_presentation_end"/> <bind component="lyrics-part6" role="stop_y"/> </link> <link id="link15" xconnector="file:../mediaContent/connectors/starts.xml"> <bind comp onent="samba" role="on_x_presentation_begin"/> <bind component="title-coisaPele" role="start_y"/> </link> <link id="link16" xconnector="file:../mediaContent/connectors/finishes.xml"> <bind component="samba" port="part6" role="on_x_presentation_end"/> <bind component="title-coisaPele" role="stop_y"/> </link> </linkBase> </composite> </body> </ncl> Figura 3.10 Documento NCL coisa de pele

PUC-Rio - Certificao Digital N 0220932/CC

Converso entre os Formatos NCL e MPEG-4

87

A partir do documento NCL da Figura 3.10, utilizando os compiladores de NCL para MPEG-4, apresentaes audiovisuais podem ser exibidas diretamente em players MPEG-4, com aspecto visual e temporal similares aos obtidos caso o documento NCL fosse apresentado no formatador do sistema HyperProp. A Figura 3.11 apresenta o documento XMT-O obtido atravs da converso do documento NCL apresentado na Figura 3.10.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMT-O xmlns="urn:mpeg:mpeg4:xmto:schema:2002" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xmto="urn:mpeg:mpeg4:xmto:schema:2002" xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance" xsi:schemaLocation="urn:mpeg:mpeg4:xmto:schema:2002 xmt -o.xsd"> <head> <layout metrics="pixel" type="xmt/xmt-basic-layout"> <topLayout backgroundColor="white" height="350" id="window1" width="600"> <region id="title" size="600 60" translation="0 145"/> <region id="textRegion1" size="390 240" translation="-105 -5"/> <region id="imageRegion1" size="210 240" translation="195 -5"/> <region id="audioRegion1" size="600 50" translation="0 -150"/> </topLayout> </layout> </head> <body> <par id="ncl_example-processed"> <rectangle dur="indefinite" region="imageRegion1" size="210 240"> <material color="white" filled="true"/> </rectangle> <rectangle dur="indefinite" region="audioRegion1" size="600 50"> <material color="white" filled="true"/> </rectangle> <rectangle dur="indefinite" region="title" size="600 60"> <material color="white" filled="true"/> </rectangle> <rectangle dur="indefinite" region="textRegion1" size="390 240"> <material color="white" filled="true"/> </rectangle> <par id="coisaPele"> <par id="ncl-composite-1"> <audio dur="94s" id="samba" region="audioRegion1" src="coisa.mp3" /> <rectangle begin="samba.begin+8.4s" end="samba.begin+18s" id="part1" /> <rectangle begin="samba.begin+18.5s" end="samba.begin+28s" id="part2" /> <rectangle begin="samba.begin+29s" end="samba.begin+39s" id="part3" /> <rectangle begin="samba.begin+39.5s" end="samba.begin+50s" id="part4" /> <rectangle begin="samba.begin+50.5s" end="samba.begin+71.4s" id="part5" /> <rectangle begin="samba.begin+72s" end="samba.begin+94s" id="part6" /> <rectangle begin="samba.begin" end="samba.end" region="audioRegion1" size="600 50" > <material color="#C0C0C0" filled="true"/> </rectangle> <lines begin="samba.begin" color="#808080;#808080" colorPerVertex="false" coord="300 -24;300 -24" end="samba.end" region="audioRegion1"/> <lines begin="samba.begin" color="#808080;#808080" colorPerVertex="false" coord="299 -24;299 24" end="samba.end" region="audioRegion1"/> <lines begin="samba.begin" color="#DDDCDC;#DDDCDC" colorPerVertex="false" coord="-300 24;300 24" end="samba.end" region="audioRegion1"/> <lines begin="samba.begin" color="#DDDCDC;#DDDCDC" colorPerVertex="false"

PUC-Rio - Certificao Digital N 0220932/CC

Converso entre os Formatos NCL e MPEG-4

88

coord="-300 24;-300 -24" end="samba.end" region="audioRegion1"/> <rectangle begin="samba.begin" end="samba.end" region="audioRegion1" size="540 2"> <material color="#000000" filled="true"/> </rectangle> <group begin="samba.begin" end="samba.end" id="groupnclprocessedsamba" region="audioRegion1" visibility="true"> <animateMotion begin="groupnclprocessedsamba.begin" calcMode="linear" dur="94s" to="540 0"/> <rectangle size="16 16"> <material color="#C0C0C0" filled="true"/> <transformation translation="-270 0"/> </rectangle> <lines begin="groupnclprocessedsamba.begin" color="#808080;#808080" colorPerVertex="false" coord="-278 -8;-262 -8" end="groupnclprocessedsamba.end"/> <lines begin="groupnclprocessedsamba.begin" color="#808080;#808080" colorPerVertex="false" coord="-262 -8;-262 8" end="groupnclprocessedsamba.end"/> <lines begin="groupnclprocessedsamba.begin" color="#DDDCDC;#DDDCDC" colorPerVertex="false" coord="-278 8;-262 8" end="groupnclprocessedsamba.end"/> <lines begin="groupnclprocessedsamba.begin" color="#DDDCDC;#DDDCDC" colorPerVertex="false" coord="-278 8;-278 -8" end="groupnclprocessedsamba.end"/> </group> </par> <rectangle begin="samba.begin" end="samba.end" id="logotele1" region="imageRegion1" size="210 240"> <texture src="logo.jpg"/> </rectangle> <string begin="samba.begin" end="part6.end" id="title-coisaPele" region="title" textLines="&quot;Coisa de Pele&quot;;&quot;(Jorge Arago - Ivone Lara)&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> <string begin="part1.begin" end="part1.end" id="lyrics-part1" region="textRegion1" textLines="&quot;Podemos sorrir, nada mais nos impede&quot;;&quot;No d para fugir dessa coisa de pele&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> <string begin="part2.begin" end="part2.end" id="lyrics-part2" region="textRegion1" textLines="&quot;Sentida por ns, desatando os ns&quot;;&quot;Sabemos agora, nem tudo que bom vem &quot;;&quot;de fora&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> <string begin="part3.begin" end="part3.end" id="lyrics-part3" region="textRegion1" textLines="&quot; a nossa cano, pelas ruas e bares&quot;;&quot;Que nos traz a razo, relembrando &quot;;&quot;palmares&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> <string begin="part4.begin" end="part4.end" id="lyrics-part4" region="textRegion1" textLines="&quot;Foi bom insistir, compor e ouvir&quot;;&quot;Resiste quem pode, fora dos nossos &quot;;&quot;pagodes&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/>

PUC-Rio - Certificao Digital N 0220932/CC

Converso entre os Formatos NCL e MPEG-4

89

</string> <string begin="part5.begin" end="part5.end" id="lyrics-part5" region="textRegion1" textLines="&quot;E o samba se faz prisioneiro pacato &quot;;&quot;dos nossos tantans&quot;;&quot;E um banjo liberta da garganta do povo &quot;;&quot;as suas emoes&quot;;&quot;Alimentando muito mais a cabea de um &quot;;&quot;compositor&quot;;&quot;Eterno reduto de paz, nascente das &quot;;&quot;vrias feies do amor&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> <string begin="part6.begin" end="part6.end" id="lyrics-part6" region="text Region1" textLines="&quot;Arte popular do nosso cho&quot;;&quot; o povo quem produz o show e assina a &quot;;&quot;direo&quot;"> <material color="black"/> <fontStyle family="&quot;TYPEWRITER&quot;" justify="MIDDLE;MIDDLE" size="15" style="PLAIN"/> </string> </par> </par> </body> </XMT-O> Figura 3.11 - Documento XMT-O coisa de pele

As Figuras 3.12 e 3.14 exibem vises, em dois instantes de tempo (note a


PUC-Rio - Certificao Digital N 0220932/CC

barra de rolagem do udio), do documento MPEG-4 sendo apresentado.

Figura 3.12 Primeira viso da apresentao MPEG-4 no exibidor

Figura 3.13 Segunda viso da apresentao MPEG-4 no exibidor

You might also like