Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los codecs de vídeo más importantes para la transmisión de un flujo de información visual
(streaming video) por la red son MJPEG, H.261, H.263, MPEG1, MPEG2 y MPEG4. Estos códecs han
de cumplir una serie de requisitos relacionados con su cometido, la transmisión de información de
video por una red con retrasos y pérdidas. Así pues deben conseguir una gran escalabilidad, una
complejidad computacional baja, una gran capacidad de recuperación ante pérdidas en la red y
una gran agilidad en la codificación/decodificación en el caso de videoconferencia. A la vez, deben
conseguir la mayor tasa de cuadros por segundo y calidad de imagen posible.
6.1 M-JPEG
Mediante compresión JPEG se obtienen muy buenos resultados en la reducción del tamaño de
cada imagen sobre todo en tipos de imágenes de la vida real, como fotos o imágenes digitalizadas
desde una cámara por ejemplo. No obstante, este formato solo introduce la llamada compresión
espacial, es decir, dentro de una misma imagen, y no tiene en cuenta la redundancia de
información entre dos imágenes consecutivas de un mismo vídeo, que normalmente difieren poco
unas de otras. Este otro tipo de compresión, denominada compresión temporal, es la usada por
sistemas de codificación de vídeo más avanzados como los que veremos a continuación.
6.2 H.261
H.261 se conoce también como P*64 donde P es un entero, lo que representa múltiplos de
64Kbit/sec. H.261 fue desarrollado para uso en aplicaciones de videoconferencia. El algoritmo de
codificación que utiliza es similar, pero incompatible con el del estándar MPEG. No obstante,
H.261 necesita considerablemente menos uso de CPU que MPEG para la codificación en tiempo
real. El algoritmo incluye un mecanismo que optimiza el uso de ancho de banda mediante un
compromiso entre la calidad de imagen y la fluidez del movimiento, de tal forma que un vídeo que
contenga una gran cantidad de variaciones en sus imágenes se verá con menor calidad que uno
que corresponda a imágenes bastante parecidas entre ellas, es decir, con poco movimiento (como
puede ser una videoconferencia). Esto es así porque H.261 es un estándar basado en un flujo
constante de información (constant-bit-rate) y no en una calidad de imagen constante (constant-
quality, variable-bit-rate).
6.3 H.263
H.263 es un estándar de la ITU-T diseñado para comunicaciones con bajo ancho de banda.
No obstante, se espera que su uso se extienda también a comunicaciones con más ancho
de banda y que sustituya completamente a H.261 en una gran cantidad de aplicaciones.
El algoritmo de codificación de H.263 es similar al de H.261, pero introduce mejoras en la
calidad de imagen y en la recuperación de errores:
H.263 utiliza una precisión de medio píxel para la compensación de movimiento mientras
que H.261 utiliza precisión de píxel completo.
Algunas partes de la estructura jerárquica del flujo de datos son ahora opcionales, de
manera que el codec puede ser configurado para una tasa de transferencia inferior o una
mejor recuperación ante errores.
Utiliza cuatro nuevas opciones negociables para mejorar las prestaciones: Vectores de
movimiento libre, codificación aritmética basada en la sintaxis, predicción avanzada y
predicción de frames (cuadros) hacia delante y hacia atrás similar al estándar MPEG
llamados P-B frames.
Soporta tres nuevas resoluciones de imagen añadidas a QCIF y CIF (352x288) de H.261,
que son SQCIF, 4CIF y 16CIF.
6.4 MPEG
Del inglés “Motion Picture Experts Group”, este estándar de la ISO define un conjunto de formatos
de codificación utilizadas para el almacenamiento de información audiovisual, incluyendo vídeo y
audio en formato digital comprimido.
El sistema MPEG surgió como una respuesta a las necesidades de transmitir señales de televisión y
vídeo por redes digitales, y está pensado para funcionar con aparatos diseñados específicamente
para esta misión, que permitan comprimir y descomprimir las imágenes a gran velocidad.
Este formato no está orientado a videoconferencia como H.263 sino a una señal de vídeo ya
grabada, ya que utiliza lo que llamamos estimación de movimiento bidireccional, que se basa en
comparar cada fotograma no solo con los anteriores sino también con los posteriores, logrando así
una mayor compresión.
El algoritmo que utiliza MPEG, además de comprimir imágenes estáticas mediante JPEG, compara
los fotogramas presentes con los anteriores y los futuros para almacenar sólo las partes que
cambian. La señal además incluye sonido en calidad digital.
MPEG utiliza compresión temporal y espacial. En primer lugar aplica una transformada del coseno
discreta, seguida de una cuantización para finalmente comprimir mediante un algoritmo RLE. Los
bloques de imagen y los de predicción de errores tienen una gran redundancia espacial, que se
reduce gracias a la transformación de los bloques desde el dominio del espacio al dominio de la
frecuencia.
MPEG requiere una intensiva computación para su codificación, aunque por el contrario los
resultados obtenidos son excelentes, lográndose ratios desde 50:1 hasta 200:1
MPEG en realidad no es un estándar, sino que engloba una serie de estándares que fueron
surgiendo con el tiempo y que vamos a ver a continuación.
6.4.1 MPEG-1
Nacido en 1991, fue el primer estándar del grupo MPEG. Está orientado a sustituir las cintas de
vídeo VHS usando CDs (videoCD o VCD). Permite una resolución de 352x288 píxeles.
MPEG-1 guarda una imagen, la compara con la siguiente y almacena solo las diferencias,
alcanzando así grados de compresión muy elevados. Define tres tipos de fotogramas:
6.4.2 MPEG-2
También conocido como SVCD, surge en 1994 como alternativa al anterior, para dotar al vídeo
de más calidad y mayor resolución (720x576), ya que la del MPEG1 (VCD) se consideró
insuficiente para la distribución de películas a gran escala.
MPEG-2 fue universalmente aceptado para transmitir vídeo digital comprimido con
velocidades mayores de 1Mb/s aproximadamente. Con MPEG-2 pueden conseguirse elevadas
tasas de compresión de hasta 100:1 dependiendo de las características del propio vídeo.
Este es el estándar utilizado en los DVD-Video para las películas que se distribuyen en el
mercado de consumo. Un DVD es un sistema de almacenamiento con una capacidad unas 8
veces superior a los CD. También se utiliza para la transmisión de la Televisión digital y en
algunos países para la televisión de alta definición (HDTV).
6.4.3 MPEG-4
Nace en 1999 como una necesidad para videoteléfonos o videoconferencias, pero pronto
queda claro que su principal campo de aplicación es Internet, así como la multimedia en
general. La idea es exprimir al máximo canales con un ancho de banda pequeño (del orden de
64Kbps).
Podría pensarse que es una sucesión de alguna manera de los anteriores, pero no es así.
Estamos ante un formato bastante diferente, dado el potencialmente estrecho canal por el
que va a ser enviado.
MPEG4 permite mezclar imagen y sonido naturales con otros sintéticos. El objetivo es crear un
contexto audiovisual, en el cual existen unas primitivas llamadas AVO (Audio Visual Object).
Los AVOs se disponen jerárquicamente, como por ejemplo: un fondo bidimensional, una figura
que habla en ese fondo, una voz humana que corresponde a la figura, etc. Mediante MPEG4 se
definen los métodos para codificar esas primitivas o AVOs, que podrían clasificarse en texto y
gráficos.
La comunicación con los datos de cada AVO se realiza mediante uno o varios flujos
elementales (Elementary Streams), cuya característica principal es la calidad de servicio,
denominada QoS (Quality of Service) requerida para la transmisión, así como otros parámetros
útiles para conocer los recursos y tiempos necesarios en la codificación y decodificación.
Además, el eliminar la redundancia temporal y solo almacenar los cambios entre imágenes
consecutivas como realizan estos codificadores, provoca que cualquier mínima pérdida en la
transmisión no sólo afecte al fotograma que está siendo enviado en ese momento, sino a
todos los posteriores, por el sistema de codificación usado que se basa en predicción de
movimiento.
Todas estas técnicas suman tiempo de proceso y cálculo al decodificador, por lo que con más
razón hacen inviable estos formatos para el propósito del proyecto, sin apoyarse en un
hardware específico.
De hecho, las compañías actuales que han conseguido implementar la técnica de video
streaming en dispositivos móviles lo han logrado sin utilizar J2ME y MIDP, sino usando
protocolos propietarios y llamadas a métodos nativos en su código. Gracias a esto pueden
aplicar algoritmos de compresión propios utilizando toda la funcionalidad del terminal.
Por ejemplo, los terminales Nokia modernos, utilizan el sistema operativo Symbian,
programado en C++, que permite trabajar a un nivel más bajo que Java. En estos casos, es el
fabricante de los terminales quien tiene que dar soporte a toda la funcionalidad a bajo nivel,
consiguiendo obtener así el máximo rendimiento al dispositivo, pero a costa de incumplir las
normas de estandarización y de sacrificar la portabilidad que nos ofrece el lenguaje Java.
A todas estas limitaciones hay que sumar la capacidad de memoria tan limitada de los
terminales móviles, lo cual dificulta aun más la técnica de streaming que suele utilizar un
buffer para almacenar cierto tiempo de video previo al inicio de la reproducción, con objeto de
mantener la continuidad de esta en caso de cese del flujo de información temporalmente
debido a congestión en la red u otros problemas derivados de la propia conexión.
Por todo esto, asumiendo la imposibilidad de reproducir vídeo de gran fluidez con todas estas
limitaciones, parece que para el cometido de nuestro proyecto, que es la realización de un
cliente para la recepción de imágenes en un dispositivo móvil usando CLDC y MIDP sobre
J2ME, la única opción viable a priori es la de utilizar M-JPEG, es decir, el cliente realizará
periódicamente peticiones al servidor que le irá enviando cada fotograma (codificado en JPEG)
para que lo vaya presentando en la pantalla del terminal.
Una vez recibida cada imagen por el flujo abierto con el servidor, la información codificada (en
formato JPEG en nuestro caso) ha de ser decodificada para crear un objeto tipo Image que
pueda ser tratado por los métodos de MIDP para presentarlo en la pantalla del terminal.
Se espera que el más reciente estándar de compresión de video, H.264 (también denominado MPEG-4
Parte 10/AVC para Codificación de Video Avanzada), se convierta en la norma de video a elegir en los
próximos años. H.264 es un estándar abierto con licencia que es compatible con las técnicas más
eficientes de compresión de video hoy disponibles. Sin comprometer la calidad de la imagen, un
codificador H.264 puede reducir el tamaño de un archivo de video digital en más de un 80% si se
compara con Motion JPEG, y hasta un 50% comparado con MPEG-4 Parte 2. Esto significa que se
requiere menos ancho de banda y espacio de almacenamiento para los archivos de video. O, visto de otra
manera, se puede lograr mayor calidad de imagen de video para una frecuencia de bits determinada.
H.264 es un estándar definido de manera conjunta por organizaciones de normalización de los sectores de
telecomunicaciones e industrias de TI, y se espera que su aceptación sea más generalizada que en el caso de
las normas anteriores.
Ya se ha utilizado en nuevos aparatos electrónicos como teléfonos móviles y reproductores de video digital, y
ha sido aceptado rápidamente por los usuarios. Los proveedores de servicios, como las empresas de
almacenamiento de video en línea o de telecomunicaciones, también están empezando a adoptar H.264.
Se espera que H.264 acelere también la adopción de cámaras de megapixeles, ya que con esta eficiente
tecnología de compresión se pueden reducir los archivos de gran tamaño y las frecuencias de bits sin que la
calidad de la imagen se vea afectada. En cualquier caso, tiene sus exigencias: aunque H.264 permite ahorrar
en costos de ancho de banda y almacenamiento, también necesita cámaras de red y estaciones de control de
mejor rendimiento.
Desarrollo
Diseñado para solucionar una serie de debilidades de estándares de compresión de video anteriores, H.264
satisface con éxito su objetivo de admitir:
• Implementaciones que ofrezcan una reducción de la frecuencia de bits del 50%, a partir de una calidad de
video fija y comparada con otros estándares de video.
• Robustez frente a errores, de forma que se toleren las fallas de transmisión a través de varias redes.
• Decodificación de coincidencia exacta, que define exactamente cuántos cálculos numéricos debe realizar un
codificador y un decodificador para evitar que se acumulen errores.
H.264 tiene también la flexibilidad suficiente como para admitir una amplia gama de aplicaciones con diferentes
requisitos de frecuencia de bits. Por ejemplo, en video de entretenimiento, lo que incluye retransmisiones,
satélite, cable y DVD, H.264 podrá ofrecer un rendimiento de entre 1 y 10 Mbps con una alta latencia, mientras
que en servicios de telecomunicaciones puede ofrecer frecuencias de bits inferiores a 1 Mbps con baja latencia.
Conclusiones
H.264 es un gran paso adelante en la tecnología de compresión de video, ofrece técnicas más eficientes gracias
a sus mejores funciones de predicción y a su capacidad de recuperación ante errores. Este estándar brinda
nuevas posibilidades a la hora de crear mejores codificadores de video que permiten transmisiones de mayor
calidad y a mayores resoluciones manteniendo las mismas frecuencias de bits (en comparación con estándares
anteriores), o, a la inversa, la misma calidad de video con frecuencias de bits inferiores. H.264 es el primer
proyecto conjunto entre ITU, ISO y IEC para lograr un estándar de compresión de video común e internacional.
Gracias a su flexibilidad, H.264 ya ha sido aplicado en distintas áreas como el DVD de Alta Definición (como
Blu-Ray), la difusión de video digital, incluyendo TV de Alta Definición, el almacenamiento de video en línea
(como YouTube), la telefonía móvil de tercera generación, y en software como QuickTime, Flash y el sistema
operativo de los PCs Apple y MacOS X, así como en consolas de videojuegos como PlayStation 3. Con el apoyo
de tantas industrias y aplicaciones para consumidores y profesionales, se espera que H.264 sustituya al resto
de estándares y métodos de compresión utilizados en la actualidad.
A medida que el formato H.264 sea cada vez más usado en cámaras de red, codificadores de video y software
de gestión de video, los diseñadores e integradores de sistemas deberán asegurarse de que los productos y
proveedores que elijan usen este nuevo estándar abierto. Y hasta el momento, los productos de video en red
compatibles con H.264 y Motion JPEG son los ideales para lograr la mayor flexibilidad e integración posibles.
Compresión de video
Las técnicas de compresión de video consisten en reducir y eliminar datos redundantes del
video para que el archivo de video digital pueda enviarse a través de la red y almacenar en
discos informáticos. Este capítulo trata sobre los conceptos básicos de la compresión y
proporciona una descripción de los estándares más difundidos.
Los más difundidos estándares de compresión de video son Motion JPEG, MPEG-4 Parte 2
(MPEG-4) y H.264, siendo este último el estándar más actual y eficaz. Este capítulo trata sobre
los conceptos básicos de la compresión y proporciona una descripción de cada uno de los
estándares mencionados.
7.1. Conceptos básicos
Los diferentes estándares de compresión utilizan métodos distintos para reducir los datos y,
en consecuencia, los resultados en cuanto a frecuencia de bits y latencia son diferentes.
Existen dos tipos de algoritmos de compresión: compresión de imágenes y compresión de
video.
Los productos de algunas marcas permiten a los usuarios configurar la longitud de GOV (grupo
de video), la cual determina la cantidad de fotogramas P que deberían enviarse antes de
realizar el envío de otro fotograma I. La frecuencia de bits se puede disminuir mediante la
reducción de la frecuencia de fotogramas (GOV más largo). Para reducir la latencia no se
utilizan fotogramas B.
Motion JPEG o M-JPEG es una secuencia de video digital compuesta por una serie de imágenes
JPEG individuales. (JPEG son las siglas de Joint Photographic Experts Group - Grupo de
Expertos Fotográficos Unidos). Cuando se visualizan 16 o más imágenes por segundo, el ojo
humano lo percibe como un video en movimiento. Un video en completo movimiento se
percibe a 30 (NTSC) o 25 (PAL) imágenes por segundo.
Una de las ventajas de Motion JPEG es que cada imagen de una secuencia de video puede
conservar la misma calidad garantizada que se determina mediante el nivel de compresión
elegido para la cámara de red o codificador de video. Cuanto más alto es el nivel de
compresión, menor es el tamaño del archivo y la calidad de imagen. En algunas situaciones,
como cuando hay poca luz o la escena es compleja, el tamaño del archivo puede ser bastante
grande y, por lo tanto, usar más ancho de banda y espacio de almacenamiento. Para evitar
que esto ocurra, los productos de video en red permiten al usuario establecer un tamaño
máximo para un fotograma de imagen.
Al no haber dependencia alguna entre los fotogramas de Motion JPEG, un video Motion JPEG
es resistente, lo que significa que si falla un fotograma durante la transmisión, el resto del
video no se verá afectado.
Motion JPEG es un estándar que no requiere licencia. Tiene una amplia compatibilidad y su
uso es muy habitual en aplicaciones donde se requieren fotogramas individuales en una
secuencia de video -por ejemplo, para el análisis- y donde se utiliza una frecuencia de imagen
de 5 fotogramas por segundo o inferior. Motion JPEG también puede ser útil para aplicaciones
que requieren integración con sistemas solo compatibles con Motion JPEG.
Sin embargo, el principal inconveniente de Motion JPEG es que no utiliza ninguna técnica de
compresión de video para reducir datos, ya que consiste en una serie de imágenes fijas y
completas. El resultado es una frecuencia de bits relativamente alta o una relación de
compresión baja para la calidad proporcionada, en comparación con estándares como JPEG-4
y H.264.
7.2.2. MPEG-4
El H.264, también conocido como MPEG-4 Parte 10/AAVC para Codificación de Video
Avanzada, es el estándar MPEG más actual para la codificación de video. Se espera que el
H.264 se convierta en la alternativa de estándar en los próximos años. Ello se debe a que, sin
comprometer la calidad de la imagen, un codificador H.264 puede reducir el tamaño de un
archivo de video digital en más de un 80% si se compara con el formato Motion JPEG, y hasta
un 50% más en comparación con el estándar MPEG-4. Esto significa que se requiere menos
ancho de banda y espacio de almacenamiento para los archivos de video. O, visto de otra
manera, se puede lograr mayor calidad de imagen de video para una frecuencia de bits
determinada.
El H.264 ha sido definido conjuntamente por organizaciones de normalización del sector de las
telecomunicaciones (ITU-T’s Video Coding Experts Group) y de las tecnologías de la
información (ISO/IEC Moving Picture Experts Group), y se espera que tenga una mayor
adopción que los estándares anteriores. En el sector de la videovigilancia, H.264 encontrará su
mayor utilidad en aplicaciones donde se necesiten velocidades y resoluciones altas, como en la
vigilancia de autopistas, aeropuertos y casinos, lugares donde por regla general se usa una
velocidad de 30/225(NTSC/PAL) imágenes por segundo. Es aquí donde las ventajas económicas
de un ancho de banda y un almacenamiento reducidos se harán sentir de forma más clara.
Se espera que H.264 acelere también la adopción de cámaras megapíxel, ya que con esta
eficiente tecnología de compresión se pueden reducir los archivos de gran tamaño y las
frecuencias de bits sin que la calidad de la imagen se vea afectada. En cualquier caso, tiene sus
exigencias: aunque H.264 permite ahorrar en costes de ancho de banda y almacenamiento,
también necesita cámaras de red y estaciones de control de mejor rendimiento.
Los codificadores H.264 utilizan el perfil base, lo que supone que sólo se usan los fotogramas I
y P. Este perfil es el ideal para cámaras de red y codificadores de video, ya que la latencia se
reduce gracias a la ausencia de fotogramas B. La latencia baja es esencial en aplicaciones de
videovigilancia donde se realice supervisión en directo, sobre todo si se emplean cámaras PTZ
o domos PTZ.
Con el MPEG-4 y el H.264, los usuarios pueden determinar que una transmisión de video
codificado tenga una frecuencia de bits variable o constante. La selección óptima dependerá
de la aplicación de la infraestructura de red.
Con la VBR (frecuencia de bits variable), se puede mantener un nivel predefinido de calidad de
imagen independientemente del movimiento o falta de movimiento en una escena. Esto
significa que el uso de ancho de banda aumentará cuando haya mucha actividad en una
escena y disminuirá cuando no haya movimiento. A menudo esta opción es ideal para las
aplicaciones de videovigilancia que requieren una alta calidad, especialmente si hay
movimiento en una escena. Debido a que la frecuencia de bits puede variar, incluso aunque se
haya definido una frecuencia de bits media de destino, la infraestructura de red (ancho de
banda disponible) debe poder adaptarse a grandes caudales de datos.
Con un ancho de banda limitado se recomienda utilizar el modo CBR (frecuencia de bits
constante), ya que este modo genera una frecuencia de bits que el usuario puede predefinir.
La desventaja que tiene la CBR es que si, por ejemplo, hay mucha actividad en una escena que
da como resultado una frecuencia de bits mayor que la velocidad de destino, la restricción
para mantener una frecuencia de bits constante conlleva una calidad y frecuencia de imagen
inferiores.