Dirac (y Dirac Pro , un subconjunto estandarizado como SMPTE VC-2 ) es un formato de compresión de vídeo abierto y libre de regalías , una especificación y un códec de vídeo de software desarrollado por BBC Research & Development . [4] [5] [6] Dirac tenía como objetivo proporcionar una compresión de vídeo de alta calidad para Ultra HDTV y competía con formatos existentes como H.264 . [3]
La especificación se finalizó en enero de 2008, y los desarrollos posteriores fueron solo correcciones de errores y restricciones. [2] En septiembre de ese año, se lanzó la versión 1.0.0 de un subconjunto de solo I-frame conocido como Dirac Pro y fue estandarizado por la SMPTE como VC-2 . [7] [4] [8] La versión 2.2.3 de la especificación completa de Dirac, incluida la compensación de movimiento y la codificación entre cuadros, se publicó unos días después. [2] Dirac Pro fue utilizado internamente por la BBC para transmitir imágenes HDTV en los Juegos Olímpicos de Beijing en 2008. [9] [10]
Se desarrollaron dos implementaciones de software de códecs de video de código abierto y libres de regalías , libschrodinger y dirac-research. Las implementaciones de formato recibieron su nombre en honor a los físicos teóricos Paul Dirac y Erwin Schrödinger , quienes compartieron el Premio Nobel de Física en 1933 .
Dirac admite resoluciones de HDTV (1920x1080) y superiores, y se afirma que proporciona ahorros significativos en la velocidad de datos y mejoras en la calidad con respecto a los formatos de compresión de vídeo como MPEG-2 Parte 2 , MPEG-4 Parte 2 y sus competidores como Theora y WMV . Los implementadores de Dirac hicieron una afirmación preliminar de "una reducción de dos veces en la velocidad de bits con respecto a MPEG-2 para vídeo de alta definición", lo que lo hace comparable a VC-1 y perfiles más simples de H.264 . [11]
Dirac admite operaciones con velocidad de bits constante y variable . Cuando se utiliza la sintaxis de retardo bajo, la velocidad de bits será constante para cada área (segmento de Dirac) en una imagen para garantizar una latencia constante. Dirac admite modos de compresión con y sin pérdida . [2]
Dirac emplea compresión wavelet , como los formatos de imagen JPEG 2000 y PGF y el códec de vídeo profesional Cineform , en lugar de las transformadas de coseno discretas utilizadas en los formatos de compresión MPEG . Dos de las wavelets específicas que Dirac puede utilizar son casi idénticas a las de JPEG 2000 (conocidas como wavelets 5/3 y 9/7 ), así como otras dos derivadas de ellas. [12]
Dirac se puede utilizar en formatos contenedores Ogg y Matroska y también está registrado para su uso en el formato de archivo de medios base ISO (MP4) y en flujos de transporte MPEG . [13] [14]
La BBC no posee ninguna patente sobre Dirac. Anteriormente había presentado algunas solicitudes de patente con planes de conceder irrevocablemente una licencia libre de regalías para sus patentes relacionadas con Dirac a todo el mundo, pero dejó que las solicitudes caducasen. Además, los desarrolladores han dicho que intentarán garantizar que Dirac no infrinja ninguna patente de terceros, lo que permitirá al público utilizar Dirac para cualquier propósito. [5]
Dirac Pro, un subconjunto de la especificación Dirac que solo utiliza I-frames , fue propuesto a la SMPTE para su estandarización. [4] [15] Dirac Pro está diseñado para uso profesional y en estudio de video de alta definición en aplicaciones de alta tasa de bits. [6] En 2010, la SMPTE estandarizó Dirac Pro como VC-2. [8] [16]
Aunque el trabajo en el códec Dirac original se ha detenido en gran medida, el códec VC-2 ha seguido adaptándose y actualizándose para entornos de posproducción HD y UHD. Los estándares SMPTE (ST) y las prácticas recomendadas (RP) son los siguientes: [17] [18]
Inicialmente se desarrollaron dos implementaciones de software. La implementación de referencia de la BBC, inicialmente llamada Dirac pero renombrada dirac-research para evitar confusiones, fue escrita en C++ y publicada bajo la Licencia Pública Mozilla , GNU GPL 2 y GNU LGPL . La versión 1.0.0 de esta implementación fue publicada el 17 de septiembre de 2008 y define el formato de flujo de bits Dirac. [7]
La BBC financió una segunda implementación llamada Schrödinger , cuyo objetivo era proporcionar una versión portátil de alto rendimiento del códec, al mismo tiempo que era 100% compatible con el flujo de bits. Schrödinger se escribió en ANSI C y se publicó bajo las mismas licencias que dirac-research, así como la licencia MIT, altamente permisiva . Se incluyeron complementos de GStreamer para permitir que la biblioteca se usara con ese marco. El 22 de febrero de 2008, se lanzó Schrödinger 1.0.0, que podía decodificar HD720/25p en tiempo real en una computadora portátil Core Duo . [19]
En marzo de 2010, cuando se lanzó la versión 1.0.9 de Schrödinger, esta superó a dirac-research "en la mayoría de las situaciones de codificación, tanto en términos de velocidad de codificación como de calidad visual". [20] Con esa versión, la mayoría de las herramientas de codificación de dirac-research se trasladaron a Schrödinger, lo que le dio a este último una eficiencia de compresión igual o mejor que la de dirac-research. El desarrollo de Schrödinger cesó después del lanzamiento de la versión 1.0.11 en 2012.
Tras la estandarización de Dirac Pro como SMPTE VC-2, se comenzó a desarrollar un codificador VC-2 de referencia de código abierto. El código se encuentra disponible en un repositorio git de la BBC y en GitHub . [21]
En la BBC se ha puesto en marcha un sistema de prueba de calidad del codificador para comprobar el funcionamiento de las nuevas herramientas de codificación y garantizar que los errores que afectan a la calidad se solucionen rápidamente. [22]
La reproducción de vídeo Dirac es compatible con el reproductor multimedia VLC desde la versión 0.9.2 (2008) y con las aplicaciones que utilizan el marco GStreamer . También se ha añadido compatibilidad con FFmpeg . Las aplicaciones que pueden codificar en Dirac incluyen FFmpeg , MediaCoder , LiVES y OggConvert . [23]
Los algoritmos de la especificación original de Dirac tenían como objetivo proporcionar un rendimiento de compresión comparable a los estándares de compresión de vídeo más habituales de la época. Una comparación de 2009 de los códecs Dirac y H.264, que utilizaba implementaciones del segundo trimestre de 2008, mostró que x264 tenía una puntuación ligeramente superior a Dirac. [24] Otra comparación de 2009 arrojó resultados similares para el contenido de definición estándar, pero no comparó el contenido de vídeo de alta definición (HD). [25] Estos estudios muestran que el rendimiento de compresión de Dirac es cercano al de MPEG-4 Parte 2 Perfil simple avanzado (ASP, popularizado como DivX ). Aunque también se acerca a las codificaciones H.264 de baja complejidad, un vídeo codificado H.264 de perfil alto tendrá una mejor compresión para la misma calidad percibida.
Desde 2010, se han desarrollado códecs de video de código abierto y libres de regalías como VP8 , VP9 y AV1 con un mejor rendimiento de compresión y una adopción más generalizada, incluidos servicios de transmisión dominantes como YouTube y Netflix . [26] [27]