Trabajo Fin de Máster - Repositorio Digital Senescyt

Anuncio
UNIVERSIDAD POLITÉCNICA DE MADRID
Escuela Técnica Superior de Ingenieros de Telecomunicación
Máster en Tecnologías y Sistemas de
Comunicaciones.
Trabajo Fin de Máster
ESTUDIO COMPARATIVO Y DE INTEGRACIÓN PARA LAS
PLATAFORMAS DE TELEVISIÓN INTERACTIVA
EUROPEA HBBTV Y LATINOAMERICANA GINGA
Autor: Diego Fernando Villamarín Zapata
Tutor: José Manuel Menéndez.
Madrid - España
2014
AGRADECIMIENTOS
Agradezco en primer lugar a Dios por darme sabiduría y
humildad para luchar con perseverancia para alcanzar mis
objetivos, y por la bendición de tener a mi familia.
A mis padres, por el amor, cariño, comprensión, motivación
y ejemplo que siempre me han brindado y el apoyo incondicional
en los momentos difíciles que he pasado lejos de casa.
A Indy, a mis hermanos Mayra y Guillo, a toda mi familia y
mis amigos por su apoyo y motivación.
A todos mis profesores por las enseñanzas y la amistad
brindada, especialmente a Carlos Alberto Martin Edo y a mi
tutor José Manual Menéndez.
Al gobierno de la República del Ecuador encabezados por el
señor presidente economista Rafael Correa Delgado que gracias
a sus políticas de estado por medio de la Secretaría Nacional de
Educación
Superior,
Ciencia,
Tecnología
e
Innovación
me
brindaron todo el respaldo económico para poder realizar mis
estudios de postgrado.
2
DEDICATORIA
Este trabajo fin de Máster va dedicado con mucho cariño para
para mi familia y para Indy, en especial para mis padres porque
con éxito han sabido guiarme y apoyarme en el transcurso de mi
formación profesional, y con mucho afecto a mis amigos y
profesores que colaboraron en este proyecto.
3
Tabla de contenido
CAPÍTULO 1 (ESTADO DEL ARTE)
INTRODUCCIÓN ................................................................................................................ 7
TELEVISIÓN DIGITAL TERRESTRE (TDT) ............................................................................. 8
ESTÁNDARES DE TELEVISIÓN DIGITAL ........................................................................ 10
ISDB-Tb (Integrated Services Digital Broadcasting - Brazilian Terrestrial version) .... 12
PRINCIPALES CARACTERÍSTICAS DE ISDB-Tb .......................................................... 13
CARACTERÍSTICAS TÉCNICAS ISDB-Tb .................................................................... 14
IPTV (Internet Protocol Television) ................................................................................ 17
Servicios que ofrece IPTV ........................................................................................... 19
Modelo de la televisión IP .......................................................................................... 20
Arquitectura de IPTV .................................................................................................. 21
INTERACTIVIDAD EN TELEVISIÓN ................................................................................... 22
Avanzar hacia la televisión interactiva. ...................................................................... 23
Interactividad Local .................................................................................................... 24
Interactividad Completa ............................................................................................. 25
LA TELEVISIÓN HÍBRIDA .................................................................................................. 26
CAPÍTULO 2 (HbbTV y GINGA)
HBBTV (Hybrid Broadcast Broadband TV) ...................................................................... 31
NORMAS Y ESPECIFICACIÓN HBBTV ........................................................................... 35
FACTORES DE ÉXITO DE HBBTV .................................................................................. 37
APLICACIONES CON HBBTV ........................................................................................ 39
Presente y Futuro de HbbTv ....................................................................................... 41
MIDDLEWARE GINGA ..................................................................................................... 44
Arquitectura del Middleware Ginga ........................................................................... 46
Ginga-NCL (Nested Context Language) ...................................................................... 51
Ginga-J (Java) .............................................................................................................. 51
PRESENTE Y FUTURO DE GINGA ................................................................................. 52
RELACIÓN DE HbbTV CON GINGA .................................................................................. 53
4
CAPÍTULO 3 (ESTUDIO DE INTEGRACIÓN)
ESTUDIO DE INTEGRACIÓN DE HbbTV EN GINGA .......................................................... 55
Cómo cargar una aplicación HbbTV sobre GINGA...................................................... 55
Pruebas de aplicaciones HbbTV sobre GINGA............................................................ 56
Análisis del mejor Navegador para GINGA ................................................................. 58
ANT Galio Browser .................................................................................................. 62
Berkelium ................................................................................................................ 65
Google Chrome ....................................................................................................... 66
Mozilla Firefox ........................................................................................................ 67
FireHbbTV plugging ................................................................................................ 68
Opera HbbTV Emulator .......................................................................................... 68
Chromium Embedded Framework ......................................................................... 70
Iceweasel ................................................................................................................ 72
Webkit Web Browser ............................................................................................. 72
Konqueror Web Browser ........................................................................................ 74
Resultados de la evaluación de los navegadores ....................................................... 75
Integración del Chromium Embedded Framework en Ginga..................................... 79
CAPÍTULO 4 (APLICACIÓN Y ESTUDIO COMPARATIVO)
CREACIÓN DE UNA APLICACIÓN INTERACTIVA .............................................................. 82
APLICACIÓN INTERACTIVA DESARROLLADA EN GINGA ............................................. 82
APLICACIÓN INTERACTIVA DESARROLLADA EN HbbTV.............................................. 88
ESTUDIO COMPARATIVO DE LAS DOS PLATAFORMAS................................................... 93
COMPARACIÓN CUALITATIVA .................................................................................... 95
Experiencia Cualitativa en Base al Usuario............................................................. 95
Experiencia Cualitativa en Base al Programador. ................................................... 97
COMPARACIÓN CUANTITATIVA ................................................................................. 99
Experiencia Cuantitativa en Base al Usuario. ......................................................... 99
Experiencia Cuantitativa en Base al Programador. .............................................. 103
VENTAJAS Y DESVENTAJAS ....................................................................................... 104
CAPÍTULO 5 (CONCLUSIONES Y RECOMENDACIONES)
CONCLUSIONES............................................................................................................. 106
5
RECOMENDACIONES .................................................................................................... 107
REFERENCIAS ................................................................................................................ 108
GLOSARIO ..................................................................................................................... 112
ANEXO 1........................................................................................................................ 115
ANEXO 2........................................................................................................................ 118
ANEXO 3........................................................................................................................ 124
ANEXO 4........................................................................................................................ 135
6
CAPÍTULO 1
INTRODUCCIÓN
En la actualidad existen varios sistemas que permiten generar interactividad en
video, ya sean estos por un medio de difusión tipo broadcast como la televisión
digital terrestre TDT con los diferentes estándares a nivel mundial o ya sean por
multicast con la televisión bajo un protocolo de internet IPTV, por eso ahora es
común escuchar el concepto de televisión híbrida o televisión conectada, que no es
más que un sistema que une lo mejor de la televisión tradicional ahora en formato
digital, con lo mejor del internet.
Dentro de las diferentes plataformas para generar y exhibir interactividad en la
televisión, existen unas abiertas y otras cerradas o propietarias, por ejemplo las
diferentes marcas de fabricantes de televisores o receptores de televisión han creado
y adaptado sistemas de interactividad propietarias, y le han denominado con
nomenclaturas como Samsung Smart TV, Sony Smart TV, Apple TV, Google TV,
Androide TV, entre otras.
Para solucionar un problema de compatibilidad y que todas estas tecnologías
puedan converger en un mismo estándar y facilitar su desarrollo en Europa se creó
HbbTV, (Hybrid Broadcast Broadband TV) que es una plataforma de emisión de
contenidos bajo demanda combinando los servicios de radiodifusión (broadcast) y
banda ancha (broadband). Se trata de una iniciativa de la industria para armonizar la
emisión de contenido interactivo por radiodifusión o banda ancha y la entrega de
entretenimiento gratuito para el consumidor final a través de televisores inteligentes
o televisores conectados a set-top boxes. A través de la adopción de HbbTV, los
consumidores serán capaces de acceder a nuevos servicios de entretenimiento, que
7
pueden ser brindados por las estaciones de televisión, por servidores de internet o
por los fabricantes de televisiones o set top boxes, los servicios de entretenimiento
incluye, vídeo bajo demanda (VoD), publicidad interactiva, personalización,
votaciones, juegos y redes sociales, así como servicios relacionados con la
programación, como el texto digital y las guías de programación electrónica EPG [1].
En la TDT el panorama es similar existen varios sistemas de interactividad de
acuerdo a cada estándar algunos quizás más desarrollados y explotados que otros,
uno de ellos que quizás no tuvo tanta difusión y que actualmente se lo ha dejado de
utilizar es
MHP (Multimedia Home Platform) adoptado como sistema de
interactividad por el estándar de televisión digital europeo DVB (Digital Video
Broadcasting), por otro lado y quizás con mejor panorama para su desarrollo está el
sistema de interactividad de la norma japonesa brasileña ISDB-Tb (International
System Digital Broadcasting, Terrestrial, Brazilian version) denominado GINGA.
En el presente trabajo se muestra el estado del arte con antecedentes y
detalles sobre HbbTV y GINGA, se detalla sus características y se busca relacionar
estos sistemas analizando la posible coexistencia e integración de HbbTV sobre
aplicaciones GINGA, para el estudio de integración se muestra diferentes pruebas de
navegadores y se detalla el proceso que se debe seguir para lograr incluir el
navegador ideal dentro de GINGA para que logre mostrar aplicaciones HbbTV,
finalmente se realiza un estudio comparativo de los dos sistemas, para lo cual se
diseña y desarrolla una aplicación común que funcionará sobre las dos plataformas y
se termina con conclusiones y recomendaciones.
TELEVISIÓN DIGITAL TERRESTRE (TDT)
La televisión digital terrestre TDT transmite su señal íntegramente con
tecnología digital, lo que mejora la calidad tanto de audio como de vídeo y posibilita
incorporar servicios interactivos de televisión, permitiendo al usuario interactuar con
la programación ya sea en equipos receptores fijos, portátiles o móviles, con la
característica que el televidente ahora puede disfrutar de una señal mucho más
8
robusta, sin ruidos, sin interferencias, ni doble imagen, perfeccionando de este modo
los contenidos que el espectador está visualizando.
Además, la digitalización de la señal de televisión reduce el ancho de banda
necesario para la transmisión de cada canal, por lo que puede incrementarse el
número de canales de televisión o bien utilizar el ancho de banda sobrante para la
introducción de nuevos servicios.
El desarrollo de la televisión digital terrestre posibilita el acceso de los sectores
de población de escasos recursos económicos, a redes y servicios de
telecomunicaciones.
Producción
Empaquetado
Gestión del
Multiplexor
Transmisión
Recepción
Decodificación
Canal retorno
Interactividad
Fig. 1 Funcionamiento de la TDT
La figura 1 refleja el esquema de funcionamiento de la televisión digital
terrestre. Los contenidos audiovisuales se generan en la etapa de producción y
postproducción, a lo que sigue la etapa de empaquetado de los contenidos por parte
de los radiodifusores.
A continuación se llevan a cabo las actividades de gestión del múltiple, donde
se combinan los programas y servicios que integran cada uno de los canales múltiples
reservados a las transmisiones de TDT [8]. Una vez integrado cada uno de los canales
múltiples, la señal es transmitida por el operador de red.
La recepción de la señal de TDT se realiza en los hogares que dispongan de una
antena, individual o colectiva, adaptada a este tipo de transmisiones. Finalmente, la
señal recibida pasa por el equipo de descodificación para que pueda ser interpretada
por un televisor convencional.
9
Adicionalmente, para lograr la prestación de servicios interactivos, el sistema
de TDT puede dotarse de un canal de retorno que permita la comunicación en
sentido ascendente (desde el usuario al radiodifusor). A modo de ejemplo, pueden
utilizarse como canal de retorno la red telefónica convencional o la red de telefonía
móvil.
ESTÁNDARES DE TELEVISIÓN DIGITAL
En todo el mundo se han desarrollado varios estándares de televisión digital,
los cuales son básicamente cinco (ver figura 2):

Estándar Americano, ATSC (Advanced Television Systems Committee).

Estándar Europeo, DVB (Digital Video Broadcasting).

Estándar Europeo, DVB-T2 (Digital Video Broadcasting, II version.).

Estándar Japonés, ISDB-T (Integrated Services Digital Broadcasting).

Estándar Chino, DTMB (Digital Terrestrial /
Television Multimedia
Broadcasting).
Fig. 2 Distribución de los Estándares de TV Digital en el mundo [40].
10
La televisión digital terrestre está operando mundialmente con cinco
estándares. La plataforma usada en Norteamérica y algunos países centroamericanos
es ATSC; ISDB-T en Japón y Filipinas. ISDB-Tb (variante del ISDB-T) en Brasil y la
mayoría de los países latinoamericanos: Perú, Argentina, Chile, Venezuela, Ecuador,
Costa Rica, Paraguay, Bolivia, Uruguay, Nicaragua y Guatemala, con la excepción de
Colombia, Guyana, Surinam, Panamá, Honduras, El Salvador y México. DTMB en la
República Popular China, Hong Kong y Macao. DVB-T en los países europeos,
Australia, partes de África y países de América Latina: Colombia, y Panamá, también
algunos países que utilizan este estándar están comenzando hacer pruebas y han
adoptado oficialmente DVB-T2, que es un estándar más robusto que su anterior
versión. El resto del mundo aún no se ha decidido [8].
A continuación en la tabla 1 se presenta un cuadro comparativo de los
estándares de TV Digital, con sus diferentes variaciones y características.
ESTANDAR
ADOPTADO
EN:
ANCHO
CODEC
CODEC
DE
DE
DE
BANDA
VIDEO
AUDIO
Estándar
EE.UU,
ATSC
Canadá,
ATSC
Corea del
sur, México,
A/52
6 MHz
MPEG-2
(Dolby
Honduras y
Digital
El Salvador
AC-3)
MULTIPLEXA
MODULACIÓN
CIÓN Y
OBSERVACIONES
TRANSPORTE
Radiodifusores
terrestres: 8 VSB
Estaciones de TV por
Para conseguir un
MPEG-2 TS
sistema más robusto
se emplea E-VST.
cable: 16 VSB o 256
QAM
En la
totalidad de
los países
DVB-T
europeos,
además de
6, 7 u 8
MHz
MPEG-2
MPEG-2
Y Dolby
AC-3
Panamá,
Emplea redes SFN
COFDM, QPSK, 16
QAM Y 64 QAM,
Modulación
con el fin de aumentar
MPEG-2 TS
la eficiencia del uso de
los canales
jerárquica.
disponibles.
Colombia.
DVB-T2 incorpora la
última evolución en
En la
mayoría de
DVB-T2
países que
adoptaron
previamente
DVB-T
Modulación dinámica
1.7, 5, 6,
H.264
7, 8, 10
(MPEG-4
MHz
Parte 10)
modulación y resuelve
variable para cada
HE-AAC
“célula COFDM”.
el error de protección
MPEG-2 TS
para aumentar la
QPSK, 16QAM,
capacidad de la tasa
64QAM, 256QAM
de bits mejorando la
robustez de la señal.
[37].
11
BST-COFDM con 13
Emplea modulación
segmentos de
ISDB-T
Japón
6 MHz
MPEG-2
Mpeg-2
ACC
OFDM, interleaving y
frecuencia DQPSK,
QPSK, 16 QAM Y 64
MPEG-2 TS
QAM
jerárquicas y one-seg
jerárquica.
Poseen un middleware
Brasil, Perú,
innovador y
Venezuela,
desarrollado en Brasil
Chile,
Argentina,
Uruguay,
de errores.
Soporta transmisiones
Transmisión
ISDB-Tb
códigos de corrección
H.264
6 MHz
(MPEG-4
(Ginga)
HE-AAC
BST-COFDM
MPEG-2 TS
Parte 10)
Bolivia, Costa
Emplea tecnologías de
compresión de audio y
video más avanzadas
Rica y
que las empleadas en
Ecuador
Japón.
Para mejorar su
China, Hong
DTMB
Kong y
Macao.
MPEG2,
6, 7 y 8
H.264
MHz
(MPEG-4
Parte 10)
TDS-OFDM
eficiencia utiliza el
MPEG-4
código pseudo-
Part 3
4QAM, 4QAM-NR,
MPEG-2 TS
aleatorio de ruido,
BSAC
16QAM, 32QAM,
Emplea redes SFN y
64QAM
redes MFN.
Tabla 1 Cuadro comparativo de los estándares de TV Digital
ISDB-Tb (Integrated Services Digital Broadcasting - Brazilian
Terrestrial version)
A partir del 2000, el gobierno de Brasil a través de las universidades del país
desarrolló un estudio sobre la televisión digital y las ventajas y retos que conlleva
realizar esta transición. En noviembre del 2003 se creó el Sistema Brasilero de TV
Digital (SBTVD), actualmente denominado ISDB-Tb (Integrated Services Digital
Broadcasting - Brazilian Terrestrial version), que inició sus servicios comerciales y
públicos el 2 de diciembre de 2007 en la ciudad de Sao Paulo - Brasil [4]. Se diferencia
básicamente de la norma japonesa por el uso del códec MPEG-4 (H.264) para
compresión de vídeo, en lugar de MPEG-2 (Moving Picture Experts Group) usado en
ISDB-T, compresión de audio con HE-AAC (High-Efficiency Advanced Audio Coding),
modulación en BST-OFDM-TI, presentación de 30 cuadros por segundo incluso en
dispositivos portátiles, a diferencia de los 15 cuadros por segundo para equipos
móviles en la norma ISDB-T e interacción utilizando el middleware o software de
soporte de aplicaciones distribuidas o intermediario, desarrollado en Brasil y
12
denominado Ginga, compuesto por los módulos Ginga-NCL, usado para exhibir
documentos en lenguaje NCL (Nested Context Language) y Ginga-J para aplicaciones
escritas en lenguaje Java. En el caso de la norma original ISDB-T, este software es el
BML (Broadcast Markup Language). Esto ocasiona que los receptores ISDB-T no sean
compatibles con las señales desarrolladas para la norma ISDB-Tb, aunque éstos
últimos si son compatibles con los de la versión original. Además, es posible utilizar
SBTVD/ISDB-Tb en 6 Mhz, 7 MHz o 8 MHz si es requerido porque el sistema es
totalmente compatible.
En enero de 2009, la Agencia Brasileño-Japonesa, grupo de estudio para la
televisión digital, terminó y publicó un documento de adhesión a la especificación
ISDB-T con el brasileño SBTVD, resultando en una especificación que ahora se llama
ISDB-T Internacional o ISDB-Tb [5].
El 29 de abril de 2009 ISDB-Tb fue certificado oficialmente por la Unión
Internacional de Telecomunicaciones (UIT) tanto el módulo de Ginga-NCL como el
lenguaje NCL/Lua, desarrollado por la Universidad Católica de Río de Janeiro, como
primera recomendación internacional para entornos multimedia interactivos para TV
Digital y IPTV-Recomendación H.761 [3].
PRINCIPALES CARACTERÍSTICAS DE ISDB-Tb
 Incorpora el servicio de transmisión móvil terrestre de audio/video digital
denominado 1seg (One-seg). "1seg" fue diseñado para tener una recepción
estable en los trenes de alta velocidad en Japón.
 Transmisión de un canal con múltiple programación ya sea en HD, SD y One-Seg en
los mismos 6Mhz de ancho de banda, mediante el multiplexado de canales. La
combinación de estos servicios puede ser cambiada en cualquier momento.
 Proporciona servicios interactivos con transmisión de datos, como juegos,
consultas bancarias, información adicional, publicidad interactiva, compras, etc.
13
Además soporta acceso a Internet como canal de retorno. El acceso a Internet
también es provisto en teléfonos móviles.
 Suministra EPG (Electronic Program Guide) o guía electrónica de programas.
 Provee SFN (Single Frequency Network), Red de frecuencia única, permitiendo el
uso eficiente del espectro radioeléctrico, porque para cubrir un área grande de
cobertura se lo puede hacer con la misma frecuencia.
 Puede recibirse con una simple antena interior.
 Proporciona robustez a la interferencia multitrayecto, causante de los
denominados "fantasmas" de la televisión analógica y a la interferencia de canal
adyacente de la televisión análoga.
 Proporciona mayor inmunidad en la banda UHF a las señales transitorias que
provienen de motores de vehículos y líneas de energía eléctrica en ambientes
urbanos.
 Permite la recepción de HDTV en vehículos a velocidades por sobre los 100 km/h.
CARACTERÍSTICAS TÉCNICAS ISDB-Tb
a) Modulación: BST-OFDM (Band Segmented Transmission - Orthogonal
Frequency
Division
Multiplexing).
Transmisión
en
Banda
Segmentada
–
Multiplexación Ortogonal por División de Frecuencia.
b) Banda de Frecuencias: VHF o UHF, de acuerdo con la estrategia de
implementación en el país y del espectro radioeléctrico disponible.
c) Arquitectura de transmisión: Segmentada

Receptores fijos: 13 segmentos (todos os segmentos destinados a un
programa con resolución Full HD). Otros arreglos son posibles de
acuerdo con la resolución deseada e del número de programas
transmitidos en un canal.

Receptores móviles (en vehículos por ejemplo): La misma de los
receptores fijos.
14

Receptores portátiles (teléfonos celulares por ejemplo): 1 segmento.
Gracias a esta arquitectura el estándar, permite la recepción en múltiples
dispositivos como se muestra en la figura 3.
d) Tasa de actualización de imagen:

Servicio Fijo/Móvil: Japón, Brasil, Perú, Argentina, Chile, Venezuela e
Ecuador: 30 fps y 60 fps (frames per second) fotogramas por segundo.

Servicio Portátil: Brasil, Perú, Argentina, Chile e Venezuela: Máximo de
30 fps; Japón: Máximo de 15 fps [4].
Fig. 3 Recepción en múltiples dispositivos.
e) Ancho de banda del Canal: 6 MHz (Pero también es posible utilizar el
estándar ISDB-T en 7 MHz o 8 MHz si fuese deseado por cualquier otro país).
f) Sistema de Compresión de Audio:

ServicioFijo/Móvil:
Multi Canal 5.1: MPEG-4 AAC@L4 (Advanced Audio Coding, Level 4) o MPEG-4
HE-AAC v1@L4 (High Efficiency AAC, Version 1, Level 4)
15
Estéreo: MPEG-4 AAC@L2 (AAC Level 2) o MPEG-4 HE-AAC v1@L2 (HE-AAC,
Version 1, Level 2)

Servicio Portátil: MPEG-4 HE-AAC v2@L2 (HE-AAC, Versión 2, Level 2)
para audio estéreo.
Adicionalmente, la codificación de audio debe seguir la norma ISO/IEC 144963:2004 [15].
g) Sistema de Compresión de Vídeo:

Fijo/Móvil: MPEG-4 AVC HP@L4 (Advanced Video Coding, High Profile,
Level 4)

Portátil: MPEG-4 AVC BP@L1.3 (AVC, Base Profile, Level 1.3)
h) Resolución de Vídeo, Tipo de Montaje de Cuadros ("Framing") y Relación de
Aspecto ("Aspect Ratio"):

Fijo/Móvil:
SD 720x480i en 4:3 o 16:9
SD 720x480p en 4:3 o 16:9
SD 720x576i en 4:3 o 16:9
SD 720x576p en 4:3 o 16:9
HD 1280x720p en 16:9
Full HD 1920x1080i en 16:9
Donde: i = Montaje de cuadros entrelazado.
p = Montaje de cuadros progresivo [15].

Portátil:
SQVGA (160x120 o 160x90)
QVGA (320x240 o 320x180)
CIF (352x288)
Todos esos formatos utilizando relaciones de aspecto 4:3 o 16:9.
i) Sistema de Multiplexación: MPEG-2 system (ISO/IEC 13818-1 2000) [15].
16
j) Menor potencia media en el transmisor de TV digital en comparación a la TV
analógica. Para cubrir la misma área de cobertura se necesita 4 veces menos potencia
en el transmisor digital, como se muestra en la figura 4
Fig. 4 Comparación del área de cobertura de los sistemas análogos y digital.
k) Procesos de Corrección de Errores: Time Interleaving (Entrelazador de
símbolos en Tiempo) y Frequence Interleaving (Entrelazador de símbolos en
frecuencia)
l) Middleware para TV Interactiva:

Módulo Declarativo: Ginga-NCL e Imperativo LUA

Módulo Procesual: Ginga-J
m) Difusión de Alerta: Permite al Gobierno enviar alertas sobre desastres
naturales (terremoto, tsunami, etc.) a cada dispositivo en el área en que la señal
ISDB-T/SBTVD/ISDB-T está presente. La señal de alerta usa cierto espacio en el área
de datos de uno de los segmentos de la señal transmitido, automáticamente todos
los receptores y presenta la información de alerta en la pantalla del receptor [3].
IPTV (Internet Protocol Television)
A partir del año 2005 algunos operadores de telecomunicaciones empezaron a
dar el servicio de Televisión sobre redes de telecomunicaciones que hacen uso del
protocolo de Internet, protocolo IP, en lugar de emplear los medios tradicionales
como TV terrestre (analógica o digital), satélite o cable.
17
IPTV es un sistema utilizado para entregar los servicios que la televisión digital
ofrece a los consumidores que son suscriptores registrados para recibir este sistema.
La entrega de TV digital es posible usando el protocolo de Internet sobre una
conexión de banda ancha, por lo general se emplea un administrador de red en lugar
del Internet público, con el objetivo de garantizar una buena calidad de los servicios.
Aunque IPTV recoja el término protocolo en su nombre, en realidad el concepto
abarca más que eso. Esta tecnología transformará la televisión actual en una
experiencia totalmente personalizada, por supuesto sobre conexiones de banda
ancha y con ancho de banda reservado para garantizar la calidad de servicio (QoS). El
cambio consiste en que los canales de televisión ya no transmitirán la misma
programación para todos los usuarios, los cuales pasarán de una actitud totalmente
pasiva a otra interactiva. De esta manera, el proveedor de televisión no transmitirá
continuamente toda su programación esperando que algún usuario se conecte al
sistema, sino que, con IPTV, será el usuario el que solicite qué contenidos quiere ver y
en qué momento. Esta nueva modalidad exigirá mayor ancho de banda disponible en
el sistema para ofrecer, de manera sencilla y eficiente, servicios de televisión digital
de siguiente generación sobre la red existente de banda ancha basada en IP. El
sistema, prácticamente, podrá individualizar a cada usuario y hacer mediciones de
audiencia casi perfectas.
Entre los posibles servicios de IPTV se encuentran la oferta ilimitada de canales
de televisión digital y música, programación de pago por evento, vídeo bajo
demanda, grabación personalizada de vídeo (PVR), publicidad interactiva y servicios
de información, entre otros. A menudo se suministra el servicio de IPTV junto con el
servicio de conexión a Internet, proporcionado por un operador de banda ancha
sobre la misma infraestructura pero con un ancho de banda reservado a tal
propósito. Por ello, se requiere un mínimo de al menos unos 4 Mbps para poder
recibir la señal de TV comprimida según el formato MPEG-2 o MPEG-4, algo que se
consigue fácilmente con los estándares de ADSL, como son ADSL2 y ADSL2+, que
pueden llegar hasta 20 Mbps en bajada, sobre el bucle de abonado, si la distancia a la
central telefónica que provee el servicio no es muy elevada, actualmente con el
18
despliegue de las redes de fibra óptica que fácilmente llegan a los 100 Mbps, se
podría dar servicios de IPTV inclusive con Ultra Alta Definición en formato (UHDTV
4K) [11].
La capacidad estimada para servicios de IPTV se asume entre 1 y 2 Mbps por
cada canal de definición estándar (SDTV); 8 - 12 Mbps por cada canal de alta
definición (HDTV) y más o menos los 20 Mbps para (UHDTV). Para dos canales
simultáneos el ancho de banda bruto resultante es de 2- 4 Mbps para un servicio
básico o 8-12 Mbps si se incluye un canal HDTV, en ambos casos utilizando tecnología
MPEG-4 para la codificación /compresión de la señal de vídeo. A esta capacidad
habría que añadirle el ancho de banda contratado para la conexión de Internet, que
por bajo que sea implica la necesidad de manejar tasas de acceso de muy alta
capacidad [11].
Servicios que ofrece IPTV
La televisión por Internet o IPTV es el resultado de la convergencia de Internet y
Televisión, lo cual trae consigo nuevas opciones de entretenimiento y servicios para
los usuarios, así como también la generación de mayores ingresos para los
operadores que brindan este servicio. IPTV puede ofrecer difusión en directo, al igual
que la actual televisión analógica o la TDT, o descarga de programación bajo
demanda (VoD), también llamado “pay per view”, y se puede ver tanto en un PC
como en un televisor convencional que además cuente con un decodificador (set topbox), el mismo que se encarga de descomprimir y decodificar la señal de vídeo para
ser presentada al usuario. Los usuarios a su vez tienen la opción de seleccionar el
contenido que desean ver y descargarlo y si lo almacenan, por ejemplo, en un disco
duro, lo pueden visualizar tantas veces como deseen. Una estrategia de los
proveedores es que al ofrecer un conjunto de servicios como son: vídeo, voz y datos
(Triple Play), se incrementan las ganancias por usuario, mejora su satisfacción y
mantiene la fidelidad del mismo. Entre los posibles servicios que brinda IPTV se
encuentran: canales de televisión digital y música ilimitados, PVR, programación
pagada, Caller ID en pantalla, verdadero video-on-demand (VOD), e-mail, VOD por
suscripción (SVOD), Internet, juegos, pago de facturas e impuestos, servicios de
19
información, compra de productos, publicidad interactiva, e-Learning, guías
telefónicas , entre otros.
Entre las ventajas de este servicio digital, es que la imagen y el sonido tienen
calidad DVD o superior y se puede acceder a un sinnúmero de contenidos digitales.
Además ofrece interactividad, lo que permite seleccionar lo que deseamos ver y
manejar la programación como si la estuviésemos viendo grabada, es decir, con las
opciones de pausar, retroceder, paso rápido, etc. [11].
Modelo de la televisión IP
El modelo de Televisión Digital IP o también conocido como IPTV utiliza como
medio de transmisión, conexiones de banda ancha sobre el protocolo IP. Un ejemplo
de una plataforma de IPTV se muestra en la figura 5.
Fig. 5 Plataforma de IPTV.
IPTV se ha desarrollado basándose en el video-streaming. Este sistema consiste
en que la reproducción de los videos o películas no requieren una descarga previa
20
por parte del usuario, sino que el servidor entrega los datos de forma continua,
sincronizada y en tiempo real (al mismo tiempo que se envía, se está visualizando el
video con su audio).
Entre las ventajas de este modelo tenemos que la red de distribución ya está
desplegada y aprovecha al máximo el ancho de banda para conseguir velocidades de
varios Mbps en canal descendente. La desventaja de este sistema es que el
despliegue de este modelo dependerá de la disponibilidad de equipos en centrales
[11].
Arquitectura de IPTV
IPTV es un sistema completo mediante el cual la señal de televisión es
entregada a los usuarios sobre el protocolo IP (Internet Protocol). Este sistema está
formado por los servidores de contenido, encargados de codificar la señal (en MPEG2 o MPEG-4 /H.264), y fragmentarla encapsulando los paquetes para ofrecerlos en la
red IP core, mediante multicast o unicast. Esta red “core” o núcleo agrupa los flujos
de video codificado en diferentes canales. El tráfico de IPTV puede ser protegido de
otros tráficos de datos, para garantizar un nivel adecuado de QoS. El último enlace o
“enlace de última milla”, que llega hasta el hogar, encargado de distribuir los datos,
voz y video, puede ser realizado empleando distintas tecnologías físicas (FTTx, xDSL,
WLAN, WIMAX, etc.). Finalmente, los Set-Top-Box, u otros dispositivos multimedia se
encargan de decodificar la información, y presentarla al usuario. Siendo altamente
impulsado por las grandes compañías de telecomunicaciones, el servicio de IPTV está
basado especialmente en la utilización de infraestructura ya existente, en lugar de
construir una nueva red para la distribución de televisión como acontece con algunas
otras tecnologías. Con esta alternativa se logra minimizar los costos asociados a la
nueva tecnología [11].
21
Fig. 6 Arquitectura genérica de IPTV
Los operadores de telecomunicaciones poseen redes de elevada dimensión y
con una alta tasa de penetración a nivel de país, lo que hace particularmente
indicado para la oferta de servicio de televisión, haciendo posible llegar a un elevado
número de personas. Sin embargo, y al contrario de las redes de distribución de
televisión que fueron pensadas de raíz para este efecto, las redes de cobre de las
empresas de Telecomunicaciones tienen en su origen en el servicio telefónico, como
requisitos de ancho de banda inferiores pero que hasta la actualidad tienen un gran
impacto en las redes de acceso [11].
INTERACTIVIDAD EN TELEVISIÓN
Interactividad significa la capacidad que tiene un dispositivo para interactuar o
permitir la interacción con el usuario. Se debe observar que la existencia de
interactividad está estrictamente relacionada con la existencia de un medio
electrónico, que actúa como intermediario de este proceso.
La interactividad en la TV posibilita al telespectador actuar junto al programa
de TV que está mirando, enviando pedidos de información adicional a la estación de
22
televisión, mediante el control remoto, esta información puede ser imágenes
adicionales al programa original, audio, texto, gráficos, etc.
De esta manera el televidente pasa a ser un usuario que puede acceder a
servicios como consultas y transferencias bancarias, Tele-Salud, Tele-Educación,
compras, votación en programas, video bajo demanda y variada información
adicional.
La interactividad depende de recursos de hardware, la TV o decodificador (Set
Top Box), y de los aplicativos que corran en estos equipos (software).
El enlace entre el hardware y el software es hecho a través de un componente
denominado “middleware”, en el estándar ISDB-Tb este middleware es GINGA y fue
desarrollado por la Universidad Católica de Rio de Janeiro [3].
El middleware GINGA es un programa que tiene la función de recibir los
aplicativos transmitidos por las emisoras de televisión (por el aire), instalar esos
aplicativos en la TV o en el Set Top Box y dejarlos listos para su uso, recibir las
acciones del televidente mediante el control remoto y ejecutarlo con éxito.
Pero existen otros sistemas que nos permiten interactuar con la televisión por
ejemplo las plataformas de las Smart TV, y el estándar HbbTV.
Avanzar hacia la televisión interactiva.
Las opiniones de las personas, la percepción e incluso la definición de la
televisión interactiva han cambiado notablemente en la última década. Antes
simplemente era el estado del tiempo y otros servicios de información entregada
principalmente como texto con un par de fotos, ahora se convirtió en servicios de
video personalizados prestados a través de banda ancha, que permite a los usuarios
ponerse al día con los programas preferidos, ver la última película, acceder a redes
sociales o inclusive poder realizar compras u operaciones bancarias desde la TV.
23
Un servicio de televisión "interactiva" va mucho más allá de ofrecer acceso a
Internet en el televisor, para que tenga éxito total el servicio tiene que ser impulsado
por los canales y programas de televisión. Actualmente pesar de la creciente gama de
opciones disponibles, la gran mayoría de vídeo observaba en todo el mundo (incluso
en los hogares de banda ancha conectado) sigue siendo de televisión lineal. Hay
muchas razones para esto, pero sobre todo es que este método sigue siendo la forma
más eficiente para entregar el vídeo a la casa. Y todavía atrae a grandes audiencias.
Lo que la televisión interactiva ofrece es la oportunidad para que los
espectadores se muevan entre un público masivo y tengan una experiencia
personalizada sin tener que dejar la comodidad de su sala de estar.
A modo de ejemplo, en el Reino Unido la BBC anunció recientemente que 11
millones de personas presionan el botón rojo para acceder a sus servicios interactivos
a través de la televisión digital terrestre, satélite y cable cada semana en 2009. Esto
demuestra ampliamente la acogida de la televisión interactiva [24].
Interactividad Local
Dentro del estándar ISDB-Tb se define como aplicaciones de interactividad local
aquellas transmitidas por Broadcast y descargadas en el Set-top-Box, como se
muestra en la figura 7. Este tipo de interactividad es la que es accesible a todos los
televidentes o usuarios porque no necesita un canal de retorno para darle utilidad.
En este nivel de interactividad se puede cargar un sin número de aplicativos, como
juegos, informativos, publicitarios, EPG, etc., de manera constante y el usuario
escoge cuando acceder a estas informaciones.
24
Fig. 7 Interactividad Local
Este modelo de interactividad es muy ventajoso y accesible a todas las personas
ya que no es necesario que el usuario posea una conexión a internet, para tener
acceso a la información. En este caso la estación de TV es la que está conectada a la
red obteniendo informaciones actualizadas que luego emitirá a los televidentes.
Con este modelo en países latinoamericanos donde no todos las personas
tienen acceso a Internet ya sea porque no existe la infraestructura de una red de
telecomunicaciones accesible o porque no poseen los medios económicos para
adquirirla, se puede llegar y brindar servicios de aplicaciones que permitan la
inclusión social.
Interactividad Completa
Se llama interactividad completa porque requiere canal de retorno (Conexión
de Internet) para dar utilidad a sus aplicativos, como se muestra en la figura 8. En
este nivel de interactividad, la estación de televisión transmite aplicaciones más
personalizadas, el usuario puede acceder a sitios de compras, redes sociales, cuentas
bancarias, encuestas, video bajo demanda, etc.
El medio de acceso del canal de retorno es indiferente, se puede tener
conexión a internet por ADSL, Cable, FFTH, Wimax, GSM, Wifi, etc.
25
Y en este aspecto la interactividad para los dispositivos móviles tiene una
ventaja ya que tienen el canal de retorno solucionado.
Fig. 8. Interactividad Completa
LA TELEVISIÓN HÍBRIDA
Actualmente en esta era de internet se está viviendo la transformación global
del servicio de televisión, en donde la televisión híbrida representa la revolución en la
transmisión de programas junto a una gran flexibilidad en los contenidos emitidos,
siendo posible mezclar un gran número de canales de video, audio y datos.
La televisión híbrida o también conocida como televisión conectada combina
las ventajas de la televisión radiodifundida estándar, con todo el contenido en
Internet ya sean enlaces a textos, fotografías, audio o vídeo ya que se pueden
sincronizar con los espectáculos de difusión actuales. Se podría decir de manera
simplificada que la televisión hibrida une lo mejor de la TDT con lo mejor de la
televisión por internet (TDT + IPTV), aparte de todas las ventajas que se tiene al tener
a una televisión conectada con toda la información disponible en la red. La
información puede ser transmitida sólo en la pantalla de visualización, mientras que
los espectadores pueden seguir viendo el programa de televisión. Por ejemplo,
mientras ve un programa deportivo, un espectador puede informarse de los
resultados provisionales de otros partidos, también se podría permitir a los
26
espectadores participar mediante votaciones, trivias, juegos, etc. Todo mediante el
mando a distancia.
Dentro de la televisión hibrida existen varias plataformas, una de ellas y en la
que nos enfocaremos en este trabajo son las conocidas como HbbTv, en España
también denominada como TDT Híbrida, pero existe también las conocidas SmartTV
("TV inteligente"), con las cuales el televisor se puede conectar a Internet, pero eso
no asegura que sean compatibles con HbbTV. La mayor parte de las "Smart TV"
todavía necesitan aplicaciones de propósito especial, denominada widgets, cada uno
desarrollado específicamente para una marca en particular de los receptores.
La Smart TV es la apuesta de los fabricantes que aprovechando la vieja etiqueta
de "caja tonta", han lanzado el término "televisión inteligente" como reclamo. Las
Smart TV permiten, además de ver los canales convencionales, otro tipo de cosas,
como conectarnos a Internet o interactuar en redes sociales.
No existe un único estándar de Smart TV y cada fabricante tiene el suyo.
Samsung, LG, Panasonic, Sony, todos cuentan con su propio sistema y diferentes
aplicaciones. Para poder gozar de las virtudes de la Smart TV tenemos 2 opciones:

Comprar un televisor nuevo que incluya este servicio.

Comprar un dispositivo alternativo que, al conectarlo a la televisión, nos
permita aprovechar las ventajas de la Smart TV. Existen decodificadores en el
mercado y también es posible mediante algunos reproductores Blu-ray.
Las Smart TV son estándares cerrados donde cada compañía controla los vídeos
y aplicaciones a diferencia de la HbbTv que es una solución estandarizada para que
los diferentes canales de televisión puedan añadir servicios y aplicaciones, son
sistemas diferentes pero no incompatibles: en una misma televisión podemos tener
Smart TV y HbbTV.
27
Pese a que estos conceptos puedan parecer complejos, usar estas tecnologías
es tan sencillo como apretar un botón y navegar por menús e interfaces que nos
mostrarán los contenidos a nuestra disposición. Saber si un televisor tiene Smart TV
es sencillo, el propio fabricante se preocupa de aclararlo y de proporcionar cada vez
más contenidos [22].
Aunque hace ya varios años que se viene hablando de la televisión conectada a
Internet y ya en 2004 la TV híbrida formaba parte del roadmap de la industria; de
hecho desde 2008 gran parte de los fabricantes set-top boxes ofrecían en Europa
esta posibilidad junto con la recepción de la TDT, es recién en los últimos años que se
está desplegando con fuerza en países como Alemania, España, Francia, Austria,
Polonia, Suiza, Holanda, Republica Checa, entre otros, en algunos países le han
denominado la TDT Híbrida.
El mercado de IPTV aunque se encuentra en crecimiento, sigue siendo inferior
al 10% del mercado total de TV. Sin embargo, los operadores de televisión terrestre,
por cable y por satélite contemplan la opción de la televisión interactiva, apostando
por el modelo híbrido. El mercado de televisión de pago por cualquiera de las
plataformas antes mencionadas es enorme con cientos de millones de usuarios, por
lo que el mercado potencial para la TV híbrida es amplio y es por ello que está en la
agenda de todos los proveedores de telecomunicaciones y suministradores de TV,
siendo actualmente el estándar HbbTV el que acapara toda la atención de la industria
y, de hecho, ya existen algunas experiencias de despliegue exitoso de la TV híbrida
utilizando este estándar, como es el caso de Verizon, FiOS y Orange TV, contando
cada uno con más de cuatro millones de clientes, En Alemania, desde su lanzamiento
en 2009, la televisión híbrida bajo el estándar HbbTV está muy desarrollada, siendo
numerosos los operadores que la ofrecen (ARD, ZDF, RTL, ProSieben, etc.) y los
usuarios pueden acceder a decenas de aplicaciones; según un estudio llevado a cabo
por la consultora Mücke Sturm Company, en 2014 habrá ya en este país 23 millones
de televisores adaptados a este nuevo formato. Otros países, como Reino Unido e
Italia, también participan de estas experiencias. En España a finales del 2013 se
oficializó el lanzamiento de la aplicación HbbTv denominada “Botón Rojo” de la Red
28
de Televisión Española RTVE, además otras empresas como Mediaset España y
Telefónica también están prontos de implantar aplicaciones con HbbTv, apostando
por esta nueva forma de ver la televisión y acceder a contenidos varios a través de un
televisor o descodificador, conectados a Internet permitiendo a los espectadores
acceder a los varios contenidos de cada cadena de televisión o servidores de internet,
incluso a contenido en alta definición si el ancho de banda disponible es elevado.
El proyecto de Mediaset España se lleva a cabo de la mano de Telefónica.
Quienes han suscrito una alianza estratégica para iniciar las pruebas piloto. El acceso
es fácil. La pantalla del televisor muestra una barra lateral en la que aparecen las
aplicaciones interactivas. A través de ellas el usuario puede enlazar con Internet o
con las redes sociales para obtener datos adicionales sobre el programa que está
viendo.
La iniciativa que ahora echa a andar está abierta a todos los agentes del sector
audiovisual, según sus impulsores. En esta primera fase se trata de sentar las bases
de "compatibilidad" entre la televisión y la banda ancha. El siguiente paso será
mejorar la "navegabilidad" en Internet. Además, Mediaset se propone crear una
televisión a la carta en Movistar Videoclub. Utilizará para ello la plataforma OTT
(Over the top) de Telefónica, que permite distribuir contenidos bajo demanda incluso
con calidad propia de la alta definición [29].
La televisión híbrida permite varios modelos de negocio ya que la tecnología es
flexible, por ejemplo en la feria SIMO Network 2010, Vodafone presentó el que es
ahora su nuevo servicio de televisión híbrida, que brinda la posibilidad de ver en el
televisor tanto señales TDT (abierta y pago) como streaming y vídeo bajo demanda
(en HD, e incluso 3D) así como todo el contenido multimedia (fotos, música, vídeo)
que esté disponible en otros dispositivos de la casa, desde teléfonos móviles a PC, a
través del estándar DLNA. Vodafone Internet TV incorpora la función de televisión a
la carta que permite disfrutar de programas ya emitidos. Este nuevo servicio
permitirá al usuario recibir canales de DVB-T así como una variedad de servicios IPTV
entre los que se incluirá vídeo bajo demanda. También facilitará el acceso a Internet
29
en la TV, incluyendo otros servicios a la carta y a los sitios de streaming. La caja
incluye conectividad DLNA, Wi-Fi y Ethernet.
El funcionamiento de la TV híbrida es muy sencillo de entender, aunque
técnicamente tiene su complejidad. En este estándar el radiodifusor elabora su
“oferta a la carta” e inserta una dirección de Internet en su señal de TV para acceder
a sus contenidos, que el televisor recibe a través de la antena y la muestra al
telespectador. Haciendo uso del mando a distancia de su televisor, si el usuario pulsa
el botón inmediatamente, se le muestra en pantalla un menú con la oferta de
“contenidos a la carta”; el usuario selecciona el contenido que quiere ver y lo
reproduce en su TV. Estos contenidos se obtienen a través de la conexión de banda
ancha e infraestructura del operador de telecomunicaciones. Cuando quiera salir del
modo “TV a la carta” el usuario pulsa otro botón del mando a distancia y, en ese
momento, se vuelve al canal de televisión que se estaba viendo.
30
CAPÍTULO 2
HBBTV (Hybrid Broadcast Broadband TV)
La televisión hibrida HbbTV (Hybrid Broadcast Broadband TV) o televisión
conectada es un nuevo estándar de la industria que proporciona una plataforma de
tecnología abierta y neutral que combina servicios suministrados a través de
radiodifusión (broadcast) con los servicios de acceso a internet de banda ancha
(broadband). Un diagrama de su funcionamiento se muestra en la figura 9.
Fig. 9 Diagrama de HbbTV
Se trata de una iniciativa de la industria y de promoción para la televisión digital
con el fin de armonizar la emisión IPTV, banda ancha y la entrega de entretenimiento
para el consumidor final a través de televisores inteligentes conectados a set-top
31
boxes [1]. El consorcio HbbTV, que reagrupa a la radiodifusión digital y las empresas
del sector de Internet, establece un estándar para la entrega de la TV abierta y TV de
banda ancha para el hogar, a través de una única interfaz de usuario, la creación de
una plataforma abierta como una alternativa a las tecnologías de propiedad. Los
productos y servicios que utilizan el estándar HbbTV pueden funcionar sobre
diferentes tecnologías de radiodifusión, como por satélite, por cable o las redes
terrestres.
HbbTV es impulsado por la Unión Europea de Radiodifusores (UER) con el fin de
que en el futuro todos los dispositivos, tanto decodificadores como televisores,
puedan conectarse de forma interactiva a Internet. El proyecto HbbTV nace en
febrero de 2009 derivado de la asociación de los proyectos H4TV francés y el
proyecto alemán German HTML Profille. La primera vez que se mostró HbbTV fue en
la televisión francesa para el evento deportivo de Roland Garros de ese año [2].
Los miembros fundadores del consorcio HbbTV junto con un nutrido grupo de
seguidores han desarrollado conjuntamente la especificación HbbTV la versión 1.1.1
de esta especificación fue aprobada por el ETSI como ETSI TS 102 796, en junio de
2010. Los miembros fundadores del consorcio están formados por radiodifusores,
fabricantes de dispositivos de TV y empresas de la comunidad europea, lo que
significa que hay un objetivo común de crear servicios y que los radiodifusores
puedan ofrecerlos mientras se cumple con las funciones relacionado con el DRM
(Digital Resource Managment) para vídeo bajo demanda.
En mayo de 2011 el consorcio HbbTV quedó abierto a la entrada de nuevos
miembros y busca ampliar la participación a fin de fomentar la introducción en el
mercado y la evolución continua [26]. Desde entonces, el número de estos no ha
dejado de crecer y actualmente asciende a más de 60. Entre ellos podemos
mencionar:
- Organismos de normalización: EBU (Unión Europea de Radiodifusión), IRT,
DTG, Fraunhofer IIS.
32
- Organismos de radiodifusión: France Télévisions, TF1, Canal +, NRJ 12, RTL
Group, Astra, Eutelsat, Abertis Telecom, TDF, ITV, BSkyB.
- Editores de middleware para dispositivos de electrónica de consumo: ANT
Software Ltd, iPlus Technologies, OpenTV, Opera Software, Access, Espial, HTTV,
Icareus, Irdeto, NDS, Kudelski, Viaccess.
- Fabricantes de electrónica de consumo y de componentes de dispositivos:
Philips, Samsung, Sony, LG, Loewe, Sharp, STMicroelectronics, Humax, Haier, Kaoin
Media, TechniSat, TechnoTrend, iPlus Technologies.
- Laboratorios de prueba para dispositivos de electrónica de consumo: Digital TV
Labs.
- Los miembros del consorcio HbbTV del grupo de dirección son: Abertis, Astra,
Ant Software Ltd, Digital TV Labs, European Broadcasting Union, France Télévisions,
IRT, OpenTV, Opera, Philips, RTL, Samsung, Sony, TF1.
Actualmente la recepción de televisión digital y, en particular la radiodifusión,
de alta definición en el hogar está bastante extendida en toda Europa [28]. La
difusión de TV por Internet y la entrega de contenido multimedia a través de Internet
también se están convirtiendo en un servicio muy común, aunque dicho contenido
sea visto, a menudo, en un ordenador o conectando una pantalla de TV desde dicho
ordenador a través de un reproductor multimedia conectado a la red doméstica.
HbbTV tiene la intención de ampliar el alcance de los contenidos multimedia
directamente a la televisión, de modo que el espectador pueda acceder a dichos
contenidos con mayor comodidad.
También los servicios HbbTV se abren paso en Europa especialmente en países
como Francia, Alemania, España, Suiza y Austria teniendo como impulsores los
operadores públicos y privados de estos países y ofreciendo servicios de VOD (Video
On Demand), Teletexto enriquecido, información en directo, etc [2]. En la siguiente
imagen (ver figura 10) se muestra la implementación de HbbTV en Europa.
33
Fig. 10 Despliegue de HbbTV en Europa
Aunque no en todos los países que han adoptado existe el mismo despliegue en
la reunión del foro HbbTV llevado a cabo en Holanda en Marzo del 2014, se detalla
un cuadro (ver tabla 2) con detalle sobre el desarrollo en cada uno de los países, cabe
mencionar que también existen noticias que se estaría evaluando el estándar en
países fuera de la Unión Europea como China, Estados Unidos y Australia. También el
Reino Unido estaría en planes de adoptar HBBTV 2.0.
País
Alemania
Francia
España
Austria
Polonia
Bélgica
Dinamarca
Finlandia
Hungría
Holanda
Republica Checa
Suiza
HbbTV Maduro
HbbTV
desarrollado
HbbTV en
crecimiento
X
X
X
X
X
X
X
X
X
X
X
X
Tabla 2 Cuadro de desarrollo de HbbTV en países Europeos
34
NORMAS Y ESPECIFICACIÓN HBBTV
La especificación HbbTV se basa en los estándares existentes y las tecnologías
web, incluyendo OIPF (Open IPTV Forum), CEA, DVB y W3C [21]. Como muestra la
figura 11. En este sentido, se adapta a las tecnologías disponibles en lugar de
implementar un nuevo desarrollo técnico. Utilizando la tecnología estándar de
Internet permite el desarrollo rápido de aplicaciones. La norma europea facilita la
combinación de los servicios de radiodifusión y banda ancha y establece las
características y las funcionalidades requeridas para la entrega de los mismos; define
unos requisitos mínimos, simplificando así la aplicación en los dispositivos y dejando
espacio para la diferenciación, lo que limita la inversión requerida por los fabricantes
para construir dispositivos compatibles.
Fig. 11 Bloques que componen la especificación HbbTV.
En resumen se tiene los siguientes 4 bloques:
OIPF

APIs de Javascript para entornos de televisión.

Formatos de audio y video.
35

Modifica el CE-HTML, lenguaje para la creación de páginas de interfaz de
usuario en dispositivos como los televisores.
CEA

APIs de Javascript para servicios bajo demanda.

Conjunto de especificaciones y formatos de imagen de W3C.

Soporte para el control remoto de redes UPnP e Internet.
DVB

Transporte de señalización y aplicaciones vía DVB.
W3C

Recomendaciones para World Wide Web.

XHTML.

Hojas de estilo CSS 2.1, CSS-TV.

ECMA Script.

Peticiones HTTP y HTTPS con XMLHTTP Request.
Por una parte, CE-HTML define las funciones básicas del navegador: CE-HTML
se basa en los estándares del W3C Web comunes y especifica un perfil de HTML para
dispositivos de CE (electrónica de consumo). Utiliza XHTML 1.0, DOM 2, CSS TV perfil
1.0, así como Java, y está optimizado para renderizar HTML / JavaScript en páginas
web en los dispositivos de CE, en concreto en las pantallas de televisión. CE-HTML
también contiene elementos tales como la definición de códigos de las teclas del
mando a distancia.
Por otra parte, Open IPTV Forum perfil del navegador: Esta especificación ha
sido desarrollada para los sistemas basados en DVB-IPTV, pero el API (JavaScript) que
proporciona también se puede aplicar a cualquier híbrido de los sistemas DVB. Estas
API transmiten las funciones de combinar la imagen de TV con páginas HTML, para
sintonizar la televisión DVB o servicios de radio, para agregar eventos a la lista del
temporizador, y para leer los metadatos DVB y otra información relacionada con
DVB.
36
Finalmente, la señalización y el transporte DVB: La señalización de las
aplicaciones es compatible con el estándar DVB. Estas aplicaciones se pueden
ejecutar en el contexto de un televisor o un servicio de radio en un múltiplex DVB. De
una manera muy similar a la norma MHP, esto se hace a través de la tabla de
señalización (AIT) en el correspondiente servicio DVB y se indica en su tabla de mapa
de Programa (PMT). La norma DSM-CC define carruseles de objetos para ofrecer
aplicaciones de difusión. Los carruseles de objetos también proporcionan una forma
para que el receptor se sincronice con los puntos específicos en los medios de
comunicación mediante el uso de "eventos de flujo".
Las especificaciones describen cómo las aplicaciones interactivas se señalan en
el flujo de datos. La especificación HbbTV no especifica el sistema operativo o
plataforma de cliente en sí mismo en el dispositivo receptor. La última especificación
aprobada por el consorcio HbbTV es la versión 1.5 de la especificación de HbbTV que
proporciona soporte a streaming adaptativo en el protocolo HTTP basándose en la
reciente especificación MPEG-DASH, mejorando la calidad del vídeo recibido en
conexiones saturadas o de baja velocidad. Además, permite a los proveedores
proteger sus contenidos con tecnologías DRM basadas en la especificación de MPEG
CENC. Por otra parte, existen significativas mejoras en la guía electrónica de
programación, ya que se permite a los operadores introducir información para los
siguientes siete días. Otra de las posibilidades que se mejoran es la distribución de
aplicaciones manejables directamente por los receptores, otorgando así una
experiencia totalmente integrada al usuario. Según el propio consorcio HbbTV, la
publicación de la versión 1.5 es la respuesta a una fuerte demanda del mercado por
nuevas posibilidades a través de la televisión conectada [20].
FACTORES DE ÉXITO DE HBBTV
Al éxito de HbbTV contribuirán fundamentalmente tres factores: la creciente
penetración en el mercado de aparatos con el sistema HbbTV integrado, la calidad de
los contenidos, y la facilidad de manejo de este formato. Al ser un estándar de código
abierto, tiene muchas posibilidades de triunfar sobre otros formatos de carácter
37
cerrado y privado como Google TV y Apple TV, y es que del HbbTV se benefician
todos, desde los fabricantes de televisores a las cadenas de televisión, pasando por
los portales online y los proveedores de comercio electrónico.
Mediante el nuevo estándar HbbTV las emisoras pueden generar, con la
tradicional señal de televisión, un hipervínculo que pulsando un solo botón lleva al
usuario directamente a la correspondiente oferta de contenidos online. Además de
los servicios tradicionales de difusión, el estándar incorpora servicios de vídeo bajo
demanda (VOD), juegos o aplicaciones interactivas como el llamado “botón rojo”,
que permite la interactividad con el mando a distancia para ampliar información
sobre un tema determinado, votaciones u otras participaciones. HbbTV incorpora un
sistema operativo que permite la compatibilidad con aparatos externos, de modo
que no es necesario ningún aparato adicional para lograr la conexión a Internet y la
interactividad prometida.
Los servicios HbbTV se activan, pulsando el botón rojo del mando a distancia,
las aplicaciones se las puede utilizar con las teclas de navegación y las teclas de
colores del mando.
El fenómeno masivo de comentar programas por Twitter, Facebook, LinkedIn y
otras redes sociales son fenómenos muy recientes que aprovecharán sin duda la
tecnología de HbbTV. El volcado de vídeos en YouTube, o de fotos en Flickr, así como
la tendencia hacia el cloud computing donde cada vez hay más y más contenidos, son
elementos que están nutriendo la televisión que consumimos y si a ello le sumamos
la facilidad de sistemas con Android o iniciativas como Google y Apple TV, de uso
muy sencillo, podemos asegurar que poco a poco va convergiendo la TV e Internet de
la misma manera que hizo la telefonía móvil e Internet. Gracias a que el estándar
HbbTV permite acceder a contenido adicional y relevante en Internet sobre los
contenidos que estamos viendo en la televisión en un momento determinado, ahora
se posibilita la generación de nuevos ingresos para los operadores siempre que el
modelo de negocio sea el adecuado.
38
Pero si bien mucha gente expresa su escepticismo acerca de la nueva solución
híbrida para la televisión interactiva, argumentando que Internet por sí sola ya ofrece
más funcionalidad que las promesas de futuro de HbbTV, además de que la rapidez
de evolución de Internet deja obsoleto cualquier desarrollo con pocos meses de vida,
lo que si es cierto es que para que pueda tener éxito, es necesario al menos, como
sucede en este caso, la estrecha colaboración entre operadores y radiodifusores, ya
que la inversión necesaria y el riesgo asociado son muy elevados para ser acometidos
por un único agente, así que habrá que esperar algún tiempo para ver cómo se
desarrolla y la respuesta de los usuarios a un nuevo canal de comunicación
interactiva que combina dos de los ya existentes.
APLICACIONES CON HBBTV
La integración de nuevos servicios, interactividad y movilidad permiten la
mejora de la experiencia del usuario enriqueciendo la experiencia televisiva. Se
incluye un mayor volumen de información, EPG, participación en juegos, compras u
otras aplicaciones interactivas y el llamado Botón Rojo o “Red Button”, que permite
la aparición de aplicaciones autoarrancables. HbbTV incorpora un sistema operativo
que permite la compatibilidad con aparatos externos, de modo que no es necesario
ningún aparato extra para lograr la conexión a Internet.
Dentro de las aplicaciones se distingue dos categorías: Por una parte están las
que solo se difunden a través del canal de banda ancha y no se pueden declarar en la
secuencia de difusión y por otra parte, las que si se declaran en la señalización DVB.
Entre las primeras encontramos aplicaciones para redes sociales, juegos, VoD, etc.
mientras que entre las segundas podemos citar la publicidad interactiva o votaciones.
Para empezar, una aplicación puede arrancar por orden del usuario final, a través del
mando a distancia. También puede ser por la señalización en el servicio de difusión o
bien por otra aplicación que ya se esté ejecutando. Para finalizar, una aplicación
puede detenerse por orden del propio usuario, por orden del sistema bajo
condiciones de error o mediante la llamada del método que destruye la aplicación,
entre otros [26].
39
Las aplicaciones HbbTV y sus servicios en general son probados por entidades
como Digital TV Labs, se trata de un laboratorio que ofrece una aplicación HbbTV
para realizar tests destinada a los desarrolladores, ofreciendo pruebas que verifican
la compatibilidad entre una amplia gama de receptores HbbTV en el mercado. Dichas
pruebas pretenden además asegurar la QoE (Quality of Experience) ofrecida al
usuario.
Un sin número de aplicaciones ya se encuentran disponibles para quienes
dispongan de un receptor HbbTv, por ejemplo en España, el pionero en lazar su
aplicación del “botón rojo” fue Radio Televisión Española ofreciendo a sus usuarios
servicios de televisión a la carta el primero es "RTVE.es A la Carta" donde se dispone
de toda su programación, pudiendo acceder a la misma cuando guste el televidente y
“Clan a la Carta”, este último es una aplicación de vídeos a la carta para el público
infantil del canal Clan TVE donde se pueden reproducir las series favoritas desde el
servicio de la TDT Híbrida. Los vídeos se pueden reproducir con el audio en español o
en inglés.
Siguiendo el ejemplo de la RTVE, otros canales de televisión como TV3 de
Cataluña, Telemadrid, Canal Sur, Televisión de Galicia, Radio Televisión Canaria,
Televisión de las Islas Baleares, entre otras, están comenzando a ofrecer aplicaciones
de televisión a la carta y aplicaciones en línea de contenidos de TV. Goltelevisión
aunque sobre una plataforma de pago, también ofrece servicios de HbbTv con
resúmenes de los partidos de primera y segunda división. Otra plataforma de pago
con aplicaciones interesantes con titulares, entretenimiento, noticias y portadas de
periódicos es OrbyTV [30].
Es importante mencionar que si se desea adquirir un receptor con HbbTv,
previamente hay que verificar que el mismo sea un dispositivo certificado, para el
mercado
español
Abertis
Telecom,
operador
de
infraestructuras
de
telecomunicaciones del grupo Abertis, ha sido reconocido por los radiodifusores
como Entidad Certificadora para los fabricantes de receptores. Como Entidad
40
Certificadora, realiza las pruebas necesarias y comprueba que se cumplan las
especificaciones técnicas adecuadas por parte de los fabricantes que participan en el
desarrollo de la TDT Híbrida. El espectador podrá encontrar una completa gama de
receptores Certificados con el logo TDT Híbrida, que indica que dicho aparato ofrece
la garantía tecnológica necesaria para ofrecer el servicio, existe un portal donde se
encuentra la lista de estos dispositivos, las marcas homologadas son: Panasonic,
Philips, Sony, LG, Samsung y Televes [31].
Con HbbTV también se puede incluir una guía electrónica de programas (EPG)
mucho más dinámica y amigable que el estándar EPG anterior, esta nueva aplicación
del EPG incluye fotografías y demostraciones en video.
También contiene la opción de acceder a una base de datos completa de los
vídeos publicados en la web de la estación de Televisión, estas aplicaciones incluyen
consejos y videos más vistos de la televisión, también se pueden buscar videos o
programas por fecha o por orden alfabético, con varias opciones adicionales como la
de por ejemplo marcar los programas favoritos. Los vídeos pueden reproducirse en
una ventana o pantalla completa. La ventaja de HbbTV es que se ejecuta en segundo
plano de la radiodifusión televisiva. Por lo tanto, podemos suponer que en el futuro
crecerán aplicaciones que enriquezcan el programa estándar de televisión con
contenido adicional [36].
Presente y Futuro de HbbTv
HbbTV sigue su avance en Europa, donde se ha situado como el estándar de
facto. Alemania, Francia y España, están liderando el proceso por su aceptación e
implantación. La venta de receptores híbridos en Alemania es imparable, con 4
millones de receptores en el mercado hasta la fecha. Se calcula que el 70% de las
ventas ya incorporan HbbTV y será un elemento de serie en 2015. En Francia los
receptores compatibles HbbTV se sitúan en unos 1,5 millones, de los cuales
aproximadamente 400 mil tienen esta opción activa. En 2015 habrá unos 10 millones
de receptores conectados, de los cuales al menos el 20% dispondrá de HbbTV
41
instalado. En España se estima que se terminará el año con unos 2 millones de TV
conectados a la red, y que habrá alrededor de 1 millón de televisores híbridos. De
momento no se dispone de cifras sobre el número de receptores con HbbTV en el
mercado.
Estos tres países son los que encabezan el despliegue de la TV conectada en
Europa junto con Italia, que sigue el estándar GEM/MHP, y donde se calcula que
alrededor de 1 millón de televisores tienen la opción de conectarse a la red. Muy de
cerca en este progreso se encuentra la zona nórdica, que también ha oficializado la
adopción de HbbTV como estándar. El Reino Unido sigue decantándose por
plataformas verticales, como Youview o Freesat, siguiendo muy de cerca los trabajos
en HbbTV, y ya han incorporado el estándar a dos de sus especificaciones. Según el
representante británico en el congreso, se espera que su país tenga una participación
mucho más activa en la evolución del estándar hacia su versión 2.0 [32].
Los fabricantes de TV consideran que la TDT Híbrida aporta grandes ventajas.
Juan Carlos Cordo, director de Marketing de Negocio, Marketing y Comunicación de
Philips (TPVision), precisó que "no va a ser un fiasco, porque aporta grandes
ventajas". Uno de ellos, según él, es que "puedes disponer de contenidos a la carta”.
Por su parte, Samuel Fabra, Project Manager de Sony, quiso dejar claro que "una cosa
muy distinta son los Smart TV y otra la TV híbrida". Para él, darlo a conocer es
fundamental, y por ese motivo alaba el famoso "botón rojo" de TVE, "no sólo no va
en contra de los fabricantes sino que es un valor añadido al producto". Y es que
hasta la llegada de este botón casi nadie conocía la HbbTV. Ayudas como éstas son
las que motivan a estos fabricantes para intentar seguir apostando por esta nueva
forma de ver televisión, y no ya sólo con aparatos que lleven activada la HbbTV sino
también, como señaló Francisco José Pérez Fernández, Director Comercial Nacional
de Televés, "con un concepto de adaptación del parque de televisores que no son
compatibles con la televisión híbrida, como cuando lanzamos al mercado, con la
llegada de la televisión digital terrestre, un receptor adaptador de las televisiones de
tubo que no llevaban TDT incorporada". Eso sí, Francisco Pérez subrayó que no sólo
sirve con el esfuerzo que pueden hacer los fabricantes, "para que la gente demande
42
este tipo de televisión es importante que las cadenas pongan contenidos atractivos, y
no sólo TVE, sino todas en general". Lo mejor de todo para ellos, como indicó Samuel
Fabra, es que "aunque no se renovarán tan rápido como los smartphone, los
televisores actuales no van a tardar 20 años, como ocurría antes, para ser sustituidos,
por lo que entre todos hay que dar un impulso a la televisión híbrida".
En España habrá más de 100 millones de pantallas en 2018, sumando
televisores, teléfonos móviles y tabletas, según datos de la consultora GfK
presentados el 12 de noviembre de 2013, en la IV Jornada Anual de Aedeti
(Asociación Española de empresas de Televisión Interactiva). En 2013 se
comercializarán unos 14 millones de pantallas, con 2,3 millones de televisores de más
de 32 pulgadas (que contrastan con los seis millones que se vendieron en 2010,
coincidiendo con el ‘apagón analógico'). En cuanto a televisiones inteligentes, las
cifras de GfK hablan de que el 33% de las ventas de este año serán productos Smart
TV, y que ya estarán presentes en más del 10% de los hogares. En España habrá siete
millones de equipos al finalizar el año con capacidad de ser conectados a internet, y
un tercio de los hogares contará con la posibilidad de conectarse.
La entrada en funcionamiento del servicio de televisión conectada de TVE,
denominado ‘Botón rojo'. Según informó el director de Desarrollo de Negocio de la
cadena pública, Francisco Asensi, después del el lanzamiento del botón rojo en la
televisión española en los primeros meses ya se superan los 600.000 usuarios al mes.
Lo mejor de este servicio, dijo, es que "el tipo de consumo en fundamentalmente
audiovisual y supera la hora de duración, dato que es espectacular llevado a términos
de Internet". Aseguró que "hay programas, como 'Los conciertos de Radio 3', que van
a horas intempestivas, que la gente consume ya más en la web que en la propia
televisión". Francisco Asensi tiene claro, sin embargo, que a pesar del buen
funcionamiento de ese botón rojo, "ahora toca pasar la voz al consumidor, que vea
qué le ofrecemos y todas las alternativas que puede tener para poder comprar un
dispositivo de este tipo". Por ese motivo es por el que reconoce que lanzaron la idea
del botón rojo, para "dar a conocer las posibilidades que ofrece la TV híbrida", que
dice está permitiendo "que el espectador se dé cuenta de que con ella se le está
43
ofreciendo algo nuevo". Lo de menos es la tecnología que va vinculada a este
servicio, "hay que hacer que ésta sea invisible, porque la gente tiene que saber que
no debe conocer cosas tecnológicas para poder acceder al servicio".
Amadeu Gassó Gimeno, director de Explotación e Ingeniería de TV3, afirma que
"la televisión híbrida es sobre todo televisión, no Internet". Aunque resalta que la
"televisión conectada es sencilla y muy buena para los usuarios, si las cadenas no
tienen más servicios que ofrecerles, al final éstos se irán a los ‘smartphones'. De
momento, las pruebas que está llevando a cabo están deparando buenos resultados
de audiencias, "y sin haberlo publicitado". Por todo ello pide a los fabricantes que
sigan apostando por receptores de TV híbrida, "porque, si no, estarán cometiendo un
error estratégico".
Para el director General de Atresmedia Digital, José Manuel González Pacheco,
más que una carrera de Fórmula 1, lo de la televisión híbrida es "un maratón, en el
que no hay que ir muy rápido, porque tiene que haber un desarrollo de mercado, que
los usuarios se acostumbren a ello, algo que todavía no se ha logrado, un parque de
receptores y un desarrollo de mercado". Eso sí, pese a todo es optimista, "hay signos
de que ahora se puede apostar por todo ello de una manera más activa". También lo
dice Ignacio Arrola, director de Marketing de Mediapro, que celebra que "un usuario
de Gol TV, sin necesidad de ser cliente, ya puede acceder a contenidos, con lo que
tenemos la posibilidad de enseñar nuestro producto", aunque que indica que el
principal problema que ve en el tema de la TV Híbrida es "que lo confundamos con
internet". En este sentido, el Director de Negocio de TVE aclara que "en España el
televisor se compra para ver televisión" y de ahí la necesidad de "crear contenidos" y
no ir muy deprisa [32].
MIDDLEWARE GINGA
Ginga es el nombre del middleware de la Recomendación ITU-T para servicios
de IPTV y del Sistema Nipo-Brasileño de TV Digital Terrestre (ISDB-TB). El nombre fue
44
escogido en reconocimiento a la cultura, arte y continua lucha por libertad e igualdad
del pueblo brasileño [41].
Ginga es una capa de software intermedio (middleware), entre el
hardware/Sistema Operativo y las aplicaciones, que ofrece una serie de facilidades
para el desarrollo de contenidos y aplicaciones para TV Digital, permitiendo la
posibilidad
de
poder
presentar
los
contenidos
en
distintos
receptores
independientemente de la plataforma de hardware del fabricante y el tipo de
receptor (TV, celular, PDAs, etc.).
Middleware es un neologismo creado para designar capas de software que no
constituyen directamente aplicaciones, sino que facilitan el uso de ambientes ricos
en tecnología de información. La capa de middleware concentra servicios como
identificación, autenticación, autorización, directorios, certificados digitales y otras
herramientas de seguridad. En el contexto de la TV Digital, el middleware viene a ser
un software que controla sus principales facilidades (grado de programación, menús
de opciones), inclusive la posibilidad de ejecutar aplicaciones, dando soporte a la
interactividad.
El middleware abierto Ginga esta subdividido en dos subsistemas principales
entrelazados, que permiten el desenvolvimiento de aplicaciones siguiendo dos
paradigmas de programación diferentes. Dependiendo de las funcionalidades
requeridas en cada aplicación, un paradigma será más adecuado que el otro. Estos
dos subsistemas son llamados Ginga-J para aplicaciones de procedimiento Java y
Ginga-NCL para aplicaciones declarativas NCL.
En comparación con los sistemas de middleware concebidos para los otros
estándares de TV Digital, algunas de las funcionalidades de Ginga son innovadoras,
desarrolladas específicamente para la realidad brasileña. En Brasil, el uso de la TV
como medio de inclusión digital es prioridad para el gobierno, desde este punto de
vista, el desenvolvimiento de aplicaciones interactivas para TV Digital ocupa un lugar
45
destacado, lo que no ocurre en otros países donde ya tienen implantado un Sistema
de TV Digital hace mucho más tiempo [14].
Arquitectura del Middleware Ginga
El middleware Ginga a diferencia de los sistemas hipermedia convencionales,
en donde prevalece el modelo de servicio tipo pull, donde es responsabilidad del
programa intérprete solicitar un nuevo documento y buscar el contenido de los
objetos, como ocurre por ejemplo con los navegadores web, en TV un modelo de
servicio es de tipo push. En este caso, la emisora proporciona para la difusión flujos
de audio y vídeo multiplexados con otros datos, algunos objetos multimedia pueden
ser recibidos bajo demanda, más un servicio de tipo push es predominante.
Además de invertir un paradigma de servicio, los usuarios pueden comenzar a
mirar un programa ya iniciado, más aun todavía, los usuarios pueden querer cambiar
de canal, y por consiguiente salir y entrar a programas ya en proceso. Otro aspecto
desafiante es la edición de documentos durante su exhibición, en los programas en
vivo y en programas modificados por retransmisoras, esta posibilidad es bastante
interesante.
En la figura 12 se muestra la arquitectura de la TV digital, representada en
capas de todas las tecnologías ya existentes, una de estas capas es la del Middleware
[14].
46
Fig. 12 Arquitectura de la TV Digital, con las tecnologías utilizadas en cada capa
En la figura 13 se presentan la arquitectura en capas de referencia del Sistema
TV digital terrestre ISDB-Tb, incluido su middleware Ginga.
Fig. 13 Normas de referencia del Sistema de TV digital terrestre ISDB-Tb
La idea central de la arquitectura en capas, está en que cada una ofrezca
servicios para la capa superior y use los servicios ofrecidos por la inferior. De esta
manera, las aplicaciones que se ejecutan en TV Digital interactiva usen la capa del
middleware, que intermedia toda la comunicación entre las aplicaciones y el resto de
los servicios ofrecidos por las capas inferiores.
47
La finalidad de la capa del middleware o capa intermedia es ofrecer un servicio
estandarizado para las aplicaciones (capa superior), escondiendo las peculiaridades y
heterogeneidades de las capas inferiores (tecnologías de compresión, de transporte y
de modulación). El uso del middleware facilita la portabilidad de las aplicaciones,
permitiendo que sean transportadas para cualquier receptor digital (o set top box)
que soporte el middleware adoptado. Esa portabilidad es primordial en sistemas de
TV digital, pues es muy complicado considerar como premisa que todos los
receptores digitales sean exactamente iguales.
El universo de las aplicaciones Ginga pueden ser particionadas en un conjunto
de aplicaciones declarativas y un conjunto de aplicaciones de procedimiento. Los
lenguajes declarativos son más intuitivos es decir de más alto nivel y es por esto que
resultan más fáciles de utilizar, normalmente no exigen de un programador experto.
Sin embargo, los lenguajes declarativos tienden a ser definidos con un enfoque
específico. Cuando el enfoque de la aplicación no se relaciona con el del lenguaje, el
uso de un lenguaje de procedimiento es apenas ventajoso, más se hace necesario. Un
uso del lenguaje de procedimiento usualmente requiere un muy buen nivel de
programación. Una aplicación híbrida es aquella cuyo conjunto de entidades posee
tanto contenidos de tipo declarativos como de procedimiento. Una aplicación,
entretanto, no necesariamente debe ser puramente declarativa o de procedimiento;
sin temor a equivocación se puede afirmar que en los sistemas de TV digital, ambos
tipos de aplicaciones coexisten, siendo pertinente que los dispositivos receptores
integren soporte para ambos tipos en su middleware. Esto ocurre en todos los
middlewares de todos los sistemas incluido el middleware Ginga.
En particular, las aplicaciones declarativas frecuentemente hacen usos de
scripts, cuyo contenido es de naturaleza de procedimiento, además una aplicación
declarativa puede hacer referencia a un código JavaTV Xlet incorporado. De igual
manera, una aplicación de procedimiento puede hacer referencia a una aplicación
declarativa, conteniendo, por ejemplo, contenido gráfico, o puede construir o iniciar
las aplicaciones con contenidos declarativos. Por lo tanto, ambos tipos de
48
aplicaciones Ginga pueden utilizar las facilidades de los ambientes de aplicación
declarativo y de procedimiento.
Una arquitectura de implementación de referencia del middleware Ginga
puede ser divida en tres grandes módulos: Ginga-CC (Common Core), el ambiente de
presentación Ginga-NCL (declarativo) y el ambiente de ejecución Ginga-J (de
procedimiento); esta arquitectura de muestra en la figura 14.
Figura 14. Arquitectura Ginga
Ginga-NCL es el subsistema lógico del sistema Ginga que procesa documentos
NCL. Un componente clave de Ginga-NCL es el motor decodificador de contenidos
declarativos (Programa intérprete NCL llamado Maestro). Otro de los módulos
importante es el agente de usuario del modelo XHTML, el cual incluye un stylesheet
(CSS), el interpretador ECMAScript, y la máquina Lua, la que es responsable de
interpretar los Scripts Lua. La especificación de este subsistema se base en las normas
ABNT NBR 15606-2 [16] y ABNT NBR 15606-5 [49].
Ginga-J es el subsistema lógico del sistema Ginga que procesa el contenido de
los objetos Xlet. Un componente clave del ambiente de aplicaciones de
procedimiento es el motor de ejecución de contenidos de procedimiento, compuesta
pos la máquina virtual de Java. La especificación de este subsistema se basa en la
norma ABNT NBR 15606-4 [50].
49
Ginga-NCL y Ginga-J son construidos sobre los servicios ofrecidos por el modulo
del núcleo común de Ginga (Ginga-Common Core), cuya composición se muestra en
la figura 15. [14].
Fig. 15. Ginga Common Core
Los decodificadores de contenido común sirven tanto para las necesidades de
decodificación de las aplicaciones declarativas como de las de procedimiento, así
también para la presentación de contenidos comunes como PNG, JPEG, MPEG y otros
formatos. El núcleo común de Ginga está compuesto por decodificadores de
contenido común y procedimientos para obtener contenidos, transportados en un
flujo de MPEG-2 o a través del canal de retorno. El núcleo común de Ginga debe
también soportar el modelo de despliegue conceptual especificado por el estándar
brasileño de TV Digital [14].
La arquitectura y facilidades de Ginga son proyectadas a ser aplicadas a
sistemas de radiodifusión y receptores terrestres (medio aire). Sin embargo, la misma
arquitectura y facilidades pueden ser aplicadas a otros sistemas de transporte (como
satélite, TV por cable, y sistemas de IPTV).
En general, Ginga no discrimina cualquier aplicación nativa que también puede
escoger compartir el plano de gráficos. Esto incluye pero no se limita a: subtítulos
para sordos, sistema de mensajes de acceso condicional, menús del receptor, y guía
de programas nativos. Las aplicaciones nativas pueden tomar precedencia sobre
aplicaciones Ginga. Los subtítulos para sordo y los mensajes de emergencia deben
tomar precedencia sobre el sistema Ginga. Algunas aplicaciones nativas, como el
50
encabezamiento cerrado, presentan un caso especial donde la aplicación nativa
puede estar activa por largos periodos concurrentemente con aplicaciones Ginga
[14].
Ginga-NCL (Nested Context Language)
El Ginga-NCL fue desarrollado por la Pontificia Universidad Católica de Rio de
Janeiro PUC-Rio, provee una infraestructura de presentación para aplicaciones
interactivas de tipo declarativas escritas en el lenguaje NCL (Nested Context
Languaje). NCL es una aplicación de XML (eXtensible Markup Language) con
facilidades para los aspectos de interactividad, sincronismo, espacio-temporal entre
objetos de media, adaptabilidad, soporte a múltiplos dispositivos y soporte a la
producción de programas interactivos en vivo no-lineares. El NCL es un lenguaje del
tipo basado en la estructura que define una separación bien demarcada entre el
contenido y la estructura de un aplicativo, permitiendo definir objetos de media
estructurados y relacionados tanto en tiempo y espacio.
Para las tareas que requieren la programación algorítmica, NCL cuenta con LUA
como su lenguaje de scripting. Para facilitar el desarrollo de aplicaciones Ginga-NCL,
PUC-Rio también creó la herramienta Composer, un entorno de creación dirigido a la
creación de programas de NCL para la televisión digital interactiva. En esta
herramienta, las abstracciones se definen en los distintos tipos de puntos de vista
que le permiten simular un tipo específico de la edición (estructural, temporal,
disposición y textual). Estas visiones funcionan de forma sincrónica con el fin de
ofrecer un entorno de creación integrado [41].
Ginga-J (Java)
El Ginga-J fue desarrollado por la Universidad Federal de Paraiba UFPB, para
proveer una infraestructura de ejecución de aplicaciones basadas en lenguaje Java,
llamadas Xlet, con facilidades y detalles para el ambiente de Tv digital, proporcionada
por la especificación Globally Executable MHP (GEM), que fueron sustituidos más
51
tarde con la especificación abierta Java DTV, desarrollada por Sun Microsystems,
ahora Oracle Corporation [41].
Ginga-J es un subsistema lógico del Sistema Ginga que procesa aplicaciones
interactivas de tipo procedimental (Xlets Java). Un componente clave del ambiente
de aplicaciones procedurales es el mecanismo de ejecución de contenido
procedimental, que tiene como base la máquina virtual de Java. Ginga-J está basado
en tres grupos de API’s llamados Verde, Amarillo y Azul [14].
PRESENTE Y FUTURO DE GINGA
Desde su concepción, Ginga tuvo en consideración la necesidad de la inclusión
social/digital y la obligación de compartir el conocimiento de forma libre. Ginga es
una tecnología que le da al ciudadano todos los medios para que obtenga acceso a la
información, educación a distancia y servicios sociales a través de su TV, el medio de
comunicación omnipresente en los países latinoamericanos. Ginga tiene en
consideración la importancia de la televisión, como un medio complementario para
la inclusión social/digital. Ginga suporta las llamadas "aplicaciones de inclusión", tales
como T-Government, T-Health y T-Leraning. Con el desarrollo de Ginga, Brasil se
convirtió en el primer país en ofrecer un conjunto de soluciones en software libre
para la TV digital.
Ginga es una especificación abierta, de fácil aprendizaje y libre de royalties,
permitiendo que todos produzcan contenido interactivo, lo que dará un nuevo
impulso a las TVs comunitarias y a la producción de contenido por las grandes
emisoras. Extensiones de Ginga, sin embargo, se rigen por sus propias directivas. El
entorno declarativo de Ginga, llamado Ginga-NCL tiene también una implementación
de referencia en código abierto, desarrollada por el Laboratorio TeleMídia de la PUCRio. Adoptando la licencia GPLv2, el laboratorio TeleMídia garantiza el acceso
permanente a toda la evolución del código publicado en la Comunidad Ginga, sean
cuales fueren sus aplicaciones y autores de aquí en adelante [41].
52
Los países latinoamericanos tras la adopción del estándar ISDB-Tb, ya han
comenzado sus planes para hacer la transición hacia la televisión digital y junto con
ello GINGA actualmente está teniendo un gran desarrollo, principalmente su versión
de GINGA NCL, por ser la que no necesita pagar royalties. En algunos países como
Brasil y Argentina ya han declarado a GINGA NCL como obligatorio para los equipos
receptores que ingresan a sus mercados, con esto han conseguido dar un impulso
fuerte para el éxito de GINGA. En estos países que actualmente son los pioneros en
aplicaciones interactivas ya existe desarrollo de aplicativos GINGA que son
transmitidos junto con la programación habitual en los canales de la TDT.
Ginga tiene un gran potencial pues permite realizar un sin número de
aplicaciones interactivas que llegarían al televidente de forma totalmente gratuita,
con aplicaciones que permiten interactuar con la programación y obtener
información sin la necesidad de estar conectados a internet, como es el caso de las
aplicaciones locales que no necesitan canal de retorno. Esto viendo desde el punto de
vista de la inclusión social a la era digital en países en vía de desarrollo como son los
latinoamericanos que aún no tienen extendidas infraestructuras de redes de
telecomunicaciones en todo sus territorios y que poseen un nivel de adquisición bajo,
prueba de ello, el índice de penetración del internet es bastante bajo a comparación
de Norte América o Europa, Ginga vendría a ser una solución muy eficiente.
RELACIÓN DE HbbTV CON GINGA
HbbTV no es la única tecnología existente para la televisión interactiva. Un
competidor suyo es GINGA, aunque los dos actualmente funcionan sobre plataformas
diferentes, por lo que tal vez no se lo pueda denominar como competidor, el primero
sobre la televisión digital con el estándar europeo DVB, y el segundo sobre el
estándar de televisión digital terrestre ISDB-Tb e IPTV. Ambos tienen muchas cosas
en común como por ejemplo sus aplicaciones se basan en un lenguaje XML, HbbTV
utiliza CE-HTML y GINGA aunque tiene dos versiones, principalmente se basa en NCL.
Ambas son tecnologías abiertas y que están causando el interés por los fabricantes
de receptores, por los desarrolladores de aplicaciones y por los televidentes que
53
hallan interesante el poder interactuar con sus televisiones sin tener que pagar por
ello.
HbbTV es más reciente pero sin embargo ha ganado terreno en muchos países.
La principal razón es que HbbTV tiene aceptación en un mercado muy amplio como
es el europeo, con mayor número de aplicaciones y nuevos servicios híbridos. El éxito
de HbbTV se puede atribuir a tres factores: su flexibilidad, las bases sobre normas
existentes y el apoyo de grupos de la industria, en particular de la Unión Europea de
Radiodifusión.
Visto el gran desarrollo y la acogida que está teniendo HbbTV en Europa, se
encuentra muy interesante complementar estas dos tecnologías y realizar las
pruebas pertinentes para que sobre una aplicación desarrollada en GINGA se pueda
rodar o ejecutar aplicaciones HbbTV.
Con la integración de aplicaciones HbbTV dentro de GINGA se los podría ver
como socios o complementos, para ampliar la posibilidad de tener más y mejores
plataformas de interactividad en el mercado mundial de aplicaciones. Con esto los
desarrolladores de aplicaciones GINGA podrían integrar de manera sencilla
aplicaciones HbbTV dentro de las suyas, obviamente si las mejoras planteadas para
su interoperabilidad también son implementadas por los fabricantes de los
receptores que incluyen GINGA.
54
CAPÍTULO 3
ESTUDIO DE INTEGRACIÓN DE HbbTV EN GINGA
En este capítulo se describe el estudio realizado para lograr la integración de las
dos plataformas de interactividad. Se muestran las pruebas realizadas y los
resultados obtenidos y se encamina el proceso que se debe seguir para alcanzar este
objetivo.
Cómo cargar una aplicación HbbTV sobre GINGA.
Anteriormente se describió la arquitectura de GINGA y en la gráfica 1.14 se
pudo observar que posee un navegador XHTML, el cual incluye un stylesheet (CSS), el
interpretador ECMAScript, y la máquina Lua, la que es responsable de interpretar los
Scripts Lua. Visto de este modo GINGA si tendría la capacidad de reproducir
aplicaciones HbbTV que ocupan código CE-HTML.
Lo primero que se hace es crear un documento de Ginga NCL mediante la
utilización del IDE Eclipse SDK que debe tener previamente instalado el plugging de
NCL, para mayor detalle ver la información y descargar las fuentes en [74]; luego en
su código incluir un objeto de tipo hipermedia declarativo que permita cargar un
documento o un archivo HTML. Para tener una visión general de cómo funciona el
incluir objetos de tipo hipermedia es necesario revisar la documentación de Nested
Context Language 3.0 Part 11 – Declarative Hypermedia Objects in NCL: Nesting
Objects with NCL code in NCL Documents [53].
55
A continuación se muestra el código donde se observa que se incluye el enlace
o URL de una aplicación NCL, para el ejemplo se utilizó la aplicación HbbTV de la
Televisión Española.
<!-- Generated by NCL Eclipse -->
<ncl id="myNCLDocID" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<body id="myBodyID">
<port id="p0" component="m0"/>
<media id="m0" src="http://www.rtve.es/xl/hbbtv/">
<property name="width" value="100%"/>
<property name="height" value="100%"/>
<property name="focusIndex" value="1"/>
</media>
</body>
</ncl>
Como se puede observar en el código NCL tiene una estructura muy parecida a
HTML pues como ya se mencionó está basada en lenguaje de marcas XML. Dentro del
cuerpo se instancia una puerta de entrada (port) que inicializará la aplicación y se
instancia un objeto hipermedia (media) con las propiedades de alto y ancho para la
resolución de la pantalla, en nuestro caso se utilizó el 100%, también se puede
trabajar con el número de pixeles. Y muy importante es incluir la propiedad
(focusIndex) que es la que permite seleccionar el objeto y mostrarlo. Cabe mencionar
que para la manipulación de objetos hipermedia también se lo puede hacer por
medio de Lua que es un lenguaje imperativo complemento de NCL que es solo
declarativo, pero esta sería una integración más compleja con el javascript de la
aplicación HBBTV.
Pruebas de aplicaciones HbbTV sobre GINGA
En la figura 16 se muestra el resultado de la carga de la aplicación HbbTV de la
RTVE denominada botón rojo, dentro del emulador del middleware GINGA, el GUI de
GINGA está disponible para PC (Windows)[75].
56
Fig. 16 Aplicación HbbTV de la RTVE en GINGA.
Por defecto se observa el contorno verde del focusIndex de Ginga que lo
declaramos en el documento NCL y dentro de la aplicación HbbTV se observa un
nuevo focusIndex con color rojo que es el que nos permite movernos dentro de la
aplicación. Se realizó la misma prueba con otras aplicaciones (Ver tablas 1.6 - 1.9) y
se determinó que existen algunos problemas con el navegador, como por ejemplo
algunas aplicaciones tenían problemas en la presentación visual, en la navegación de
las teclas es decir problemas con el focusIndex y problemas de pluggings en la
reproducción de los videos, los detalles se incluyen en las tablas indicadas.
También se realizó pruebas en el Set Top Box de EITV para TDT con el estándar
ISDB-Tb que incluye el middleware GINGA, para conocer las características del mismo
se incluye la hoja técnica en el (Anexo 1).
Los resultados de estas pruebas fueron negativos, no se logró cargar estas
aplicaciones HbbTV, de la misma manera que se hizo en el navegador del emulador
de GINGA, aunque si se logró cargar otro tipo de documento HTML, pero tampoco
con buenos resultados es decir algunas páginas simples si lograba mostrar y otras
páginas más elaboradas no lo hacía, por lo que se llegó a la conclusión que este Set
Top Box no tiene una implementación completa de un navegador dentro del
57
middleware GINGA y por ser una implementación propietaria de EITV no se pudo
obtener mayor detalle sobre la misma.
Después de las pruebas realizadas en el set top box y en el emulador de Ginga,
se concluye que la solución para que las aplicaciones HbbTV sean compatibles y se
reproduzcan en Ginga, es buscar un nuevo navegador y reemplazarlo al actual, este
nuevo navegador tiene que tener mejores características, se tiene que comprobar
que sea compatible con las aplicaciones HbbTV; además tiene que ser de distribución
libre y totalmente abierto para poder ser embebido o incluido en el middleware
Ginga como su nuevo navegador HTML. Para esto es indispensable buscar los
navegadores disponibles y realizar varias pruebas con el fin de poder recomendar el
navegador óptimo para cumplir con el objetivo.
Análisis del mejor Navegador para GINGA
Existe en el mercado disponible varios navegadores de distribución gratuita, en
base a las calificaciones, recomendaciones y experiencias de los usuarios, se ha
escogido varios de estos que se exponen en el siguiente estudio; para luego mostrar
las pruebas realizadas y finalmente elegir el de mejor rendimiento.
La selección del mejor navegador web de código abierto requiere un poco de
investigación y pruebas de funcionamiento y rendimiento de algunos navegadores. El
código abierto es el término que describe a la práctica de los desarrolladores de
software que proporcionan el acceso a su código para que otros puedan construir
sobre ella un programa de mejores características o un programa personalizado
según las necesidades. Se insta a las personas que utilizan un navegador de código
abierto para proporcionar retroalimentación a los desarrolladores para tener un
mejoramiento continuo. Los mejores navegadores web de código abierto tienen
características que ahorran tiempo, ofrecen atajos y bloquean o permiten el acceso
seguro. Los hábitos de trabajo, las características y gustos personales tendrán mucho
que ver con el tipo de navegador de código abierto seleccionado.
58
Antes de detallar los navegadores que se han elegido para hacer las pruebas de
compatibilidad con las aplicaciones HbbTV, es importante conocer las comparaciones
y las características de algunos de ellos, así como también los rankins de acuerdo de
los más usados y populares en la web. A continuación en la figura 17 se muestra la
utilización y la popularidad de los navegadores más utilizados a todo el mundo [70].
Fig. 17 Cuota de uso de navegadores web según StatCounter .
En la figura 18 se muestra un pastel con los porcentajes de la comparación de
uso de los navegadores a nivel mundial. Siendo el más utilizado el Chome, seguido
del Internet Explorer, Firefox, Safari, Andorid, Opera y otros, en el orden detallado
[70].
59
Fig 18 Uso de Navegadores en el mundo.
Un dato interesante sobre los navegadores también se muestra en la figura 19
donde se detalla el uso de los navegadores más populares por país, según
StatCounter [57].
Fig. 19 Navegadores web más utilizados por país según StatCounter.
Además de estos datos donde se muestran los navegadores más utilizados en el
mundo existen varias páginas que muestran rankings y detalles de varios
navegadores y donde califican las experiencias y dan comentarios los usuarios o
internautas que han probado los mismos. En base algunas de estas recomendaciones
se ha seleccionado algunos de los navegadores con los que se realizará las
evaluaciones [72] [73]. A continuación se muestra algunas tablas donde se compara y
se muestra datos interesantes sobre los navegadores seleccionados para las pruebas.
60
Navegador
Autor
Última versión
estable
Coste
(USD)
Licencia de
software
Motor de
renderizado
Berkelium
Google
11.0.696.57
Gratuito
Libre: BSD
Blink
Chromium
(Descontinuado)
Google
36.0.1985.143
Gratuito
Libre: BSD
Blink
Google Chrome
(Algunas fuentes
cerradas)
Mozilla Firefox
Fundación
28.00
Gratuito
Libre: MPL, GNU
Mozilla
Opera
Gecko
GPL, GNU LGNU
Opera
22.0
Gratuito
Software no libre
Blink
38.0.2123.1
Gratuito
Libre: BSD
Blink
Software
Chromium
Emdedded
Framework (CEF)
Iceweasel
Chromium
Debian
24.0
Gratuito
Libre: MPL
Gecko
Webkit Web
Webkit
0.5.0 (Versión de
Gratuito
Libre: GNU GPL,
KHTML
Google
Browser
Prueba)
Konqueror
KDE
GNU LGPL y BSD
4.10.2
Gratuito
Libre: GNU GPL
KHTML
Tabla 3 Información General Básica sobre los navegadores [70] [71].
Navegador
Windows
OS X
Linux
BSD
Oher Unix
Berkelium
SI
SI
SI
SI
NO
Google Chrome
SI
SI
SI
NO
NO
Mozilla Firefox
SI
SI
SI
SI
SI
Opera
SI
SI
SI
SI
SI
Chromium Emdedded
Framework (CEF)
Iceweasel
SI
SI
SI
SI
NO
SI
NO
SI
NO
NO
Webkit Web Browser
SI
SI
SI
NO
NO
Konqueror
SI
SI
SI
SI
SI
Tabla 4 Soporte en los Sistemas Operativos [70] [71].
Navegador
CCS2.1
Frames
xHTML
XSLT
HTTP
SI
Java
Script
SI
DOM2
SSL
SI
ECMA
Script
SI
Berkelium
SI
SI
SI
?
?
Google Chrome
SI
SI
SI
SI
SI
SI
SI
SI
SI
Mozilla Firefox
SI
SI
SI
SI
SI
SI
SI
SI
SI
Opera
SI
SI
SI
SI
SI
SI
SI
SI
SI
Chromium Emdedded
Framework (CEF)
Iceweasel
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
Webkit Web Browser
SI
SI
SI
SI
NO
SI
SI
SI
SI
Konqueror
SI
SI
SI
SI
NO
SI
SI
SI
SI
Tabla 5 Soporte de Tecnologías y Protocolos Web [70] [71].
61
Pero antes de pasar a realizar las evaluaciones a continuación se detalla
brevemente algunas características importantes de los navegadores seleccionados
para ser evaluados, también se incluye la descripción del navegador ANT Galio que
utiliza la mayoría de dispositivos HbbTV, para poder tener una base y comparar cuál
de los navegadores que luego se describen es el más idóneo.
ANT Galio Browser
ANT Galio es un navegador web propietario, específicamente desarrollado y
optimizado para la TV, producido por ANT Software Limited, una empresa de
desarrollo de software con sede en Cambridge, Reino Unido. Fue lanzado en el año
2004 como sucesor de ANT Fresco con soporte añadido para AJAX y moderno
JavaScript, así como otras mejoras. El navegador ANT Galio da a los operadores y
fabricantes una plataforma probada para entregar experiencias de televisión
completas y atractivas. A partir de 15 años de experiencia, ANT Galio es capaz de
ofrecer una potente solución, robusta para la entrega de aplicaciones y servicios de
televisión. ANT Galio es un proveedor líder de software de cliente y soluciones para la
IPTV, industrias híbridas de TV y electrónica de consumo, ANT Galio Browser soporta
TV bajo demanda, vídeo bajo demanda, servicios de grabadora de vídeo digital y EPG
además de otras aplicaciones web [69].
La Plataforma HbbTV de ANT Galio está formada por el poderoso Browser ANT
Galio y un conjunto completo de extensiones HbbTV como se puede observar en la
figura 20, estrechamente integrada para ofrecer la funcionalidad de TV fiable con
experiencias atractivas para el usuario. ANT está a la vanguardia del estándar HbbTV,
que ofrece una solución llave en mano para las dos versiones 1.1.1 y 1.5 de la
especificación HbbTV para todos los dispositivos de TV. Esta plataforma se ha
implementado en muchas series de fabricantes de dispositivos, comenzando con los
primeros receptores HbbTV desde diciembre de 2009. Por lo cual proporcionar una
plataforma robusta, flexible y probada, la Plataforma HbbTV ANT Galio permite tanto
a los proveedores de servicios y fabricantes de dispositivos desarrollar y desplegar
aplicaciones HbbTV afines para los servicios de transmisión de TV híbrida de forma
62
rápida y fácil. Al ser una plataforma híbrida rica, no solo es compatible con HbbTV,
sino también con una amplia gama de servicios de televisión por internet. Por todas
las características descritas la Plataforma HbbTV de ANT Galio es el middleware de
elección para muchos fabricantes de dispositivos líderes [69].
Fig. 20 Plataforma HbbTV de ANT Galio
La Plataforma Galio ANT ofrece soporte para todos los estándares abiertos de
hoy para aplicaciones de televisión, incluyendo HbbTV, OIPF y HTML5. También
proporciona soporte para las API de JavaScript avanzados de ANT para la TV y los
medios de control.
Todas estas APIs proporcionan un enlace entre los elementos de alto nivel de la
interfaz de usuario y el código portátil optimizado nativo, de la Plataforma Galio ANT
para entregar experiencias de televisión adaptados a las características de
implementación particulares.
La Plataforma Galio ANT ofrece capacidades de control y gestión para la TV
abierta tradicional, IPTV, funciones de vídeo bajo demanda (VOD) y PVR, que permite
aplicaciones de televisión que se desplegarán en una variedad de plataformas,
independientemente del sistema de suministro, la plataforma de hardware, o los
medios de comunicación y formatos de metadatos. Esto permite que el desarrollador
63
de aplicaciones para centrarse en la experiencia del usuario en lugar de la tecnología
involucrada, con alto nivel de JavaScript API adaptado a conceptos que son familiares
en un televisor o sistema de entretenimiento en el hogar. Todas las aplicaciones y
servicios se desarrollan utilizando tecnologías web familiares para implementar la
interfaz de usuario y funcionalidad de la aplicación [69].
A pesar que este navegador no es de distribución libre como el que se está
buscando y tampoco consta en los rankings de los navegadores más utilizados, este
navegador junto con algunas plataformas propietarias de ANT Galio ofrece soporte y
es utilizado como navegador en mucho dispositivos HbbTV, por ser el más robusto
para aplicaciones de TV e IPTV. Por tales motivos a continuación se detalla algunas de
sus características y funcionalidades que luego pueden ayudar a la elección del mejor
navegador.

Cumple con el estándar HbbTV (Soporte para HbbTV 1.5)

Diseñado específicamente para plataformas embebidas, fácil portabilidad a
cualquier CPU 32/64 bits y OS / RTOS.

Una gama flexible de opciones de integración y optimización del
rendimiento de los equipos disponibles, portabilidad
a las nuevas
plataformas y ya integrada a una variedad de plataformas de hardware y
software.

Documentación y código muestra para guiar el proceso de integración.

Una solución completa que soporta la funcionalidad del botón rojo y la
interfaz de usuario del portal de TV.

Capacidad y flexibilidad Web 2.0

CE HTML, HTML 5 (parcial), HTML 4.01, XHTML 1.0, DHTML

CSS 3 (parcial), CSS 2.1 y CSS TV Profile 1.0

DOM 3 (parcial), DOM 2, DOM 1, DOM 0

JavaScript 1.5 (EcmaScript 262 Edición 3)

XML 1.0 y XML 1.1.

HTTP 1.1, HTTPS
64

Unicode y soporte de múltiples idiomas internacionales

Concesión de licencias de código fuente disponible

Apto para cualquier CPU 32/64 bits y OS / RTOS

Portable, modular y arquitectura extensible

Algoritmos escalables para CPU y uso eficiente de la memoria

Soporta RGB y YUV frame buffers

Construido para el uso con un control remoto de TV estándar - sin
necesidad de un ratón o un teclado

Amplio soporte para los estándares actuales de televisión, fácil reutilización
para otros tipos de productos más allá de HbbTV [69].
Berkelium
Berkelium es una biblioteca con licencia BSD que ofrece un navegador offscreen (que se puede insertar dentro de otra aplicación) basado en el código abierto
de Google Chromium web browser. Se aprovecha del renderizado multiproceso de
Chromium para aislar los navegadores de los demás y puede reproducir cualquier
búfer en memoria. El usuario de la biblioteca puede inyectar código javascript de
entrada y en las páginas web para su control, así como escuchar los eventos
generados por la página, tales como eventos de navegación, eventos de secuencia de
carga y eventos de pintura. Berkelium ofrece un pequeño API para embeber un
completo y funcional navegador en cualquier aplicación [55].
La librería de Berkelium está disponible en versión de 32 bit y 64 bit en cada
plataforma soportada, incluida Windows. Es totalmente abierta, gratuita y por las
facilidades que brinda, Ginga adoptó este browser como su navegador HTML
predeterminado, en las pruebas realizadas se evalúa su funcionamiento tanto dentro
del emulador de Ginga como bajo el sistema operativo de Windows. Actualmente el
paquete de Berkelium ya no se mantiene por lo que en su página se recomienda el
uso de Chromium Embedded Framework. La versión que se utilizó es la 11.0.696.57
para Windows.
65
Google Chrome
Google Chrome es un navegador web desarrollado por Google y compilado con
base en varios componentes e infraestructuras de desarrollo de aplicaciones
(frameworks) de código abierto, como el motor de renderizado Blink (bifurcación o
fork de WebKit). Está disponible gratuitamente bajo condiciones de servicio
específicas. El nombre del navegador deriva del término en inglés usado para el
marco de la interfaz gráfica de usuario («chrome»).
Cuenta con más de 750 millones de usuarios y dependiendo de la fuente de
medición global, puede ser considerado el navegador más usado de Internet variando
hasta el segundo puesto, algunas veces logrando la popularidad mundial en la
primera posición. Su cuota de mercado se situaba aproximadamente entre el 17% y
32% a finales de junio de 2012, con particular éxito en la mayoría de países de
América Latina donde es el más popular. Actualmente el número de usuarios
aumentó considerablemente situándose en una cuota de mercado cercana al 43%
convirtiéndolo en el navegador más utilizado de todo el planeta.
Por su parte, Chromium es el proyecto de software libre con el que se ha
desarrollado Google Chrome y es de participación comunitaria (bajo el ámbito de
Google Code) para fundamentar las bases del diseño y desarrollo del navegador
Chrome (junto con la extensión Chrome Frame), además del sistema operativo
Google Chrome OS. La porción realizada por Google está amparada por la licencia de
uso BSD, con otras partes sujetas a una variedad de licencias de código abierto
permisivas que incluyen MIT License, Ms-PL y la triple licencia MPL/GPL/LGPL. En
esencia, los aportes hechos por el proyecto libre Chromium fundamentan el código
fuente del navegador base sobre el que está construido Chrome y por tanto tendrá
sus mismas características, pero con un logotipo ligeramente diferente y sin el apoyo
comercial o técnico de la compañía Google.
66
El 2 de septiembre de 2008 salió a la luz la primera versión al mercado, siendo
esta una versión beta. Finalmente, el 11 de diciembre de 2008 se lanzó una versión
estable al público en general. Actualmente el navegador está disponible para los
sistemas operativos de escritorio Microsoft Windows, Mac OS X, Ubuntu, Debian,
Fedora, openSUSE, Chrome OS y en los sistemas operativos móviles Android y iOS
[56].
Mozilla Firefox
Mozilla Firefox es un navegador web libre y de código abierto, desarrollado
para Microsoft Windows, Mac OS X y GNU/Linux coordinado por la Corporación
Mozilla y la Fundación Mozilla. Usa el motor Gecko para renderizar páginas webs, el
cual implementa actuales y futuros estándares web. A partir de agosto de 2012
Firefox tiene aproximadamente un 23% de la cuota de mercado, convirtiéndose en el
tercer navegador web más usado, con particular éxito en Indonesia, Alemania y
Polonia, donde es el más popular con un 65%, 47% y 47% de uso, respectivamente.
Es compatible con varios lenguajes web, incluyendo HTML, XML, XHTML, SVG,
CSS 1, 2 y 3, ECMAScript (JavaScript), DOM, MathML, DTD, XSLT, XPath, e imágenes
PNG con transparencia alfa. También incorpora las normas propuestas por el
WHATWG y es compatible con el elemento HTML Canvas.
En cuestión al cumplimiento de estándares web, pasa satisfactoriamente la
prueba de Acid2 a partir de la versión 3.0. Sin embargo, las ramas de versiones 3.x no
pasaban completamente la prueba de Acid3, pues obtienen un puntaje de 93/100 en
Firefox 3.5 y un puntaje de 94/100 en la versión 3.6. Firefox 4 y versiones más
recientes, obtienen un puntaje de 100/100.
El código fuente de Firefox es libre, abierto y es distribuido bajo triple licencia;
Licencia Pública de Mozilla (MPL), Licencia pública general de GNU (GPL), o la Licencia
pública general reducida de GNU (LGPL). Estas licencias permiten a cualquiera ver,
modificar y/o redistribuir el código fuente, y son varias las aplicaciones que se
conocen hacen uso: por ejemplo Flock, Miro, GNU IceCat, IceWeasel y Songbird están
67
hechos a partir del código de Firefox. Aproximadamente el 40 % del código de Firefox
está escrito por voluntarios [57].
FireHbbTV plugging
FireHbbTV plugging es un complemento de Firefox para ayudar al desarrollo de
aplicaciones compatibles con HbbTV. Los beneficios son buenos ya que se tiene una
herramienta de desarrollo asociada con el navegador. El API de HbbTV se inyecta en
la marcha en la página web una vez que se activa el soporte para plugins para un sitio
dado, proporcionando herramientas útiles, tales como cambio de tamaño, cambio de
relación de aspecto, muestra del margen y navegación con el teclado compatible con
el control remoto de la TV. Más características se detallan a continuación [58] y [59].

Javascript HbbTV API inyectado en la marcha.

Soporte específico de la mayoría de HbbTV <object> (audio, video y
difusión.)

Soporte de los comandos de HbbTV.

Soporte mínimo para DVB uri.

Tres médios diferentes de broadcast en el backend. (SVG, Tag HTML
<video> y Firebreath VLC)

Redimensionamento inteligente.

Cambio de la relación de aspecto de la pantalla.

Muestra el margen del área segura en la zona de la pantalla.

Reemplaza la imagen de la TV.

Lista de canales, secuencia personalizada por canal.

Simulación del flujo de eventos DSM-CC.

Navegación con teclado simulando el mando de la TV.
Opera HbbTV Emulator
El emulador HbbTV de Opera proporciona un entorno de prueba para
aplicaciones HbbTV. Esta versión beta está basado en la especificación 1.1.1 HbbTV.
68
El programa está basado en el navegador de Opera, pero corre como una máquina
virtual independiente emulando el comportamiento de un receptor con HbbTV [63].
El navegador web Opera fue creado por la empresa noruega Opera Software.
Usa el motor de renderizado Blink. Los sistemas operativos compatibles con Opera
son Microsoft Windows y Mac OS X. Los usuarios de GNU/Linux y FreeBSD deben
instalar versiones antiguas que tengan el motor Presto. Hay versiones de Opera para
teléfonos móviles y tabletas. Los sistemas operativos móviles soportados son
Maemo, BlackBerry, Symbian, Windows Mobile, Android e iOS; así como la
plataforma Java ME. Opera ha sido pionero en originar características que han sido
posteriormente adoptadas por otros navegadores web, como por ejemplo el Acceso
Rápido (Speed Dial) [64].
El 13 de febrero de 2013, Opera Software informó que cambiaría su motor de
renderizado Presto por WebKit y que contribuiría con el desarrollo de WebKit y de
Chromium. El 4 de abril de 2013, Opera Software anunció que descartó Webkit para
unirse a Google en la construcción del motor de renderizado Blink. El 27 de mayo de
2013, salió la versión de prueba Opera Next 15 en la que se incorporó el nuevo
motor. El 2 de julio de 2013 apareció la versión estable de Opera 15 con el motor
Blink. El 23 de abril de 2014, Opera Software lanzó para Windows la versión 12., que
es una actualización del navegador con el motor Presto. Esta versión tiene arreglada
la vulnerabilidad con respecto al agujero de seguridad Heartbleed [64].
Para agosto de 2013, Opera tenía más de 350 millones de usuarios, según
Opera Software. El número de usuarios estaba distribuido de la siguiente forma:

Versión de escritorio: 52 millones.

Versión móvil: más de 264 millones.

Versiones instaladas en otros equipos: más de 25 millones.
En la parte de resultados se incluye las pruebas realizadas con el emulador de
HbbTV desarrollado por Opera.
69
Chromium Embedded Framework
Chromium Emdedded Framework (CEF) es un simple framework para embeber
o incluir navegadores basados en Chromium dentro de otras aplicaciones. Es un
proyecto de código abierto con licencia BSD fundada por Marshall Greenblatt en
2008 y basado en el proyecto de Google Chromium.
A diferencia del proyecto Chromium en sí, que se centra principalmente en el
desarrollo de aplicaciones de Google Chrome, CEF se centra en facilitar los casos de
uso del navegador integrado en aplicaciones de terceros. CEF aísla al usuario de la
subyacente complejidad del código en Chromium y Blink, ofreciendo APIs de calidad
de producción estables, liberación de ramas de seguimiento específicas de Chromium
y las distribuciones binarias. La mayoría de las características de CEF tienen
implementaciones predeterminadas que proporcionan una rica funcionalidad
mientras que requieren poco o ningún trabajo de integración por parte del usuario.
Actualmente hay más de 100 millones instancias instaladas de CEF de todo el mundo
integrados en productos de una amplia gama de empresas e industrias. Una lista
parcial de las compañías y productos utilizando CEF está disponible en la página CEF
Wikipedia. Algunos casos de uso de CEF son:

Incluir un control del explorador Web HTML5 compatible en una aplicación
nativa existente.

Creación de una aplicación ligera nativa "shell" que aloje una interfaz de
usuario desarrollada principalmente utilizando tecnologías Web.

Representación de contenido Web "fuera de la pantalla" en aplicaciones que
tienen sus propios marcos de dibujo personalizado.

Actuando como anfitrión para las pruebas automatizadas de propiedades
Web existentes y aplicaciones.
CEF es compatible con una amplia gama de lenguajes de programación y
sistemas operativos y se puede integrar fácilmente en las aplicaciones nuevas y
existentes. Fue diseñado desde cero con el rendimiento y la facilidad de uso en
70
mente. El marco de base incluye C y C + + de programación de interfaces expuestas a
través bibliotecas nativas que aíslan la aplicación principal de los detalles de la
implementación de Chromium y Blink. Proporciona una estrecha integración entre el
navegador y la aplicación principal incluyendo soporte para plugins personalizados,
protocolos, objetos de JavaScript y las extensiones de JavaScript. La aplicación
principal puede cargar opcionalmente control de los recursos, la navegación, los
menús contextuales, impresión y más, aprovechando al mismo tiempo el mismo
rendimiento y tecnologías de HTML5 disponibles en el navegador web Google
Chrome [60] y [61].
El proyecto CEF es una extensión del proyecto de Chromium y mantiene el
desarrollo y liberación de ramas que registran las variaciones de Chromium. El código
fuente CEF se puede descargar, modificarlo y se embebe manualmente o con
herramientas automatizadas. La base del framework CEF incluye soporte para los
lenguajes de programación C y C++. Gracias a la ardua labor de los colaboradores
externos de CEF se puede integrar con un sin número de otros lenguajes de
programación y frameworks.
Las distribuciones binarias, que incluyen todos los archivos necesarios para
construir una aplicación basada en CEF, están disponibles en la página de descargas
[62], incluye los nuevos cambios, pero puede no estar totalmente probado.
Distribuciones binarias son autónomas y no requiere la descarga de CEF o el código
fuente de Chromium. Los archivos de símbolos de depuración de las distribuciones
binarias de libcef también se pueden descargar desde el enlace anterior.
Por las características detalladas y por su código totalmente libre y gratuito es
una opción muy buena para ser embebida como el navegador predeterminado de
Ginga. Adelante se mostrará la evaluación de su desempeño en las pruebas
realizadas con las aplicaciones HbbTV.
71
Iceweasel
Iceweasel es el nombre de un proyecto derivado de Mozilla Firefox, una
compilación renombrada, preparada por Debian, para resolver la demanda hecha por
Mozilla que los obligaba a dejar de utilizar el nombre o acogerse a sus términos, los
cuales son inaceptables dentro de las políticas de Debian. No confundir con el
nombre IceWeasel (con W mayúscula) que es un proyecto independiente
rebautizado como GNU IceCat, un proyecto GNU para suministrar versiones de
programas de Mozilla constituidos, en su totalidad, de software libre.
El Iceweasel de Debian está basado en una versión modificada de Firefox, en la
que se reemplazan las marcas registradas de Mozilla por otras libres, y se incorporan
mejoras de seguridad adicionales siguiendo la política de actualizaciones de
seguridad de Debian. Iceweasel es el navegador por defecto de Debian Etch y
versiones posteriores. Iceweasel también está incluido en derivados de Debian, como
en Kali linux y TAILS.
Iceweasel todavía utiliza algunos servicios de Internet basados en Mozilla, como
el servicio de búsqueda de agregados Mozilla y el notificador de actualizaciones.
Tampoco ha habido cambio en cuanto a cómo funcionan o se pueden conseguir los
componentes no libres. Al igual que siempre, Debian está comprometida a
suministrar soluciones de seguridad a cualquier versión de Iceweasel que se incluya
en sus lanzamientos estables hasta que el soporte para dichos lanzamientos termine
[65].
Webkit Web Browser
WebKit es una plataforma para aplicaciones que funciona como base para el
navegador web Safari, Google Chrome, Opera, Epiphany, Maxthon, Midori, QupZilla
entre otros. Está basado originalmente en el motor de renderizado KHTML del
navegador web del proyecto KDE, Konqueror.
WebKit logra 100/100 en la prueba Acid3 desde el 26 de marzo de 2008. Desde
junio de 2005 es software libre bajo las licencias GNU GPL, GNU LGPL y BSD. La API de
72
WebKit está desarrollada en Objective-C y posibilita interactuar con un servidor web
para recuperar y renderizar páginas web, descargar archivos, y administrar plugins.
Webkit incluye dos frameworks de más bajo nivel: WebCore, un analizador sintáctico
y motor de renderizado de HTML basado en KHTML, y JavaScriptCore, un intérprete
de JavaScript basado en KJS. Con los lanzamientos pre-alfa se está incluyendo un
depurador de Javascript llamado Drosera4.
El código que se convertiría en WebKit se inició en 1998 como parte de un
proyecto KDE de renderizado HTML denominado KHTML y del motor JavaScript de
KDE (KJS). El nombre del proyecto y 'WebKit' fueron creados en 2002, cuando Apple
Inc. creó un fork (bifurcación) de KHTML y KJS. Los desarrolladores de Apple
explicaron en un correo electrónico a los desarrolladores de KDE5 que estos motores
permiten un desarrollo más fácil que otras tecnologías por el hecho de ser pequeños
(menos de 140.000 líneas de código), diseñados limpiamente y compatibles con las
normas. KHTML y KJS fueron portados a Mac OS X con la ayuda de una biblioteca
adaptada y renombrada como WebCore y JavaScriptCore.
El 7 de junio de 2005, Dave Hyatt, desarrollador de Safari, anunció en su blog
que Apple estaba liberando el código fuente de WebKit como software libre
(anteriormente, sólo eran libres WebCore y JavaScriptCore) y el acceso a la estructura
de árbol de WebKit CVS además de la Base de Datos de Bugs. A mediados de
diciembre 2005, se incluyó soporte para SVG (gráficos vectoriales escalables) y se
incluyó en la distribución estándar y a principios de enero de 2006, el código fuente
se migró desde el CVS a Subversion. JavaScriptCore WebKit y los componentes
WebCore están disponibles bajo la GNU General Public License, mientras que el resto
de WebKit está disponible bajo una licencia tipo BSD. El 13 de junio de 2005, Nokia
anunció que se encontraba desarrollando un navegador web basado en WebKit, que
finalmente sería conocido como Web Browser for S60.
WebKit2 se anunció el 8 de abril de 2010. WebKit2 está diseñado desde cero
para generar un modelo de procesos divididos, donde el contenido de la web
(Javascript, HTML, diseño, etc) se ejecuta cada uno en proceso separado. Este
73
modelo es similar a lo que a día de hoy Google Chrome tiene implementado, la
principal diferencia es que en WebKit2 ha construido el modelo de proceso de
separación directamente en un framework, permitiendo que otros desarrolladores lo
puedan utilizar. Actualmente WebKit2 está disponible para Mac y Windows,
cualquiera que desee portar el código a otro sistema puede hacerlo sin restricciones,
ya que es software libre [66].
Konqueror Web Browser
Konqueror es un navegador web, administrador de archivos y visor de archivos.
Forma parte oficial del proyecto KDE. Es software libre y de código abierto, y al igual
que el resto de los componentes de KDE, está liberado bajo la licencia GPL. El nombre
Konqueror es un juego de palabras con el nombre de otros navegadores: primero
vino el Navigator (navegador), después el Explorer (explorador), y finalmente el
Konqueror (conquistador). Además, sigue la convención de KDE de que los nombres
de los programas contengan la letra K.
La interfaz de usuario de Konqueror es en parte reminiscente de la del
Microsoft Internet Explorer (a su vez diseñada a partir de la del Netscape Navigator y
la del NSCA Mosaic), aunque es mucho más personalizable. Trabaja extensamente
con "paneles", los cuales pueden ser recolocados o añadidos. Por ejemplo, se puede
tener un panel de marcadores en el lado izquierdo de la ventana del navegador, y
pulsando un marcador, la respectiva página web se abre en el panel principal de la
derecha. Alternativamente, se puede mostrar una lista jerárquica de las carpetas en
un panel y el contenido de la carpeta seleccionada en otro. Los paneles son muy
flexibles y pueden incluir hasta ventanas de consola. La configuración de los paneles
puede salvarse, habiendo algunas ya incluidas por defecto. Por ejemplo, la
configuración "Midnight Commander" muestra la ventana dividida en dos paneles
verticales, cada uno de los cuales muestra una carpeta, una página web o la
previsualización de un fichero [67].
Utilizando la tecnología de KParts, Konqueror puede ejecutar en su interior
componentes capaces de visualizar (y en ocasiones editar) tipos de archivo
74
específicos. Esto permite, por ejemplo, ver un documento de KOffice dentro de
Konqueror, evitando la necesidad de abrir otra aplicación.
Además de navegar por directorios y sitios web, Konqueror utiliza los plug-ins
KIO (KDE Input-Output, o sistema de entrada-salida de KDE) para extender sus
capacidades. KIO permite acceder a diferentes protocolos como HTTP o FTP.
Konqueror también puede utilizar plug-ins KIO para acceder a archivos ZIP,
comparticiones Samba (Windows) o cualquier otro protocolo imaginable como links
ed2k, Audio CD, ripeando su contenido simplemente arrastrando y soltando.
Konqueror soporta también la navegación por directorios locales, ya sea
mediante la introducción de la ruta en la barra de direcciones o mediante la selección
de iconos en los paneles [68]. Konqueror permite:

Visualizar los contenidos de múltiples directorios en simultáneo.

Ordenar los elementos de cada directorio según criterios preestablecidos (por
fecha, tamaño, nombre, tipo, etc.).

Generar previsualizaciones de archivos de texto, documentos HTML,
imágenes y vídeos en el acto.

Mover, copiar, eliminar, crear, ejecutar, visualizar y editar archivos y
directorios desde menús simples.
Resultados de la evaluación de los navegadores
Después del análisis realizado y la descripción detallada de cada uno de los
navegadores elegidos para la evaluación del mejor navegador para ser embebido o
incluido en GINGA, en las siguientes tablas se muestran los resultados de las
evaluaciones con cuatro diferentes aplicaciones HbbTV.
Prueba 1: Comportamiento de la aplicación HbbTV con los Navegadores
Fuente de la aplicación 1: http://itv.ard.de/hbbtvtest/
Navegador
Presentación
Navegación con Teclas de control
Reproducción de
visual.
el teclado (Foco) (Rojo ‘F5’, Verde ‘F6’, Vídeo
Amarillo ‘F7’, Azul
‘F8’, otras).
Emulador
OK
No funcionan las No se puede probar.
No se puede
Ginga GUI
teclas de
probar.
navegación, solo
75
Berkelium
No carga.
Chrome
OK
FireHbbTV
OK
pluging Firefox
Firefox
No carga.
el ENTER.
No se puede
probar.
OK
OK
No se puede probar.
OK
OK
No se puede probar.
No se puede
probar.
OK
OK
Opera HbbTV
Emulator
OK
No se puede
probar.
OK
Chromium CEF
IceWeasel
WebKit
Browser
Konqueror
OK
No carga.
No carga.
OK
No carga.
No carga.
OK
No carga.
No carga.
No se puede
probar.
No funciona (Tiene
problema con el
plugging de vídeo)
OK
No carga.
No carga.
No carga.
No carga.
No carga.
No carga.
OK
Tabla 6 Resultados de la evaluación de los navegadores con la Aplicación HbbTV 1.
Prueba 2: Comportamiento de la aplicación HbbTV con los Navegadores
Fuente de la aplicación 2: http://www.rtve.es/xl/hbbtv/
Navegador
Presentación
Navegación con Teclas de control
Reproducción de
visual.
el teclado (Foco) (Rojo ‘F5’, Verde ‘F6’, Vídeo
Amarillo ‘F7’, Azul
‘F8’, otras).
Emulador
OK
OK
No funciona.
No funciona.
Ginga GUI
Berkelium
OK
No funcionan las OK
No funciona (Tiene
teclas de
problema con el
navegación. Se
plugging de vídeo)
puede acceder
con el mouse.
Chrome
OK
No funcionan las OK
No funciona (Tiene
teclas de
problema con el
navegación. Se
plugging de vídeo)
puede acceder
con el mouse.
FireHbbTV
OK
OK
No funciona.
Não da certo (Tem
pluging Firefox
No funciona (Tiene
problema con el
plugging de vídeo)
Firefox
OK
No funcionan las OK
OK
teclas de
navegación. Se
puede acceder
con el mouse.
Opera HbbTV
OK
No funcionan las No funciona.
No funciona (Tiene
76
Emulator
Chromium CEF
OK
IceWeasel
OK
WebKit
Browser
OK
Konqueror
OK
teclas de
navegación. Se
puede acceder
con el mouse.
No funcionan las
teclas de
navegación. Se
puede acceder
con el mouse y
el ENTER.
No funcionan las
teclas de
navegación. Se
puede acceder
con el mouse y
el ENTER.
No funcionan las
teclas de
navegación. Se
puede acceder
con el mouse y
el ENTER.
No funcionan las
teclas de
navegación. Se
puede acceder
con el mouse y
el ENTER.
problema con el
plugging de vídeo)
OK
No funciona (Tiene
problema con el
plugging de vídeo)
OK
OK
OK
No funciona (Tiene
problema con el
plugging de vídeo)
OK
No funciona (Tiene
problema con el
plugging de vídeo)
Tabla 7 Resultados de la evaluación de los navegadores con la Aplicación HbbTV 2.
Prueba 3: Comportamiento de la aplicación HbbTV con los Navegadores
Fuente de la aplicación 3: http://hbbtv.daserste.de/
Navegador
Presentación
Navegación con Teclas de control
Reproducción de
visual.
el teclado (Foco) (Rojo ‘F5’, Verde ‘F6’, Vídeo
Amarillo ‘F7’, Azul
‘F8’, otras).
Emulador
No muestra todo No funciona
No funciona
No funciona
Ginga GUI
Berkelium
OK
OK
No funciona
OK
Chrome
OK
OK
OK
OK
FireHbbTV
OK
OK
OK
No funciona
pluging Firefox
Firefox
OK
OK
OK
OK
Opera HbbTV
OK
OK
OK
No funciona (Tiene
Emulator
problema con el
plugging de vídeo)
77
Chromium CEF
IceWeasel
WebKit
Browser
Konqueror
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
No funciona (Tiene
problema con el
plugging de vídeo)
Tabla 1.8 Resultados de la evaluación de los navegadores con la Aplicación HbbTV 3.
Prueba 4: Comportamiento de la aplicación HbbTV con los Navegadores
Fuente de la aplicación 4: http://138.4.47.33:2103/juanpedro/alfredo3/
Navegador
Presentación
Navegación con Teclas de control
Reproducción de
visual.
el teclado (Foco) (Rojo ‘F5’, Verde ‘F6’, Vídeo
Amarillo ‘F7’, Azul
‘F8’, otras).
Emulador
OK
No funcionan las No funciona.
La aplicación no
Ginga GUI
teclas de
tiene video.
navegación, solo
el ENTER.
Berkelium
No carga bien.
No funciona.
No funciona.
La aplicación no
tiene video.
Chrome
OK
OK
OK
La aplicación no
tiene video.
FireHbbTV
OK
OK
OK
La aplicación no
pluging Firefox
tiene video.
Firefox
OK
OK
OK
La aplicación no
tiene video.
Opera HbbTV
OK
OK
OK
La aplicación no
Emulator
tiene video.
Chromium CEF OK
OK
OK
La aplicación no
tiene video.
IceWeasel
OK
OK
OK
La aplicación no
tiene video.
WebKit
No carga.
No carga.
OK
La aplicación no
Browser
tiene video.
Konqueror
OK
OK
OK
La aplicación no
tiene video.
Tabla 9 Resultados de la evaluación de los navegadores con la Aplicación HbbTV 4.
El navegador que obtuvo los mejores resultados en las pruebas realizadas con
las diferentes aplicaciones HbbTV fue el Chromium Embedded Framework (CEF)
además que en el análisis de sus características y su código abierto y gratuito lo hace
el ganador entre los navegadores probados, también tuvieron buenos resultados los
navegador Iceweasel, Webkit y el Konqueror en ese orden. Por lo cual se concluye
78
que si se quiere reproducir aplicaciones HbbTV dentro del middleware Ginga es
necesario hacer la implementación del Chromium Embedded como nuevo navegador
de Ginga.
Integración del Chromium Embedded Framework en Ginga.
Con los resultados que se obtuvieron en el apartado anterior y después de
conocer las características del navegador Chromium Embedded Framework (CEF)
descritas previamente, se procede a la integración de este navegador en GINGA.
No existe una metodología definida pero después de consultar con los
expertos y creadores del sistema, a continuación se detalla los pasos que se debería
seguir para lograr la integración del nuevo navegador en GINGA:
1. Acceso a los códigos fuente.- Se necesita tener acceso a todo el código abierto de
GINGA donde incluyen librerías, extensiones, funciones, etc. y de igual forma
descargar y tener disponible todos los códigos binarios precompilados y
cabeceras del Chromium Embedded Framework que se pueden encontrar en la
web [62].
2. Instalación del software para su compilación.- El Middleware GINGA
actualmente soporta un build en Windows por medio de Visual Studio [75] y un
build en Linux via autotools [76]. Se puede utilizar cualquiera de los dos según
con cual se esté más familiarizado aunque se aconseja utilizar el build de
Windows que es el que está más estable. En este caso se ha escogido el programa
Visual Studio Ultimate 2012.
3. Compilación de Ginga.- Cabe mencionar que para hacer las pruebas pertinentes y
tener acceso al código fuente de GINGA se ha contactado con los creadores del
sistema de la Pontífice Universidad Católica de Rio de Janeiro y muy gentilmente
se nos ha brindado la apertura y la ayuda necesaria, así como el acceso a los
códigos binarios con las dependencias (dll) previamente configuradas. Dentro de
la carpeta que contiene el código fuente de Ginga con todas las dependencias ya
configuradas, se debe abrir el archivo GingaWindowsMonolitic de tipo VC++
Project por medio del Visual Studio, este archivo se encuentra dentro del
79
directorio \ginga\ginga-vs2010-solution\GingaWindowsMonolitic y es el que nos
permitirá realizar la compilación. En la figura 21 se muestra el IDE de Visual
Studio con el proyecto de Ginga cargado, se observa que existe una gran cantidad
de clases, librerías y código C++ en general, por lo que habrá que tener
habilidades con este lenguaje para poder hacer los cambios y seguir el proceso de
integración con éxito.
Fig. 21 Compilación de Ginga sobre Visual Studio
4. Ejecución de Ginga.- Para comprobar que los archivos descargados con las
dependencias (dll) configuradas previamente están funcionando sin problema
bajo el sistema operativo que se vaya a utilizar, es necesario invocar una
ejecución de una aplicación NCL a través del terminal (cmd).
El binario final de Ginga se encuentra en la carpeta ginga\ginga-vs2010solution\Debug, aquí es donde se debe ubicar desde la ventana del cmd para
invocar una aplicación de Ginga NCL, para ejecutar la aplicación se utiliza el
siguiente comando: ginga --ncl <PATH-APP-NCL> --vmode 640x480.
5. Análisis de las API’s del Chromium Embedded Framework.- Antes de comenzar
con la integración es indispensable tratar de entender bien las API’s y cómo
utilizar el Chromium Embedded Framework. Para eso se puede tener información
en los tutoriales de CEF [60].
80
6. Integración del Chromium Embedded Framework.- Para esta integración se debe
tener en cuenta que en el código actual de GINGA ya se encuentra embebido el
navegador Berkelium, por lo que ahora la idea es tratar de analizar cómo están
funcionando y cuáles son las extensiones que manejan el Player de HTML y
reemplazarlas por las nuevas extensiones del Chromium. En conclusión tratar de
programar encima las clases del Berkelium ya existentes y sustituir las llamadas
que hace al Berkelium por llamadas al Chromium Embedded Framework.
La que mayor demanda de esfuerzo tendrá es la integración de las API’s que
manipulan el video principal en el Player principalmente porque para lograr eso
se debe acceder a la parte común del núcleo de Ginga conocido como Ginga-CC
(Common Core) como se mostró en la figura 15.
Haciendo una breve revisión en las cabeceras funciones y códigos de Ginga
detallo las siguientes clases del Berkelium que ahora será necesario reprogramar
con las del Chromium Embedded Framework.






./gingacc-player/include/player/BerkeliumHandler.h
./gingacc-player/include/player/BerkeliumPlayer.h
./gingancl/include/gingancl/adapters/application/declarative/xhtml/berkelium/Berkeli
umPlayerAdapter.h
./gingacc-player/src/application/declarative/xhtml/berkelium/BerkeliumHandler.cpp
./gingacc-player/src/application/declarative/xhtml/berkelium/BerkeliumPlayer.cpp
./gingancl/src/adapters/application/declarative/xhtml/berkelium/BerkeliumPlayerAda
pter.cpp
No se descarta que adicional a esto también sea posible que el Chromium
Embedded Framework necesite de otras librerías y clases para lograr su
integración, por lo que será un trabajo que demande de mucho tiempo y
dedicación.
7. Pruebas Finales.- Después de realizar todos los cambios será necesario compilar
nuevamente y luego que no existan errores, someterla a una especie de plugging
test, invocando la ejecución de varias ejemplos de aplicaciones con el fin de
comprobar que la integración del nuevo navegador en GINGA ha sido un éxito.
81
CAPÍTULO 4
CREACIÓN DE UNA APLICACIÓN INTERACTIVA
Con el fin de realizar una comparación más objetiva de las dos plataformas de
interactividad se planteó el objetivo de realizar una aplicación interactiva común,
pero desarrollada en ambas plataformas, utilizando las herramientas disponibles y
procedimientos necesarios tanto para HbbTV como para GINGA. La aplicación
interactiva que se va desarrollar es de carácter informativo relacionada con la
temática de este trabajo, es decir que tendrá información básica sobre los dos
sistemas de interactividad, ambas utilizaran las mismas imágenes fuente para luego
poder realizar una comparación cuantitativa y cualitativa cuando ya estén
funcionando en los equipos receptores, una televisión o un Set Top Box que tenga
HbbTV incluido para el primer caso y para mostrar la aplicación Ginga utilizaremos el
Set Top Box de desarrollo de EITV.
APLICACIÓN INTERACTIVA DESARROLLADA EN GINGA
Para desarrollar una aplicación GINGA primero se debe definir el diseño con la
funcionalidad que se le quiere dar a la aplicación, es decir diseñar un bosquejo donde
se ubique el área de presentación de las imágenes o archivos multimedia, con los
porcentajes o tamaño de pixeles que se quiera mostrar en la pantalla, se recomienda
utilizar porcentajes para definir los atributos de las imágenes o región de video con el
fin de que se acople a la resolución y tamaño de cualquier monitor.
Luego de tener definido el bosquejo se pasa a trabajar en su desarrollo con el
software que antes ya se había mencionado (IDE de Eclipse con el plugging para NCL).
Se crea un proyecto NCL y dentro de este un nuevo archivo NCL. Un documento NCL
consta de la misma estructura que uno HTML, tiene una cabecera y un cuerpo,
82
dentro de la cabecera «head» se instancia los atributos «region» (¿Dónde se va
mostrar las imágenes?, es decir el área que ocuparan), «descriptor» (¿Cómo se van a
mostrar las imágenes?, es decir es donde se detalla las propiedades de las imágenes,
por ejemplo le daremos un «focusIndex» a cada una de las imágenes para poder
navegar sobre un menú); a continuación dentro de la cabecera se crea una base de
conectores «conectorBase» (son los que hacen funcionar a los enlaces o
LinkConectors) para que la aplicación cumpla con las funciones que se requiera.
Dentro del cuerpo «body» se instancia los atributos «media» (¿Qué imágenes se va
mostrar? es decir se detalla la fuente de las imágenes), el atributo «port» (es la
puerta de entrada a la aplicación, la primera imagen que da la cara para acceder a la
aplicación) y finalmente el atributo «»Link (¿Cuándo se van a mostrar las imágenes?,
es decir el que nos permitirá interactuar con las imágenes estos funcionan según los
conectores instanciados en la cabecera). A continuación se muestra el código del
documento NCL principal de la aplicación, donde se podrá observar la estructura con
los atributos y las propiedades mencionadas.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by NCL Eclipse -->
<ncl id="main" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
<!--AREA DE REGIONES-->
<regionBase>
<region id="rgfondo" width="100%" height="100%"
zIndex="1"/>
<region id="rgVideo" width="100%" height="100%"
zIndex="2"/>
<region id="rgrojo" height="28%" width="25%" top="1%"
left="74%" zIndex="3"/>
<region id="rgrojo2" height="8%" width="8%" bottom="4%"
left="1%" zIndex="3"/>
<region id="rg1" height="15%" width="20%" top="83%"
left="10%" zIndex="3"/>
<region id="rg2" height="15%" width="20%" top="83%"
left="32%" zIndex="3"/>
<region id="rg3" height="15%" width="20%" top="83%"
left="54%" zIndex="3"/>
<region id="rg4" height="15%" width="20%" top="83%"
left="76%" zIndex="3"/>
<region id="rginfo" height="80%" width="40%" top="2%"
left="56%" zIndex="3"/>
</regionBase>
<!--AREA DE DESCRIPTORES-->
<descriptorBase>
<descriptor id="dfondo" region="rgfondo"/>
<descriptor id="dVideo" region="rgVideo"/>
83
moveLeft="4"
moveLeft="1"
moveLeft="2"
moveLeft="3"
<descriptor
<descriptor
<descriptor
moveRight="2"/>
<descriptor
moveRight="3"/>
<descriptor
moveRight="4"/>
<descriptor
moveRight="1"/>
<descriptor
</descriptorBase>
id="drojo" region="rgrojo"/>
id="drojo2" region="rgrojo2"/>
id="drg1" region="rg1" focusIndex="1"
id="drg2" region="rg2" focusIndex="2"
id="drg3" region="rg3" focusIndex="3"
id="drg4" region="rg4" focusIndex="4"
id="drginfo" region="rginfo"/>
<!--AREA DE CONECTORES-->
<connectorBase>
<causalConnector id="onKeySelectionStartNStopN">
<connectorParam name="keyCode"/>
<simpleCondition role="onSelection"
key="$keyCode"/>
<compoundAction operator="seq">
<simpleAction role="start" max="unbounded"
qualifier="par"/>
<simpleAction role="stop" max="unbounded"
qualifier="par"/>
</compoundAction>
</causalConnector>
<causalConnector id="onKeySelectionSet">
<connectorParam name="keyCode"/>
<connectorParam name="var"/>
<simpleCondition role="onSelection"
key="$keyCode"/>
<simpleAction role="set" value="$var"/>
</causalConnector>
<causalConnector id="onSelectionStartNStopN">
<simpleCondition role="onSelection"/>
<compoundAction operator="seq">
<simpleAction role="start" max="unbounded"
qualifier="par"/>
<simpleAction role="stop" max="unbounded"
qualifier="par"/>
</compoundAction>
</causalConnector>
</connectorBase>
</head>
<body>
<!--AREA DE MEDIAS-->
<media id="fondo" src="media/fondo2.png" descriptor="dfondo"/>
<media id="video" src="media/Hbbtv2.mp4" descriptor="dVideo"><!-TOMA AL BROADCAST COMO FUENTE DE VIDEO-->
<property name="bounds"/><!--PERMITE EL
REDIMENSIONAMIENTO-->
</media>
<media id="irojo" src="media/logo_inicio.png"
descriptor="drojo"/>
84
<media
<media
<media
<media
<media
<media
<media
<media
<media
id="irojo2" src="media/salir2.png" descriptor="drojo2"/>
id="irg1" src="media/opc1.png" descriptor="drg1"/>
id="irg2" src="media/opc2.png" descriptor="drg2"/>
id="irg3" src="media/opc3.png" descriptor="drg3"/>
id="irg4" src="media/opc4.png" descriptor="drg4"/>
id="irinfo1" src="media/inf1.png" descriptor="drginfo"/>
id="irinfo2" src="media/inf2.png" descriptor="drginfo"/>
id="irinfo3" src="media/inf3.png" descriptor="drginfo"/>
id="irinfo4" src="media/inf4.png" descriptor="drginfo"/>
<!--PUERTA DE ENTRADA-->
<port id="i1" component="video"/>
<port id="i2" component="irojo"/>
<!--AREA DE ENLACES Y CONECTORES-->
<link xconnector="onKeySelectionStartNStopN">
<bind role="onSelection" component="irojo" >
<bindParam name="keyCode" value="RED"/>
</bind>
<bind role="start" component="fondo" />
<bind role="start" component="video" />
<bind role="start" component="irojo2" />
<bind role="start" component="irg1" />
<bind role="start" component="irg2" />
<bind role="start" component="irg3" />
<bind role="start" component="irg4" />
<bind role="stop" component="irojo" />
</link>
<link xconnector="onKeySelectionSet">
<bind role="onSelection" component="irojo">
<bindParam name="keyCode" value="RED"/>
</bind>
<bind role="set" component="video" interface="bounds">
<bindParam name="var" value="5%,15%,50%,50%"/>
</bind>
</link>
<link xconnector="onKeySelectionStartNStopN">
<bind role="onSelection" component="irojo2" >
<bindParam name="keyCode" value="RED"/>
</bind>
<bind role="stop" component="fondo" />
<bind role="stop" component="irinfo1"/>
<bind role="stop" component="irinfo2"/>
<bind role="stop" component="irinfo3"/>
<bind role="stop" component="irinfo4"/>
<bind role="stop" component="irojo2" />
<bind role="stop" component="irg1" />
<bind role="stop" component="irg2" />
<bind role="stop" component="irg3" />
<bind role="stop" component="irg4" />
<bind role="start" component="irojo" />
</link>
<link xconnector="onKeySelectionSet">
<bind role="onSelection" component="irojo2">
<bindParam name="keyCode" value="RED"/>
</bind>
85
<bind role="set" component="video" interface="bounds">
<bindParam name="var" value="0,0,200%,200%"/>
</bind>
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg1" />
<bind role="start" component="irinfo1" />
<bind role="stop" component="irinfo2" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg2" />
<bind role="start" component="irinfo2" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg3" />
<bind role="start" component="irinfo3" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo2" />
<bind role="stop" component="irinfo4" />
</link>
<link xconnector="onSelectionStartNStopN">
<bind role="onSelection" component="irg4" />
<bind role="start" component="irinfo4" />
<bind role="stop" component="irinfo1" />
<bind role="stop" component="irinfo3" />
<bind role="stop" component="irinfo2" />
</link>
</body>
</ncl>
Para probar los resultados de la aplicación se lo hace con el GUI de GINGA
disponible para Windows, a continuación en la figura 22 se muestra el resultado de la
aplicación. En esta se puede observar que sobre el video de fondo, en la esquina
superior derecha sale el logo del grupo GATV, y con una leyenda que dice “PRESIONE
EL BOTÓN ROJO”.
86
Fig 22 Aplicación Ginga rodando sobre el Emulador.
Después de las pruebas realizadas con el emulador, se cargó la aplicación en el
Set Top Box, mediante la interfaz de un browser que tiene el propio equipo, para
enviar el video de fondo se debe conectar el Set Top Box a una red y por medio del
VLC se emite un video mediante un protocolo UDP, recordemos que este STB es un
receptor de IPTV y de TDT con estándar ISDB-Tb. En la figura 23 se muestra el menú
principal de la aplicación que se accedió previamente presionando el botón rojo.
Dentro de la aplicación se puede navegar por cuatro opciones, al presionar OK en
alguna de ellas se muestra la información referente a la opción elegida, además de
puede observar que el área o región donde se muestra el video se redimensiona y de
ubica en otro lugar. Esto permite que la aplicación interactiva no sea intrusiva y que
el usuario no se pierda de la emisión de TV tipo broadcast que esté recibiendo.
87
Fig. 23 Aplicación Ginga en la TV mediante el STB de EiTV.
Para luego hacer el análisis comparativo es importante mencionar que se
necesitó 160 líneas de código en un solo documento NCL para lograr que funcione la
aplicación.
APLICACIÓN INTERACTIVA DESARROLLADA EN HbbTV
Para el desarrollo de la aplicación HbbTV, al igual que en el desarrollo de la
aplicación de GINGA, se inicia con el bosquejo del diseño, en este caso se ocupará el
mismo diseño que ya se mostró con GINGA ya que el objetivo es tener la misma
aplicación en las dos plataformas.
La aplicación interactiva HbbTV se aloja en un servidor web, al que el
desarrollador o administrador web podrá acceder en remoto desde cualquier
navegador con conexión a Internet a través de un portal web que da soporte al
servidor.
Las herramientas disponibles para el desarrollo de aplicaciones HbbTV son
varias aunque no existe una específica y dedicada exclusivamente para HbbTV que
permita testear o tenga patrones y estilos predeterminados, se puede ocupar
cualquiera editor de textos, editor de códigos (XML, HTML, CSS, PHP, JavaScript) o
herramientas abiertas que permitan de una manera rápida y sencilla generar código
88
HTML, existen también herramientas propietarias que permiten generar códigos
HTML como el Dreamweaver y que además son intérpretes de los códigos CSS, XML,
JavaScript, PHP, etc. En este caso se ha ocupado el Dreamweaver y el propio editor
de códigos que tiene el Servidor Web donde se aloja la aplicación.
Para esta aplicación se necesita dos archivos CE-HTML, la primera es el código
que se muestra en el siguiente código, este contiene la puerta de entrada a la
aplicación, para acceder al menú principal de la aplicación se debe presionar el botón
rojo del mando a distancia.
<?xml version="1.0" encoding="utf-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<!-- Carga de clases javascript -->
<script type="text/javascript" src="rojo.js"></script>
<script type="text/javascript" src="base.js"></script>
<script type="text/javascript" src="botonesindex.js"></script>
<script type="text/javascript" src="hbbtvlib.js"></script>
<script type="text/javascript" src="keycodes.js"></script>
<title>Aplicacion de prueba Broadcast</title>
<style>
#rb{
top: 15px;
left: 900px;
position: absolute;
background-repeat: no-repeat;
}
</style>
</head>
<script type="text/javascript">
function mostrarUocultarRetardado(){
setTimeout("mostrarUocultar('botonRojo');",5000);
}
function mostrarUocultar( whichLayer )
{
var elem, vis;
if( document.getElementById ) //Asi trabaja el estandar.
elem = document.getElementById( whichLayer );
else if( document.all ) // this is the way old msie versions work
elem = document.all[whichLayer];
else if( document.layers ) // this is the way nn4 works
elem = document.layers[whichLayer];
vis = elem.style;
if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
89
vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}
</script>
<body onload="startAll(); mostrarUocultarRetardado();">
<div style="visibility: hidden; height: 0; width: 0; position: absolute;">
<object type="application/oipfApplicationManager" id="appmgr"></object>
<object type="application/oipfConfiguration" id="oipfcfg"></object>
</div>
<div id="rb">
<div id="botonRojo"><img width="320" height="240"
src="imagenes/logo_inicio.png"></img></div>
</div>
</body>
Dentro de la cabecera se incluye la declaración de 5 librerías de JavaScript que
son las que contienen el código con las funciones y los atributos de las acciones para
el funcionamiento de la aplicación. Para conocer mayor detalle sobre el código de
cada una de estas se incluye el código completo en el Anexo3.
A continuación se muestra el segundo código CE-HTML, que simplemente es el
código declarativo que contiene la estructura de la interfaz principal de la aplicación,
dentro de la cabecera se instancia las librerías JavaScript que ocupa un lenguaje
imperativo utilizado para indicar a la máquina como realizar las tareas requeridas por
la aplicación, además dentro de la cabecera se instancia el documento que contiene
la hoja de estilos donde se pone los atributos como el color, el tipo de letra, la
posición de las imágenes dentro del background de la estructura de la interfaz
principal, etc. Dentro del cuerpo se declara los objetos necesarios para utilizar las
funciones OIPF, y la estructura del menú principal con las 4 opciones y las regiones
donde se muestra la región de las imágenes informativas y la región de video
principal. Los códigos de los archivos complementarios (JavaScript, CSS, XML) se
detallan en el Anexo 4.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//HbbTV//1.1.1//EN" "http://www.hbbtv.org/dtd/HbbTV-1.1.1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="css/teletexto.css" media="all" />
90
<script type="text/javascript" src="js/etiquetas.js"></script>
<script type="text/javascript" src="js/fecha.js"></script>
<script type="text/javascript" src="js/fichas.js"></script>
<script type="text/javascript" src="js/hbbtvlib.js"></script>
<script type="text/javascript" src="js/keycodes.js"></script>
<script type="text/javascript" src="js/base.js"></script>
<script type="text/javascript" src="js/navegacion.js"></script>
<script type="text/javascript" src="js/teletexto.js"></script>
<title>DIEGO GATV</title>
</head>
<body onload="startText();">
<div style="visibility: hidden; height: 0; width: 0; position: absolute;">
<!-- Estos objetos son necesarios para usar las funciones del OIPF-->
<object type="application/oipfApplicationManager" id="appmgr"></object>
<object type="application/oipfConfiguration" id="oipfcfg"></object>
</div>
<div id="todo">
<div id="indice"> <ul id="menu"><!--Menú lateral--></ul> </div>
<div id="lateral">
<div class="relleno"><div id="pagina"><!--Este es el indicador de la
página actual--></div></div>
</div>
<div id="video1"><object id="video" type="video/broadcast" style="position:
absolute; left: 2%; top: 2%; width: 96%; height: 96%; z-index: 10;" ></object></div>
<div id="contenedor">
<div id="contenido">
<div id="cabecera">
<div id="titular"><!--Este mensaje sale si no se carga
la página, pues no se sobrescribe-->La cabecera no se ha cargado correctamente</div>
<div id="fecha">99/99/9999</div>
</div>
<div id="categoria" class="categoria"></div>
<div id="cuerpo" class="cuerpo">
<div id="texto">
<p>No se han cargado correctamente, debe haber un problema en el servidor</p>
</div>
<div id="foto" class="foto"></div>
</div>
</div>
</div>
<div id="pie">
<li><div class="rojo"><div class="boton_rojo"></div></div></li>
<li><div class="opc1"><div class="boton_opc1"></div></div></li>
<li><div class="opc2"><div class="boton_opc2"></div></div></li>
<li><div class="opc3"><div class="boton_opc3"></div></div></li>
<li><div class="opc4"><div class="boton_opc4"></div></div></li>
</div>
</div>
</body>
</html>
Los resultados de la aplicación se lo pueden probar en cualquier navegador,
pero para poder observar cómo se mostraría en la TV, se utiliza el emulador de
91
HbbTV para Firefox, denominado FireTV. En la figura 24 se puede observar la interfaz
principal de la aplicación, que muestra un menú con 4 opciones, para acceder a una
de ellas se lo hace con ENTER en el teclado de la PC o con la tecla OK del mando de la
TV, para navegar entre las opciones se lo hace con las teclas de navegación (flecha
izquierda y flecha derecha).
Fig. 24 Aplicación HbbTV en el emulador
Finalmente en la figura 25, se muestra la aplicación rodando sobre la televisión,
esta TV incluye el estándar HbbTV, para conocer las especificaciones de la TV
utilizada (ver Anexo 2), para realizar esta demostración se necesita transmitir el
transport stream (TS) por medio de un modulador DVB, este fichero .TS debe incluir
en la multiplexación la tabla AIT, dentro de esta tabla se debe incluir el link o URL de
la puerta de entrada de la aplicación. Es decir la puerta de entrada de la aplicación es
transmitida por el aire y la TV o el receptor de TDT con HbbTV recibe esta señal y
muestra en su pantalla que está disponible una aplicación, en la imagen inicial lleva la
leyenda de Presione el botón rojo, con la cual el usuario por medio del mando a
distancia podrá acceder a la aplicación, se recuerda que la TV debe estar conectada a
la red y tener acceso a internet, a diferencia que en el caso anterior de la aplicación
de GINGA, donde sí se recibe la señal por el AIRE, como es una aplicación de carácter
92
local, netamente informativa, no sería necesario que el receptor esté conectado al
internet, pues la aplicación viaja por el carrusel de datos del Transport Stream y es
descargada en el receptor para que el middleware GINGA muestre la interfaz gráfica
de la aplicación.
Fig. 25 Aplicación HbbTV en la TV.
ESTUDIO COMPARATIVO DE LAS DOS PLATAFORMAS
En un análisis anterior se había buscado hallar una relación entre los dos
estándares para encontrar alguna manera de integrarles o complementarles, de
hecho se describió también los pasos seguidos para lograr una integración plena de
las aplicaciones HbbTV sobre GINGA, aprovechando que la arquitectura del sistema
GINGA incluye un navegador de HTML. En la tabla 10, se detalla un análisis
comparativo de las características y especificaciones principales de los dos
estándares.
PARÁMETRO
HbbTV
GINGA
Estandarizado
Si (Servicios interactivos
sobre redes broadcast &
broadband)
ETSI TS 102 796 v1.2.1
HbbTV 1.5
Si (Recomendación ITU-T para
servicios de IPTV & ISDB-Tb)
Nombre de la
especificación.
ITU-T H.761 Ginga-NCL
middleware.
93
Plataforma abierta
Royalties
Desarrolladores
Estándar híbrido
Países
Lenguaje de
Programación
Declarativo
Lenguaje de
Programación
Imperativo
Interactividad Local
(Sin conexión a
Internet)
Interactividad
Completa (Con
conexión a Internet)
Despliegue
Modo de difusión
TDT que utiliza
Funciona sobre IPTV
Versión nueva a ser
lanzada
Si
HbbTV actualmente no está
bajo las reclamaciones de
derechos de autor o
patentes [77].
Consorcio Europeo de las
Industrias de TV.
Si
GINGA NCL  No
GINGA JAVA Si
JavaScript
LUA
JAVA
No
Si
Si
Si
Muy maduro en países
como Alemania, Francia y
España, en desarrollo en el
resto de Europa.
Muy maduro en Brasil y
Argentina, en el resto de países
están en etapas de pruebas,
hay que tomar en cuenta que
la TDT en Latinoamérica está
empezando la transición.
La aplicación integra se
transmite con la TDT, dentro
del carrusel de datos definida
en la Tabla AIT, o se puede
incluir mediante una aplicación
dentro del receptor HbbTV.
GINGA NCL  PUC-Rio de
Janeiro
GINGA JAVA UFPB
(Universidad Federal de
Paraíba)
Si
Si
EUROPA (Alemania, Francia, LATINOAMÉRICA (Brasil, Perú,
España, Austria, Polonia,
Argentina, Chile, Venezuela,
Bélgica, Dinamarca,
Ecuador, Costa Rica, Paraguay,
Finlandia, Hungría, Holanda, Bolivia, Uruguay, Nicaragua y
Republica Checa y Suiza)
Guatemala)
CE-HTML, XML, CSS
NCL (Nested Context
Language)
La puerta de entrada de la
aplicación se transmite con
la TDT, dentro del carrusel
de datos definida en la
Tabla AIT, o se puede incluir
mediante una aplicación
dentro del receptor HbbTV.
DVB
Si
HbbTV 2.0
ISDB-Tb
Si
No hay información
Tabla 10. Comparación especificaciones HbbTV vs GINGA.
94
Ahora que ya se conoce las características y especificaciones principales a
continuación se muestra un análisis más profundo en base a la experiencia del
manejo de los dos estándares, en base a los resultados de la aplicación mostrada en
las dos plataformas y en base al rendimiento sobre los receptores testeados. Para lo
cual se planteó mostrar comparaciones cuantitativas y cualitativas tanto del lado del
programador como del lado del usuario.
COMPARACIÓN CUALITATIVA
Para hacer esta comparación cualitativa nos basamos en la observación o
percepción que se ha tenido en el manejo y utilización de los dos estándares, es decir
se podría definir como un QoE (Quality of Experience). La calidad de experiencia se
define como la aceptabilidad global de una aplicación o servicio, tal y como se
percibe subjetivamente por el usuario final. Incluye la totalidad de efectos del
sistema extremo a extremo (cliente, terminal, red, servicios de infraestructura…) y
puede verse influenciada por las expectativas de los usuarios y el contexto. En este
caso se presenta la comparación cualitativa desde el punto de vista del usuario y
también desde el punto de vista del programador o desarrollador de la aplicación, ya
que para el usuario el método o las herramientas que se utilice para diseñar y
finalmente presentar la aplicación son transparentes [78].
Experiencia Cualitativa en Base al Usuario.
Es difícil definir algunos parámetros que se puedan evaluar o medir
cualitativamente, por lo que antes se mencionó que la QoE se mide subjetivamente y
pueda diferir de un usuario a otro. La calidad de la experiencia (QoE) para contenidos
multimedia como IPTV, televisión híbrida y uso de servicios de comunicaciones o de
aplicaciones interactivas proporcionadas por los servidores de servicios de
telecomunicaciones, es definida por el usuario donde describe como le parece el
servicio y si este satisface sus expectativas. La anterior definición deja ver un poco la
naturaleza subjetiva de la QoE ya que en ella se tienen en cuenta muchos factores
diferentes a los relacionados con la QoS, algunos de estos son; el precio del servicio,
el ambiente de visualización, nivel de estrés de los usuarios, la accesibilidad o tiempo
de reacción, la usabilidad o claridad con que se presenta y la impresión general.
95
Accesibilidad.
En este parámetro se evalúa que tan accesible es la aplicación para el usuario,
es decir si le llama la atención y el tiempo que demora en acceder a la misma y
comenzar a interactuar con la misma.
Usabilidad
La usabilidad es muy importante porque para este tipo de aplicaciones el
usuario no recibe un manual o las instrucciones para que pueda utilizar la aplicación,
por lo que debe ser muy importante el cómo se presenta visualmente, para que el
usuario intuya a utilizarla mediante la correcta utilización de los colores y las teclas
de navegación del mando a distancia.
Impresión General
Este parámetro se basa en cómo le pareció la experiencia de utilizar la
aplicación e interactuar con las opciones e información que recibió el usuario, para
esto hay que tener en cuenta que la aplicación no debe ser intrusiva por lo que por
ejemplo se debe mantener activo en la TV la programación que el usuario estaba
asistiendo en la televisión, ya que la TV por lo general no es de uso personal, más
bien se la suele ver en conjunto, entre amigos, familia, pareja, etc. Y si alguien está
viendo su partido de futbol o su novela preferida, resultaría molesto que alguien use
o
interactúe
con
la
aplicación.
Por
esto
es
indispensable
manejar
redimensionamiento de pantalla y que las imágenes sean de alta calidad y vistosas,
atractivas visualmente para el usuario.
Para las dos plataformas se ocupó el mismo diseño de la aplicación, por lo que
en este aspecto más que tener un resultado comparativo entre los dos plataformas
se obtuvo un resultado cualitativo de la aplicación en general, ya que para el usuario
resulta transparente la plataforma sobre la cual está corriendo o recibiendo la
aplicación. Para realizar estas pruebas se utilizó a 15 voluntarios que no tenían
conocimiento sobre estos sistemas a los cuales se le presentó la aplicación en la TV y
se les entregó el mando a distancia para que interactúen, los parámetros que se
evaluaron son los tres antes mencionados (Accesibilidad, Usabilidad e Impresión
general) calificando con tres niveles (Excelente, Bueno y Malo). En la tabla 11 y en la
figura 26 se muestran los resultados.
96
PARÁMETRO
Excelente Bueno
Malo
Accesibilidad
5
7
3
Usabilidad
4
7
4
Impresión
General
8
6
1
Tabla 11. Resultado cualitativo de la aplicación según los usuarios
Impresión General
Excelente
Usabilidad
Bueno
Malo
Accesibilidad
0%
20%
40%
60%
80%
100%
Fig. 26. Gráfico de los resultados cualitativos de la aplicación según los usuarios
Analizando el gráfico de los resultados se observa que la accesibilidad a la
aplicación en bastante buena ya que la imagen de entrada tiene su propia leyenda
que invita a pulsar el botón rojo del mando, la usabilidad tal vez resultó un poquito
más difícil para algunos usuarios tomando en cuenta que son personas que primera
vez que interactuaban con este sistema y que algunas personas están más vinculados
con el uso de dispositivos tecnológicos, para las personas de menor edad les resulta
más familiar y más fácil utilizar esta tecnología, a los personas de mayor edad les
cuesta un poco más pero en general tanto para los menores y mayores la impresión
general ha sido muy buena, después de que interactuaron y se les explicó el alcance
que podría tener este tipo de aplicaciones en la TV.
Experiencia Cualitativa en Base al Programador.
En base al programador la experiencia cualitativa se basa en la percepción que
ha tenido utilizando las herramientas disponibles y de que tan fácil o difícil le pareció
97
para lo cual en la tabla 12 se evalúa varios parámetros desde el punto de vista del
desarrollador de la aplicación.
Parámetro
HbbTV
GINGA
Herramientas
disponibles
Herramientas de
programación libres y
accesibles
Hay variedad pero ninguna
dedicada a HbbTV.
Hay algunas de diseño HTML que
sí son gratuitas y otras que
necesitan pago. Si tiene plugings
que emulan HbbTV en los
navegadores.
HTML. Es muy conocido y fácil de
utilizar, aunque necesita también
de conocimientos de otros
lenguajes complementarios como
CSS y XML.
Para
el
programador
es
imprescindible
conocer
y
entender bien cómo funciona
JavaScript, para poder decir
mediante código cómo funciona
la aplicación.
Hay IDE de programación
dedicado a GINGA.
Todos los softwares tanto de
programación
como
de
emulación de resultados son
gratuitos.
Programación
declarativa
Programación
imperativa
Líneas de código de
programación
Conocimiento de la
norma
Mayor
NCL. Aunque no es muy
difundido es muy sencillo de
programar. Es un lenguaje
declarativo
de
contextos
anidados basada en XML.
Para el programador no es
necesario
conocer
de
programación imperativa, las
funciones que tiene NCL no le
hacen indispensable. Salvo que
la
aplicación
tenga
que
gestionar canal de retorno o
realizar
operaciones
matemáticas o de estadísticas,
para lo cual se utiliza Lua.
Menor
Si es necesario saber algunas
características de la norma para
poder utilizar los recursos de la
TV.
No es indispensable saber las
características de la norma, la
interfaz de programación es
muy amigable
Tabla 12. Comparación cualitativa de los lenguajes de programación
Después del análisis presentado en la comparación descrita en la tabla anterior
y en base a la experiencia diseñando y programando la aplicación, sin duda es más
fácil programar la aplicación GINGA porque el lenguaje de programación NCL es muy
sencillo, ligero y robusto además que la herramienta disponible de forma gratuita es
muy amigable, a pesar que el lenguaje es nuevo resulta fácil aprenderlo, aunque si ya
se está muy familiarizado con HTML puede ser que para algunos les resulte más
cómodo programar la aplicación HbbTV, también es importante mencionar que
98
HTML por ser un lenguaje más conocido y difundido es más accesible encontrar
información con cursos online o tutoriales gratuitos.
COMPARACIÓN CUANTITATIVA
Para que exista metodología cuantitativa se requiere que entre los elementos
del problema de investigación exista una relación cuya naturaleza sea representable
por algún modelo numérico. En esta comparación cuantitativa se trata de encontrar
una relación del rendimiento de las aplicaciones basadas en el tiempo que demoran
en presentarse al usuario para lo cual es necesario conocer también las
características del procesador y recursos de memoria de los receptores. En los anexos
1 y 2 se muestra las características de los receptores, en la tabla 13 se observa las
características de los procesadores tanto del set top box con GINGA como de la TV
con HbbTV.
Recurso
Receptor GINGA
Receptor HbbTV
Procesador
STi 7105
(CPU 450 MHz)
256 Mbytes
ARM
(CPU 800 Mhz)
512 Mbytes
128 Mbytes
1 Gbyte
Memoria
RAM
Memoria
Flash
Tabla 13. Comparación de las características del procesador de los Receptores
Experiencia Cuantitativa en Base al Usuario.
Se usa al tiempo en segundos como magnitud numérica y luego mediante el
uso de herramientas estadísticas se presenta los resultados para comparar el
rendimiento de las dos plataformas.
En las tablas 14 y 15 se muestra el tiempo que toma la presentación de las
imágenes de las opciones que tiene la aplicación tanto en HbbTV como en GINGA.
Aplicación HbbTV
Tiempo (s)
T1
T2
T3
Imagen
Imagen
Imagen
Imagen
Imagen
Imágenes
Imagen de
Opc1
Opc2
Opc3
Opc4
Salir
Menú Principal Entrada
1,41
1,69
1,85
2,39
2,53
63,54
1,50
1,17
1,32
1,46
1,30
1,76
56,33
1,09
5,85
4,06
4,27
5,72
5,67
4,84
0,70
99
T4
T5
T6
T7
T promedio
4,03
5,75
1,30
4,80
3,47
8,47
9,73
6,48
2,30
1,39
5,20
3,31
2,42
6,07
5,89
2,69
3,04
2,79
2,31
1,97
2,81
3,68
4,39
3,41
2,93
Tabla 14. Tiempos de Carga de la aplicación HbbTV
3,34
25,00
5,48
36,50
27,86
1,66
1,22
1,56
1,12
1,26
Aplicación GINGA
Imagen
Imagen
Imagen
Imagen
Imagen
Imágenes
Imagen de
Tiempo (s) Opc1
Opc2
Opc3
Opc4
Salir
Menú Principal Entrada
T1
1,70
1,43
1,33
1,25
0,85
3,88
2,99
T2
1,31
1,26
1,09
1,18
1,22
4,45
3,37
T3
1,40
1,37
1,07
1,10
0,93
4,59
3,71
T4
1,23
1,20
1,16
1,08
0,99
4,40
3,03
T5
1,41
1,16
1,36
1,18
0,94
5,46
3,79
T6
1,30
1,32
1,33
1,11
0,66
3,87
4,02
T7
1,80
1,79
1,12
1,26
1,03
4,19
3,21
T promedio
1,45
1,36
1,21
1,17
0,95
4,41
3,45
Tabla 15. Tiempos de Carga de la aplicación GINGA
Para poder comparar más objetivamente y con claridad se muestra a
continuación las figuras 27, 28 y 29.
Tiempo de reacción App. HbbTV
70,00
60,00
50,00
40,00
30,00
20,00
10,00
0,00
T1
T2
T3
T4
T5
T6
T7
Imagen Opc1
Imagen Opc2
Imagen Opc3
Imagen Opc4
Imagen Salir
Imágenes Menú Principal
T promedio
Imagen de Entrada
Fig. 27. Gráfico del tiempo de reacción de la aplicación HbbTV
100
Tiempo de reacción App. GINGA
6,00
5,00
4,00
3,00
2,00
1,00
0,00
T1
T2
T3
T4
T5
T6
T7
Imagen Opc1
Imagen Opc2
Imagen Opc3
Imagen Opc4
Imagen Salir
Imágenes Menú Principal
T promedio
Imagen de Entrada
Fig. 28. Gráfico del tiempo de reacción de la aplicación GINGA
Timpos de reacción HbbTV vs GINGA
Tiempo promedio HbbTV
Tiempo promedio GINGA
27,86
3,47
1,45
Imagen Opc1
3,68
4,39
1,36
Imagen Opc2
1,21
Imagen Opc3
3,41
1,17
Imagen Opc4
2,93
4,41
0,95
Imagen Salir Imágenes Menú
Principal
1,26
3,45
Imagen de
Entrada
Fig. 29. Gráfico del tiempo de reacción de HbbTV vs GINGA
Con los resultados mostrados en la figuras 27, 28 y 29 se puede llegar a la
conclusión de que a pesar que el procesador de la TV tiene mejores características, la
aplicación GINGA tiene un mejor funcionamiento por su menor tiempo de reacción lo
que influye también en la percepción del usuario, esto se debe a que la aplicación
HbbTV gestiona siempre una conexión a la red, porque la aplicación esta hospedada
101
en un servidor Web, a comparación que la de GINGA descarga la aplicación en su
memoria y la procesa internamente sin requerir realizar una conexión web. Para
realizar las pruebas del tiempo de reacción se buscó tener condiciones óptimas es
decir una conexión de banda ancha estable, como se muestra en la figura 30.
Fig. 30. Banda Ancha ocupado para probar la aplicación HbbTV
Claramente va ser una ventaja que GINGA reproduce la aplicación como si fuera
una aplicación local, que a pesar de tener pocos recursos de hardware lo utiliza bien,
la misma aplicación HbbTV testeada desde una PC sí que tiene mucho mejor
rendimiento que la mostrada en el receptor de TV con HbbTV. Aunque viendo desde
el punto de vista del programador y del servidor de aplicaciones interactivas que
emiten en vivo las aplicaciones dentro de su flujo de transporte, es mucho más
sencillo gestionar desde cualquier acceso remoto y realizar los cambios en caliente,
ya que la aplicación siempre está accediendo a internet para obtener información, en
el caso de GINGA resulta un poco más complicado ya que la aplicación debería ser
modificada e insertada nuevamente dentro del carrusel de datos e indicar que tiene
una actualización, por lo que nuevamente en el receptor se debería cerrar
totalmente la aplicación y volver a cargarla.
102
Experiencia Cuantitativa en Base al Programador.
Aunque en las experiencias cualitativas en base al programador ya se detalló
que existía una mayor cantidad de líneas de programación en el desarrollo de la
aplicación HbbTV con respecto a la aplicación GINGA, en la figura 31 se muestra
gráficamente esta relación.
Líneas de
Código
Ginga;
160
Líneas de
Código
HbbTV;
1489
Fig. 31. Comparativa de las líneas de código de programación en la aplicación HbbTV y GINGA
Y también cabe mencionar que las líneas de código de GINGA fueron escritas en
un único archivo.ncl, y que para la creación de la misma aplicación fue necesario
ocupar 18 archivos de diferentes extensiones, html, css y js. Una descripción gráfica
de la comparación se muestra en la figura 32.
Ginga; 1
HbbTV;
18
Fig. 32. Comparativa de los archivos ocupados en la aplicación HbbTV y GINGA
103
Con estas comparativas cuantitativas se reafirma la aseveración ya antes
mencionada que para el programador resulta más rápido y sencillo realizar una
misma aplicación sobre GINGA que sobre HbbTV.
VENTAJAS Y DESVENTAJAS
Para finalizar este análisis comparativo en la tabla 16, se presenta un compilado
de algunas de las ventajas y desvantajas que presentan uno u otra plataforma de
interactividad.
Plataforma de
Interactividad
VENTAJAS
DESVENTAJAS
HBBTV
GINGA
- Es un sistema híbrido que ocupa las
ventajas de un sistema broadcast y
broadband.
- Usa tecnologías y lenguajes de
programación ampliamente
conocidas y probadas.
- Totalmente enfocado al
radiodifusor y a sus intereses.
- Fácil de realizar cambios de las
aplicaciones en vivo.
- Existen portales de aplicaciones
abiertas muy desarrollados y
amigables que acercan
eficientemente al usuario los
servicios de internet mediante la TV.
- Integra fácilmente servicios de
VoD, y EPG.
- Ha evolucionado con el tiempo.
- Libre de Royalties.
- Existe el interés de la industria de
los receptores de televisión.
- Estandariza el mercado de las
plataformas interactivas en Europa.
- Nuevas opciones de negocio tanto
como para fabricantes como para
desarrolladores y servidores y
distribuidores de contenido de TV.
- Aún le falta por extenderse en el
resto de países europeos aunque ya
han dado el ejemplo Alemania,
- Las aplicaciones pueden ser
transmitidas o llegar al consumidor
por broadcast o por un sistema
broadband IPTV, FTP, etc, lo que
permite la posibilidad de crear una
especie de APP Store de aplicaciones.
- Simple de diseñar y desarrollar una
aplicación.
- Usa un lenguaje de desarrollo
totalmente independiente de
cualquier otra tecnología ya existente.
- Tiene herramientas dedicadas para
el desarrollo de aplicaciones.
- La versión de GINGA NCL es
totalmente abierta y libre de royalties.
- Permite aplicaciones de carácter
local sin que el usuario tenga una
conexión a internet.
- En Latinoamérica está siendo
enfocada a dar servicios de carácter
social que permitan la inclusión digital
a personas de bajos recursos que no
tienen acceso a internet.
- Un mercado que aún no ha sido
explotado y donde se puede crear
muchos modelos de negocio.
- Usa NCL, un lenguaje un poco
desconocido.
- Aun no ha comenzado un despliegue
104
Francia y España Debe consolidarse
en el mercado lo antes posible.
- Necesita tener mayores recursos
de hardware en los equipos
receptores.
- Está orientado solo para
aplicaciones de interactividad total,
es decir necesita el canal de retorno
para funcionar.
masivo en Latinoamérica.
- Aun no se consolida como un
estándar obligatorio en los receptores
de TDT.
- Debe existir mejores herramientas
para gestionar los cambios y
actualizaciones de las aplicaciones
interactivas que son transmitidas por
el aire en vivo.
Tabla 16. Ventajas y desventajas de GINGA y HbbTV
105
CAPÍTULO 5
CONCLUSIONES
Las emisoras, proveedores de servicios y fabricantes quieren mejorar la
experiencia de TV para los consumidores de varias maneras. La creación de una
solución para hacer frente a este problema requiere estándares abiertos para evitar
la tecnología cerrada y una base común desde la cual trabajar a fin de fomentar la
dinámica del mercado, necesarias para lograr soluciones asequibles. Las soluciones
HbbTV y GINGA que se han presentado en este trabajo satisfacen esta demanda.
La industria será uno de los grandes dinamizadores del sistema y tendrán
mucho que decir en cómo se desarrollen incluso los contenidos o parte de ellos.
Hasta el momento hay una cierta falta de apoyo ya que algunos fabricantes optan
por soluciones propietarias que impiden la convergencia entre televisión e Internet.
El proyecto HbbTV ha despegado de manera significativa con la colaboración de
diversos grupos de entidades compuestos por los principales fabricantes
internacionales de televisión y de radiodifusión, sin embargo todavía falta para su
completa integración.
En España el número de dispositivos que soportan HbbTV todavía es reducido,
pero se espera que aumente en los próximos años, sin embargo se pretende
aprovechar que las estaciones de Televisión ya han comenzado a lanzar un sin
número de aplicaciones como la del botón rojo y este será el punto de partida para
establecer y promocionar otra forma de consumir televisión.
GINGA se presenta como una plataforma abierta con un gran futuro en
Latinoamérica, prueba de ello es la obligatoriedad que han declarado algunos países
106
para la entrada de los equipos receptores, esto sin duda será un factor de éxito y
junto con el desarrollo de aplicaciones llamativas, será un buen preámbulo para
motivar al telespectador a comprar receptores con GINGA y consumir las aplicaciones
interactivas que se transmitan con la TDT o por IPTV.
Este estudio muestra claramente las fortalezas y debilidades de los dos
sistemas de interactividad y sobre esto con las pruebas realizadas y los resultados
obtenidos deja sentado las bases para la futura integración total de HbbTV sobre
GINGA.
Con la creación de la aplicación que funciona sobre las dos plataformas se
comprobó que se puede alcanzar los mismos resultados además que permitió
realizar los análisis comparativos cuantitativos y cualitativos de las aplicaciones.
RECOMENDACIONES
Sería interesante que se siga con el proceso de integración para tener
plataformas de interactividad en televisión más robustas y que para el usuario tenga
mayores posibilidades de acceder a aplicaciones interactivas de este tipo sin importar
la plataforma que se utilice. Lo cual fortalecería la posibilidad de negocios en esta
área.
Se recomienda seguir impulsando el desarrollo de este tipo de aplicaciones
para promover la industria de la interactividad sobre la televisión que últimamente se
ha visto un poco opacada por la interactividad que los usuarios utilizan por medio de
sus dispositivos personales, smartphones, tablets, portátiles, etc. Con el fin de tener
mayores posibilidades de integración de la sociedad hacia las tecnologías.
Se puede también incursionar en investigar mecanismos que permitan a partir
de un código NCL convertir en código CE-HTML o un código CE-HTML en código NCL
para luego lograr modificar aplicaciones GINGA mediante HbbTV o viceversa.
107
REFERENCIAS
[1] Página oficial de HbbTV, http://www.hbbtv.org, Fecha de consulta 12-03-2014.
[2] Wikipedia Foundation, Inc., “HbbTV”, http://es.wikipedia.org/wiki/HbbTV, 2014,
Fecha de consulta 12-03-2014.
[3] Wikipedia Foundation, Inc., “Estandar ISDB-T”, http://es.wikipedia.org/wiki/ISDB-T,
2010, Fecha de consulta 12-03-2014.
[4] Wikipedia Foundation, Inc., “Sistema Brasileño de Televisión Digital”,
http://pt.wikipedia.org/wiki/SBTVD, 2010, Fecha de consulta 12-03-2014.
[5] M. Illescas, D. Villamarín, “Implementación de un transmisor de pruebas de tv
digital terrestre ISDB-Tb, para la emisión de aplicaciones interactivas”, 2011.
[6] Televisión Digital de Argentina, “Ventajas de la Televisión Digital”,
http://www.minplan.gov.ar/html/tv_digital/a.php, 2010, Fecha de consulta 12-032014.
[7] Pisciotta Nestor, “Sistema ISDB-Tb (Primera parte)”, Universidad Blas Pascal,
Argentina, 2010.
[8] Villamarín, D.; Illescas, M.; Olmedo, G.; Lara, R.; “Generating a Transport Stream for
Digital Terrestrial Television System in conformance with ISDB-Tb standard”, IEEE
2013.
[9] Armas, F.; Olmedo, G.; Acosta, F., “Análisis de prueba de medición de campo para
definir el sistema de TV digital para Ecuador”. 2008.
[10] Arcos, N.; Olmedo, G.; Lara, R.A., “Estudio de los servicios interactivos sobre
redes de televisión digital y su aplicación en el Ecuador”. 2008
[11] Morales, A.; Olmedo, G.; Lara, R.A., “Diseño de la red para interactividad en
televisión digital terrestre e IPTV en el campus ESPE Sangolquí”. 2010.
[12] Changoluisa, C. P.; Garzón, S; Lara, R.A.; Olmedo, G., “Estudio de factibilidad para
la implementación del canal de televisión de la Escuela Politécnica del Ejército”.
2011.
[13] Granja, N; Olmedo, G.; Acosta, F., “Análisis del Transport Stream para el estándar
de televisión digital ISDB-TB”. 2011.
[14] Torres J.; Olmedo, G.; Lara, R.A., “Diseño y desarrollo de una aplicación de
contenidos interactivos para tv digital basada en el Middleware Ginga del Sistema
Brasileño”. 2010
[15] ISO / IEC 13818-1, "MPEG-2", Third Edition, Fecha de consulta 12-03-2014.
[16] ABNT NBR 15603-2, "Televisão digital terrestre – Multiplexação e serviços de
informação (SI) Parte 2: Estrutura de dados e definições da informação básica de
SI" primeira edição, Diciembre 2007.
[17] “Hybrid Broadcast Broadband TV”. (2012, May 18). En Wikipedia,
http://en.wikipedia.org/w/index.php?title=Hybrid_Broadcast_Broadband_TV&oldi
d=493151929
[18] Mundo Interactivo. “Primer servicio HbbTV en la TDT”. Fecha de consulta 12-032014. http://www.mundoplus.tv/noticias/?seccion=tv_digital&id=8743
[19] Mundo Interactivo. “2012 será el año de la televisión conectada”, Fecha de
consulta 12-03-2014.
http://www.mundoplus.tv/noticias/?seccion=tv_digital&id=9383
[20] “HbbTV Specification, Version 1.5, marzo de 2012”. Fecha de consulta 12-032014. http://www.hbbtv.org/pages/about_hbbtv/HbbTV-specification-1-5.pdf
108
[21] “Hybrid Broadcast Broadband TV”. ETSI TS 102 796 V1.1.1, 2010.
http://www.etsi.org/deliver/etsi_ts/102700_102799/102796/01.01.01_60/ts_1027
96v010101p.pdf. Fecha de consulta 12-03-2014.
[22] “Internet TV (Web TV /TV híbrida /Smart TV)” http://www.tvplattform.de/de/dokumente/dokumente-internetatv. Fecha consulta 12-03-2014.
[23] “DVB Standards” https://www.dvb.org/standards, Fecha de consulta 12-03-2014.
[24] “Televisión Interactiva” http://en.wikipedia.org/wiki/Interactive_television,
Fecha de consulta 12-03-2014.
[25] “Televisión
Interactiva”,
http://es.wikipedia.org/wiki/Televisi%C3%B3n_
interactiva, Fecha de consulta 12-03-2014.
[26] ¿Qué es HbbTV?, http://www.ceskatelevize.cz/hbbtv/, Fecha de consulta 12-032014.
[27] “Antecedentes de HbbTV con transmisores codificados”, Fecha de consulta 1203-2014. http://www.digitalfernsehen.de/HbbTV-bei-codierten-Sendern-Seite2.113447.0.html
[28] “Llega la
Televisión
híbrida”, Fecha de
consulta 12-03-2014.
http://elpais.com/diario/2011/06/18/radiotv/1308348003_850215.html
[29] La televisión conectada: ¿inteligente o híbrida?, Fecha de consulta 12-03-2014.
http://www.ocu.org/tecnologia/television/noticias/television-conectada
[30] “Canales y servicios híbridos”. http://www.tdthibrida.es/canales.php, Fecha de
consulta 12-03-2014.
[31] “Dispositivos de la TDT Híbrida”. http://www.tdthibrida.es/dispositivos.php,
Fecha de consulta 12-03-2014.
[32] AEDETI (Asociación Española de TV Digital Interactiva). www.aedeti.com, Fecha
de consulta 12-03-2014.
[33] Ramón
Jesús
Millán,
“Televisión
Digital
Terrestre
TDT”
http://www.ramonmillan.com/tutoriales/tdt.php, Fecha de consulta 12-03-2014.
[34] “One-seg TV Digital Móvil” http://blog.pucp.edu.pe/item/79299/one-seg-tvdigital-movil, Fecha de consulta 12-03-2014.
[35] “Televisión Digital Terrestre TDT”, Fecha de consulta 12-03-2014.
http://wikitel.info/wiki/Televisi%C3%B3n_digital_terreste,
[36] “Interactividad”.http://www.televisiondigital.es/tecnologias/Interactividad/Pagi
nas/tdt-hibrida.aspx, Fecha de consulta 12-03-2014.
[37] “Segunda
Generación
DVB-T2”
Fecha
de
consulta
12-03-2014.
https://www.dvb.org/resources/public/factsheets/dvb-t2_factsheet.pdf
[38] Matthew Huntington, “Qué es HbbTV”, Fecha de consulta 12-03-2014.
http://www.nagra.com/dtv/company/newsroom/headlines/what-is-hbbtv/
[39] “Las
nuevas
tendencias
de
la
Televisión
Híbrida,
HbbTv”
http://www.redestelecom.es/tendencias/reportajes/1050192003003/televisionhibrida-ya-aqui.1.html, Fecha de consulta 12-03-2014.
[40] “Estado actual de los estándares de TV Digital en el mundo”
http://www.dtvstatus.net/map/map.html, Fecha de consulta 12-03-2014.
[41] Página oficial de GINGA http://www.ginga.org.br, Fecha de consulta 12-03-2014.
[42] MERITXELL, Estebanell, “Interactividad e Interacción”, Universidad de Girona –
España, http://web.udg.edu/pedagogia/images/gretice/INTERACT.pdf,
109
[43] AYMERICH, Laura, “Los nuevos formatos de publicidad interactiva en televisión”,
Grupo de investigación consolidado del Departamento de Comunicación
Audiovisual y Publicidad de la UAB.
[44] ARCINIEGAS, José, AMAYA, Juan, URBANO, Franco, CAMPO, Wilmar,
EUSCATEGUI, Robert, GARCÍA, Alexander, GARCÍA, Xabiel, “EDiTV: Educación virtual
basado en televisión interactiva para soportar programas a distancia”, Universidad
del Cauca – Colombia, Universidad Autónoma de Occidente – Colombia,
Universidad de Oviedo – España.
[45] PRADO, Emili, FRANQUET, Rosa, SOTO, María, RIBES, Xavier, FERNÁNDEZ, David,
“Tipología funcional de la televisión interactiva y de las aplicaciones de interacción
con el televisor”
[46] SIMIONI, Adriano, “Un framework para el desenvolvimiento de aplicaciones
interactivas para Televisión Digital”, Centro de Ciencias exactas y Tecnológicas,
Universidad de Vale do Rio dos Sinos.
[47] LAIOLA GUIMARÃES, Rodrigo, DE RESENDE COSTA, Romualdo, “Interactividad y
Sincronización en TV Digital”, Departamento de Informática, PUC de Rio.
[48] RIBEIRO, Jean, “Middleware Ginga”, Departamento de Ingeniería, Universidad
Federal Fluminense, 2010.
[49] ABNT NBR 15606-5 – Asociación Brasilera de Normas Técnicas – “Televisión
Digital Terrestre – Codificación de datos y especificaciones de transmisión para
radiodifusión digital – Parte 5: Ginga-NCL para receptores portátiles – Lenguaje
aplicación XML para codificación de aplicaciones” Sistema Brasilero de TV Digital
Terrestre, 2008.
[50] ABNT NBR 15606-4 – Asociación Brasilera de Normas Técnicas – “Televisión
digital terrestre – Codificación de datos y especificaciones de transmisión para
radiodifusión digital – Parte 4: Ginga-J – Ambiente para ejecución de aplicaciones
de procedimiento” Sistema Brasilero de TV Digital Terrestre, 2010.
[51] GOMES, Luiz, FERREIRA Rogéiro, FERREIRA, Márcio, “Ginga-NCL: El Ambiente
Declarativos del Sistema de TV Digital Brasilera”, Departamento de Informática,
Pontificia Universidad Católica de Rio de Janeiro, 2009.
[52] LEMOS DE SOUZA, Guido, CUNHA, Luiz, COELHO Carlos, “Ginga-J: El Middleware
de Procedimiento del Sistema de TV Digital Brasilera”, Departamento de
Informática, Universidad Federal de Paraíba, 2009.
[53] GOMES SOARES, Luiz, JUNQUEIRA BARBOSA, Simone, “Programando en NCL
3.0”, Editorial Elsevier, Tercera Edición, 2009.
[54] CARVALHO, Rafael, FERREIRA, Joel, RIBEIRO, Jean, VARANDA, Julia, MUCHALUAT,
Debora, “Introducción a los Lenguajes NCL y Lua: Desarrollando Aplicaciones
Interactivas para TV Digital”, Laboratorio MídiaCom, Universidad Federal
Fluminense, 2010.
[55] Página oficial de Berkelium Web Browser. http://berkelium.org/
[56] Wikipedia
Foundation,
Inc.,
“Google
Chrome
Web
Browser”,
http://es.wikipedia.org/wiki/Google_Chrome, 2014, Fecha de consulta 12-06-2014.
[57] Wikipedia
Foundation,
Inc.,
“Mozilla
Firefox
Web
Browser”,
http://es.wikipedia.org/wiki/Mozilla_Firefox, 2014, Fecha de consulta 12-06-2014.
[58] HbbTV Firefox plugin. https://addons.mozilla.org/es/firefox/addon/firehbbtv/,
2014, Fecha de consulta 12-06-2014.
110
[59] HbbTV Fire plugin http://tum-iptv.aw.atosorigin.com/firehbbtv/#presentation,
2014, Fecha de consulta 12-06-2014.
[60] Chromium
Embedded
Framework
Project
Information
https://code.google.com/p/chromiumembedded/, 2014, Fecha de consulta 12-062014.
[61] Wikipedia Foundation, Inc., “Chromium Embedded Framework Web Browser”,
http://en.wikipedia.org/wiki/Chromium_Embedded_Framework, 2014, Fecha de
consulta 12-06-2014.
[62] Chromium Embedded Framework download. http://cefbuilds.com/.
[63] Opera HbbTV Emulator software. http://www.operasoftware.com/products/tvemulator
[64] Wikipedia
Foundation,
Inc.,
“Opera
Web
Browser”,
http://es.wikipedia.org/wiki/Opera_(navegador), Fecha de consulta 12-06-2014.
[65] Wikipedia
Foundation,
Inc.,
“Iceweasel
Web
Browser”,
http://es.wikipedia.org/wiki/Iceweasel, 2014, Fecha de consulta 12-06-2014.
[66] Wikipedia
Foundation,
Inc.,
“WebKit
Web
Browser”,
http://es.wikipedia.org/wiki/Webkit, 2014, Fecha de consulta 12-06-2014.
[67] Wikipedia
Foundation,
Inc.,
“Konqueror
Web
Browser”,
http://es.wikipedia.org/wiki/Konqueror, 2014, Fecha de consulta 12-06-2014.
[68] Página oficial del navegador Konqueror de KDE http://www.konqueror.org, 2014,
Fecha de consulta 12-06-2014.
[69] Página oficial de la plataforma y del navegador ANT Galio,
http://www.antlimited.co.uk/ant_galio_browser.asp?menu=153, 2014, Fecha de
consulta 12-06-2014.
[70] Wikipedia
Foundation,
Inc.,
“Comparison
of
web
browsers”,
http://en.wikipedia.org/wiki/Comparison_of_web_browsers, 2014, Fecha de
consulta 12-06-2014.
[71] Wikipedia Foundation, Inc., “Anexo. Comparativa de los navegadores”,
http://es.wikipedia.org/wiki/Anexo:Comparativa_de_navegadores_web,
2014,
Fecha de consulta 12-06-2014.
[72] Compare
Best
Open
Source
Web
Browsers.
http://webbrowsers.findthebest.com/saved_search/Best-Open-Source-Web-Browsers, 2014,
Fecha de consulta 12-06-2014.
[73] Show alternatives of web browsers. http://alternativeto.net/software/opera/,
2014, Fecha de consulta 12-06-2014.
[74] Fuentes e información sobre la instalación del plugging de Eclipse NCL,
disponibles en http://laws.deinf.ufma.br/ncleclipse/es:install#.VCJdm_l_uSo.
[75] Visual Studio http://www.visualstudio.com/.
[76] Introducción y Manuales de la herramienta Autotools sobre Linux
http://www.gnu.org/software/automake/manual/html_node/AutotoolsIntroduction.html
[77] José Daniel Gambín Tomasi, DESARROLLO DE UN SERVICIO DE TELEVISIÓN
INTERACTIVA HbbTV SEGÚN EL ESTÁNDAR ETSI TS 102 796 v1.1.1 (JUN 2010),
Universidad Politécnica de Cartagena 2012.
[78] Wikipedia Foundation, Inc., “Calidad de Experiencia, (QoE, Quality of
Experience)”, http://es.wikipedia.org/wiki/Calidad_de_experiencia, 2014, Fecha de
consulta 12-06-2014.
111
GLOSARIO
ADSL
Asincronic Digital Suscriptor Line - Línea Digital de Suscripción
Asincrónica.
AIT
Application Information Table - Tabla de información de la aplicación.
API
Application Programming Interface - Interface de programación de
aplicaciones
ATSC
Advanced Television System Committee – Comité de Sistemas de
Televisión Avanzados.
BML
Broadcast Markup Language – Lenguaje de Marcas del Radiodifusor.
BST
Band Segmented Transmission - Transmisión de Banda Segmentada.
CE
Consumer Electronic - Electrónica de Consumo
CEA
Consumer Electronic Association - Asociación de Electrónica de Consumo
COFDM
Coded Orthogonal Frequency Division Multiplexing - Multiplexación por
División de Frecuencias Ortogonales Codificadas
CSS
Cascading Style Sheets - Hojas de Estilo en Cascada.
DLNA
Digital Living Network Alliance - Alianza para el estilo de vida digital en
red
DQPSK
Differential Quadrature Phase Shift Keying – Modulación por
desplazamiento de fase diferencial.
DSM-CC
Digital Storage Media Command and Control - Comando de control del
almacenamiento de medios digitales.
DTMB
Digital Terrestrial Multimedia Broadcast – Radiodifusión Digital
Terrestre de Multimedia.
DVB
Digital Video Broadcasting - Radiodifusión de Vídeo Digital.
ES
Elementary Stream - Flujo Elemental.
EDTV
Enhanced Definition Television - Televisión Digital Mejorada
EPG
Electronic Program Guide - Guía de Programación electrónica.
FTTx
Fiber to the X (Home, Build, etc.) - Fibra hasta la Casa, Edificio, Etc.
112
GEM
Globally Executable MHP - MHP Ejecutable Global.
GPLv2
General Public License version 2 - Licencia Pública General Version 2.
HbbTV
Hybrid Broadcast Broadband TV - TV híbrida radiodifundida y banda
ancha.
HD
High-definition - Alta Definición.
HDTV
High Definition Television - Televisión de Alta Definición.
HE-AAC
High-Efficiency Advanced Audio Coding- Codificación de Audio Avanzado
de Alta eficiencia.
HTML
HyperText Markup Language - Lenguaje de marcas de hipertexto
CE-HTML
Customer Electronic - HyperText Markup Language - Lenguaje de marcas
de hipertexto para dispositivos de Electrónica de Consumo
IP
Internet Protocol - Protocolo de Internet.
IPTV
Internet Protocol Television- Televisión sobre un protocolo de Internet.
ISDB-T
Integrated Services Digital Broadcasting-Terrestrial - Servicios
Integrados de Radiodifusión Digital - Terrestre.
ISDB-TB
Integrated Services Digital Broadcasting-Terrestrial Brazil - Servicios
Integrados de Radiodifusión Digital - Terrestre Brasil.
LCD
Liquid Crystal Display – Pantalla de cristal líquido.
LDTV
Low-definition television - Televisión de Baja Definición.
MHP
Multimedia Home Platform - Plataforma multimedia para el hogar
MPEG
Moving Picture Experts Group - Grupo de Expertos en Imágenes
Dinámicas.
NCL
Nested Context Language – Lenguaje de Contextos Anidados.
OFDM
Orthogonal Frequency Division Multiplexing - Multiplexación por
División de Frecuencias Ortogonales.
OIPF
Open IPTV Forum - Foro Abierto de IPTV
OTT
Over the top Technology.
PCR
Program Clock Reference - Referencia de Reloj para los Programas.
PES
Packetized Elementary Stream - Flujo Elemental Empaquetado.
113
PID
Packet Identifier - Identificador do Paquetes.
PIXEL
Picture element - Elemento de imagen.- es la menor unidad homogénea
en color que forma parte de una imagen digital, ya sea esta una
fotografía, un fotograma de vídeo o un gráfico.
PMT
Program Map Table – Tabla de Mapeamiento de Programas
QAM
Quadrature Amplitude Modulation - Modulación en Amplitud y
Cuadratura.
QoE
Quality of Experience - Calidad de experiencia.
QoS
Quality of Service - Calidad de servicio.
QPSK
Quadrature Phase Shift Keying - Modulación de Fase en Cuadratura.
RF
Radio Frequency - Radio Frecuencia.
SBTVD
Sistema Brasileño de Televisión Digital.
SDTV
Standard Definition Television - Televisión de Definición Estándar.
SI
Service Information - Tablas de Información del Sistema.
STB
Set Top Box – Decodificador para TV Digital.
SVOD
Suscriptor Video on Demand - Video bajo demanda por suscripción.
TDT
Televisión Digital Terrestre.
TS
Transport Stream - Flujo de Transporte.
UIT
Unión Internacional de Telecomunicaciones.
UHDTV
Ultra High Definition TV - Televisión de Ultra Alta Definición
UHF
Ultra High Frequency –Frecuencias Ultra Altas
VoD
Video on demand - Video bajo demanda.
VSB
Vestigial Side Band – Modulación de banda lateral vestigial.
W3C
World Wide Web Consortium - Consorcio del amplio mundo de la red.
WLAN
Wireless Local Area Network – Red de área local inalámbrica.
XHTML
Extensible HyperText Markup Language - Lenguaje de marcas de
hipertexto extensible.
XML
eXtensible Markup Language – Lenguajes de marcas extensible.
114
ANEXO 1
HOJA TÉCNICA SET TOP BOX EITV
EiTV Developer Box es un set-top box híbrido (ISDB-T e IPTV) enfocado en
desarrolladores de aplicativos Ginga (DTVi), compatible con los estándares declarativo
(Ginga-NCL / Lua) e imperativo (Ginga-J / JavaDTV) que fueron especificados para el
Sistema Brasileño de TV Digital (SBTVD).
El producto permite que los desarrolladores de aplicativos ejecuten sus aplicativos sin
la necesidad de transmitirlos en la señal de la emisora de TV digital. De esta manera, el
desarrollador podrá probar localmente su aplicativo, antes de publicarlo para ser
transmitido por la emisora de TV.
El EiTV Developer Box es indicado para uso en emisoras de TV, empresas
desarrolladoras de aplicativos, agencias de publicidad, universidades, institutos de I&D
y también por cualquier persona o empresa interesada en desarrollar aplicativos para
TV digital.
El EiTV Developer Box, por poseer soporte a canales IP, también es adecuado para
utilizarlo en soluciones IPTV y Digital Signage.
SET-TOP BOX HÍBRIDO (ISDB-T Y IPTV)
Vista en perspectiva:
CARACTERÍSTICAS TÉCNICAS
Front-End (Tuner + Demodulador):
 Frecuencia de Entrada :
 UHF: 470MHz(CH14) a 806MHz (CH69)
 VHF: 174MHz(CH7) a 216MHz (CH13)
 Ancho de Banda: 5.6MHz
 Nivel de Señal: -85 dBm la -20 dBm
 Señal: Compatible con el sistema ISDB-T
 Impedancia de Entrada: 75 Ohms (nominal)
 Conexión de entrada/salida: Conector F
Unidad de Procesamiento:
 Procesador: STi 7105 (CPU 450 MHz)
 Memoria RAM: 256 Mbytes
115
 Memoria Flash: 128 Mbytes
Decodificación de Vídeo:
 Estándar: Rec. ITU-T H.264 (MPEG-4 AVC)
 Profile: HP@L4.0
 Formatos: 480i y 1080i
 Frame Rate: 25, 30, 50 y 60MHz
 Frecuencia de vídeo: 50 y 60Hz
Decodificación de Audio:
 Estándar: ISO/IEC 14496-3 (MPEG-4 AAC) (SBR)
 Profile: AAC@L4 y HE-AAC@L4
Panel Frontal:
 Botones: cambio de canales y enciende/apaga (stand-by)
 Sensor infrarrojo para el control remoto
Interfaces de comunicación:
 High Speed USB 2.0
 Ethernet – 100 Mbps (RJ45)
Interfaces de salida:
 Salida Digital de Audio y Vídeo (HDMI)
 Salida de Vídeo Componente (YPbPr)
 Salida de Audio Estéreo 1 (D + Y)
 Salida de Vídeo Compuesto (CVBS – A/V)
 Salida de Audio Estéreo 2 (D + Y)
 Salida de Audio Digital (SPDIF coaxial)
Fuente de Energía:
 Tensión de Entrada: 100 ~ 240V AC, 50-60Hz
 Consumo: 8W
Dimensiones:
 Dimensiones: 37 x 187 x 220 mm
 Peso: 960g
Vista trasera:
CARACTERÍSTICAS ADICIONALES

Interactividad completa (DTVi – Ginga);
116











Muestra sólo vídeo y audio del canal de difusión;
Carga de aplicativos por aire, vía Internet o red local;
Soporte simultáneo a canales ISDB-T e IPTV (vía UDP y RTP);
Aplicativo gráfico (GUI) vía Web Server para la instalación y configuración de los
aplicativos Ginga (DTVi) y canales IPTV;
Ajuste de la imagen en la pantalla del televisor;
Control del bloqueo de canales por edad, con contraseña;
Compatible con los estándares de colores PAL-M y NTSC;
Búsqueda automática de canales;
Guía de programación electrónica (EPG);
Menú en portugués, inglés o español;
Selección de audio.
ÍTEMS INCLUIDOS






1 Convertidor Digital;
1 Manual de instrucciones;
1 Control Remoto;
2 Pilas/baterías AAA;
1 Cable HDMI;
1 Cable RCA.
MÁS INFORMACIÓN
EiTV - Entretenimiento & Interactividad para Televisión Digital
Rua Rafael Andrade Duarte, 600, 6º Andar.
Jardim Paraíso - CEP 13.100-011 - Campinas - SP - Brasil
Teléfono/Fax: (19) 3579-0744
117
ANEXO 2
Televisor TOSHIBA 32SL833G Especificaciones
Eco
Clase Energética :C
EU Etiqueta Ecológica :Si
Contenido en Mercurio :Diseño Mandos Táctiles
Componentes de Plomo (Directiva RoHS
:Si
incluyendo exenciones)
Fijación Pared (VESA) :200 x 200 (M6)
Modo Tienda
Etiqueta Digital Demo :Si
Resolution + demo :Si
Active Vision 100Hz demo :Si
Alimentación
Consumo en Stand-by (W) :0.212
Consumo Máximo EN60065 -(W) :93
Tensión Alimentación :220-240V 50-60Hz
Consumo energía anual (Media) :96.8272
Consumo EN62087 - Modo Hogar (W) :66.32
Otras Características
Auto Formato :Si
Modo Hotel :Si
Apagado sin señal :Si
Temporizador :Si
Bloqueo de Pqanel :Si
Audio Descripción (Sólo UK) :Si
Congelación de Pantalla :Si
Ampliación de 4 :3 Si
Clonado :Si
Accessorios Incluidos
Baterías Mando a Distancia :R03(AAA) x2
Pedestal incluido :Si
Manual de Instrucciones :Si
Mando a Distancia (Tipo) :CT-90369
Personal-TV
Configuración Personal de Volumen :Si
Configuración Personal de Imagen :Si
118
Lista Personal de Favoritos :Si
Configuración para 4 usuarios :Si
Organizador Personal de Grabaciones :Si
Imagen
Reducción Digital de Ruido (DNR) :Si
Real Digital Picture :Si
200 Active Motion Rate (AMR) / Ratio
:Si
Refresco Imagen
LED-TV :Si
Resolution Panel :1920 x 1080
Meta Brain :Si
3D Digital Comb Filter :Si
LED Edge :Si
Formato Pantalla :16:9
Contraste Dinámico Ratio :4.000.000:1
3D Colour Management :Si
Sensor Ambiental :Si
Resolution+ :Si
Selección Manual de tamaño Pantalla :Si
Full HD - Alta Definición 1080p :Si
Exact Scan Mode :Si
Diagonal pantalla (cm/pulgadas) :81/32
Control Activo de Retroiluminación :Si
24p Mode : Standard | Smooth Si
Temperatura de Color Seleccionable :Si
Angulo de Visión () :178
Tiempo de Respuesta (G a G) (ms) :505
Brillo (cd/m2) :450
Reducción de Ruido MPEG :Si
Accessorios Optionales
Adaptador USB WiFi (Dongle) :Si
Sonido
NICAM Stereo :Si
Audyssey EQ :Si
Potencia de Sonido (RMS) W :2 x 10
Dolby Digital Plus :Si
Sound Navi :Si
Dolby Volume :Si
Modos Imagen
119
Película :Si
Comercio :Si
Standard :Si
Juego :Si
Dinámico :Si
AutoView :Si
Conexiones
INSTAPORT :Si
Analogue audio (Cinch) | Audio (mini Síck) :Si ISi
Euroconector :Si
1080p, 1080i, 720p, 720i, 576p, 576i, 480p,
:Si I Si
480i | 24Hz (24p)
Video Componentes :Si
Entrada PC :Si
Version 1.4 | Canal Retorno Audio | HDMI
Canal Ethernet| Mejora de Contenido Audio | :Si , Si , - , Si
3D
Número de USB :2
HDMI :4
USB :Si
Salida de Audio Digital :Si
REGZA-Link (HDMI-CEC) :Si
LAN :Si
Euroconector(RGB | S-Video | AV) :Si
Video Compuesto :Si
Auricular :Si
Ajustes Experto
3D Colour Management :Si
Copiado a todas las Entradas :Si
Ajustes Gamma :Si
Preajustes : Hollywood Mode 1 & 2 (Modo Día/Noche) Si
601/709 Selección Decodificado de Color :Si
Plantilla Universal de Ajuste Integrada :Si
Filtro RGB :Si
HDMI Informacion :Si
Ajuste de Escala de Grises :Si
Dimensiones
Fondo con Pedestal (mm) :258
Peso con Pedestal (kg) :12.1
120
Fondo sin Pedestal (mm) :35.8
Peso sin Pedestal (kg) :8.9
Altura Embalaje (mm) :560
Ancho Embalaje (mm) :1060
Fondo Embalaje (mm) :95
Altura con Pedestal (mm) :526
Ancho (mm) :752
Altura sin Pedestal (mm) :473
Peso Embalaje (kg) :13.25
Características Interactivas
Memoria de Páginas TXT :500
Teletexto :Si
Guía Electrónica de Programación de 8 días :Si
Memorización de Canales Favoritos :Si
Now and Next Información :Si
Características USB
Audio (USB) :MP3, MP4
:AVCHD, AVCHD Lite, mts, m2ts, H.264,
Vídeo (USB) MPEG2-PS, mpg, mpeg, MPEG2, MP4, mp4,
m4v
Foto (USB) :JPEG
Sintonización
H.264 :Si
Interfaz Común+ (CI+) :Si
Auto Set-up :Si
Analógico :Si
TDT :Si
NTSC Video-Playback :Si
Sintonizador DVB Cable (HD) :Si
TV Standards :PAL I/BG/DK; SECAM BG/DK/L, NTSC BG 4.43
Número de Canales :ATV (100) , DTV (9999)
Smart-TV
DLNA DMP :Si
Compatible Windows 7 :Si
WiFi Protected Setup (WPS) :Si
Wireless Ready (con Llave WIFI Toshiba
:Si
opcional)
HbbTV :Si
Aplicación Regza para Teléfonos Móviles :Si
121
DLNA :Si
Toshiba Media Controller compatible :Si
Toshiba Places :Si
DLNA DMR :Si
You Tube :Si
Procesador
Procesador : ARM (CPU 800 Mhz)
RAM DDR :500 MByte
Memoria Flash :1 GByte
122
123
ANEXO 3.
«rojo.js» Función que inicializa la aplicación HbbTV
function startAll(){
hbbtvlib_initialize();
hbbtvlib_show();
applicationIsVisible = true;
registerKeyEventListener();
initApp();
}// JavaScript Document
«base.js» Función que controla la interacción de la aplicación.
var opts = false;
var selected = 0;
function initVideo() {
try {
document.getElementById('video').bindToCurrentChannel();
} catch (e) {
// ignore
}
try {
document.getElementById('video').setFullScreen(false);
} catch (e) {
// ignore
}
}
function initApp() {
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.show();
app.activate();
} catch (e) {
// ignore
}
setKeyset(0x1+0x2+0x4+0x8+0x10);
}
function setKeyset(mask) {
// for HbbTV 0.5:
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// ignore
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// ignore
}
// for HbbTV 1.0:
124
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
} catch (e) {
// ignore
}
}
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
function menuInit() {
opts = document.getElementById('indice').getElementsByTagName('li');
menuSelect(0);
}
function menuSelect(i) {
if (i<=0) {
i = 0;
} else if (i>=opts.length) {
i = opts.length-1;
}
selected = i;
var scroll = Math.max(0, Math.min(opts.length-13, selected-6));
for (i=0; i<opts.length; i++) {
opts[i].style.display = (i>=scroll && i<scroll+13) ? 'block' : 'none';
opts[i].className = selected==i ? 'lisel' : '';
}
}
function showStatus(succss, txt) {
var elem = document.getElementById('status');
elem.className = succss ? 'statok' : 'statfail';
if (!txt) {
elem.innerHTML = '';
return;
}
elem.innerHTML = '<b>Status:<'+'/b><br />'+txt;
if (succss) {
setInstr('Test succeeded, please execute the next test<br />(press OK).');
if (opts) menuSelect(selected+1);
} else {
setInstr('Test failed, please return to test menu<br />(press OK).');
if (opts) menuSelect(opts.length-1);
}
}
function setInstr(txt) {
document.getElementById('instr').innerHTML = txt;
}
125
«botonesindex.js» Función que carga el Link del botón rojo.
var req = false;
function handleKeyCode(kc) {
if (kc==VK_UP) {
return true;
} else if (kc==VK_DOWN) {
return true;
} else if (kc==VK_RED) {
document.location.href = '../diego/segundo.htm';
return true;
} else if (kc==VK_GREEN) {
return true;
} else if (kc==VK_YELLOW) {
return true;
}
}
«hbbtvlib.js» Librería de HbbTV que siempre se debe cargar en toda aplicación.
/**
* HbbTV library v1.0
*
* (C) 2009, IRT GmbH
*
* Overview:
*
* You need to add the OIPF application manager and the oipf configuration
* embedded object to your HTML DOM tree e.g.:
*
<div style="visibility: hidden; display: none;">
<object type="application/oipfApplicationManager" id="oipfAppMan"> </object>
<object type="application/oipfConfiguration" id="oipfConfig"> </object>
</div>
*
* Before using any other function call the initializer first.
*
* function hbbtvlib_intialize()
* Creates and initializes HbbTV, i.e. OIPF DAE, embedded objects.
* Always call this function prior to other functions of this library.
*
* function hbbtvlib_show()
* Shows the application and requests keys via the keyset object.
*
* function hbbtvlib_hide()
* Hides the application and releases keys via the keyset object.
*
* function hbbtvlib_createApp()
* Create applications with the OIPF Application Manager
*
* function hbbtvlib_closeApp()
* Destroys this application.
*
* function hbbtvlib_init_broadcast()
* Convenience function that integrates the broadcast video in your application.
*
* function hbbtvlib_release_broadcast()
126
* Convenience function that removes the broadcast video from your application.
*
* function hbbtvlib_current_service()
* Returns the DVB service ID.
*/
/**
* The last error occured in hbbtvlib. If one of the functions returns false,
* the error can be retrieved via this property.
*/
var hbbtvlib_lastError = "no error";
/**
* @return true if OIPF functions are available
*/
function hbbtvlib_initialize() {
try {
int_createOipfObjs();
var appMgr = int_objs[int_objTypes.appMan];
if (appMgr && typeof(appMgr.getOwnerApplication) != "undefined")
int_app = appMgr.getOwnerApplication(document);
else {
hbbtvlib_lastError = "no application manager";
int_app = null;
return false;
}
return int_initKeysetObj();
} catch (e) {
hbbtvlib_lastError = e;
int_app = null;
}
return false;
};
/**
* This function does everything HbbTV requires an application to do
* when it wants to get visible.
*
* @return
*/
function hbbtvlib_show() {
try {
int_app.show();
if (typeof int_app.activate != "undefined") int_app.activate();
if (typeof int_app.activateInput != "undefined") int_app.activateInput();
int_keyset.setValue(int_ksVisible);
return true;
} catch (e) {
hbbtvlib_lastError = e;
return false;
}
}
/**
* This function does everything HbbTV requires an application to do
* when it wants to transition to the hidden state.
127
*
* @return
*/
function hbbtvlib_hide() {
try {
if (int_bc_video) int_bc_video.style.visibility = "visible";
int_app.hide();
int_keyset.setValue(int_ksHidden);
return true;
} catch (e) {
hbbtvlib_lastError = e;
return false;
}
}
/**
* Overrides the default keysets.
* Default is RED for hidden state, all for visible state.
*
* @param visibleSet a keyset bitmask
* @param hiddenSet a keyset bitmask
* @return
*/
function hbbtvlib_setKeysets(visibleSet, hiddenSet) {
if (typeof visibleSet == "Number") int_ksVisible = visibleSet;
if (typeof hiddenSet == "Number") int_ksHidden = hiddenSet;
};
/**
* Starts a new application and destroys this application.
*
* @param dvbUrl including organization and application ids
* @param httpUrl a fallback URL
*
* @return false
*/
function hbbtvlib_createApp(dvbUrl, httpUrl) {
if (int_app) {
try {
if (dvbUrl && int_app.createApplication(dvbUrl, false)) {
int_app.destroyApplication();
return true;
}
hbbtvlib_lastError = "Failed to launch dvb URL: " + dvbUrl;
} catch (e) {
hbbtvlib_lastError = e;
}
try {
if (httpUrl && int_app.createApplication(httpUrl, false)) {
int_app.destroyApplication();
return true;
}
hbbtvlib_lastError = "Failed to launch http URL: " + httpUrl;
} catch (e) {
hbbtvlib_lastError = e;
}
128
return false;
} else if (httpUrl) {
document.location.href = httpUrl;
}
hbbtvlib_lastError = "OIPF application manager not available";
return false;
};
/**
* Destroys this application.
*
* @param fallBackUrl
* @return
*/
function hbbtvlib_closeApp(fallBackUrl) {
if (int_app) {
try {
int_app.destroyApplication();
} catch (e) {
hbbtvlib_lastError = e;
}
} else if (fallBackUrl) {
document.location.href = fallBackUrl;
} else {
window.close();
}
return false;
};
/**
* Handle OIPF DAE Broadcast video
*/
var int_bc_video = null;
var int_bc_container = null;
var int_currentChannel = null;
/**
* Creates and initializes a broadcast video inside the element
* identified by the containerId. If no bc video can be included
* the dummy picture is added instead of the bc.
*
* @param parentId the id of the HTML container where the video/broadcast object will be added
* @param objId id which shall be set for the video/broadcast object
* @param dummyPic an optional picture to be shown if video/broadcast can not be added
*
*/
function hbbtvlib_init_broadcast (parentId, objId, dummyPic) {
try {
int_bc_container = document.getElementById(parentId);
if (!int_bc_container) return false;
// root container for video/broadcast object
int_bc_container.innerHTML = '<object id="' + objId + '" type="video/broadcast" style="visibility:
visible;"> </object>';
int_bc_video = document.getElementById(objId);
// check if OIPF video/broadcast object is supported
129
//
window.setTimeout(function () {
try {
if (typeof (int_bc_video.bindToCurrentChannel) != 'undefined') {
int_bc_video.onChannelChangeSucceeded = function (channel)
{
int_currentChannel = channel;
};
int_bc_video.onChannelChangeError = function (channel, errorState)
{
int_vb_onError(objId, dummyPic);
};
int_bc_video.bindToCurrentChannel();
} else if (dummyPic) {
hbbtvlib_lastError = "video/broadcast object not supported";
int_bc_container.innerHTML = '<img id="'+ objId + '" src="' + dummyPic + '" alt="TV Bild" />';
}
} catch (ex) {
hbbtvlib_lastError = ex;
int_vb_onError(objId, dummyPic);
}
//
}
//
, 1000);
return true;
} catch (e) {
hbbtvlib_lastError = e;
int_vb_onError(objId, dummyPic);
}
return false;
};
function int_vb_onError (objId, dummyPic) {
if (dummyPic) {
int_bc_container.innerHTML = '<img id="'+ objId + '" src="' + dummyPic + '" alt="TV Bild" />';
} else
{
int_bc_container.innerHTML = "";
}
int_currentChannel = null;
int_bc_video = null;
}
/**
* Releases the video/broadcast object and removes the object from the DOM.
*/
function hbbtvlib_release_broadcast () {
try {
if (int_bc_video && typeof (int_bc_video.release) != "undefined") {
int_bc_video.release();
int_bc_video = null;
}
if (int_bc_container) {
int_bc_container.innerHTML = "";
int_bc_container = null;
}
130
int_currentChannel = null;
} catch (e) {
hbbtvlib_lastError = e;
}
};
/**
* Requires hbbtvlib_init_broadcast
*
* @return the DVB service id of the current presented service or -1
*/
function hbbtvlib_current_service () {
try {
return int_bc_video.currentChannel.sid;
} catch (e) {
hbbtvlib_lastError = e;
}
return -1;
};
/**
* Tunes to a DVB service identified by the DVB Triplet. The application may
* get killed due to the application life cycle, i.e. if it is not signalled
* with their application ID on the tuned service.
*
* @param onid the original network id
* @param tsid the transport stream id
* @param sid the service id
*
* @return false if there is no video broadcast object available or there is no
*
channel found for this triplet
*/
function hbbtvlib_tuneTo(onid, tsid, sid) {
try {
var chLst = int_bc_video.getChannelConfig().channelList;
onid = (typeof(onid) == 'number') ? onid : parseInt(onid, 10);
tsid = (typeof(tsid) == 'number') ? tsid : parseInt(tsid, 10);
sid = (typeof(sid) == 'number') ? sid : parseInt(sid, 10);
var ch = chLst.getChannelByTriplet(onid, tsid, sid);
if (ch == null) {
hbbtvlib_lastError = "Tuning failed, no channel object found for given DVB triplet.";
return false;
}
int_bc_video.setChannel(ch, false);
return true;
}catch (e) {
hbbtvlib_lastError = "Tuning failed due to " + e;
}
return false;
};
/*
131
* Library internal (private) properties and functions.
*/
/**
* Array of OIPF DAE embedded objects. Access Key is the mime-type without "application/".
*/
var int_objs = new Array();
var int_objTypes = {
appMan: "oipfApplicationManager",
config: "oipfConfiguration"
};
/**
* OIPF DAE Application object
*
- to show/hide the application
*
- create or destroy applications
* - providing the keyset object
*/
var int_app = null;
/**
* The OIPF keyset object used to request keys from terminal.
*
* Usually this is the RED button in hidden mode, and up to all
* available keys in visible mode.
*/
var int_keyset = null;
var int_ksHidden = null;
var int_ksVisible = null;
/**
* Internal function to create OIPF embedded objects,
* like ApplicationManager etc., if not already existing.
*/
function int_createOipfObjs() {
if (int_objs.length) return;
// Look for existing objects
var objects = document.getElementsByTagName("object");
for (var i=0; i<objects.length; i++) {
var sType = objects.item(i).getAttribute("type");
//alert(sType);
for (var eType in int_objTypes) {
if (sType == "application/" + int_objTypes[eType]) {
int_objs[int_objTypes[eType]] = objects.item(i);
}
}
}
};
/**
* Retrieves the keyset object for HbbTV 1.1.1 and 0.5 implementations.
*
* Sets default keysets for hidden and visible modes.
*/
132
function int_initKeysetObj () {
// try HbbTV 1.1.1
try {
int_keyset = int_app.privateData.keyset;
hbbtvlib_lastError = "privateData";
} catch (e) {
int_keyset = null;
// try HbbTV 0.5
try {
var tmp = int_objs[int_objTypes.config].keyset;
tmp.setValue = function (val) {
this.value = val;
};
int_keyset = tmp;
hbbtvlib_lastError = "oipfConfig";
} catch (e) {
int_keyset = null;
}
}
if (int_keyset) {
// set default key sets
if (!int_ksHidden) int_ksHidden = int_keyset.RED;
if (!int_ksVisible) int_ksVisible = 0x33F; // color + nav + vcr + numeric + alpha
}
return int_keyset != null;
};
«keycode.js» Librería de HbbTV que escucha cuando una tecla fue presionada.
if (typeof(KeyEvent)!='undefined') {
if (typeof(KeyEvent.VK_LEFT)!='undefined') {
var VK_LEFT = KeyEvent.VK_LEFT;
var VK_UP = KeyEvent.VK_UP;
var VK_RIGHT = KeyEvent.VK_RIGHT;
var VK_DOWN = KeyEvent.VK_DOWN;
}
if (typeof(KeyEvent.VK_ENTER)!='undefined') {
var VK_ENTER = KeyEvent.VK_ENTER;
}
if (typeof(KeyEvent.VK_RED)!='undefined') {
var VK_RED = KeyEvent.VK_RED;
var VK_GREEN = KeyEvent.VK_GREEN;
var VK_YELLOW = KeyEvent.VK_YELLOW;
var VK_BLUE = KeyEvent.VK_BLUE;
}
if (typeof(KeyEvent.VK_PLAY)!='undefined') {
var VK_PLAY = KeyEvent.VK_PLAY;
var VK_PAUSE = KeyEvent.VK_PAUSE;
var VK_STOP = KeyEvent.VK_STOP;
}
if (typeof(KeyEvent.VK_FAST_FWD)!='undefined') {
var VK_FAST_FWD = KeyEvent.VK_FAST_FWD;
var VK_REWIND = KeyEvent.VK_REWIND;
}
133
if (typeof(KeyEvent.VK_BACK)!='undefined') {
var VK_BACK = KeyEvent.VK_BACK;
}
if (typeof(KeyEvent.VK_0)!='undefined') {
var VK_0 = KeyEvent.VK_0;
var VK_1 = KeyEvent.VK_1;
var VK_2 = KeyEvent.VK_2;
var VK_3 = KeyEvent.VK_3;
var VK_4 = KeyEvent.VK_4;
var VK_5 = KeyEvent.VK_5;
var VK_6 = KeyEvent.VK_6;
var VK_7 = KeyEvent.VK_7;
var VK_8 = KeyEvent.VK_8;
var VK_9 = KeyEvent.VK_9;
}
}
if (typeof(VK_LEFT)=='undefined') {
var VK_LEFT = 0x25;
var VK_UP = 0x26;
var VK_RIGHT = 0x27;
var VK_DOWN = 0x28;
}
if (typeof(VK_ENTER)=='undefined') {
var VK_ENTER = 0x0d;
}
if (typeof(VK_RED)=='undefined') {
var VK_RED = 0x74;
var VK_GREEN = 0x75;
var VK_YELLOW = 0x76;
var VK_BLUE = 0x77;
}
if (typeof(VK_PLAY)=='undefined') {
var VK_PLAY = 0x50;
var VK_PAUSE = 0x51;
var VK_STOP = 0x53;
}
if (typeof(VK_FAST_FWD)=='undefined') {
var VK_FAST_FWD = 0x46;
var VK_REWIND = 0x52;
}
if (typeof(VK_BACK)=='undefined') {
var VK_BACK = 0xa6;
}
if (typeof(VK_0)=='undefined') {
var VK_0 = 0x30;
var VK_1 = 0x31;
var VK_2 = 0x32;
var VK_3 = 0x33;
var VK_4 = 0x34;
var VK_5 = 0x35;
var VK_6 = 0x36;
var VK_7 = 0x37;
var VK_8 = 0x38;
var VK_9 = 0x39;
}
134
ANEXO 4
«teletexto.js» Función que llama a todos los métodos necesarios para inicializar la
aplicación
/* Función que llama a todos los métodos necesarios para inicializar el teletexto*/
function startText(){
updateDateTimeString();//actualiza la fecha y la hora
actualizarEtiquetas();//actualiza las categorías del menú
cargarPaginas();//prepara la cadena de páginas disponibles en el teletexto
updatePreview("Teletexto/html_generados/100.xml");//carga la primera página
hbbtvlib_initialize();//inicializa las funciones del OIPF
hbbtvlib_show();//muestra la aplicación
aplicacionEsVisible = true;
registerKeyEventListener();//activa un "escuchador" de teclas pulsadas, que captura el código
de la tecla que se pulsó en el mando y la envía a otra función
inicAplicacion();//inicializa la aplicación con los métodos del objeto OIPF Application Manager
}
«base.js» Función que controla la interacción de la aplicación.
var opts = false;
var selected = 0;
/* Función que inicializa la aplicación HbbTV */
function inicAplicacion() {
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.show();
app.activate();
} catch (e) {
// se ignoran las excepciones
}
setKeyset(0x1+0x2+0x4+0x8+0x10);
}
/* Función que enmascara las pulsaciones, es decir, prepara una máscara para ignorar ciertas
pulsaciones */
function setKeyset(mask) {
// para HbbTV 0.5:
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// se ignoran las excepciones
}
// para HbbTV 1.0:
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
135
} catch (e) {
// se ignoran las excepciones
}
}
/* Función que activa un "escuchador" de teclas pulsadas. Captura el código de la tecla que se pulsó en
el mando y la enví-a a otra función */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
/* Función que inicializa el menú lateral */
function menuInic() {
opts = document.getElementById('indice').getElementsByTagName('li');//array que contiene las
distintas opciones del menu lateral
menuSeleccionar(0);//la primera opción viene seleccionada por defecto
}
var opts = false;
var selected = 0;
/* Función que inicializa la aplicación HbbTV */
function inicAplicacion() {
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.show();
app.activate();
} catch (e) {
// se ignoran las excepciones
}
setKeyset(0x1+0x2+0x4+0x8+0x10);
}
/* Función que enmascara las pulsaciones, es decir, prepara una máscara para ignorar ciertas
pulsaciones */
function setKeyset(mask) {
// para HbbTV 0.5:
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// se ignoran las excepciones
}
// para HbbTV 1.0:
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
136
}
}
/* Función que activa un "escuchador" de teclas pulsadas. Captura el código de la tecla que se pulsó en
el mando y la enví-a a otra función */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
/* Función que inicializa el foco */
function menuInic() {
opts = document.getElementById('column').getElementsByTagName('a');//array que contiene
las distintas opciones del menu lateral
menuSeleccionar(0);//la primera opción viene seleccionada por defecto
}
/* Función para navegar por las 4 opciones de la página */
function menuSeleccionar(i) {
if (i<=0) {
i = 0;
} else if (i>=opts.length) {
i = opts.length-1;
}
selected = i;
var scroll = Math.max(0, Math.min(opts.length-5, selected-2));//para hacer scoll entre las opciones que
están "ocultas" por el tamaño de la pantalla
for (i=0; i<opts.length; i++) {
opts[i].style.display = (i>=scroll && i<scroll+5) ? 'inline-table' : 'none';
if (selected == i) {
opts[i].setAttribute('focused','si');
} else {
opts[i].setAttribute('focused','no');
}
}
}var opts = false;
var selected = 0;
/* Función que inicializa la aplicación HbbTV */
function inicAplicacion() {
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.show();
app.activate();
} catch (e) {
// se ignoran las excepciones
}
setKeyset(0x1+0x2+0x4+0x8+0x10);
}
/* Función que enmascara las pulsaciones, es decir, prepara una máscara para ignorar ciertas
pulsaciones */
function setKeyset(mask) {
// para HbbTV 0.5:
try {
137
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
try {
var elemcfg = document.getElementById('oipfcfg');
elemcfg.keyset.setValue(mask);
} catch (e) {
// se ignoran las excepciones
}
// para HbbTV 1.0:
try {
var app = document.getElementById('appmgr').getOwnerApplication(document);
app.privateData.keyset.setValue(mask);
app.privateData.keyset.value = mask;
} catch (e) {
// se ignoran las excepciones
}
}
/* Función que activa un "escuchador" de teclas pulsadas. Captura el código de la tecla que se pulsó en
el mando y la enví-a a otra función */
function registerKeyEventListener() {
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode)) {
e.preventDefault();
}
}, false);
}
/* Función que inicializa el menu lateral */
function menuInic() {
opts = document.getElementById('indice').getElementsByTagName('li');//array que contiene las
distintas opciones del menu lateral
menuSeleccionar(0);//la primera opción viene seleccionada por defecto
}
/* Función para navegar por el menu lateral */
function menuSeleccionar(i) {
if (i<=0) {
i = 0;
} else if (i>=opts.length) {
i = opts.length-1;
}
selected = i;
var scroll = Math.max(0, Math.min(opts.length-5, selected-2));//para hacer scoll entre las opciones que
están "ocultas" por el tamaño de la pantalla
for (i=0; i<opts.length; i++) {
opts[i].style.display = (i>=scroll && i<scroll+5) ? 'inline-table' : 'none';
if (selected == i) {
opts[i].setAttribute('focused','si');
} else {
opts[i].setAttribute('focused','no');
}
}
}
138
«navegacion.js» Contiene las funciones que cargan las opciones de navegación sobre
la aplicación.
var req = false;
var focus = 'lateral';
var enlaceSelected = 0;
var tipoFicha = 0;
var paginas = 0;
var cadenaEnlaces = 0;
var index = 0;
var aplicacionEsVisible = false;
/* Función que permite almacenar en el array páginas todas las páginas disponibles */
function cargarPaginas(){
req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState!=4 || req.status!=200) return;
paginas = req.responseText.split('#'); //las páginas están separadas por '#'
req.onreadystatechange = null;
req = null;
};
req.open('GET', 'paginas.php');
req.send(null);
}
var textopacity = 0;
var animtimer = false;
/* Función que fija el tipo de la ficha que se está mostrando. Las fichas pueden ser 'i'-índice o 'c'contenido */
function fijarTipo (t){
tipoFicha = t;
}
/* Función que sirve para ocultar el teletexto */
function cambiarVisibilidad() {
try {
var tStyle = aplicacionEsVisible? "hidden":"visible";
var todo = document.getElementById("todo");
aplicacionEsVisible= !aplicacionEsVisible;
if (aplicacionEsVisible) {
hbbtvlib_show();
} else {
if (!hbbtvlib_hide()) window.close();
}
} catch (e) {
//alert("Cambiar visibilidad de la aplicación: " + e);
}
}
/* Función que sirve para navegar el teletexto cuando el foco está en las fichas. Si es una página de
índice, que contiene
139
enlaces, la función navega por los enlaces. También sirve para avanzar por las páginas de contenido y
retroceder. */
function navegarPagina(dir) {
if(dir == 'left') { // si la dirección es hacia arriba
if ( tipoFicha == 'i'){ // si es una página de índice
if ( enlaceSelected == 0 ){ // si está en el primer enlace
retrocederPagina(); // se retrocede una página
}
if ( enlaceSelected > 0 ){ // si se está en cualquier otro enlace
enlaceSelected -= 1;
enlaceSeleccionar(enlaceSelected); // se selecciona el enlace superior
}
}
if (tipoFicha == 'c'){ // si es una página de contenidos
retrocederPagina(); //se retrocede una página
}
}
if(dir == 'right') { //si la dirección es hacia abajo
if (tipoFicha == 'i'){// si es una página de índice
if ( enlaceSelected >=
document.getElementById('enlaces').getElementsByTagName('li').length - 1){
avanzarPagina(); // si el enlace que estaba seleccionado es el íltimo,
se avanza una página
}
if ( enlaceSelected <
document.getElementById('enlaces').getElementsByTagName('li').length - 1 ){
enlaceSelected += 1;
enlaceSeleccionar(enlaceSelected); // si se está en cualquier otro
enlace se selecciona el enlace inferior
}
}
if (tipoFicha == 'c'){ // si es una página de contenido
avanzarPagina() // se avanza una página
}
}
return true;
}
/* Función que carga la siguiente página */
function avanzarPagina(){
if(index+1<paginas.length){
updatePreview('Teletexto/html_generados/' + paginas[index + 1] + '.xml');//pide la
página
index++;// aumenta la cuenta
}
}
/* Función que carga la página anterior */
function retrocederPagina(){
if (index>=1){
updatePreview('Teletexto/html_generados/' + paginas[index-1] + '.xml');//pide la
página
140
index--;//aumenta la cuenta
}
}
/* Función que gestiona la selección de los enlaces */
function enlaceSeleccionar(n){
var enlaces = document.getElementById('texto').getElementsByTagName('li');//array que
contiene todos los enlaces de la página mostrada
var k = 0;
if (n<=0){
n =0;
}else if (i>=enlaces.length){
n = enlaces.length - 1;
}
for (k=0; k<enlaces.length; k++){
if ( k == n )enlaces[k].setAttribute('selected','si');
if ( k != n )enlaces[k].setAttribute('selected','no');
}
var enlaceSeleccionado = n;
var scroll = Math.max(0, Math.min(enlaces.length-6, enlaceSeleccionado-4));
var i = 0;
for (i=0; i<enlaces.length; i++) {
enlaces[i].style.display = (i>=scroll && i<scroll+6) ? 'inline-table' : 'none';//para ir
mostrando los enlaces que no "caben" en la página
}
}
/* Función para alternar el foco entre la sección lateral y la central */
function cambiarFoco(){
if ( focus == 'lateral'){
focus = 'centro';
enlaceSeleccionar(0);
var i;
for (i=0; i<opts.length; i++){
if ( opts[i].getAttribute('focused') == 'si') opts[i].setAttribute('focused','no');
}
} else if ( focus == 'centro'){
menuSeleccionar(selected);
focus = 'lateral';
}
}
/* Función que determina el comportamiento al pulsar las teclas del mando */
function handleKeyCode(kc) {
if (kc==VK_LEFT) {
if ( focus == 'lateral') {
menuSeleccionar(selected-1);
} else if ( focus == 'centro'){
navegarPagina('up');
}
return true;
} else if (kc==VK_RIGHT) {
if ( focus == 'lateral') {
menuSeleccionar(selected+1);
} else if ( focus == 'centro'){
navegarPagina('down');
141
} return true;
}
else if (kc==VK_ENTER) {//accede a la opción seleccionada, es como RIGHT
if ( focus == 'lateral') {
var page = opts[selected].getAttribute("pagina");
var link = 'Teletexto/html_generados/' + page + '.xml';
updatePreview(link);
var i
for (i = 0; i < opts.length; i++){
if ( i == selected){
opts[i].setAttribute('selected','si');
} else {
opts[i].setAttribute('selected','no');
}
}
}
else if ( focus == 'centro' && tipoFicha == 'i'){
var link = 'Teletexto/html_generados/' + cadenaEnlaces[enlaceSelected] +
'.xml';
updatePreview(link);
}return true;
}else if (kc==VK_RED) {//oculta y muestra el teletexto
document.location.href = '../diego/iniciorojo.htm';
return true;
}
return false;
}
«etiquetas.js» Función que obtiene las diferentes opciones del menú mediante una
petición XMLHttpRequest
var etiquetasReq = new XMLHttpRequest();
function actualizarEtiquetas() {
try {
var progUrl = "xml/categorias.xml";
if (etiquetasReq != null) etiquetasReq.abort();
etiquetasReq.onreadystatechange =
function () {
handleEtiquetasXML(etiquetasReq);
};
etiquetasReq.open("GET", progUrl);
etiquetasReq.setRequestHeader("Cache-Control", "no-cache");
etiquetasReq.send(null);
} catch (e) {
alert(e);
}
}
/* Función que presenta el menú lateral */
function handleEtiquetasXML (request) {
if (request.readyState==4) {
if (request.status == 200 || request.status == 0) {
try {
var xml = request.responseXML;
142
var elementos = xml.getElementsByTagName("elemento");//array
que contiene todas las opciones
document.getElementById("indice").innerHTML = '';
for (var i = 0; i < elementos.length; i++){
var texto = elementos[i].getElementsByTagName("texto");
var nombre =
elementos[i].getElementsByTagName("nombre");
var pagina =
elementos[i].getElementsByTagName("pagina");
document.getElementById("indice").innerHTML += '<li
selected="no" focused="no" pagina="' + pagina[0].firstChild.nodeValue + '" name="' +
nombre[0].firstChild.nodeValue + '">' + texto[0].firstChild.nodeValue+'</li>';//inserta cada opción en el
menú lateral
}
menuInic();
} catch (e) {
//alert(e);
}
}
}
}
«hbbtvlib.js» Librería de HbbTV que siempre se debe cargar en toda aplicación.
Esta es la misma que ya se muestra en el anexo 2.
«keycode.js» Librería de HbbTV que escucha cuando una tecla fue presionada.
Esta es la misma que ya se muestra en el anexo 2.
«fecha.js» Función que obtiene la hora del sistema.
function createDateTimeString(date) {
var dateStr = "";
var temp = date.getDate();
dateStr += ((temp < 10) ? "0" + temp : temp) + ".";
temp = date.getMonth() + 1;
dateStr += ((temp < 10) ? "0" + temp : temp) + ".";
dateStr += date.getFullYear() + ", ";
temp = date.getHours();
dateStr += ((temp < 10) ? "0" + temp : temp) + ":";
temp = date.getMinutes();
dateStr += ((temp < 10) ? "0" + temp : temp);
return dateStr;
}
function updateDateTimeString() {
document.getElementById("fecha").innerHTML = createDateTimeString(new Date());
}
«fichas.js» Función que obtiene la imagen que se desea mostrar en formato XML
var previewReq = new XMLHttpRequest();
var paginaActual = 0;
143
function updatePreview(url) {
try {
var progUrl = url;
if (previewReq != null) previewReq.abort();
previewReq.onreadystatechange =
function () {
handlePreviewXML(previewReq);
};
previewReq.open("GET", progUrl);
previewReq.setRequestHeader("Cache-Control", "no-cache");
previewReq.send(null);
} catch (e) {
alert(e);
}
}
/* Función que presenta la ficha en el espacio reservado para ello */
function handlePreviewXML (request) {
if (request.readyState==4) {
if (request.status == 200 || request.status == 0) {
try {
var xml = request.responseXML;
var tipo = xml.getElementsByTagName("tipo");//indica el tipo de la
ficha (铆ndice o contenido)
fijarTipo(tipo[0].firstChild.nodeValue);
var titulo = xml.getElementsByTagName("titulo");
var etiqueta = xml.getElementsByTagName("etiqueta");
var imagen = xml.getElementsByTagName("imagen");
var audio = xml.getElementsByTagName("audio");//aun no se ha
utilizado, pero la idea es que aqu铆 se contenga el link a la notica locutada
var pagina = xml.getElementsByTagName("pagina");
var cadena = xml.getElementsByTagName("cadena");
document.getElementById("pagina").innerHTML =
pagina[0].firstChild.nodeValue;
paginaActual = pagina[0].firstChild.nodeValue;
index = paginas.indexOf(paginaActual);
document.getElementById("titular").innerHTML =
etiqueta[0].firstChild.nodeValue;
document.getElementById("categoria").innerHTML =
titulo[0].firstChild.nodeValue;
if (tipo[0].firstChild.nodeValue == 'c'){
document.getElementById("categoria").style.height = '0px';
document.getElementById("cuerpo").style.height = '0px';
document.getElementById("texto").style.height = '0px';
var texto = xml.getElementsByTagName("texto");
document.getElementById("texto").innerHTML =
texto[0].firstChild.nodeValue;
}
if (tipo[0].firstChild.nodeValue == 'i'){
enlaceSelected = 0;
cadenaEnlaces = cadena[0].firstChild.nodeValue.split('#');
var enlaces = xml.getElementsByTagName("enlace");
var j;
document.getElementById("categoria").style.height = '0px';
144
document.getElementById("cuerpo").style.height = '0px';
document.getElementById("texto").style.height = '0px';
document.getElementById("texto").innerHTML = '';
document.getElementById("texto").innerHTML += '<div
id="enlaces"></div>';
for( j=0; j<enlaces.length; j++){
var texto =
enlaces[j].getElementsByTagName("texto");
var pagina =
enlaces[j].getElementsByTagName("pagina");
document.getElementById("enlaces").innerHTML
+= '<li selected="no" page=' + pagina[0].firstChild.nodeValue + '>' + texto[0].firstChild.nodeValue +
'</li>';
}
var links =
document.getElementById("enlaces").getElementsByTagName("li");
var k;
for ( k=6; k < links.length; k++){
links[k].style.display = 'none';
}
}
if(imagen.length != 0){
document.getElementById("foto").innerHTML = '<img
src="Teletexto/'+imagen[0].firstChild.nodeValue+'"/>';
document.getElementById("foto").style.width = '0px';
document.getElementById("texto").style.width = '0px';
} else {
document.getElementById("foto").innerHTML = '';
document.getElementById("foto").style.width = '0px';
document.getElementById("texto").style.width = '0px';
}
} catch (e) {
//alert(e);
}
}
}
}
«teletexto.css» Contiene la hoja de estilo con los atributos de los elementos del
archivo html principal.
body{
background-image: url(../imagenes/fondo1.png);
background-repeat: no-repeat;
background-size: 100%,100%;
width: 1920px;
height: 1080px;
display: block;
}
#todo{
background-color: transparent;
background-repeat: no-repeat;
145
background-size: 100%,100%;
width: 1366px;
height: 768px;
}
img{
height: 500px;
width: 480px;
}
#contenedor{
background-color: transparent;
width: 60%;
height: 5%;
position: absolute;
top: 0%;
left: 0%;
}
#video1{
background-color: transparent;
width: 50%;
height: 50%;
position: absolute;
top: 20%;
left: 10%;
}
#lateral{
/*background-color: #DFF2E3;*/
float: left;
width: 0px;
}
#lateral .relleno{
height: 0px;
width: 0px;
}
#pagina{
color: transparent;
}
#indice{
background-color: transparent;
width: 100%;
height: 100%;
position: absolute;
top: 80%;
left: 10%;
}
#indice li {
margin: 0% 0% 0% 1%;
padding: 1% 1% 1% 0%;
color: transparent;
height: 15%;
width: 20%;
background-image: transparent;
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: center;
}
li[selected=si]{
146
background-color: #DFF2E3;
}
li[focused=si]{
background-color: #69BF80;
}
#contenido{
background-color: transparent;
float: right;
}
#titular{
color: transparent;
}
#fecha{
color: transparent;
}
#contenido .categoria {
background-color: transparent;
color: transparent;
}
#contenido .cuerpo {
background-color: transparent;
color: transparent;
}
#contenido .foto{
float: right;
}
#texto{
color: transparent;
}
#pie .rojo {
background-image: url(../imagenes/salir2.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 9%;
height: 13%;
bottom: 4%;
left: 1%;
}
#pie .opc1 {
background-image: url(../imagenes/opc1.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 12%;
147
}
#pie .opc2 {
background-image: url(../imagenes/opc2.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 34%;
}
#pie .opc3 {
background-image: url(../imagenes/opc3.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 56%;
}
#pie .opc4 {
background-image: url(../imagenes/opc4.png);
background-size: 100%,100%;
background-repeat: no-repeat;
background-position: left bottom;
position: absolute;
width: 19%;
height: 14%;
bottom: 4%;
left: 78%;
}
«categorias.xml» Contiene la lista de las cuatro opciones del menú.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<xml>
<elemento>
<nombre>opc1</nombre>
<texto>OPCION1</texto>
<pagina>100</pagina>
</elemento>
<elemento>
<nombre>opc2</nombre>
<texto>OPCION2</texto>
<pagina>200</pagina>
</elemento>
<elemento>
<nombre>opc3</nombre>
<texto>OPCION3</texto>
<pagina>300</pagina>
</elemento>
<elemento>
<nombre>opc4</nombre>
148
<texto>OPCION4</texto>
<pagina>400</pagina>
</elemento>
</xml>
«100.xml» Carga la imagen de la opción 1 del menú de navegación.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<ficha>
<tipo><![CDATA[c]]></tipo>
<titulo>Primera</titulo>
<pagina><![CDATA[100]]></pagina>
<etiqueta>OPCION1</etiqueta>
<texto>hola1</texto>
<imagen>uploads/inf1.png</imagen>
</ficha>
«200.xml» Carga la imagen de la opción 2 del menú de navegación.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<ficha>
<tipo><![CDATA[c]]></tipo>
<titulo>Segunda</titulo>
<pagina><![CDATA[200]]></pagina>
<etiqueta>OPCION2</etiqueta>
<texto>hola2</texto>
<imagen>uploads/inf2.png</imagen>
</ficha>
«300.xml» Carga la imagen de la opción 3 del menú de navegación.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<ficha>
<tipo><![CDATA[c]]></tipo>
<titulo>Tercera</titulo>
<pagina><![CDATA[300]]></pagina>
<etiqueta>OPCION3</etiqueta>
<texto>hola3</texto>
<imagen>uploads/inf3.png</imagen>
</ficha>
«400.xml» Carga la imagen de la opción 4 del menú de navegación.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<ficha>
<tipo><![CDATA[c]]></tipo>
<titulo>Cuarta</titulo>
<pagina><![CDATA[400]]></pagina>
<etiqueta>OPCION4</etiqueta>
<texto>hola4</texto>
<imagen>uploads/inf4.png</imagen>
</ficha>
149
Descargar