Qué es un codec. Aclarando conceptos.

publicado en: Blog | 0
Share Button

Hablando de terminología multimedia, existe una confusión bastante extendida entre el concepto de formato de imagen y/o sonido y el de formato contenedor de audio y/o vídeo (también llamado formato contenedor multimedia) Para terminar de liarla, es muy frecuente que referirse a ambos con el término codec que no expresa ninguno e los dos anteriores conceptos.

El formato de imagen, vídeo, audio… es la manera en la que se codifica ese tipo de información para que pueda ser tratada por ordenador, lo que incluye tanto poder almacenarla como poder transmitirla. Ese formato, por tanto, serían una serie de reglas para describir imágenes y sonido de manera informática; un modelo matemático, si quieres verlo así.

Un codec (o códec, con tilde, en su versión castellanizada) es un programa que codifica o decodifica la información multimedia según cierto formato. Una vez codificados los datos pueden ser tratados, por ejemplo almacenados o transmitidos. Como ya habrás supuesto, la palabra codec es un acrónimo formado por las palabras inglesas coder y decoder: codificador y decodificador en castellano.

Un formato contenedor de audio/vídeo (o formato contenedor multimedia) es una estructura de archivo de ordenador conforme a la cual se almacena o se transmite audio y/o vídeo así como información asociada a los mismos (como subtítulos o marcadores) El mismo contenedor puede incluir juntos (multiplexados) los diferentes componentes (pistas) en un único documento. Es muy común añadir al nombre de los documentos una extensión (esas pocas letras que hay al final del nombre separadas por un punto) que suele hacer referencia al tipo de documento. Si se es riguroso al establecer esa extensión, puede servir como pista para saber qué contenedor es el del documento.

Considerando lo anterior podríamos decir que el documento “largometraje.avi” es un contenedor en formato AVI que incluye vídeo en formato MPEG4 codificado usando el codec Xvid. Como la versión ortodoxa es una frase muy larga, es frecuente, por ejemplo, decir coloquialmente que el documento “corto.avi” es un MPEG4: es obvio que es un contenedor AVI y cada cual sabrá qué codec tiene instalado en su sistema para qué formatos.

La mayoría de las veces, al empaquetar la información según cierto formato, se comprime, es decir, se transforma de manera que la información resultante requiera menos memoria para almacenarse o menos ancho de banda al transmitirse que la información original.

Hay dos formas de comprimir la información, con o sin pérdidas. Los formatos sin pérdidas (o lossless) permiten reconstruir la información tal como era originalmente, antes de comprimirse, sin ninguna diferencia con la original. En la mayoría de los casos la codificación sin pérdidas suele permitir (mucha) menor compresión (ocupa mucho más) y se reserva para los documentos que van a ser editados, es decir, que no se trata de documentos finales.

La codificación de imagen y sonido más frecuente es con pérdidas (lossy) Como es lógico, el sistema de codificación busca que esas pérdidas sean lo menos perceptibles posible, considerando para ello, por ejemplo, el movimiento (Lo que cambia la imagen entre un fotograma y otro) El nivel de calidad-compresión suele ser configurable por lo que se puede elegir el grado que se desea entre que ocupe más y que tenga más calidad. En la línea de lo dicho sobre los formatos sin pérdidas, no es una buena idea codificar según un formato con pérdidas material que se va a editar ya que las sucesivas recompresiones hacen perder cada vez (mucha) más información calidad a las imágenes y al sonido ¡No comprimas una y otra vez usando un formato con pérdidas!

Un momento, habéis dicho que es mejor codificar el material original usando un formato sin pérdidas pero también que eso ocupará más ¿Entonces debo darle al botón de mi cámara que graba vídeo sin compresión? Para empezar, por desgracia, es bastante raro que tu cámara de vídeo tenga ese botón (en las de hacer fotos y en los sistemas de audio es algo que sí suele ser posible) Sólo en algunas cámaras se puede hacer algo así, normalmente serán profesionales y de la gama más alta. Por otra parte, prepárate a gastar bastante memoria y de la rápida, ya que necesitará almacenar muchísimo y a toda velocidad ¿Entonces, qué debo hacer? Nuestro consejo es que elijas, si es que puedes, la mejor calidad posible, aunque sea con pérdidas, para las imágenes que vayas a editar y la adecuada para las que no requieran más edición que el montaje “al corte” ya que, procesado correctamente, no se tiene que volver a comprimir.

Seguramente habrás visto u oído un montón de nombres de contenedores multimedia, codec, formatos de imagen, sonido, vídeo… Para ayudarte a orientarte sobre qué es cada cosa hemos preparado una lista con algunos de los ejemplos más comunes.

  • Raw (en crudo) es la forma más básica de almacenar o transmitir un medio: sin formato, tal como se produce o se genera. Podríamos verlo como un formato sin formato (y como es lógico, también sin compresión) La ventaja principal y razón para usarlo es precisamente que no ha sufrido ningún procesado, lo que le permite ser editado posteriormente sin partir de ninguna modificación; los principales inconvenientes son necesitar mucha más memoria para su almacenamiento y no corresponder con ningún estándar (cada dispositivo o programa puede generarlo de una manera) aunque suele ser sencillo interpretarlo.

  • PNG (Portable Network Graphics) es un formato de imagen libre con compresión sin pérdidas que permite diferentes profundidades de color (cantidad de colores posibles en cada píxel, básicamente color indexado, escala de grises y 16,7 millones de colores o color real) así como transparencia. Existen dos formatos para animación derivados del PNG: APNG (Animated Portable Network Graphics) muy sencillo de implementar pero con menores prestaciones y MNG (Multiple-image Network Graphics) más sofisticado pero complejo; por esa razón se realizaron dos posteriores implementaciones de más sencillas: MNG-LC (baja complejidad) y MNG-VLC (muy baja complejidad)

  • TIFF es un formato privativo de imagen que permite comprimir sin pérdidas (aunque en posteriores versiones se incluyó la posibilidad de almacenar JPEG) desarrollado inicialmente por Aldus, actualmente pertenece a Adobe. Es un formato creado para el trabajo en artes gráficas / diseño gráfico con imágenes de alta resolución que incluye entre otras prestaciones, recortes de imagen, transparencias o múltiples páginas (varias imágenes en el mismo documento)

  • BMP (Windows Bitmap) es un formato de imagen privativo desarrollado por Microsoft. Permite almacenar imágenes comprimidas sin pérdidas. Puede codificar imágenes con 16,7 millones de colores (color real) o indexado (correspondiente a 1 de 256 colores posibles en cada píxel)

  • GIF (Graphics Interchange Format) es un formato de imagen basado en color indexado (y transparencia en uno de los colores) que permite animaciones. Tradicionalmente se ha utilizado ampliamente en la web. El formato PNG se desarrolló inicialmente como alternativa libre al formato GIF que es privativo.

  • JPEG es un formato de imagen que permite compresión con pérdidas y también un formato de documento (JPEG/Exif) para imágenes. Por si te preguntas de dónde viene el nombre, las siglas significan Joint Photographic Experts Group, que viene a ser en castellano: grupo de expertos fotógrafos unidos, que es el nombre del equipo que diseñó el formato de imagen. La extensión que suelen tener los documentos con imágenes en formato JPEG es JPG (sin la e) herencia de cierto sistema operativo cuyas extensiones sólo permitían tres letras.

  • MJPEG (Motion JPEG) es un formato de imagen en movimiento (así que es un formato de vídeo) que engloba todas las codificaciones de vídeo que procesan cada fotograma individual en el formato de imagen JPEG

  • MP3 es un formato de sonido que comprime con pérdidas. El nombre más exacto es MPEG Audio Layer III, bueno en realidad puede ser MPEG1 o MPEG2 Por si te preguntas lo que significa MPEG es el Moving Picture Experts Group, que sería algo así como el grupo de expertos de imagen en movimiento ¿Pero eso no era para vídeo?

  • MPEG El grupo de trabajo de expertos en imagen y sonido denominado Moving Picture Experts Group del que te hemos hablado antes ha ido definiendo, entre otras cosas, formatos de imagen en movimiento, sonido (formatos de audio y vídeo, para entendernos) y otros (meta) datos. Los estándares más conocidos son el MPEG1, que se usó en el vídeo CD, el MPEG2, que se usa en los DVD (¿todavía se usan?) y en la transmisión digital (DVB) terrestre y por satélite. Los más usados últimamente son los MPEG4, el 2 (más conocido como H263) y el 10 (más avanzado y conocido frecuentemente como H264)

  • MPEG-PS o sólo PS (por program stream) Es un formato contenedor definido por el grupo MPEG, igual que el formato de vídeo del que te hablábamos antes. Este formato está pensado para el almacenamiento, para la transmisión se diseñó el procolo de comunicación MPEG-TS o sólo TS (por transport stream) El formato contenedor MPEG-PS, suele encontrarse en documentos con la extensión MPEG (o sólo MPG, a causa de cierto sistema operativo que sólo permitía tres letras en sus extensiones) y con formatos de vídeo MPEG-2, aunque también sirve para MPEG-1

  • MP4 es el formato contenedor multimedia diseñado por el grupo MPEG para los contenidos de audio y vídeo (contenidos multimedia) MPEG-4 La extensión para los documentos que usan este formato contenedor suele ser también MP4

  • FLV es el acrónimo de Flash video, que es un formato contenedor multimedia. También se suele usar como extensión para los documentos. Es una variante del H263 (es decir, MPEG4 parte 2) Como seguro sabrás, Flash es una aplicación de Adobe, que compró a Macromedia (bueno, Adobe compró toda Macromedia) que a su vez había comprado a FutureWave Software; inicialmente para pequeñas animaciones, su uso en la web la hizo crecer hasta convertirse en una importante tecnología multimedia. Actualmente su presencia va disminuyendo, en parte por requerir muchos recursos lo que no la hace atractiva a la navegación con dispositivos móviles y en parte por cumplir HTML5, más abierto, muchos de los espacios de HTML que Flash llenaba. El formato de vídeo de Flash (Flash video) es uno de los más difundidos gracias a su uso (casi exclusivo al principio) en plataformas web como YouTube.

  • DivX es el nombre de un formato de vídeo basado en MPEG4, del codec que sirve para codificar y comprimir vídeo según ese formato y de la empresa que lo desarrolló desde principios hasta finales de la primera década de este siglo.

  • Xvid es un codec desarrollado a partir de OpenDivX que codifica y comprime vídeo en el formato MPEG4 Es software libre (GPL) y multiplataforma, seguro que está disponible para tu sistema operativo.

  • AVI es un formato contenedor de audio y vídeo (su nombre viene de las siglas Audio Video Interleave en inglés) desarrollado por Microsoft pero presente en otras plataformas como la de Apple y es perfectamente usable desde otras libres, como GNU/Linux. Diferentes desarrolladores han desarrollado innumerables codec de audio y vídeo para disponer contenidos multimedia en este contenedor.

  • WMV su nombre corresponde con las siglas en inglés de las palabras Windows Media Video y es un formato de vídeo o, más correctamente, la tecnología que soporta varios tipos de formatos de vídeo. Es un formato privativo desarrollado por Microsoft que incluye DRM

  • WMA puede referirse tanto a un formato de compresión de audio o al codec que realiza la compresión. Su nombre corresponde con las siglas de las palabras en inglés Windows Media Audio. Al igual que el WMV, también pertenece a Microsoft e incluye, en realidad, varios tipos de formatos.

  • ASF es un formato contenedor diseñado para transmitir (hacer streaming de) audio y vídeo. Su gran flexibilidad hace que soporte muchos codec aunque inicialmente fue diseñado como contenedor de WMV y WMA

  • WAV es la extensión del formato de audio (normalmente sin compresión) WAVE que corresponde con el acrónimo Waveform Audio Format y que fue desarrollado por Microsoft para ser usado principalmente en el sistema operativo Windows

  • AIFF (Audio Interchange File Format) es un formato de audio (normalmente sin compresión) desarrollado por Apple.

  • AU (Audio for Unix) es un formato de audio desarrollado por Sun Microsystems y vinculado a sistemas Unix y los sistemas operativos derivados

  • Monkey’s Audio es un codec privativo para compresión de audio sin pérdidas.

  • AC3 es la manera de referirse (corresponde simultáneamente a muchas expresiones) al formato de audio de Dolby Digital también es el nombre del codec que comprime en ese formato

  • QuickTime es un contenedor multimedia. En realidad es también el nombre de toda la tecnología privativa de audio y vídeo de Apple que incluye también muchas otras cosas como interactividad. Soporta multitud de formatos de imagen y sonido e incluye codec para la mayoría de ellos. Aunque el desarrollo pertenece a Apple también está disponible para la plataforma Windows de Microsoft y los documentos son perfectamente reproducibles también en plataformas libres como GNU/Linux.

  • 3GP es la extensión del formato contenedor multimedia 3GPP (que corresponde con con las siglas de 3rd Generation Partnership Project) similar al formato QuickTime y que almacena el vídeo en formato MPEG4. Se utiliza principalmente en dispositivos (teléfonos) móviles.

  • Vorbis (Ogg Vorbis) es un formato de audio con compresión con pérdidas y con el mismo nombre un codec que usa dicho formato. El desarrollador, Xiph.Org lo publica como software libre. Su objetivo es la alta compresión que permita una transmisión (sreaming) de gran calidad.

  • Theora es un formato de vídeo para compresión con pérdidas y el nombre del codec que comprime en ese formato, ambos desarrollados por Xiph.Org a partir del formato VP3, del que más adelante te hablamos, y que proviene a su vez de TrueMotion, desarrollado por On2

  • Ogg es el nombre de un formato contenedor multimedia muy versátil en cuanto a la inclusión en los documentos de diferentes medios aunque suele usarse para vídeos en formato Theora y audio en formato Vorbis. El formato contenedor Ogg, al igual que el de vídeo Theora o de audio Ogg han sido desarrollados por Xiph.Org

  • FLAC son las siglas y la extensión del codec de audio sin pérdidas Free Lossless Audio Codec. Es un codec libre que forma parte del proyecto Ogg

  • OGM (Ogg Media) Es un contenedor multimedia resultado de modificar el formato Ogg para para permitir la inclusión de audio en formato Ogg Vorbis y vídeo en formato MPEG4 además de subtítulos. Inicialmente OGM surge para paliar la dificultad de sincronización del contenedor AVI entre vídeo MPEG y audio Ogg Vorbis y como una alternativa. Actualmente su versatilidad permite utilizar muchos otros formatos usando diferentes codec. Los documentos que usan el contenedor Ogg Media suelen tener la extensión OGM

  • RealMedia es un formato contenedor de audio y vídeo desarrollado por RealNetworks para contener audio en formato RealAudio y vídeo en formato RealVídeo, todos ellos privativos. Su evolución para permitir la inclusión de flujos de datos de ratio variable es el formato contenedor RMVB, que suele usar la extensión RMVB en lugar de la RM del inicial RealMedia. Aunque es ya un poco antiguo aún puede encontrarse, especialmente en la transmisión de audio (por ejemplo en radios en Internet)

  • Matroska es un formato contenedor multimedia libre aunque está presente también en plataformas privativas como las de Microsoft o Apple. Permite incluir varias pistas de audio, capítulos, marcadores, menús, subtítulos…

  • VP3 / VP9 La serie de versiones del codec libre de vídeo con pérdidas VP Desarrolladas inicialmente por On2 Technologies y actualmente (desde la versión VP9) por Google, que adquirió a la empresa On2 Technologies.

  • WebM es un formato contenedor multimedia libre que puede incluir vídeo en formato VP y audio en formato Vorbis. Ha sido desarrollado por Google para ser usado en la web con HTML5

  • Lossless JPEG es un formato de compresión de imagen (también aplicable a vídeo) basado en JPEG pero, a diferencia del original, sin pérdidas. En realidad, en la actualidad ya es parte del formato estándar JPEG pero hemos preferido separarlo ya que su objetivo se separa del inicial (y característico) del formato JPEG.

  • HuffYUV es un codec para compresión de vídeo sin pérdidas. No ha sido muy actualizado últimamente y existe otro denominado Lagarith desarrollado a partir del primero. Actualmente no es muy aconsejable usar Lagarith como sustitución de HuffYUV ya que presenta problemas de velocidad de codificación/decodificación (en cierta medida subsanables con sistemas multiprocesador) y lo que es más serio de pérdidas y errores.

  • MXF (Material Exchange Format) es un formato contenedor multimedia desarrollado por la Society of Motion Picture and Television Engineers (SMPTE) para ser usado por profesionales del mundo del vídeo en el intercambio de material multimedia independiente de la plataforma y del contenido y resistente a la evolución de las tecnologías correspondientes.

  • Dirac es un codec libre para la compresión de vídeo con pérdidas o sin pérdidas desarrollado por la BBC. Aunque en su actual versión Schrödinger (2012) ya está bastante maduro, aún se considera un proyecto experimental (pese a que desde la versión 1.0.0 de 2008 ya se considera válida para producción) más que algo a usar un producción.