Page 1

Dise帽o e implementaci贸n de un reproductor IPTV multiplataforma

David Codesido L贸pez

25 de May de 2013


Índice general

1. Estado del arte de la televisión 1.1. ¿Qué es la IPTV? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Piezas clave en la IPTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Evaluación del mercado actual para IPTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Formatos de vídeo/audio 2.1. Compresión . . . . . . . . . 2.2. Empaquetado/Encapsulado . 2.3. Transporte en IPTV . . . . 2.4. Streaming . . . . . . . . . . 2.5. Zapping . . . . . . . . . . .

1 2 2 3

. . . . .

7 8 12 17 19 21

3. Dispositivos de Consumo IPTV 3.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Portabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23 25 29

4. Preanálisis 4.1. Escenario . . . . . . . . . . . . . . . . . . . . . 4.2. Requisitos . . . . . . . . . . . . . . . . . . . . 4.3. Estado del arte de reproductores multiplataforma 4.4. Elección de librerías . . . . . . . . . . . . . . . 4.5. Tecnologías . . . . . . . . . . . . . . . . . . . .

. . . . .

31 31 32 33 34 35

5. Planificación 5.1. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Registro de historias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Iteraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37 37 38 39

6. Análisis y Diseño 6.1. Iteración 1 6.2. Iteración 2 6.3. Iteración 3 6.4. Iteración 4 6.5. Iteración 5 6.6. Iteración 6 6.7. Iteración 7 6.8. Iteración 8 6.9. Cosas . . .

41 41 44 46 49 53 57 57 58 62

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . . . . . .

. . . . . . . . .

I


7. Implementación 7.1. Iteraciones... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Desarrollo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Control de versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65 65 65 65

8. Justificación económica 8.1. Posicionamiento . . . . . . . . . . . . . . . 8.2. Velocidad de portabilidad . . . . . . . . . . 8.3. Gasto mantenimiento frente coste desarrollo 8.4. Soporte fabricantes . . . . . . . . . . . . . .

. . . .

67 67 67 67 67

9. Casos de estudio 9.1. WebTV (Sigma Designs SMP-8654) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2. RaspberryPi (SoC Broadcom BCM2835) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69 69 69

10. Bibliografía

71

II

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .


CAPÍTULO 1

Estado del arte de la televisión

Contenidos Estado del arte de la televisión • ¿Qué es la IPTV? • Piezas clave en la IPTV • Evaluación del mercado actual para IPTV La televisión digital, también conocida como TV Digital, es el avance más significativo en la tecnología de la televisión desde que este medio fue creado hace aproximadamente un siglo. La TV Digital ofrece a los consumidores más opciones y hace la experiencia de ver la televisión más interactiva. A día de hoy, la industria está atravesando una profunda transición, migrando desde la televisión convencional a una nueva era en la tecnología digital. La mayor parte de los operadores de TV han estado modificando sus redes y han desplegado avanzadas plataformas digitales en un esfuerzo de adaptar a sus suscriptores desde las tradicionales plataformas analógicas a los modernos y más sofisticados servicios digitales. El sistema analógico de emisión de televisión ha estado presente durante los últimos sesenta años. Durante este período, los espectadores vieron la transición desde el blanco y negro al color. Esta transición requirió a los usuarios comprar nuevos modelos de televisión, y a las compañías emisoras, la adquisición de nuevos transmisores y equipos de pre y post procesado. Pero también supuso una mejora en la calidad de la señal permitiendo el paso a alta definición y minimizando los problemas de perdida de señal que se producían en analógico debido causas como la distancia de la fuente de transmisión, perdida de aislamiento en conexiones y el propio deterioro natural de los elementos implicados. Una nueva tecnología llamada IPTV (televisión basada en el protocolo de internet (IP)) ha ido cobrando fuerza a lo largo y ancho del planeta. Día tras día se ven noticias acerca de compañías de telecomunicaciones, de cable, de satelite y terrestres y sobre todo, gran cantidad de pequeñas start-ups distribuyendo vídeo sobre redes basadas en IP. Como el nombre sugiere, IPTV describe un mecanismo para transportar contenidos de video sobre redes que emplean el protocolo IP. Los beneficios de este mecanismo para emitir señal de televisión van desde la inclusión de forma natural del soporte para la interactividad con los usuarios a cambios más rápidos de canal y la interoperabilidad con las redes que los propios usuarios ya tienen disponibles en sus hogares. Se podría decir que en el futuro próximo, la televisión, tal y como la conocemos, dejará de existir y pasará a formar parte de la nube de servicios que rodean al usuario en su entorno doméstico, integrándose con el resto de dispositivos que ya forman parte natural de la vida de las personas.

1


Diseño e implementación de un reproductor IPTV multiplataforma,

1.1 ¿Qué es la IPTV? Tras años de comentarios acerca de la IPTV, ésta, por fin está empezando a tener su efecto tanto en los usuarios, que día tras día están más evolucionados tecnológicamente, como en las operadoras de TV y sus modelos de negocio. Pero, ¿qué significa realmente la IPTV? ¿cómo afecta a la forma tradicional de ver la televisión? ¿y a los operadores? IPTV, tal y como la define la ITU (ITU-t FG IPTV) consiste en los servicios multimedia tales como la televisión / video / audio / texto / graficos / datos entregados mediante redes basadas en IP y gestionadas para proveer el nivel requerido de calidad de servicio (QoS), calidad de la experiencia (QoE), seguridad, interactividad y fiabilidad. Indicar que también está empezando con fuerza la llamada Internet TV que no es más que IPTV empleando como red Internet en vez de una red propietaria del proveedor de servicios IPTV. Desde el punto de vista del proveedor de servicio, la IPTV abarca una serie de tareas como pueden ser: la adquisición, procesado y entrega de la señal de video, la gestión de usuarios, el aprovisionado de contenidos, la securización de las conexiones, la minería de datos, la gestión de redes, etc. Todo ello para obtener las mejoras que la IPTV supone como servicio respecto a la televisión tradicional: Soporte interactivo: El hecho de que las redes IP sean bidireccionales hace posible que el operador pueda proveer toda una serie de aplicaciones interactivas: aplicaciones, navegación web, juegos... Timeshifting: La IPTV en combinación con los grabadores de vídeo en red (nPVR - network personal video recording), los grabadores locales al usuario (en sus propios discos duros) o incluso cachés dentro del propio reproductor, permiten romper la linealidad a la que la televisión nos tenía acostumbrados y ver cualquier contenido en cualquier momento. Personalización: La bidireccionalidad permite que el operador obtenga datos acerca de los habitos del usuario personalizando su experiencia televisiva y permitiendo al usuario tomar decisiones acerca de cuándo acceder a determinados contenidos y cómo acceder a los mismos. Bajo consumo de ancho de banda: Empleando tecnologías IP es posible enviar cada contenido de forma personalizada al usuario en lugar de todo el contenido a todo el mundo todo el tiempo. Multidispositivo: Esto es sin duda clave para el usuario ya que podrá tener la misma experiencia de televisión en cualquier dispositivo conectado a la plataforma del operador y no solo cuando se encuentre frente a su aparato de televisión.

1.2 Piezas clave en la IPTV Todo despliegue de IPTV estará compuesto por al menos tres grandes piezas que garantizan que la experiencia de usuario al emplear esta tecnología sea satisfactoria: Contenidos: Sin duda el principal atractivo para los usuarios y lo que hace que un despliegue de IPTV tenga sentido. El centro de procesado de datos (CPD) del operador recibe los contenidos desde múltiples fuentes: video local, productoras, canales de cable, digital o satélite, etc. Proveedor de servicio: Tras recibir los contenidos, diferentes componentes hardware (como codificadores, cabeceras DVB-IP, servidores de VoD) adaptan los contenidos para su transporte por la red IP (propietaria o pública). Además del procesado de contenidos otros sistemas auxiliares son necesarios para construír la experiencia de usuario. Servidores de middleware para orquestar qué contenido está disponible para qué usuario de acuerdo a su contrato, a las capacidades del dispositivo desde el que accede, a su ubicación geográfica, etc. Sistemas de gestión de facturación para llevar control de los consumos y servicios adyacentes de CAS/DRM para la protección de los contenidos. Hogar conectado: Cada día está cobrando más fuerza el ecosistema digital del usuario. Los hogares ya no disponen únicamente de una televisión si no que cada vez es más frecuente disponer de distintas formas de consumir contenido desde diferentes dispositivos: PC, tablet, videoconsolas y por supuesto los televisores que también han ido evolucionando adaptándose a las necesidades emergentes de los usuarios. Pero estas necesidades ya no solo se limitan a la oferta del proveedor si no que dentro del propio hogar es necesario 2

Capítulo 1. Estado del arte de la televisión


Diseño e implementación de un reproductor IPTV multiplataforma,

Figura 1.1: Las tres areas que componen un despliegue IPTV y detalles de cada una de ellas. poder acceder a los contenidos compartidos entre los miembros del mismo. Cobra pues fuerza la integración con la red local del usuario y los protocolos que permiten dicho acceso a los datos tales como DLNA, Samba, NFS, etc. Los llamados DCs-IPTV (Dispositivos de Consumo de IPTV) son los responsables de facilitar el acceso al usuario a los datos que provienen de su proveedor, minimizar el impacto en su experiencia ante fallos y proveer acceso a los contenidos de su entorno. Cada día hay más oferta y diversidad entre estos dispositivos y es precisamente esta diversidad una de las principales razones del desarrollo de este proyecto. Por ello, profundizaremos más en este tema en la siguiente sección.

1.3 Evaluación del mercado actual para IPTV De acuerdo a la consultora Gartner, el modelo de mercado de la televisión está siendo actualmente desafiado. Grandes compañías como Google, Aple, Amazon y pequeñas start-ups como Boxee, Roku o Sezmi están intentando crear un nuevo modelo de distribución de contenidos basado en Internet prometiendo al usuario mejor experiencia y precios más bajos. Hasta ahora, los proveedores de contenido han respondido con reticencia reconociendo la amenaza de la deflación de precios del nuevo modelo en sus cuotas por afiliado. El modelo ya había sido desafiado anteriormente en la decadas de los setenta y ochenta con la aparición de la televisión por cable, socavando las preciadas licencias de emisión sobre el espectro de broadcast con monopolios regionales. El enfrentamiento entre broadcasters y compañías de cable se saldara aquella vez con unas leyes, todavía vigentes, de “must carry” y “retransmission consent”. Esto obligaba a los operadores de cable a retransmitir una serie de canales de los broadcasters obligatoriamente, así como a pagar una tarifa para retransmitir esos canales. Si bien la “justicia” de estas leyes puede ser debatida, la economía de la televisión de pago era lo suficientemente robusta como para conservar una relación simbiótica entre los broadcasters y las compañías de cable. El ecosistema actual de la televisión, tal y como lo describe Gartner se puede resumir en la imagen 1.2. Los programadores, los cuales incluyen las emisoras locales, las redes de difusión (tales como ABC, CBS, NBC y Fox) y redes de cable (como CNN, ESPN, MTV y HBO), reciben tasas de afiliación de distribuidores de programación de video multicanal (MVPD), los proveedores de servicio on-line (OSP) tratan de negociar los derechos para distribuir su programación. Los proveedores de servicio de internet (ISPs), que son en su mayoría propiedad de MVPD (es decir, las compañías de cable y las compañías telefónicas), no han jugado un gran papel en la 1.3. Evaluación del mercado actual para IPTV

3


Diseño e implementación de un reproductor IPTV multiplataforma,

distribución de monetización, actuando principalmente como lugar de conexiones pasivas y transparentes (salvo algunas excepciones donde algunos MVPDs han desarrollado un modelo de afiliación para los ISP denegando el acceso a aquellos no suscritos).

Figura 1.2: El ecosistema actual de la televisión. De cara al futuro existen dos perspectivas encontradas, aquellos que sostienen que la televisión será la proxima en rendirse ante internet, empresas e inversores con gran presencia en sectores tecnológicos y defensores de la “Teoría de que IP es un gen dominante” 1 , y aquellos más reacios que sostienen que el viejo modelo de la televisión es mucho más resistente y mejor afinado que el nuevo sistema y que este está sobrevalorado. En cualquiera de los casos, el principal problema a derribar es el loby que mantienen los MVPDs y los programadores, interesados en mantener sus cuotas por afiliación y juntos pueden retrasar fácilmente el avance de las nuevas tecnologías de televisión. A su favor, la IPTV tiene a los consumidores y, eventualmente, la vieja guardia de los medios tradicionales tendrá que subirse al carro o volverse irrelevante. Empujando con fuerza, vienen los nuevos servicios que provee la IPTV tales como: TV Everywhere: Acceso a TV desde cualquier dispositivo y cualquier lugar. El fin de las parrillas: Donde la linealidad de la TV se romperá al volverse más completos sus servicios asociados tales como la guía de programación electrónica (EPG) y PVR/nPVR. Esto, unido al timeshifting, derribará la idea tradicional de qué está disponible en el momento en aras del accesso directo a cualquier contenido. Fin de las restricciones del espectro de frecuencia: La eterna batalla para conseguir nuevas frecuencias para emisión de nuevos canales será irrelevante ya que se podrá emitir cualquier canal a cualquier usuario directamente con el añadido del ahorro de ancho de banda. 1

4

“Cuando una teconología existente se encuentra con Internet, los protocolos derivados de IP tienden a dominar la unión”

Capítulo 1. Estado del arte de la televisión


Diseño e implementación de un reproductor IPTV multiplataforma,

Paralelamente a los mercados, está habiendo un movimiento de estandarización para definir los cánones de la IPTV. Un gran número de organizaciones están desarrollando estándares tecnológicos y productos para potenciar la industria de la IPTV, tales como: SARFT, ITU, ATIS, DVB, IPDR, ISMA y CEA. La conclusión es que estamos en los albores de la IPTV. Un buen posicionamiento a estas alturas puede suponer grandes beneficios en el futuro. Las previsiones de las consultoras nos indican que habrá que esperar aún de 5 a 10 años para una implantación y asentamiento total de la IPTV por lo que es el momento de desarrollos que marquen un factor diferencial a la hora de presentarse ante el mercado. A lo largo de los siguientes capítulos se hará un recorrido por las piezas clave de la IPTV desde el orígen de los contenidos hasta su consumo por parte del usuario.

1.3. Evaluación del mercado actual para IPTV

5


Dise帽o e implementaci贸n de un reproductor IPTV multiplataforma,

6

Cap铆tulo 1. Estado del arte de la televisi贸n


CAPÍTULO 2

Formatos de vídeo/audio

Contenidos Formatos de vídeo/audio • Compresión ◦ MPEG • Empaquetado/Encapsulado • Transporte en IPTV ◦ TCP ◦ UDP • Streaming • Zapping Antes de comenzar con la descripción de las técnicas más empleadas actualmente para el procesado de vídeo es importante entender las etapas previas por las que pasa el mismo. El primer paso es bastante básico e incluye una cámara grabando la señal de vídeo, si este proceso se hace directamente en dígital, el vídeo ya se encuentra listo para ser procesado, si al contrario, esta grabación es analógica estos contenidos deberán pasar por una fase llamada digitalización. Normalmente este proceso lo realiza una pieza hardware llamada conversor analógico-digital. Si la señal es analógica, en una segunda parte del proceso se aplican técnicas de muestreo y de cuantificación para el tratamiento de la señal. Como el nombre sugiere muestreo se refiere al número de muestras tomadas de la señal analógica entrante. La frecuencia de muestreo se mide, típicamente, como muestras por segundo. La cuantificación es la segunda parte del proceso de conversión e implica la asignación de un número de bits para cada muestra tomada de la señal. Este proceso supone indefectiblemente una cierta pérdida de calidad pues se introduce el llamado ruido de cuantificación. A la salida de esta segunda parte del proceso la señal ya es digital y el vídeo está listo para la codificación. La codificación de los flujos digitales requiere el empleo de hardware especializado denominado codificador. El proceso de codificación en un CPD de IPTV es bastante complejo y normalmente ocurre en tres fases: Recepción: Se recibe el flujo de vídeo de una fuente. El formato de este flujo puede variar desde señales de baja calidad analógica hasta flujos digitales en alta definición. Compresión: Una vez recibida la señal, el codificador aplica un esquema de compresión determinado al contenido. En este capítulo se realizará un resumen de las tecnologías más empleadas para la compresión de vídeo digital en IPTV (MPEG-2 y H.264/AVC). Encapsulado: Una vez comprimido el vídeo se prepara para la transmisión. Esto significa que el flujo de vídeo se inserta en paquetes de datos, para esto existen diferentes aproximaciones. En este capítulo se describirá el encapsulado MPEGTS.

7


Diseño e implementación de un reproductor IPTV multiplataforma,

Este proceso puede parecer costoso y de hecho lo es tanto en hardware como en tiempo de procesado, así qué ¿por qué realizar todo este trabajo en vez de simplemente enviar la señal original digitalizada?. Hay varias mejoras que justifican este trabajo: Un gran ahorro en el espacio en disco requerido para almacenar los vídeos. Los pasos para la reproducción de vídeo requieren de una cantidad de tiempo de procesado significativa por lo que aplicar las técnicas de compresión minimiza el número de ciclos de CPU necesarios para procesar y renderizar en pantalla el fragmento de vídeo. Teniendo en cuenta que el tamaño del vídeo es mucho menor que el original, el tiempo necesario para su envío a través de la red es también considerablemente menor. La reducción del tamaño hace que con relativamente bajos anchos de banda, sea posible la entrega de contenidos de IPTV. De media, un flujo SD de un canal codificado ocupa unos 1,5 Mbps y uno HD unos 8 Mbps. Si lo comparamos con los antiguos métodos de compresión donde un SD ocupaba unos 3,5 Mbps y un HD entre 20 y 25 Mbps, los beneficios de la compresión de vídeo saltan a la vista. No obstante, no todo son beneficios, los procesos de compresión en origen y descompresión del vídeo en destino introducen retrasos en la señal. El hecho de estar tomando muestras sobre la señal original implica que estamos descartando información por lo que, de media, la calidad de la señal codificada será peor que la original por lo que es necesario encontrar un equilibrio entre tiempos de procesado, anchos de banda y calidad a la hora de elegir los parámetros de la compresión del vídeo.

2.1 Compresión La compresión permite a los proveedores de servicio de IPTV emitir canales de alta calidad de vídeo y audio a través de redes de banda ancha basadas en IP. Este objetivo se obtiene basándose en las deficiencias de los sistemas visual y aural humanos y explotando este hecho mediante el uso de algoritmos matemáticos. Por ejemplo, el ojo humano no es capaz de distinguir todos los patrones de imágenes, por tanto, la compresión reduce el tamaño de la señal original eliminando esas secciones de la imagen. El nivel de compresión aplicado al vídeo se denomina “ratio de compresión” y es medido con una representación numérica. Por ejemplo, un “ratio de compresión” de 100:1 significa que el tamaño original ha sido reducido por un factor de 100. Como norma general, incrementar el ratio de compresión hará que la calidad de la imagen resultante sea peor. Con esto en mente, los métodos de compresión se pueden clasificar en dos grandes grupos. Con pérdidas y sin pérdidas. Un método de compresión sin pérdidas permite al cliente, a través de su DCIPTV, recrear exactamente la misma imagen que la original en su pantalla. Por tanto, no ha habido pérdida de calidad de la imagen ni durante la compresión ni el transporte del contenido. Normalmente, estos métodos no se emplean en IPTV ya que virtualmente todas las técnicas de compresión introducen cierta pérdida durante la codificación. Estos métodos se emplean principalmente para la codificación de imágenes estáticas y no para vídeo. Así pues, la mayor parte de los métodos usados para entregar vídeo en IPTV tienen pérdidas. Durante el procesado con un método con pérdidas, parte de la información de las imágenes de vídeo es destruída, por tanto el DCIPTV es incapaz de recrear la imagen original tal y como entraba en el inicio del proceso. Sin embargo, los métodos actuales limitan mucho esta destrucción de la información. Los métodos más populares y que actualmente dominan el mercado, siendo empleados por todos los proveedores de IPTV son los de la familia MPEG.

2.1.1 MPEG La tecnología MPEG es un estándar de compresión ampliamente empleado por sistemas de satélite, cable y terrestres. MPEG son las siglas, en inglés, del Grupo de Expertos en Imágenes en Movimiento (Moving Pictures Experts Group) y representa una asociación entre industrias que se formó para desarrollar técnicas de compresión que sirviesen para la transmisión de vídeo. El grupo fue creado originalmente por ISO (International Standarization Organization) con la IEC (International Engineering Consortium) para trabajar en el desarrollo de los estándares 8

Capítulo 2. Formatos de vídeo/audio


Diseño e implementación de un reproductor IPTV multiplataforma,

de compresión de vídeo y audio. Desde su fundación, el grupo ha producido una familia con los estándares de compresión más importantes - MPEG-1, MPEG-2, MPEG-4 (partes 2 y 10), MPEG-7 y MPEG-21. Cuadro 2.1: La familia MPEG Formato MPEG MPEG-1

MPEG-2

MPEG-4 (Parte 2) MPEG-4 (Parte-10) MPEG-7 y MPEG-21

Descripción El formato de archivo MPEG-1 fue desarrollado en 1988 y fue empleado principalmente para comprimir vídeo a bitrates de 1,5 Mbps. MPEG-1 se emplea para servicios como DAB (Digital Audio Broadcasting). También es la base del MP3, el formato más empleado para la música en internet. MPEG-2 se basa en la capacidades de compresión de MPEG-1. Se emplea ampliamente en las emisiones broadcast de televisión y almacenado de contenido en DVDs. Gran parte de los estándares de televisión internacionales se basan en este formato de compresión. MPEG-4, formalmente ISO/IEC 14496, se terminó de definir en 1998 y se convirtió en estándar internacional en el año 2000. La parte 2 del estándar está dividida en perfiles que cubren los requisitos de distintas aplicaciones de vídeo, desde móviles a cámaras de vigilancia. Más conocido como H.264/AVC está diseñado para la entrega de broadcast y calidad DVD a tasas de bits mínimas. Además de los anteriores, MPEG también ha establecido las especificaciones que definen los estándares para describir el contenido de A/V, la entrega y el consumo. MPEG-4 se integra con estos dos formatos para ofrecer metadatos sobre los contenidos.

De los tipos mostrados en la tabla superior, MPEG-2 y MPEG-4 Parte 10 (H.264/AVC) son los que más se emplean en los despliegues actuales de IPTV. MPEG-2 MPEG-2 ha sido una tecnología extremadamente exitosa y es el estándar que domina la compresión y el transporte de la TV digital en una gran variedad de redes. Las tecnologías de codificación de MPEG-2 se pueden clasificar en dos categorías: vídeo y audio. Vídeo

El vídeo, en su forma más básica, es una secuencia de imágenes. Cada una de estás imágenes se denomina “frame”. El ojo humano, puede ver cómodamente vídeo a 25 fps (frames por segundo) por lo que normalmente no es necesario emitir a mayores tasas ya que el espectador no notaría nada. Esto en si ya supone un ahorro de ancho de banda, no obstante no es suficiente y es necesario añadir la compresión al proceso. Este proceso reduce el tamaño del vídeo original mediante el empleo de dispositivos llamados codificadores de vídeo. Éstos, reducen el tamaño del vídeo reduciendo cada uno de los frames tratando de mantener la alta calidad de cada uno de los frames. Este proceso de reducción del tamaño de los frames se denomina “subsampling” y consiste en eliminar un determinado número de bits por frame. El segundo paso consiste en dividir el frame en 8x8 bloques de píxeles, el menor tamaño del algoritmo MPEG. Cada uno de estos bloques puede ser de tres tipos, luminancia en escala de grises (Y), crominancia en rojo (Cr ) y crominancia en azul (Cb ). La crominancia lleva información acerca del color de la imagen mientras que la lumnancia lleva la imagen en blanco y negro. Luego se aplican una serie de transformaciones a cada uno de los bloques que ponderan que partes son las importantes y cuales son descartables. Las partes importantes se guardan para la siguiente parte del procesado, la cuantización. Durante la cuantización se reduce el número de bits necesario para representar los bloques dentro de la misma imagen. El valor de la cuantización aplicado en este proceso es importante ya que si este es muy alto, se alcanzarán grandes valores de compresión pero dará lugar a que el usuario de IPTV vea bloques durante la reproducción del vídeo en su pantalla. Cuando todos los bloques han sido dividos, MPEG parte la imagen de nuevo en una matriz de 16x16 píxeles de luminancia y crominancia. Cada uno de estos bloques se denomina macrobloque. Mediante la comparación de estos bloques y empleando la compensación de movimientos (motion compensation) para la predicción: por cada macrobloque de una imagen que queremos codificar a partir de una imagen de referencia, se busca donde está, 2.1. Compresión

9


Diseño e implementación de un reproductor IPTV multiplataforma,

en la imagen de referencia, y se define un vector de movimiento, que va a dar el movimiento relativo entre los dos macrobloques que se corresponden y por tanto, se pueden arrastrar solo los nuevos bloques a la imagen actual evitando la necesidad de emitir una nueva imagen completa permitiendo un mayor ahorro de ancho de banda. El siguiente paso en la compresión es codificar los macrobloques en “slices”. Un slice, representa una tira horizontal de la imagen, de iquierda a derecha. Varios de estos slices pueden existir a lo ancho de la pantalla y es la unidad básica de sincronización. Combinando los slices, se puede regenerar la imagen original. Cada uno es codificado independientemente de los demás para limitar los posibles errores solo a ese slice. El estándar MPEG describe tres tipos de imágenes: Un fotograma I o I-frame (intra-frame) codifica la información de ese fotograma por sí mismo. Sirven para permitir un acceso aleatorio e impedir la propagación de errores. Un fotograma P o P-frame (predicted-frame) codifica la información de ese frame en relación a sus diferencias con una imagen anterior en el tiempo, el último fotograma I o P. Un fotograma B o B-frame (bidirectional-frame) codifica la información de ese frame usando compensación de movimiento en relación a un fotograma pasado y otro futuro de tipos I o P. Sólo se pueden codificar o decodificar después de que lo hayan hecho los fotogramas I y P que usa, por lo que el orden de decodificación no será igual al orden de presentación, lo que añade un pequeño retraso al proceso de presentación.

Figura 2.1: Estructura de un GOP (Group of Pictures). Estos tres tipos de fotogramas se combinan para formar una secuencia de frames denominada GOP (Group of Pictures). Cada GOP comienza con un frame I y tienen una secuencia de frames B y P espaciadas a lo largo del stream de vídeo. Una combinanción típica sería: [I B B B P B B B P B B B P B B B P] El resultado de la codificación MPEG-2 puede ser de dos tipos dependiendo de las tasas de bits a la salida del codificado: CBR (Constant BitRate), en donde la tasa de bits resultante de la codificación es constante, esto se obtiene mediante el ajuste de parámetros durante la cuantización y es ideal para entornos de ancho de banda fija como puede ser el ADSL. No obstante, el hecho de el ancho de banda sea fijo, puede generar problemas en escenas con mucho movimiento, dónde la calidad de la imagen puede resentirse en aras de mantener el bitrate fijo. VBR (Variable BitRate) donde el bitrate varía en función de la complejidad del frame codificado en ese momento. El problema del VBR es que es necesario el empleo de buffers para gestionar su emisión así como 10

Capítulo 2. Formatos de vídeo/audio


Diseño e implementación de un reproductor IPTV multiplataforma,

multiplexado estadístico para asegurar que el resto de canales también cabrían en los momentos de pico de bitrate. Este problema, en IPTV no es tan acuciante ya que cada canal se emite de forma independiente a los demás y la única limitación suele ser el ancho de banda disponible en el momento. Por ello, CBR sigue siendo el más empleado ya que facilita la gestión del ancho de banda. Audio

El sonido no son más que diferentes presiones en el aire. Cuando estas son capturadas por un micrófono y alimentadas a un amplificador, se transforman en diferentes niveles de voltaje. Este voltaje es muestreado un cierto número de veces por segundo. Para que el oído humano pueda escuchar ese sonido, la tasa de muestreo debe estar entre 20 y 20.000 veces por segundo. Siguiendo el teorema de Nyquist, el audio debe estar muestreado al menos al doble de la mayor tasa de muestreo. Por tanto, un CD de audio está muestreado 44.100 veces por segundo. Esto genera archivos de un tamaño considerable, llegando a 1,4 Mbps. Codificando este audio, podemos llegar a ratios de compresión de 12:1 sin perder calidad. Esto se obtiene en los codificadores de audio siguiendo una política similar a la de vídeo, eliminando aquellas partes de la señal de audio que el oído humano no puede percibir. El comité MPEG recomienda tres métodos de compresión y los llama capas de audio (Layers I, II y III). Cada capa usa la misma estructura básica e incluye las mejoras de las capas anteriores. Las capas superiores ofrecen mejor calidad de sonido a bitrates comparables pero requieren de mayor complejidad software para la codificación: MPEG Layer-I es la más sencilla. Se empleó en los DCC (Digital Compact Cassete) y permite obtener ratios de 4:1. MPEG Layer-II se emplea en broadcasting de satélite y CDs. Permite ratios de 8:1. MPEG Layer-III (MP3) es la más empleada y extendida en internet. Así mismo, también es la más compleja y permite ratios de 12:1. Como principal mejora, permite la emisión de 5 canales de audio y uno de baja frecuencia (graves). MPEG AAC, es un formato de condificación definido en los estándares MPEG-2 y MPEG-4. Como mejora sobre MP3 permite la emisión de 10 veces más canales de audio. Esto es debido a que permite comprimir mejor el audio. También tolera mayores tasas de muestreo lo que permite mejorar la calidad de la señal. Esto hace que los proveedores de IPTV puedan entregar a los usuario la calidad del sonido surround. Dolby Digital Surround Sound 5.1 (AC-3) y Dolby Digital Plus (E-AC-3), son otros ejemplos de compresión de audio multicanal de gran calidad. Si bien MPEG-2 ha sido de utilidad desde sus orígenes tanto a la industria del cable o la de satelite, tiene limitaciones a la hora de desplegarse en redes con ancho de banda limitado como pueden ser las redes telefónicas. Por tanto, nuevos esquemas de compresión con mejores capacidades se están empezando a imponer. Entre ellos, el más destacable es MPEG-4 Part 10 (H.264/AVC). MPEG-4 H.264/AVC El estándar MPEG-4 (ISO/IEC 14496) es el sucesor de MPEG-2. Además de la compresión, MPEG-4 define un ecosistema completo que incluye soporte para el procesado de un gran rango de formatos multimedia. La especificación MPEG-4 consiste en una serie de partes interrelacionadas que se pueden implementar juntas o separadas. Un despliegue de MPEG-4 requiere del uso de equipo especializado en el CPD de IPTV y la introducción de nuevas tecnologías de decodificación en los DCs-IPTV. Hasta hace relativamente poco, uno de los inconvenientes de MPEG-4 es el hecho de que para descodificarlo hace falta más memoria y procesado. Los avances en los DCsIPTV durante los últimos años han significado que MPEG-4 se esté conviertiendo en la tecnología de compresión de la IPTV. La proliferación de la HDTV y de las aplicaciones de Vídeo bajo demanda (VoD) supuso unas necesidades cada vez mayores de ando de banda. Para atajar esta necesidad, en el año 2002, surge un estándar denominado MPEG-4 Part 10 AVC aunque más conocido como H.264. H.264/AVC, al emplear tecnologías más nuevas tiene mejores tasas de compresión que los estándares previos conservando una calidad de vídeo similar a MPEG-2 pero ahorrando ancho de banda a la hora de tranmitir la misma

2.1. Compresión

11


Diseño e implementación de un reproductor IPTV multiplataforma,

señal. Esto hace que H.264 sea especialmente eficaz en despliegues de IPTV, de hecho, gran parte de las organizaciones lo respaldan: IETF, DVB, DVD Forum, ATSC, etc. Otras mejoras que incluye es que es independiente del transporte, puede ser emitido a través de gran número de protocolos (RTP, UDP, TCP or Transport Stream) 1 . A nivel básico, la codificación H.264/AVC es similar a los estándares previos de MPEG cumpliendo con una serie de modulos de codificación: Intra-predicción. Empleando este módulo, H.264/AVC es capaz de explotar las redundancias espaciales que forman parte de un fotograma. El proceso es algo similar a MPEG-2, aplicando una transformación a cada frame pero en vez de aplicarla a cada bloque, este algoritmo lo aplica a los bloques vecinos de uno dado. Esto se basa en la asunción de que bloques adyacentes deben ser similares, por tanto, el algoritmo usa los bloques vecinos, ya codificados para predecir el bloque actual. Predecir el bloque actual reduce la cantidad de bits para representarlo más que transformarlo del bloque original. Inter-predicción. Este componente se basa en la estimación de movimiento para explotar las redundancias temporales que existen entre fotogramas en una secuencia de vídeo. Particionado de macrobloques. Si bien las anteriores versiones de MPEG solo permitían macrobloques de 16 x 16, H.264 contempla la posibilidad de particionar cada uno de estos macrobloques en particiones. Esta división mejora la previsión basada en movimiento y permite mejorar los detalles del mismo en las imágenes.

Figura 2.2: Referencias de frames B en H.264 Nuevos tipos de frame. Además de los I,B y P, se añaden los tipos SI (Switching I) y SP (Switching P) que permiten los cambios entre live streams sin el retraso de esperar por un frame I. Además se mejora el sistema de referencia de frames. En H.264 los frames de tipo B pueden acceder a cualquier frame en cualquier parte del vídeo. Todas estas técnicas, aseguran que H.264/AVC se comporta a un nivel muy alto al emplearlo para comprimir vídeo y distribuirlo a través de redes IP de banda ancha.

2.2 Empaquetado/Encapsulado El empaquetado y encapsulado de vídeo implica insertar y organizar los datos de vídeo en paquetes individuales. El término encapsulado se usa para describir el proceso de formatear el vídeo en datagramas. Hay diferentes aproximaciones al encapsulado de vídeo, no obstante, es importante entender primero el Modelo de Comunicaciones de IPTV (IPTVCM). El modelo de comunicaciones de IPTV es un framework de red compuesto por siete capas conceptuales (y una opcional) que se asientan unas sobre otras. (Fig. 2.3) Los datos de vídeo se pasan hacia abajo, de una capa a la siguiente hasta que se encuentra listo y se transmite a través de la red en la capa física. Estos datos llegan a la última capa del IPTVCM en el dispositivo de destino y comienza su ascenso capa tras capa. 1

12

“Se profundizará sobre transporte en redes IPTV más adelante.”

Capítulo 2. Formatos de vídeo/audio


Dise帽o e implementaci贸n de un reproductor IPTV multiplataforma,

Figura 2.3: El modelo de comunicaciones de IPTV

2.2. Empaquetado/Encapsulado

13


Diseño e implementación de un reproductor IPTV multiplataforma,

Codificación de vídeo. Como resultado de lo descrito en las etapas anteriores se obtiene un flujo de vídeo o de audio elemental. Un flujo elemental define una señal continúa en tiempo real. A este nivel la señal está divida en “frames”. Dentro de un frame se encuentra información como: • Tipo de frame y frecuencia • Posicionado de los bloques en pantalla • Relación de aspecto del frame En el caso de H.264/AVC esta capa se encuentra a su vez dividida en dos subcapas: Video Coding Layer (VCL) y Network Abstraction Layer (NAL). La VCL se encarga de la compresión de vídeo, como resultado un flujo de porciones de imagen se pasa a la NAL que las organiza en unidades NAL (Fig 2.4)

Figura 2.4: Estructura de una unidad NAL Empaquetado de vídeo. Para que el audio, vídeo y los datos de los flujos elementales sean transmitidos por una red, cada flujo elemental es convertido en un flujo entrelazado de paquetes con una marca de tiempo denominados “Packetized Elementary Streams” (PES). Un PES contiene únicamente un tipo de datos (vídeo, audio, etc) de una única fuente y puede tener un tamaño fijo o variable con un máximo de 65536 bytes. Estos paquetes serán los que lleguen a la red por lo que dependiendo del transporte pueden llegar en distinto orden al DCIPTV del que salieron del CPD. Por ello, para ayudar en la sincronización, los sistemas basados en MPEG establecen una marca de tiempo a los paquetes PES de un flujo elemental. Hay dos tipos de marcas de tiempo: • PTS (Presentation TimeStamp). El objetivo es marcar cuando y en qué orden el stream marcado se debe presentar al usuario. • DTS (Decoding TimeStamp). Su objetivo es indicar al DCIPTV cuando decodificar los paquetes. Construcción del Transport Stream. Esta capa se encarga de la construcción del transport stream, que no es más que un flujo contínuo de paquetes. Cada uno de estos paquetes se denomina paquete TS y se forma dividiendo un paquete PES en fragmentos de 188 bytes, 184 bytes de payload y 4 bytes de cabecera. Cada uno de estos paquetes será de tipo vídeo, audio o datos pero no una mezcla. Dentro de la cabecera se indica además el PID (Program Identifier) del paquete, esto permite saber que cada paquete forma parte de 14

Capítulo 2. Formatos de vídeo/audio


Dise帽o e implementaci贸n de un reproductor IPTV multiplataforma,

Figura 2.5: Multiplexado de un transport stream.

Figura 2.6: Paquete transport stream.

2.2. Empaquetado/Encapsulado

15


Diseño e implementación de un reproductor IPTV multiplataforma,

uno de los flujos elementales multiplexado en ese Transport. El hecho de que cada flujo esté identificado unívocamente dentro de un transport, nos permite virtualmente agrupar un número muy grande de flujos dentro de una misma armadura. Esta capa también permite la creación de Program Streams que son un multiplexado de PES con el mismo reloj. Está pensado para el almacenamiento o aplicaciones en red sin posibilidad de error por lo que su uso en IPTV no aplica. Además del vídeo y del audio comprimido, un transport stream incluye información y metadatos que describen el flujo. Esta información se almacena en las tablas PSI (Program Specific Information): • Program Association Table (PAT).Esta tabla, de inclusión obligatoria, es transportada por los paquetes con PID=0×0000 y contiene una lista completa de todos los programas disponibles en el Transport Stream. Cada programa aparece junto con el valor del PID de los paquetes que a su vez contienen la tabla con los datos que identifican a dicho programa (Program Map Table, PMT). Una sola Program Map Table puede contener los detalles de varios programas. • Conditional Access Table (CAT).Esta tabla debe estar presente si al menos un programa del múltiplex es de acceso condicional. Se transporta por los paquetes con PID=0×0001, y proporciona detalles de los sistemas de cifrado empleados, así como los valores de los PID de los paquetes de transporte que contienen la información del control de acceso condicional. Los datos para el acceso condicional se envían en forma de “Entitlement Management Messages (EMM)”. En estos “EMM” se especifican los niveles de autorización o los servicios a que pueden acceder determinados decodificadores, y pueden ir dirigidos a decodificadores individuales o a grupos de ellos. El formato de esta información no está especificado en MPEG-2, puesto que depende del tipo de sistema de cifrado empleado. • Program Map Table (PMT).Cada programa audiovisual incluido en un Transport Stream tiene una tabla PMT asociada con él. Dicha tabla proporciona detalles acerca del programa y de los flujos elementales que comprende. Según MPEG-2, las tablas PMT pueden ser transportadas por paquetes con valores de PID arbitrarios, exceptuando los valores 0×0000, reservado para PAT, y 0×0001 reservado para CAT. • Network Information Table (NIT): Esta tabla, si está presente, constituye por definición el Programa nº 0 del múltiplex y está considerada como de datos privados, es decir, definidos por el radiodifusor (proveedor de servicios) y no por MPEG. Se transporta por los paquetes identificados con PID=0×0010. Esta tabla proporciona información acerca de la red física usada para transmitir el “Transport Sream”, como por ejemplo: frecuencias del canal, detalles del transpondedor del satélite, características de modulación, detalles de redes alternativas disponibles, etc. • Service Description Table (SDT): Contiene datos que describen los servicios en el sistema, como por ejemplo: nombres de los servicios, nombre del proveedor y otros parámetros asociados a cada servicio de un mismo múltiplex. Se transporta por paquetes identificados con PID=0×0011. • Event Information Table (EIT): Se utiliza para transmitir información relativa a los acontecimientos en curso o futuros en el múltiplex MPEG recibido en la actualidad, y eventualmente sobre otros múltiplex MPEG, tal como: denominación, hora de comienzo, duración, etc. Se transporta por los paquetes identificados con PID=0×0012. Una vez se ha estructurado el Transport Stream, se pasa al siguiente nivel en el IPTVCM, o bien a la capa opcional de contrucción del RTP (Real-Time Transport Protocol) o bien a la capa de transporte. Protocolo de Tiempo Real (RTP). Esta capa opcional actúa como intermediaria entre el contenido codificado en las capas altas y las capas de transporte del IPTVCM. Esta capa está basada en el protocolo RTP y es normalmente el pilar para hacer streaming en tiempo real de vídeo a través de una red IP. No se profundizará en esta capa ya que no se contempla su implementación en el proyecto. Tras estas capas, el vídeo y el audio se encuentran listos para entrar en las capas de transporte. El transporte en IPTV cobra gran importancia ya que es el responsable de la entrega de forma fiable de contenido al DCIPTV del usuario final. Por ello, en el siguiente apartado, se analizarán en detalle algunas de las formas más empleadas para la transmisión de contenido multimedia a través de redes IP.

16

Capítulo 2. Formatos de vídeo/audio


Diseño e implementación de un reproductor IPTV multiplataforma,

2.3 Transporte en IPTV El transporte en IPTV ha sido diseñado para ocultar las complejidades de las redes IP a los procesos de las capas superiores del IPTVCM. Los estándares de esta capa proveen lo necesario para la fiabilidad y la integridad de la comunicación extremo a extremo. Si el vídeo no es entregado al DCIPTV correctamente, esta capa de transporte puede iniciar la retransmisión o bien informar a las capas superiores de que es necesario tomar acciones correctivas. TCP y UDP son los dos protocolos más empleados en esta capa de la pila de comunicaciones de IPTV.

2.3.1 TCP TCP es un protocolo de base que pertenece a la suite de IP. TCP está orientado a conexión lo cual significa que se ha de establecer una conexión entre la cabecera de IPTV y los DCIPTV antes de iniciar la transmisión de contenido por la red. TCP corrige las deficiencias de IP mediante su habilidad para manejar y tratar los errores que ocurren durante la transferencia de contenidos a través de la red. Paquetes perdidos, fallidos o duplicados son los principales errores que se pueden encontrar en un entorno IPTV. Para hacer frente a estas situaciones, TCP utiliza un sistema de numeración secuencial que permite al dispositivo emisor retransmitir datos de vídeo que se hayan perdido o corrompido. Además de suavizar los errores que ocurren durante la transmisión de vídeo sobre las redes IP, TCP puede controlar también el flujo de datos que atraviesan esa red. Esto se consigue mediante el uso del campo tamaño de ventana combinado con el algoritmo ventana deslizante. El valor de este campo determina el número de bytes que pueden ser transmitidos antes de requerir una verificación (ACK) desde el receptor. En un entorno IPTV, el valor tamaño de ventana es igual al espacio libre en los buffers del DCIPTV menos el tamaño del vídeo que se encuentra alojado en los buffers en ese instante. El valor de ese campo se mantiene actualizado a través de los mensajes recibidos desde el DCIPTV llamados anuncios de ventana. Si el valor de este campo es cero, entonces el DCIPTV no es capaz de procesar los datos que recibe lo suficientemente rápido. Cuando esto ocurre, TCP le indica al servidor de vídeo que pare o que emita más lentamente los paquetes. Esto hace que el DCIPTV no se sature con los paquetes que le llegan lo que podría resultar en un fallo o en problemas de reproducción para el usuario final. Una vez el DCIPTV ha procesado parte del vídeo en sus buffers, se informa al servidor y el tamaño de ventana se incrementa por lo que el servidor de vídeo vuelve a emitir contenido. En un entorno ideal, el DCIPTV consumirá el vídeo a la misma velocidad que el servidor de vídeo lo va generando. Cada extremo de la conexión tiene una dirección IP y un puerto asociado. Esta combinación de dirección y puerto permite a un proceso en un DCIPTV comunicarse directamente con un proceso que se está ejecutando en uno de los servidores de IPTV en un CPD. Los sockets son el otro elemento clave en las comunicaciones IP. Un socket es un API (application porogramming interface) empleado para facilitar la comunicación entre procesos que se ejecutan en un dispositivo IP. Un socket está identificado por la combinación de dirección IP y puerto. Para establecer y mantener la comunicación entre un DCIPTV y un servidor de vídeo se siguen una serie de pasos: Preparación de los datos: Los paquetes del transport stream se segmentan en paquetes TCP (TCP Segments). Establecimiento de la conexión TCP: Esto se hace abriendo un socket entre ambos extremos de la conexión empleando una combinación de las direcciones IP y los puertos del servicio. Comunicación: A través de los sockets entre los dos procesos se produce el intercambio de datos. Control del streaming: Mientras la conexión está establecida, TCP se encarga de la gestión del stream IPTV. Cierre de conexión: Cuando finaliza la transmisión de contenido cualquiera de los extremos cierra el socket y finaliza la comunicación por red.

2.3. Transporte en IPTV

17


Diseño e implementación de un reproductor IPTV multiplataforma,

2.3.2 UDP UDP es un protocolo que pertence a la suite de protocolos de internet y que permite a los servidores de streaming conectados a las redes de banda ancha emitir a los DCIPTV de los usuarios broadcast de alta calidad. Se trata de un protocolo similar a TCP pero más simplificado, ofreciendo lo mínimo para los servicios de tranporte. La figura 2.7 muestra el modelo completo de IPTVCM aplicado sobre UDP.

Figura 2.7: Ejemplo del IPTVCM sobre UDP UDP no está orientado a conexión, esto significa que no es necesario establecer una conexión entre el DCIPTV y el servidor de vídeo antes de iniciar la transferencia a través de la red. El servidor de vídeo simplemente indica la dirección de destino y el puerto destino en el datagrama (las unidades mínimas de UDP) UDP y lo pasa a la infraestructura de red para entregarlo en la IP de destino. Una vez en la red, UDP usa un enfoque del mínimo esfuerzo posible para entregar el paquete en destino. Entre las ventajas del uso de UDP podemos encontrar: Emisión del contenido IPTV sin pausas: No hay retrasos en la entrega incluso si el paquete está dañado o retrasado mientras que en TCP el usuario podría llegar a tener una pausa en la visualización mientras se espera la retransmisión de ese paquete. Poco overhead: El tamaño de la cabecera UDP es de solo 8 bytes mientras el de TCP es de 20 bytes. Establecimiento de la conexión más rápido: Al no necesitar una conexión entre el DCIPTV y el servidor de vídeo previa a la emisión de paquetes, la entrega de vídeo es generalmente más rápida que si se emplea TCP. Soporte para transmisiones unidireccionales: UDP no necesita un path de retorno. Implementación sencilla: Desde un punto de vista técnico, emitir con UDP es más sencillo ya que no hay que hacer seguimiento de los paquetes una vez están en la red. Aunque UDP también presenta algunos inconvenientes:

18

Capítulo 2. Formatos de vídeo/audio


Diseño e implementación de un reproductor IPTV multiplataforma,

Integridad de los datos: Esta no está garantizada en UDP. Cualquier problema de comunicación que pueda surgir en cualquiera de los extremos de la conexión tiene que ser manejada por las aplicaciones IPTV. Problemas con firewalls: Otro problema de UDP es que no es capaz de funcionar eficazmente con ciertos firewalls. Esto es un problema para los proveedores de servicio de IPTV que intentan ofrecer Internet TV. En el contexto de IPTV, UDP es útil cuando el CPD necesita enviar contenido de vídeo a múltiples DCIPTV, esto lo convierte en el protocolo de transporte más popular entre los proveedores de IPTV. En la siguiente sección se muestran los modos de emisión más empleados por IPTV hoy en día.

2.4 Streaming Cuando hablamos de streaming, nos estamos refiriendo implícitamente a un sistema cliente-servidor en el que el cliente accede a un medio (normalmente audio y/o vídeo) alojado en el servidor y lo va reproduciendo. En una red de ordenadores, pueden distinguirse 3 tipos de streaming, según a quién va recibido el flujo audiovisual: En el streaming unicast el flujo va dirigido desde el servidor a un solo ordenador de la red, es decir, la comunicación es uno a uno. Si el servidor quiere enviar ese flujo a varios clientes usando este método deberá gestionar cada comunicación por separado y deberá disponer de un ancho de banda total de subida mínimo igual a la suma de los anchos de banda usados para cada envío. Figura 2.8.

Figura 2.8: Unicast El streaming multicast representa un envío uno a varios. En este esquema, ciertos nodos de la red se subscriben a ciertos contenidos mediante el envío de paquetes IGMP. El servidor envía un único flujo de salida y la red se encarga de distribuirlo a aquellos nodos subscritos a ese flujo, eficientemente, de forma que los datos sólo pasen una vez por cada tramo de la red. Para poder usarlo de forma escalable, la red subyacente debe soportar multicast, lo que, de momento, hace este enfoque sólo adecuado para redes corporativas, y no para redes de área amplia como Internet. Figura 2.9.

2.4. Streaming

19


Diseño e implementación de un reproductor IPTV multiplataforma,

Figura 2.9: Multicast El streaming broadcast (difusión) consiste en el envío de un flujo uno a todos. Solo es aplicable a redes que usan un medio de transmisión compartido, como las redes de área local, aunque puede ser simulado hasta cierto punto en redes de área amplia, enviando el flujo a subredes concretas dentro de la red. Si bien a bajo nivel, estos métodos emplean UDP o TCP, por encima de esta capa, para gestionar las transmisiones de streaming y comunicarse con los servidores de vídeo indicando las acciones que desea llevar a cabo el usuario se emplean otros protocolos de control. Entre los más usados cabe citar: HTTP. En combinación con TCP si bien no es el protocolo más adecuado pues no está pensado para ello y no permite un gran control, al ser un protocolo orientado a conexión, hace mayor hincapié en la fiabilidad que en la eficiencia. RTSP (Real Time Streaming Protocol): También estandarizado por la IETF. Es un protocolo similar a HTTP pero con algunos comandos específicos y es un protocolo con estado, lo que le permite no tener que establecer conexiones permanentes para soportar sesiones. Se suele usar conjuntamente con RTP/UDP para el envío en tiempo real del vídeo y audio. HTTP Live Streaming (HLS). Es un protocolo basado en HTTP e implementado por Apple Inc. Si bien es un híbrido entre streaming y descarga pura de medios, con la proliferación de los dispositivos móviles en los últimos años se encuentra actualmente en auge.Su funcionamiento se basa en partir el stream de vídeo en una secuencia de pequeños fragmentos que se descargan mediante http. Cada fragmento forma parte de un stream de vídeo contínuo y potencialmente ilimitado. A medida que se va reproduciendo el archivo, el cliente puede elegir entre una serie de streams posibles que contienen el mismo material pero a diferentes bitrates permitiendo a la sesión de streaming adaptarse al ancho de banda libre en ese momento haciendo este protocolo especialmente apto para dispositivos móviles con conexiones a redes 3G. MMS (Microsoft Media Server): Protocolo propietario de Microsoft con la posibilidad de usar tanto TCP como UDP como protocolo de transporte. A partir del lanzamiento de Windows Media Player 11 ha sido considerado obsoleto aunque aún se sigue usando en versiones anteriores del reproductor. RTMP (Real Time Messaging Protocol): Protocolo desarrollado por Adobe Systems usado principalmente por Adobe Flash Media Server para enviar contenido multimedia al reproductor Adobe Flash Player.

20

Capítulo 2. Formatos de vídeo/audio


Diseño e implementación de un reproductor IPTV multiplataforma,

2.5 Zapping Uno de los aspectos más importantes a la hora de entregar contenido live sobre redes IP es la velocidad a la que los usuario pueden cambiar de canal durante su período de visualización de television. Esto implica abandonar un canal de televisión y unirse a otro inmediatamente. En el caso de IPTV el servidor también está implicado en los cambios de canal y no solo el set-top box como ocurre con la televisión broadcast tradicional. Los usuarios finales esperan que el cambio de canal sea lo más rápido posible. En IPTV, el STB interactúa con la red y con el servidor de IPTV a la hora de proveer un cambio de canal por lo que cabe esperar latencias en el momento del zapping. Teniendo esto en cuenta, se desarrollan una serie de técnicas para permitir realizar zapping más rápido como puede ser peticiones de canal predictivas, basadas en analizar las costumbres del usuario, incrementar la frecuencia de las tablas dentro del transport para agilizar la detección de los PIDs involucrados en un canal, incrementar el número de i-frames para reducir los tiempos de espera para obtener una imágen completa y comenzar a representar el canal en la pantalla del usuario o bien reducir el tamaño del buffer del STB para que tarde menos tiempo en llenarse y comenzar la reproducción.

2.5. Zapping

21


Diseño e implementación de un reproductor IPTV multiplataforma,

22

Capítulo 2. Formatos de vídeo/audio


CAPÍTULO 3

Dispositivos de Consumo IPTV

Contenidos Dispositivos de Consumo IPTV • Arquitectura ◦ Hardware ◦ Software • Portabilidad El principal objetivo de un Dispositivo de Consumo de IPTV (DCIPTV) es proveer a los usuarios el acceso a una gran variedad de contenidos de entretenimiento. El contenido varía entre programas de televisión, películas, música o eventos deportivos. Este contenido puede ser entregado al usuario a través de una gran variedad de infraestructuras de red: Cable TV, satélite, TDT, redes móviles... Dentro de los DCIPTV tienen gran relevancia los Set-Top Boxes Digitales (STB) que son un tipo de sistema capaz de traducir las señales en un formato que pueda ser visualizado en la televisión. Son complejos dispositivos electronicos constituídos por diferentes componentes hardware y software. Además de centrarnos en los STBs IP, cabe destacar que cada día están teniendo más relevancia otros dispotivos que puedan actuar como tales (video consolas, media centers o incluso los clásicos PCs) Esto no quiere decir que los STBs como tales vayan a desaparecer en un corto período de tiempo ni mucho menos. Hay una serie de razones que lo justifican: Gran número de instalaciones por todo el mundo que generan grandes beneficios tanto a los proveedores de servicio como a los fabricantes. Multifuncionalidad: Procesado de señal de TV, acceso a videoclub y almacenado local de VoD, interfaces con otras fuentes de contenido en el hogar del usuario... Industria dedicada: Los STBs llevan entre nosotros más de 25 años por lo que toda la industria generada a su alrededor ejercerá presión por mantener su producción durante años. La migración a digital: El uso de tecnologías de internet y el despliegue de la televisión digital está teniendo un impacto positivo en las ventas de la industria de los STBs. Además, los países avanzados ya están introduciendo la segunda generación de STBs para dar soporte a un nuevo rango de servicios. Más rápidos y baratos: De acuerdo a la ley de Moore, cada 12-18 meses la capacidad de procesado se duplica. Esto, combinado con los avances técnicos hace que cada nueva generación de STBs sea contruída con más funcionalidades, mejor rendimiento y a más bajo coste. Esto unido a que los STBs son portables, fáciles de manejar, su soporte para aplicaciones interactivas y su asequibilidad hacen que su futuro esté garantizado. El Set-Top Box representa la pieza clave del equipamiento de un despliegue end-to-end de IPTV. Normalmente, es el propio proveedor de servicio de IPTV el que provee a sus suscriptores con un STB a cambio de una tasa. 23


Diseño e implementación de un reproductor IPTV multiplataforma,

Figura 3.1: Hogar digital conectado El STB se conecta directamente a la televisión y permite al usuario acceder a broadcast y Video bajo demanda basado en IP. El STB desarrolla entonces tres tareas básicas: recibir los streams IP, descodificarlos y presentarlos sincronizados en la televisión. Este proceso de descodificación y representación en pantalla requiere una serie de avanzados componentes hardware. En este punto podemos hacer una distinción entre tres tipos de STBs: STBs IP: Aquellos que disponen de una conexión a redes IP y que su funcionamiento se basa en la comunicación continua con un servidor de IPTV y acceso a streams IP. RF STBs (con tunner de radio frecuencia): Acceden al broadcast clasico mediante tuners DVB (C,T o S/S2). STBs Híbridos: Aquellos que disponen de ambas conexiones y tanto su hardware como su software permiten trabajar en ambos modos ya sea escuchando streams ip o accediendo a broadcast de la forma tradicional. La instalación de cualquier tipo de STB es tan sencilla como conectar un cable a la televisión y otro a la fuente de broadcast o bien al router. El usuario emplea un mando a distancia para gestionar su acceso a los contenidos y canales soportados por el STB. Una vez conectado el STB cumplirá las siguientes tareas básicas: Presentar la señal de video y audio sincronizadas en la pantalla Dar soporte a los medios compartidos por el usuario y los servicios añadidos del proveedor de servicio: VoD, PVR, NPVR, DLNA, uPNP... Procesado de señales multicast Gestión de la degradación de servicio Interfaces de usuario personalizables por el proveedor de servicio. En las siguientes secciones se mostrarán cuales son las piezas hardware y software que hacen que un STB pueda aportar esta funcionalidad.

24

Capítulo 3. Dispositivos de Consumo IPTV


Diseño e implementación de un reproductor IPTV multiplataforma,

3.1 Arquitectura 3.1.1 Hardware La figura 3.2 muestra el diagrama de diseño de un STB IP. En él se pueden apreciar los bloques que constituyen el hardware básico de estos dispositivos. Si bien cada fabricante puede modificar el diseño añadiendo más componentes o redistribuyendo los mismos, esta arquitectura básica tiende a mantenerse en todos los STBs comerciales.

Figura 3.2: Diagrama de diseño de un STB IP

Procesador Hoy en día, los procesadores contienen millones de transistores que se emplean para ejecutar las instrucciones. A día de hoy, la frecuencia de reloj de estos procesadores ya alcanza los GHz (gigaherzios), miles de millones de ciclos por segundo por lo que el número de instrucciones ejecutadas por segundo aumenta con cada nueva generación. Las funciones que cumple el procesador de un STB incluyen: Inicialización del resto de componentes hardware. Lectura de paquetes IPTV. Ejecución del sistema operativo del STB. Lectura y escritura de datos a memoria. Monitorización de los componentes hardware. 3.1. Arquitectura

25


Diseño e implementación de un reproductor IPTV multiplataforma,

Ejecución del resto de aplicaciones necesarias para el usuario. Cada día se exigen nuevas funcionalidades a los STBs, por ello, los fabricantes, están empezando a aplicar en ellos los mismos principios que llevamos años viendo en los PCs e incluyendo procesadores multicore para permitir la ejecución de instrucciones en paralelo incrementando las capacidades del mismo. Memoria Los STBs también necesitan memoria para almacenar y manipular las instrucciones provistas por el usuario y el operador. Actua como paso intermedio entre el disco y el procesador y cuantas más instrucciones se puedan almacenar en la memoria, más rápido será el funcionamiento del STB. Además, la mayor parte de los elementos que constituyen el STB necesitarán memoria para lleva a cabo sus tareas. La memoria también es la responsable de que el STB pueda ejecutar simultaneamente varias aplicaciones. En los STBs hay dos tipos de memoria - RAM y ROM. La mayor parte de las funciones que realiza un STB requieren de memoria de acceso aleatorio (RAM). Se emplea como almacenamiento temporal de datos en flujo entre la CPU y el resto de componentes hardware. La RAM está disponible en distintos tipos: RAM de vídeo. Se emplea para el procesado de la señal de televisión. El volumen de vídeo RAM empleado dependerá de la resolución de salida configurada en el STB. RAM Dinámica (DRAM). Retiene información solo mientras el STB está encendido. Es la empleada por la CPU para ejecutar el software. RAM no volátil (NVRAM). Se emplea para almacenar las preferencias del usuario, los últimos canales vistos y otras configuraciones del STB. La memoria de solo lectura (ROM), persistente, se emplea para almacenar el sistema operativo del STB, configuración de red, aplicaciones... Una vez se han escrito los datos por parte del fabricante, ni el operador de red ni el usuario final pueden modificarlos y suele ser necesaria una actualización de firmware para modificar cualquier tema relacionado con la ROM y siempre es un proceso delicado. La mayor parte de los STBs incluyen EEPROM o Flash ROM. Demultiplexor de Transport Stream Los paquetes del MPEGTS encapsulados en TCP o UDP llegan al demultiplexor desde el puerto Ethernet. Una vez recibidos, este lee la cabecera y concretamente el campo PID. Ahí, uniendo la información extraída de las tablas PAT y PMT se decide qué PIDs de vídeo, audio y datos son los que componen el canal de IPTV que el usuario desea sintonizar y los extrae. Cada uno de estos stream extraídos será envíado a través del bus del sistema a las unidades encargadas de su procesado. Descodificador de vídeo El descodificador de vídeo se encarga del procesado de las señales de vídeo contenidas en los streams de IPTV. Generalmente tiene soporte para todos los estándares MPEG-2 y para los nuevos algortmos como MPEG-4. Este decodificador puede ser una pieza hardware o bien a través de software. Ejecutar la descodificación de vídeo en tiempo real a través de software requiere unos chips especializados llamados procesadores digitales de señal (DSP). Estos chips son programables y su uso cada más extendido entre los fabricantes de STBs por la flexibilidad que ofrecen adaptándose a distintos proveedores de servicio que puedan emplear distintas codificaciones. Otra alternativa es hacer decodificación puramente software empleando las capacidades del procesador principal del STB. Una vez procesado el vídeo la salida es dirigida a un conversor digital-a-analógico (DAC). La salida de este DAC depende de los interfaces de A/V que soporte el set-top box IP.

26

Capítulo 3. Dispositivos de Consumo IPTV


Diseño e implementación de un reproductor IPTV multiplataforma,

Descodificador de audio Descodificar una señal de audio es menos demandante en lo que a complejidad se refiere si la comparamos con el vídeo. A menudo, la CPU del STB es más que suficiente para hacer la descodificación del audio y no se requiere hardware adicional. Sin embargo, con los sistemas de audio multicanal, este proceso puede no ser tan trivial y está forzando a los fabricantes a mejorar el soporte de descodificación de audio en los STBs. Audio DSP chipsets o incluso procesadores de audio dedicados están siendo cada vez más empleados para llevar a cabo esta función. A este nivel también se lleva a cabo la llamada sincronización de labios, que las voces de los actores coincidan con las imágenes que se están mostrando en ese momento. Esta tarea puede llegar a ser compleja debido a que la descodificación de vídeo es bastante más costosa que la de audio, por tanto, es necesario gestionar estos retrasos. Como resultado de esto, los descodificadores de audio suelen incluír un algoritmo para provocar retrasos y hacer que la tasa de descodificación coincida con la de vídeo. Aceleradora gráfica La aceleración gráfica en los set-top boxes y en los PCs se maneja de forma diferente. El hardware es mucho más limitado en los STBs lo cual reduce los niveles de calidad de los gráficos que se pueden ejecutar. En la mayoría de los STBs, la salida gráfica esta integrada con el descodificador de vídeo por lo que, el mismo chip que se encarga de la descodificación, también se va a encargar del renderizado en pantalla tanto del vídeo en sí mismo como de los componentes que conforman el interfaz de usuario. Algunos fabricantes añaden un chip dedicado para la aceleración gráfica permitiendo a los desarrolladores crear aplicaciones e interfaces más avanzadas y atractivas así como dar mayor fluidez al vídeo. Las mejoras en la electrónica hace posible que algunos proveedores incluso ofrezcan juegos 3D a sus suscriptores. Interfaces y conexiones Los STBs también disponen de una serie de interfaces que les proveen de conectividad con dispositivos externos. En general, cabe destacar: Puerto Ethernet: Imprescindible en los STBs IP. Receptor de infrarojos/bluetooth: Para la gestión del STB por parte del usuario con el mando a distancia. A día de hoy cada vez con más comunes los mandos con bluetooth que proveen más avanzadas funcionalidades. Salidas de vídeo analógicas: A día de hoy las más comunes son las salidas por componentes (YPrPb), Super vídeo o salida compuesta. Salidas de audio: Van desde un jack/mini-jack a salidas RCA Salidas digitales: Como pueden ser HDMI para vídeo o SPDIF/óptica para audio. Wireless: Cada vez más frecuente para el acceso a red sin cables. Si bien no es apta para los modelos de IPTV basados en multicast (por los protocolos de la capa física de WIFI), si se emplean para que el usuario pueda acceder a los datos compartidos en su propio hogar. USB (Universal Serial Bus): Uno o varios puertos donde el usuario puede conectar dispositivos de almacenamiento externos para las funciones de PVR o acceso a sus contenidos. A mayores de los STBs IP hay otras teconologías que se están adaptando al mercado de los dispositivos de consumo de IPTV. Se trata de hardware que ya dispone de su propio nicho de mercado, que se encuentra muy extendido entre todos los hogares y que lo que pretende es ampliar su funcionalidad y dar nuevas posibilidades a los usuarios. Por un lado encontramos las videoconsolas. Éstas, compuestas por diseños hardware y software propietarios, conservan gran parecido con los diseños de los set-top boxes. Es habitual encontrar chips de decodificación y de procesado de vídeo dedicados en estas consolas además de compartir los interfaces de conexión y las capacidades de acceso a los recursos multimedia del usuario. No obstante, las videoconsolas superan en capacidad en muchos puntos a los STBs: 3.1. Arquitectura

27


Diseño e implementación de un reproductor IPTV multiplataforma,

Mejores capacidades gráficas y de sonido: Debido a que su función principal es renderizar imágenes 3D e imágenes de juegos además de incluír un chip dedicado para el audio para producir sonido de gran calidad en tiempo real. Procesador más potente: Comparable a los PCs de alta gama. Mejores capacidades de I/O (Entrada/Salida): Procesando con más facilidad los medios externos conectados o bien el acceso a la red local del usuario mejorando las velocidades de acceso a sus recursos compartidos. Por otro lado, los centros multimedia, normalmente basados en PCs que dan gran velocidad de acceso a contenidos multimedia. Al tratarse de PCs, la arquitectura difiere de la de los STBs y las consolas. Se trata de procesadores más rápidos, con más RAM y capacidad de almacenamiento local, tarjetas gráficas y de sonido dedicadas que le confieren gran capacidad de procesado de vídeo y audio pese a carecer normalmente de chips dedicados a tales tareas.

3.1.2 Software Hay una gran cantidad de componentes software que se ejecutan en un dispositivo de consumo de IPTV. La arquitectura software de un DCIPTV suele estar estructurada en capas y cada capa añade nuevas funcionalidades. La figura 3.3 muestra una estructura de software de un DCIPTV.

Figura 3.3: Software de un STB IP En esta imagen, se pueden distinguir 3 partes. Por un lado tenemos el sistema operativo, los drivers y las librerías sobre las que se asienta el resto del software. Inmediatamente asentada sobre esta capa se encuentra una capa de abstracción sobre el operativo y el hardware que facilitaría la migración a otros dispositivos, en esta mismo nivel se incluye el reproductor multimedia integrado en el DCIPTV. Esta capa además pone una serie de capacidades/funcionalidades a disposición de la última capa (middleware). Esta última capa se compone de la aplicación IPTV que ofrece el interfaz de gestión al usuario y que llama a las capacidades del middleware para obtener la funcionalidad completa. Sistema Operativo El sistema operativo, típicamente GNU/Linux, suele traer un kernel adaptado al hardware del STB. No debe ocupar demasiada memoria dado lo limitado en recursos que suele ser el STB medio. Normalmente, el kernel es

28

Capítulo 3. Dispositivos de Consumo IPTV


Diseño e implementación de un reproductor IPTV multiplataforma,

el encargado de la gestión de memoria, gestión de procesos y la gestión de interrupciones. También provee al STB con capacidades de multithreading y multitarea. Esto permite al STB ejecutar diferentes secciones de distintos programas simultaneamente. El kernel es lo primero que se carga en memoria en el arranque y permanece siempre en memoria hasta que se apaga el STB. Es por ello que debe estar optimizado para ocupar lo mínimo posible. Sobre el operativo, se asientan una serie de librerías que proporcionan interfaces a bajo nivel para las funcionalidades que ofrece el STB (libc, glib, libqt, etc). Además, los fabricantes / proveedores pueden incluír a este nivel drivers para posible hardware añadido al STB como pueden ser teclados/ratones para facilitar la navegación por los interfaces, discos externos, etc. Middleware Como vimos en la sección dedicada al hardware, los STB pueden incluír hardware muy concreto para la decodificación y demultiplexado de vídeo. Cada fabricante de hardware elaborará un API de bajo nivel para hacer uso de las capacidades del hardware y normalmente será necesario realizar una integración sobre estas librerías. De esto se encarga el middleware. El middleware provee una capa de abstracción de hardware para proporcionar un API de alto nivel común a los distintos dispositivos o versiones del mismo y facilitar, a la vez que minimizar, el impacto de estos cambios en las capas superiores. A mayores, implementa una serie de funcionalidades / programas sobre el operativo como pueden ser: Reproducción multimedia, acceso a archivos compartidos mediante DLNA, parseo y pintado de la Guía Electrónica de Programación (EPG), grabación en disco local... y unos APIs de alto nivel para unificar el acceso a estas funcionalidades. El middleware además puede proveer un servidor de forma que parte del procesado y de las tareas se realicen internamente en el STB y aligerar de carga al servidor de backend en el CPD de IPTV. Aplicaciones interactivas Por último, sobre la capa de abstracción del middleware, se encuentra la implementación de la funcionalidad tal y como la percibe el usuario. Suele consistir en un interfaz de usuario sencillo, apto para toda clase de públicos. Este interfaz guía al usuario hacia las funcionalidades disponibles y provee mensajes y resultados de las ejecuciones. También pueden proveer un API público de forma que terceros puedan desarrollar applicaciones que corran sobre el middleware. Esta capa será común a todos los dispositivos a los que se porte el middleware.

3.2 Portabilidad A la hora de desarrollar software para IPTV el principal problema que aparece es la fragmentación. Cada fabricante, cada proveedor de servicio, cada STB puede ser completamente diferente a los de la competencia teniendo hardware distinto, APIs incompatibles, periféricos diferentes etc. Para los desarrolladores de middleware que aspiren a dar soporte a varias plataformas 1 distintas el tiempo y el esfuerzo invertido en dar soporte a cada una de ellas sería inabordable. Es aquí donde entra en juego una pieza clave de la computación, la portabilidad. La portabilidad se define como la característica que posee un software para ejecutarse en diferentes plataformas, el código fuente del software es capaz de reutilizarse en vez de crearse un nuevo código cuando el software pasa de una plataforma a otra. El requisito para la portabilidad es la abstracción entre la lógica de la aplicación y los interfaces del sistema. Cuando software con la misma funcionalidad se produce para diferentes plataformas, la portabilidad es clave para reducir los costes de producción. A mayor portabilidad menor es la dependencia del software con respecto a la plataforma. Garantizar la portabilidad, en el caso de diferentes plataformas, implica que a partir del mismo código fuente (o con las mínimas modificaciones posibles) se construyen ejecutables para cada una de las plataformas deseadas. Esto normalmente se conoce como porting. 1 “Entendemos por plataforma una combinación de hardware y software usada para ejecutar aplicaciones; en su forma más simple consiste únicamente de un sistema operativo, una arquitectura, o una combinación de ambos.”

3.2. Portabilidad

29


Diseño e implementación de un reproductor IPTV multiplataforma,

Una buena medida de portabilidad de software consiste en comparar si el coste de portarlo a una nueva plataforma es menor que el coste de escribirlo desde cero. Cuanto menor sea el coste de portar el software, comparado con el coste de implementación, más portable será.

30

Capítulo 3. Dispositivos de Consumo IPTV

Conceptos previos  
Read more
Read more
Similar to
Popular now
Just for you