GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es...

23
GINGA-NCL

Transcript of GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es...

Page 1: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

GINGA-NCL

Page 2: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Ginga-NCL● Los contenidos digitales transmitidos en la norma

ISDB-Tb incluyen programas de televisión y datos.– ISDB-Tb: Integrated Services Digital Broadcasting –

Transmisión Terrestre modificación Brasileña● Los datos pueden ser actualizaciones de software de

receptores o sistemas de archivos (con aplicaciones y archivos).

● Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones NCL/Lua (También Java, pero con menos soporte).

● Ginga es el nombre del middleware abierto desarrollado por Brasil.

Page 3: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Televisión Digital Interactiva

Otra vista equivalente a ésta pero más esquemática es la siguiente

Lado Transmisor

Lado Receptor

Page 4: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Sistema de TV Digital Terrestre

● El flujo de transporte o “Transport Stream ”(TS) es una abstracción, un flujo orientado a comunicar o almacenar uno o más programas y otros datos en ambientes donde hay errores (bits o paquetes perdidos).

Page 5: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Lado Transmisor:Generación de Transport Stream

ES PES TS

ES PES TS

ES: Elementary Stream

PES: Packet Elementary Stream

TS: Transport Stream Null.ts

app_Ginga app_Ginga TS

BTS

BTS: Broadcast Transport Stream

Page 6: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Nivel de encapsulamiento para un medio

Page 7: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Caso Video MPEG2

Page 8: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Paquetes de transporte TS y mutiplexación

Page 9: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Generación de Flujo de transporte (Transport Stream) MPEG-2

Flujos elementales(Video/audio/datos)

PCR(Program Clock Reference)

PMT: Program Map Table(Mapa de flujos elementales)

MUX

MUXFlujos de programas 1..n

Tabla de flujos de programas(PAT: Program Association Table)

Flujo de transporte

Flujo de programa

SI: Service Information, de varios tipos:● NIT: Network Information Table● SDT: Service Description Table● EIT: Event Information Table

Page 10: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Lado Receptor: Receptor de TV Digital o Set-top-box

Page 11: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Lado Receptor: Receptor de TV Digital o Set-top-box

Arquitectura completa

Sistema Operativo

GINGA-NCL Máquina Lua

Aplicac.Aplicac.Aplicac.

Page 12: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

NCL (Nested Context Language)● NCL es un lenguaje declarativo. Los lenguajes

declarativos se focalizan en qué deseamos hacer más que en cómo debe hacerse.

● Permite construir aplicaciones interactivas manipulando medios.

● Un medio pueden ser un: video, audio, imagen, una aplicación ncl (por eso se dice anidado), una página html, un programa Lua, texto, …

● La construcción de un programa NCL se reduce a definir lo siguiente: Qué medio mostrar, dónde va, cómo va y cuándo va.

Page 13: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Ejemplo● Qué medio? → Una imagen● Dónde? → En el centro de la pantalla● Cómo? → Que aparezca gradualmente● Cuándo? → después de 2 segundos● El lenguaje ofrece mecanismos para expresar

cada una de estas cosas.● La estructura general de todo programa ncl

tiene los siguientes elementos

Page 14: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Estructura general<ncl>

<head>

:

</head>

<body>

:

</body>

</ncl>

Por más detalles, ver aquí:

http://www2.elo.utfsm.cl/~elo323/2013/ncl.html#ncl

Page 15: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Dónde mostrar un medio● Para esto se define las regiones:● Las regiones se definen en la sección head.● Atributos:

– Id: identifica la región, es su nombre.– Height– width– Left, right, top, bottom– Zindex: para especificar

profundidad

Page 16: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Ejemplo de región:<?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="region_pantalla" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

<!-- Crea región en pantalla al 100%-->

<!--CABECERA-->

<head>

<!--REGIÓN-->

<regionBase>

<region id="rg1" width="100%" height="100%" zIndex="1"/>

</regionBase>

</head>

<!--CUERPO-->

<body>

<!--MULTIMEDIA-->

</body>

</ncl>

Page 17: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Qué mostrar● Elemento multimedia, <media> se incluyen el

la sección body.● Atributos:

– Id : nombre para el medio– Descriptor: nombre del descriptor que especifica

dónde, cómo.– Scr: “source”, path donde se ubica el elemento

multimedia– Type: define el tipo, es opcional.

Page 18: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Ejemplo de región con medio<?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="region_pantalla" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

<!--Presenta video en pantalla al 100%-->

<head>

<!--REGÓN-->

<regionBase>

<region id="rg1" width="100%" height="100%" zIndex="1"/>

</regionBase>

<!--DESCRIPTOR-->

<descriptorBase>

<descriptor id="desc1" region="rg1"/>

</descriptorBase>

</head>

<body>

<!--MULTIMEDIA-->

<media id="video" src="../media/video1.mp4" descriptor="desc1"/>

</body>

</ncl>

Page 19: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Cómo mostrar● Se usan descriptores, éstos van en el

encabezado.● Atributos:● Id: como en casos previos● Region: se debe poner un identificador de

región existente● ExplicitDur: define la duración del objeto

multimedia

Page 20: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Cómo parte el programa● Para definir el punto de partida, se usan las

puertas <port>● Atributos:● Id: como antes● Component: identificador de un elemento

multimedia

Page 21: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

1er: Programa completo ejecutable<?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="region_pantalla" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

<!--CABECERA-->

<head>

<!--REGÓN ¿Dónde? -->

<regionBase>

<region id="rg1" width="100%" height="100%" zIndex="1"/>

</regionBase>

<!--DESCRIPTOR ¿Cómo? En este caso no somos muy descriptivos -->

<descriptorBase>

<descriptor id="desc1" region="rg1"/>

</descriptorBase>

</head>

<body>

<!--MULTIMEDIA-->

<media id="video" src="../media/video1.mp4" descriptor="desc1"/>

<!--PUERTA-->

<port id="pentrada" component="video"/>

</body>

</ncl>

Ver: 00-region.ncl

Page 22: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Visión estructural de una aplicación

Puerto de partida: “puerta”

Sólo como referencia, no corresponde al programa previo.

Page 23: GINGA-NCLprofesores.elo.utfsm.cl/.../2s19/lectures/DTV/GINGA_NCL1.pdf · 2020. 2. 11. · Ginga es el nombre que recibe en la especificación el middleware que permite ejecutar aplicaciones

Revisaremos otros programas usando Eclipse