Dirac (y Dirac Pro , un subconjunto estandarizado como SMPTE VC-2 ) es un formato de compresión de video , especificación y códec de video de software abierto y libre de regalías desarrollado por BBC Research & Development . [4] [5] [6] Dirac tenía como objetivo proporcionar 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 exclusivo de I-frame conocido como Dirac Pro y SMPTE lo estandarizó 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] La BBC utilizó internamente Dirac Pro para transmitir imágenes HDTV en los Juegos Olímpicos de Beijing en 2008. [9] [10]
Se desarrollaron dos implementaciones de software de códec de vídeo de código abierto y libre de regalías , libschrodinger y dirac-research. Las implementaciones del 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 de 1933 .
Dirac admite resoluciones de HDTV (1920 × 1080) 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 video como MPEG-2 Part 2 , MPEG-4 Part 2 y sus competidores como Theora. y WMV . Los implementadores de Dirac hicieron una afirmación preliminar de "una reducción del doble 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 bajo retardo, la velocidad de bits será constante para cada área (corte de Dirac) en una imagen para garantizar una latencia constante. Dirac admite modos de compresión con y sin pérdidas . [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 transformaciones 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 dos más 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 ISO base media (MP4) y flujos de transporte MPEG . [13] [14]
La BBC no posee ninguna patente sobre Dirac. Anteriormente tenían algunas solicitudes de patente con planes de otorgar irrevocablemente una licencia libre de regalías para sus patentes relacionadas con Dirac a todos, pero dejaron que las solicitudes caducasen. Además, los desarrolladores han dicho que intentarán garantizar que Dirac no infrinja ninguna patente de terceros, permitiendo al público utilizar Dirac para cualquier propósito. [5]
Dirac Pro, un subconjunto de la especificación Dirac únicamente con marco I , se propuso a la SMPTE para su estandarización. [4] [15] Dirac Pro está diseñado para uso profesional y de estudio de vídeo 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 postproducció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 rebautizada como dirac-research para evitar confusiones, fue escrita en C++ y publicada bajo las licencias de software libre Mozilla Public License , GNU GPL 2 y GNU LGPL . La versión 1.0.0 de esta implementación se publicó el 17 de septiembre de 2008 y define el formato de flujo de bits de Dirac. [7]
La BBC financió una segunda implementación llamada Schrödinger y tenía como objetivo proporcionar una versión portátil de alto rendimiento del códec sin dejar de ser 100% compatible con el flujo de bits. Schrödinger fue escrito en ANSI C y publicado 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 utilice con ese marco. El 22 de febrero de 2008, se lanzó Schrödinger 1.0.0 y pudo decodificar HD720/25p en tiempo real en una computadora portátil Core Duo . [19]
En el lanzamiento de marzo de 2010 de la versión 1.0.9 de Schrödinger, estaba superando a dirac-research "en la mayoría de situaciones de codificación, tanto en términos de velocidad de codificación como de calidad visual". [20] Con ese lanzamiento, la mayoría de las herramientas de codificación en dirac-research fueron trasladadas a Schrödinger, lo que le dio a Schrödinger la misma o mejor eficiencia de compresión que dirac-research. El desarrollo de Schrödinger cesó después del lanzamiento 1.0.11 en 2012.
Después de la estandarización de Dirac Pro como SMPTE VC-2, comenzó el desarrollo de un codificador VC-2 de referencia de código abierto. El código lo proporciona la BBC en un repositorio git y está disponible en GitHub . [21]
En la BBC se ha implementado un sistema de prueba de calidad del codificador para verificar qué tan bien funcionan las nuevas herramientas de codificación y asegurarse de que los errores que afectan 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 aplicaciones que utilizan el marco GStreamer . También se ha agregado soporte para FFmpeg . Las aplicaciones que pueden codificar en Dirac incluyen FFmpeg , MediaCoder , LiVES y OggConvert . [23]
Los algoritmos de la especificación Dirac original estaban destinados a proporcionar un rendimiento de compresión comparable a los estándares de compresión de vídeo convencionales de la época. Una comparación de 2009 de los códecs Dirac y H.264, que utilizaron implementaciones del segundo trimestre de 2008, mostró que x264 obtuvo una puntuación ligeramente superior a la de Dirac. [24] Otra comparación de 2009 encontró resultados similares para contenido de definición estándar, pero no comparó contenido de video de alta definición (HD). [25] Estos estudios muestran que el rendimiento de la compresión Dirac es cercano al de MPEG-4 Parte 2 Perfil simple avanzado (ASP, popularizado como DivX ). Si bien también se acerca a codificaciones H.264 de baja complejidad, un video codificado con H.264 de alto perfil tendrá una mejor compresión para obtener la misma calidad percibida.
Desde 2010, se han desarrollado códecs de vídeo 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 amplia, incluidos los servicios de transmisión dominantes como YouTube y Netflix . [26] [27]