CAPÍTULO 1. Principales formatos de compresión de video para la TVD
1.4 Conclusiones del capítulo
La compresión de video es un tema que se desarrolla en base a las exigencias de calidad
o transmisión de la señal, según las prestaciones. Para ello se han desarrollado varios estándares que permiten la transmisión y reproducción de la señal de video en distintos tipos de medios y condiciones. Todos estos estándares responden a técnicas de compresión con pérdidas, las cuales logran reducir significativamente el caudal binario a cambio de una reducción en la calidad de la imagen, perceptible o no para el espectador, en dependencia del propósito.
Los principales parámetros que miden la compresión de video son la calidad de imagen
en valores de PSNR, caudal binario de salida, complejidad y retardo de codificación.
Las nuevas tecnologías demandan un caudal binario pequeño y una calidad de imagen
muy buena con mucho detalle, dos factores inversamente proporcionales, lo cual se hace una tarea difícil. Sin embargo, el nuevo formato de compresión H.265 logra reducir grandemente la razón de bit gracias a las nuevas técnicas de codificación que implementa, así como las nuevas unidades de codificación diferentes al macrobloque, nuevos filtros que mejoran la calidad de imagen (SAO), nuevas herramientas para la codificación en paralelo que hace el procesamiento más rápido y eficiente, solo por citar algunos.
CAPÍTULO 2.
COMPUTACIÓN DE ALTO RENDIMIENTO PARA
LA CODIFICACIÓN DE VIDEO DE ULTRA ALTA
DEFINICIÓN
El presente capítulo está encausado en describir los materiales, métodos y herramientas para lograr la implementación de codificaciones de video mediante computación de alto
rendimiento. Con tal fin, se parte de una breve reseña de las características de un clúster y su
principio de funcionamiento. De modo adicional, se describirá el manejo de la herramienta de software ffmpeg y las librerías necesarias para la codificación de video H.264 y H.265. Por último, se hará una descripción de las secuencias de pruebas empleadas, los parámetros de calidad que se medirán en dichas secuencias y la configuración de las codificaciones que se efectuarán para lograr estos parámetros.
2.1 Ventajas de la utilización de un clúster de computadoras para la codificación de video.
La codificación de video es un proceso minucioso ya que las técnicas de compresión implementadas analizan todas las imágenes de una secuencia de video y los elementos de cada imagen (píxeles) para realizar una compresión lo más estricta posible. A medida que el video tenga una mayor resolución y más exigencias de calidad de imagen, mayor serán los requerimientos de procesamiento para lograr una codificación con dichos términos. El potencial de cómputo requerido para los casos anteriormente definidos no se encuentra en computadoras convencionales, sin embargo, si varias computadoras se interconectaran para realizar una misma tarea el proceso sería más eficiente, la herramienta a la que se hace
referencia es un clúster de computadoras.
Un clúster es una solución computacional estructurada a partir de un conjunto de sistemas computacionales muy similares entre sí (grupo de computadoras). Interconectados mediante alguna tecnología de red de alta velocidad y configurados de forma coordinada para dar la ilusión de un único recurso, cada uno de estos sistemas estará proveyendo un mismo servicio
o ejecutando una (o parte de una) misma aplicación paralela. Un clúster debe tener como característica inherente la compartición de recursos: ciclos de la Unidad Central de
Procesamiento (CPU del inglés Central Processing Unit), memoria, datos y servicios (Iván
et al., 2006).
El problema que se intenta resolver con estos clústeres es el de disponer de capacidad
computacional equivalente al encontrado en poderosas y costosas supercomputadoras
paralelas tradicionales (Cray/SGI T3E) según (Gordon and J., 2001), pero empleando
componentes de bajo costo y ampliamente disponibles (commodities). Los altos
requerimientos computacionales a los que se hace mención, son típicos en aplicaciones como algoritmos genéticos, simulación de líneas de fabricación, aplicaciones militares, bases de datos, síntesis de imágenes, recuperación de imágenes por contenido, simulación de modelos para clima, análisis de sismos, algoritmos para solución a problemas de electromagnetismo, dinámica de fluidos, química cuántica, biomedicina, entre otras (Buyya, 1999).
Un clúster de computadoras está enfocado a resolver una de las tres metas siguientes:
Alto rendimiento
Para tareas que requieren gran poder computacional, grandes cantidades de
memoria, o ambos a la vez.
Las tareas podrían comprometer los recursos por largos períodos de tiempo.
Alta disponibilidad
Máxima disponibilidad de los servicios.
Rendimiento sostenido.
Alta razón de transferencia
Independencia de datos entre las tareas individuales.
El retardo entre los nodos del clúster no es considerado un gran problema.
La meta es el completar el mayor número de tareas en el tiempo más corto posible.
Las grandes prestaciones del clúster son posible gracias a la disposición de los elementos
Nodo Maestro, utilizado para proveer al usuario el acceso a los recursos de cómputo, planificación de tareas o espacio para almacenamiento. Esconde los recursos, dando al mundo externo la visión de un único recurso.
Nodos de Cómputo, realizan las porciones asignadas de los cálculos o cómputos de la
aplicación paralela, o una unidad de un servicio escalable (si se habla de disponibilidad, por ejemplo).
Nodo Administrativo, provee servicios administrativos como monitoreo del rendimiento
y generación de eventos para los administradores del clúster.
Nodo de Infraestructura, provee servicios esenciales para el clúster, tales como
servicios de licenciamiento, servicios de autenticación, planificación de tareas y balanceo de carga.
Nodo de I/O o Servidor de Archivos, provee acceso a los recursos de almacenamiento
del clúster para los usuarios y las aplicaciones.
Varias Redes, de administración del clúster, de acceso a datos, de consolas de
administración de los nodos de cómputo.