Ir para o conteúdo

Ginga-NCL

Ginga-NCL is the Ginga subsystem in charge of the presentation of NCL documents and was developed at PUC-Rio (Pontifical Catholic University of Rio de Janeiro). It defines a presentation environment for declarative applications written in NCL. NCL is an XML application language that provides support for specifying spatio-temporal synchronization among media objects, media content and presentation alternatives, exhibition on multiple devices, and live producing of interactive non-linear programs

What is NCL?

NCL is the acronym for Nested Context Language.

NCL is a declarative language, indeed an XML application, which has been specified in a modular way, aiming at combining its modules into language profiles.

Among the NCL profiles are those targeting DTV domain. The NCL flexibility, its reuse facility, multi-device support, application content and presentation adaptability, and mainly, its intrinsic support for easily defining spatio-temporal synchronization among media assets, including those coming from viewer interactions, make NCL an outstanding solution for all kinds of interactive DTV systems.

NCL is the declarative language of the Japanese-Brazilian DTV middleware ISDB-TB1 2, and also ITU-T Recommendation for IPTV services3.

NCL has a stricter separation between application content and structure. NCL does not define any media content itself. Instead, it defines the glue that holds media together in multimedia presentations. Thus, an NCL document only defines how media objects are structured and related in time and space.

As a glue language, NCL does not restrict or prescribe any media-object content type. Which media objects are supported depends on the media players embedded in the NCL formatter (the NCL player).

Therefore, we can have perceptual content, like videos, images, audios, and texts, as NCL media objects. We can also have media objects with imperative code content, like Lua code, ECMAScript code, Java code, etc. In addition, we can have media objects with declarative code content, like HTML-based code, SVG code, X3D code, SMIL code, NCL code (yes, NCL applications embed other NCL applications), etc. Therefore, NCL does not substitute but embeds other language's applications, relating all objects in time and space in a multiple device distributed presentation.

PUC-Rio Seminal Reports

These are seminal texts written by Luiz Fernando about the NCL and NCM.


  1. Associação Brasileira de Normas Técnicas. NBR 15606-2. Digital terrestrial television -- Data coding and transmission specification for digital broadcasting -- Part 2: Ginga-NCL for fixed and mobile receivers -- XML application language for application coding. 2nd Edition. May, 2011. Available at https://forumsbtvd.org.br/legislacao-e-normas-tecnicas/normas-tecnicas-da-tv-digital/english/ 

  2. Associação Brasileira de Normas Técnicas. NBR 15606-5. Digital terrestrial television -- Data coding and transmission specification for digital broadcasting -- Part 5: Ginga-NCL for portable receivers -- XML application language for application coding. 2nd Edition. May, 2011. Available at https://forumsbtvd.org.br/legislacao-e-normas-tecnicas/normas-tecnicas-da-tv-digital/english/ 

  3. ITU-T Recommendation H.761. Nested Context Language (NCL) and Ginga-NCL for IPTV Services. Geneva, April, 2009. Available at http://www.itu.int/rec/T-REC-H.761