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