Dirac (и Dirac Pro , подмножество, стандартизированное как SMPTE VC-2 ) — открытый и бесплатный формат сжатия видео , спецификация и программный видеокодек, разработанный BBC Research & Development . [4] [5] [6] Dirac был нацелен на обеспечение высококачественного сжатия видео для Ultra HDTV и конкурировал с существующими форматами, такими как H.264 . [3]
Спецификация была завершена в январе 2008 года, и дальнейшие разработки заключались только в исправлении ошибок и ограничениях. [2] В сентябре того же года была выпущена версия 1.0.0 подмножества I-кадров , известная как Dirac Pro, и была стандартизирована SMPTE как VC -2 . [7] [4] [8] Версия 2.2.3 полной спецификации Dirac, включая компенсацию движения и межкадровое кодирование, была выпущена несколькими днями позже. [2] Dirac Pro использовался внутри BBC для передачи изображений HDTV на Олимпийских играх в Пекине в 2008 году. [9] [10]
Были разработаны две реализации программного обеспечения видеокодека с открытым исходным кодом и без уплаты роялти , libschrodinger и dirac-research. Реализации формата были названы в честь физиков-теоретиков Поля Дирака и Эрвина Шредингера , которые разделили Нобелевскую премию по физике 1933 года .
Dirac поддерживает разрешения HDTV (1920×1080) и выше, и, как утверждается, обеспечивает значительную экономию в скорости передачи данных и улучшение качества по сравнению с форматами сжатия видео, такими как MPEG-2 Part 2 , MPEG-4 Part 2 и их конкурентами, такими как Theora и WMV . Разработчики Dirac сделали предварительное заявление о «двукратном снижении скорости передачи данных по сравнению с MPEG-2 для видео высокой четкости», что делает его сопоставимым с VC-1 и более простыми профилями H.264 . [11]
Dirac поддерживает как постоянную, так и переменную скорость передачи данных . При использовании синтаксиса с низкой задержкой скорость передачи данных будет постоянной для каждой области (срез Dirac) на изображении, чтобы обеспечить постоянную задержку. Dirac поддерживает режимы сжатия с потерями и без потерь . [2]
Dirac использует сжатие вейвлетов , как в форматах изображений JPEG 2000 и PGF , а также в профессиональном видеокодеке Cineform , вместо дискретных косинусных преобразований , используемых в форматах сжатия MPEG . Два из конкретных вейвлетов, которые может использовать Dirac, почти идентичны JPEG 2000 (известные как вейвлеты 5/3 и 9/7 ), а также еще два, полученные из них. [12]
Dirac может использоваться в форматах контейнеров Ogg и Matroska , а также зарегистрирован для использования в базовом формате файлов ISO (MP4) и транспортных потоках MPEG . [13] [14]
BBC не владеет никакими патентами на Dirac. Ранее у них были некоторые патентные заявки с планами безотзывно предоставить всем желающим бесплатную лицензию на свои патенты, связанные с Dirac, но они позволили заявкам истечь. Кроме того, разработчики заявили, что постараются гарантировать, что Dirac не нарушает никаких сторонних патентов, что позволит общественности использовать Dirac в любых целях. [5]
Dirac Pro, подмножество спецификации Dirac, состоящее только из I-кадров , было предложено SMPTE для стандартизации. [4] [15] Dirac Pro предназначен для профессионального и студийного использования видео высокой четкости в приложениях с высоким битрейтом. [6] В 2010 году SMPTE стандартизировал Dirac Pro как VC-2. [8] [16]
Хотя работа над оригинальным кодеком Dirac в значительной степени прекратилась, кодек VC-2 продолжал адаптироваться и обновляться для пост-продакшн сред HD и UHD. Стандарты SMPTE (ST) и рекомендуемые практики (RP) следующие: [17] [18]
Первоначально были разработаны две программные реализации. Реализация BBC, изначально называвшаяся Dirac , но переименованная в dirac-research , чтобы избежать путаницы, была написана на языке C++ и выпущена под лицензиями Mozilla Public License , GNU GPL 2 и GNU LGPL free software licenses . Версия 1.0.0 этой реализации была выпущена 17 сентября 2008 года и определяет формат битового потока Dirac. [7]
Вторая реализация под названием Schrödinger была профинансирована BBC и была направлена на обеспечение высокопроизводительной, портативной версии кодека, оставаясь при этом на 100% совместимой с потоком битов. Schrödinger был написан на ANSI C и выпущен под теми же лицензиями, что и dirac-research, а также под высокоразрешительной лицензией MIT . Плагины GStreamer были включены для того, чтобы библиотека могла использоваться с этой структурой. 22 февраля 2008 года был выпущен Schrödinger 1.0.0, который мог декодировать HD720/25p в реальном времени на ноутбуке Core Duo . [19]
К выпуску версии Schrödinger 1.0.9 в марте 2010 года он превосходил dirac-research «в большинстве ситуаций кодирования, как по скорости кодирования, так и по визуальному качеству». [20] С этим выпуском большинство инструментов кодирования в dirac-research были перенесены в Schrödinger, что дало Schrödinger такую же или лучшую эффективность сжатия, чем dirac-research. Разработка Schrödinger прекратилась после выпуска 1.0.11 в 2012 году.
После стандартизации Dirac Pro как SMPTE VC-2 началась разработка открытого исходного кода референсного кодера VC-2. Код предоставлен в репозитории git BBC и доступен на GitHub . [21]
На BBC была внедрена система тестирования качества кодировщиков, чтобы проверить, насколько хорошо работают новые инструменты кодирования, и убедиться, что ошибки, влияющие на качество, быстро устраняются. [22]
Воспроизведение видео Dirac поддерживается VLC media player с версии 0.9.2 (2008) и приложениями, использующими фреймворк GStreamer . Поддержка также была добавлена в FFmpeg . Приложения, которые могут кодировать в Dirac, включают FFmpeg , MediaCoder , LiVES и OggConvert . [23]
Алгоритмы в оригинальной спецификации Dirac были предназначены для обеспечения производительности сжатия, сопоставимой с основными стандартами сжатия видео того времени. Сравнение кодеков Dirac и H.264 в 2009 году, в котором использовались реализации со второго квартала 2008 года, показало, что оценка x264 немного выше, чем у Dirac. [24] Другое сравнение 2009 года обнаружило схожие результаты для контента стандартной четкости, но не сравнивало видеоконтент высокой четкости (HD). [25] Эти исследования показывают, что производительность сжатия Dirac близка к производительности MPEG-4 Part 2 Advanced Simple Profile (ASP, популяризированного как DivX ). Хотя также приближается к кодированию H.264 низкой сложности, видео, закодированное High Profile H.264, будет иметь лучшее сжатие при том же воспринимаемом качестве.
С 2010 года были разработаны бесплатные видеокодеки с открытым исходным кодом, такие как VP8 , VP9 и AV1, обладающие лучшей производительностью сжатия и получившие более широкое распространение, включая такие ведущие потоковые сервисы, как YouTube и Netflix . [26] [27]