He tendido la suerte de poder asistir a 9 horas de clase con el
profesor Francesc Tarrés sobre Codificación Audiovisual. Su capacidad
docente es impresionante y fácilmente habría podido escucharlo durante
un par de días más. Tarrés nos estuvo hablando de todo un poco, desde
la televisión analógica a la digital, de la compresión de vídeo a la de
audio, explicando detalles de los procesos de estandarización.
La parte más interesante para mí fue la relativa a MPEG4 Visual y MPEG4 Aadvanced Video Coding (esto es, H.264).
MPEG-4 Visual
Esta parte del megaestándar MPEG 4, tiene unas implicaciones casi de
ciencia ficción. En lugar de codificar el vídeo con las técnicas
habituales (redundancia espacial, redundancia temporal, codificación
estadística), en Visual van un paso más allá y se describen Objetos
Visuales con los que el usuario puede interactuar. Las aplicaciones de
esto en Televisión O Cine como hoy los conocemos son realmente pocas,
pero lo más interesante es lo que pueden hacer en nuevos escenarios
donde la interactividad es importante, por ejemplo en los videojuegos.
En uno de los ejemplos que nos mostró, vimos cómo a partir de
una foto de Tom Hanks o de La Gioconda, y a través de la extracción de
los parámetros adecuados por parte del estándar MPEG-4 Visual, estos
personajes hablaban y actuaban de una forma bastante natural.
Sencillamente impresionante. Imaginad lo que pueden lograrse con estas
técnicas implementadas en teléfonos móviles, en lo que a accesibilidad
por parte de sordos se refiere.
H.264 / MPEG-4 AVC
La parte 10 del estándar MPEG 4, desarrollada por un grupo de
expertos de la ISO y de la ITU, da lugar al mejor sistema de
codificación de vídeo hasta el momento. De los tres perfiles que tiene,
sólo uno es gratuito, pero no por ello menos potente. Es más, el
estándar es tan potente y flexible... que las implementaciones actuales
aún no han exprimido todo su potencial. Además, el estándar está
desarrollado de tal forma que se establecen claramente cómo comunicar
las cosas, pero no cómo hacerlas, por lo que dejan margen de mejora de
los algoritmos a las implementaciones comerciales.
El perfil baseline tiene unas ideas fabulosas, como:
- Intra predicción. Se divide la imagen en bloques, y para
cada bloque siguiente, en lugar de enviarlo, lo que se hace es copiar
información de alguno de los anteriores en la misma imagen. Esto hace
que los fotogramas más pesados, los I, a los que no se les había
eliminado ningún tipo de redundancia, sean ahora muchísimo más ligeros.
- Nueva compensación de movimiento y pesos. Los estándares
anteriores MPEG1 y 2 fallaban estrepitosamente al intentar predecir un
fundido a negro o una rotación, ya que los vectores de compensación de
movimiento sólo podían aplicarse a traslaciones. H.264 proporciona
mecanismos para explicar cómo se comportan las 4 esquinas de cada
bloque, haciéndose una interpolación para el resto de píxeles en el
bloque. Esto resulta útil para Zooms y Rotaciones. Pero además, al
aplicar pesos relativos a la hora de establecer referencias, los
fundidos son fáciles de predecir, puesto que son una referencia
anterior multiplicada por una constante.
- Nuevos Fotogramas P. En los estándares anteriores, las
referencias usadas para eliminar la redundancia temporal podían ser de
un fotograma anterior (P) y/o de un fotograma posterior (B). En H.264,
perfil baseline, se establece una lista de imágenes de
referencia anteriores y posteriores, de forma que se tiene un buffer de
donde elegir distintas imágenes. Esto comprime mucho cuando hay
movimientos repetitivos, como por ejemplo un niño en un columpio.
El estándar tiene otras muchas opciones, que pueden provocar un
coste computacional relativamente alto, por lo que no se espera que se
desarrollen codificadores comerciales completos hasta 2013.
Si os apetece echarle un ojo a las implementaciones de H.264, podéis mirar x264
que es GPL, así que podéis descargarla, compilarla y modificarla a
vuestro antojo. Quien sabe, quizá consigáis un codificador potente y
eficiente.
|