Theora — это схема сжатия видео на основе DCT с переменным битрейтом . Как и большинство распространенных видеокодеков, Theora использует цветовую субдискретизацию , блочную компенсацию движения и блок DCT размером 8 на 8. Пиксели группируются в различные структуры, а именно блоки, суперблоки и макроблоки . Theora поддерживает кадры с внутренним кодированием («ключевые кадры») и кадры с прямым предсказанием, но не кадры с двунаправленным предсказанием , которые есть в H.264 и VC-1 . Theora также не поддерживает чересстрочную развертку или битовую глубину более 8 бит на компонент. [2]
Видеопотоки Theora могут храниться в любом подходящем формате контейнера , но чаще всего они встречаются в контейнере Ogg с аудиопотоками Vorbis или FLAC . Эта комбинация обеспечивает полностью открытый, бесплатный мультимедийный формат. Его также можно использовать с контейнером Matroska . [11]
Формат сжатия видео Theora совместим с форматом сжатия видео VP3, который состоит из обратно совместимого надмножества. [12] [13] Theora является надмножеством VP3, и потоки VP3 (с некоторыми незначительными синтаксическими изменениями) могут быть преобразованы в потоки Theora без повторного сжатия (но не наоборот). [13] Сжатие видео VP3 можно декодировать с помощью реализаций Theora, но сжатие видео Theora обычно не может быть декодировано с помощью старых реализаций VP3.
История
Предшественник Theora On2 TrueMotion VP3 изначально был фирменным и запатентованным видеокодеком, разработанным On2 Technologies . VP3.1 был представлен в мае 2000 года [14] , а через три месяца последовал выпуск VP3.2 [15] , который стал основой для Theora.
Перейти на бесплатное программное обеспечение
В августе 2001 года компания On2 Technologies объявила о выпуске версии с открытым исходным кодом своего алгоритма сжатия видео VP3.2. [16] [17] В сентябре 2001 года компания On2 Technologies опубликовала исходный код кодека VP3.2 под лицензией VP3.2 Public License 0.1, [18] пользовательской лицензией с открытым исходным кодом. [19] [20] Лицензия предоставляла право изменять исходный код только в том случае, если полученная в результате более крупная работа продолжала поддерживать воспроизведение данных VP3.2. [18] [21]
В марте 2002 года On2 отреагировала на общественный прием, повторно лицензировав кодек VP3 в соответствии с лицензией GNU Lesser General Public License . [22] В июне 2002 года On2 пожертвовала VP3 фонду Xiph.Org Foundation и предложила его в соответствии с лицензией Ogg Vorbis BSD . [23] [24] [25] [26] On2 также предоставила безотзывную, безвозмездную лицензию на любые патентные претензии, которые она могла иметь в отношении программного обеспечения и любых производных, [2] позволяя любому человеку использовать любой производный от VP3 кодек для любых целей. [12] [27] В августе 2002 года On2 заключила соглашение с фондом Xiph.Org Foundation, чтобы сделать VP3 основой нового бесплатного видеокодека под названием Theora. [28] On2 объявила Theora преемником VP3. [ необходима цитата ] 3 октября 2002 года On2 и Xiph объявили о завершении и доступности первоначального выпуска альфа-кода libtheora , эталонной реализации Theora. [29]
Формальной спецификации для формата потока битов VP3, помимо исходного кода VP3, опубликованного On2 Technologies, не существует . В 2003 году Майк Мелансон создал неполное описание формата потока битов VP3 и процесса декодирования на более высоком уровне, чем исходный код, с некоторой помощью от On2 и Xiph.Org Foundation. Спецификация Theora приняла некоторые части этого описания VP3. [2] [30]
Преемник Theora, Daala , позже был объединен с AV1 . [31]
Спецификация Theora I
Формат битового потока Theora I был заморожен в июне 2004 года после выпуска libtheora 1.0alpha3. [1] Видео, закодированные с помощью любой версии libtheora, начиная с alpha3, будут совместимы с любым будущим проигрывателем. [1] [32] Это также верно для видео, закодированных с помощью любой реализации спецификации Theora I с момента заморозки формата. Спецификация Theora I была полностью опубликована в 2004 году. [33] Все последующие изменения в спецификации являются незначительными обновлениями.
Реализация Theora libtheora провела несколько лет в состоянии альфа и бета. [32] Первая альфа-версия была выпущена 25 сентября 2002 года, а первая бета-версия — 22 сентября 2007 года. [34] Первый стабильный релиз libtheora был выпущен в ноябре 2008 года. [35] [36] Затем работа была сосредоточена на улучшении производительности кодека в ветке «Thusnelda» , которая была выпущена как версия 1.1 в сентябре 2009 года как второй стабильный релиз libtheora. [32] [37] Этот релиз принес некоторые технические улучшения и новые функции, такие как новый модуль управления скоростью и двухпроходное управление скоростью .
Кодовое имя следующей версии libtheora было Ptalarbvorm . [38]
Theora был хорошо зарекомендовал себя как видеоформат в приложениях с открытым исходным кодом и стал форматом, используемым для видеоконтента Википедии, прежде чем был заменен на VP9 . Однако предложенное принятие Theora в качестве части базовой поддержки видео в HTML5 вызвало споры . [39]
Наследие
В октябре 2023 года Google объявила о намерении удалить поддержку Theora из Chromium (завершив удаление в Google Chrome 123), [40] а Firefox последовал ее примеру. Разработчики Google заявили, что, несмотря на отсутствие принятия, Theora выступила в поддержку открытых и бесплатных кодеков, таких как AV1 . [41] [ нужен лучший источник ]
Производительность
Производительность кодирования
Оценки кодеров VP3 [42]
и ранних кодеров Theora [43] [44] [45]
показали, что их субъективное визуальное качество было ниже, чем у современных видеокодеков. Характеристики производительности эталонной реализации Theora 1.0 в основном определяются проблемами реализации, унаследованными от исходной кодовой базы VP3. [46] Работа, которая привела к стабильному релизу 1.1, была сосредоточена на улучшении или устранении этих проблем. Обзор этой работы в мае 2009 года разработчиком Xiph Крисом Монтгомери заявил о значительном улучшении качества, как субъективно, так и по измерениям PSNR , за счет улучшения прямого DCT и матриц квантования. [47] Однако совсем недавно [ когда? ] разработчики Xiph сравнили кодер Theora 1.1 с кодерами YouTube H.264 и H.263+ в ответ на опасения, высказанные в 2009 году Крисом Дибоной , сотрудником Google , по поводу низкой производительности Theora . [48] Они обнаружили, что результаты от Theora почти такие же, как и у выходного файла YouTube H.264, и намного лучше, чем у выходного файла H.263+. [49] [50]
Различия в качестве, битрейте и размере файла между видео YouTube H.264 и перекодированным видеофайлом Ogg очень незначительны. [51]
Производительность воспроизведения
Существовала открытая кодовая база VHDL для аппаратного декодера Theora, находящаяся в разработке. [52] [ требуется обновление ] Она началась как проект Google Summer of Code 2006 года и была разработана как для процессоров Nios II , так и для LEON . [53] Однако в настоящее время в производстве нет ни одного чипа декодера Theora, а портативные медиаплееры , смартфоны и аналогичные устройства с ограниченной вычислительной мощностью полагаются на такие чипы для обеспечения эффективного воспроизведения.
Воспроизведение
Веб-браузеры
Как изначально рекомендовалось в HTML 5 , эти браузеры поддерживают Theora при внедрении videoэлемента:
Mozilla Firefox 3.5 и более поздние версии [54] [55], включая Firefox для мобильных устройств (Fennec). [56] Поддержка Theora может быть удалена в будущем из-за низкого уровня использования. [57] [58]
Google Chrome версии 3.0.182.2 [59] [60], включая Chromium по состоянию на 14 июля 2009 г. [61] В Chrome 120 поддержка Theora отключена по умолчанию [62] , а полное удаление ожидается в версии 123. [63]
Opera, начиная с версии 10.50 . [67] [68] Также поддерживалась в экспериментальных видеосборках Opera 9.5 . [69] [70] Поддержка Theora прекращена после версии 107.
GNOME Web использует WebKitGTK+ в качестве движка рендеринга. WebKitGTK+ использует GStreamer для реализации медиаплеера HTML5, и все форматы, поддерживаемые GStreamer (включая Theora), доступны в браузере.
Midori — еще один пример браузера, поддерживающего Theora с помощью WebKitGTK+.
Существует несколько сторонних программ, поддерживающих кодирование через libtheora:
Библиотека libtheora содержит эталонную реализацию спецификации Theora для кодирования и декодирования. libtheora была разработана Xiph.Org Foundation . Библиотека была выпущена на условиях лицензии в стиле BSD .
Кроме того, несколько медиа-фреймворков поддерживают Theora.
Аудио/видеодекодер ffdshow с открытым исходным кодом способен кодировать видео Theora с помощью своего интерфейса мультикодеков Video for Windows (VFW) в популярных программах редактирования AVI. [72] [73] [74] Он поддерживает как кодирование, так и декодирование видеопотоков Theora и использует библиотеки Theora alpha 4. Однако многие из более совершенных функций Theora недоступны пользователю в интерфейсе ffdshow.
Фреймворк GStreamer поддерживает парсинг необработанных потоков Theora, кодирование и декодирование необработанных потоков Theora в/из видео YUV [75] [76]
Редактирование
Потоковое вещание
Следующие потоковые медиа-серверы способны транслировать видео Theora:
Создатели
Elphel — основной производитель камер, записывающих в формате Theora.
^ ab Xiph.org libtheora license (Subversion – Trunk), Получено 16 августа 2009 г.
^ ab Xiph.org FAQ – Theora и VP3. Получено 2 сентября 2009 г.
↑ On2 (17 мая 2000 г.), On2.com запускает новое поколение революционной технологии широкополосного видео, архивировано с оригинала 3 декабря 2007 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
↑ On2 (16 августа 2000 г.), On2 представляет TrueMotion VP3.2, архивировано из оригинала 3 декабря 2007 г. , извлечено 23 августа 2010 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
↑ On2 (7 августа 2001 г.), On2 Technologies to Open Source VP3.2 Video Compression Technology (архивный веб-сайт), архивировано с оригинала 3 декабря 2007 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
↑ Мариано, Гвендолин (7 августа 2001 г.). «Видеокодек On2 станет открытым». CNET .
^ ab On2 Technologies (2001), VP3.2 Public License 0.1, Xiph.Org Foundation, архивировано из оригинала 4 апреля 2016 г. , извлечено 10 февраля 2008 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
^ Бернат, Билл (7 сентября 2001 г.). «On2 предлагает исходный код VP3.2». StreamingMedia.com .
↑ On2 (7 сентября 2001 г.), On2 Technologies делает технологию сжатия видео доступной для сообщества разработчиков ПО с открытым исходным кодом, архивировано с оригинала 7 декабря 2007 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
^ Зайберт, Стэн (сентябрь 2001 г.). «Видеокодек VP3.2 с открытым исходным кодом». vorbis (список рассылки).
^ "On2 изменяет условия лицензирования для VP3; компания отвечает на требования сообщества разработчиков ПО с открытым исходным кодом" (пресс-релиз). On2 Technologies. 28 марта 2002 г. Архивировано из оригинала 4 декабря 2010 г. Получено 16 августа 2009 г.
^ Фонд Xiph.Org (16 марта 2011 г.). "Спецификация Theora" (PDF) . Фонд Xiph.Org. стр. 1.
^ "VP3 объединяется с Vorbis для создания первой мультимедийной платформы с открытым исходным кодом", On2 , 24 июня 2002 г., архивировано из оригинала 3 декабря 2007 г.
^ Linux.com (23 июня 2002 г.) Ogg Vorbis, VP3 объединяют усилия для создания мультимедийного пакета с открытым исходным кодом, Получено 16 августа 2009 г.
↑ InternetNews.com (24 июня 2002 г.) On2 предлагает больше открытого исходного кода в MPEG-4, дата обращения 16 августа 2009 г.
↑ Лицензия кодека Xiph.org VP32 (Subversion – Trunk), получено 16 августа 2009 г.
↑ The Free Library (1 августа 2002 г.) On2 подписывает договор с Xiph.org о разработке/поддержке VP3, получено 16 августа 2009 г.
↑ On2 (3 октября 2002 г.), On2 и Xiph объявляют о выпуске альфа-кода Theora, мультимедийного решения на базе VP3-Vorbis, заархивировано из оригинала 4 декабря 2007 г.{{citation}}: CS1 maint: числовые имена: список авторов ( ссылка )
↑ Майк Мелансон (mike at multiplex.cx) (8 декабря 2004 г.), Формат битового потока VP3 и процесс декодирования, Multimedia.cx, заархивировано из оригинала 6 января 2013 г. , извлечено 27 сентября 2009 г.
^ Стивен Шенкленд (1 сентября 2015 г.). «Технологические гиганты объединяют усилия, чтобы ускорить появление высококачественного онлайн-видео». CNET . Получено 17 марта 2021 г. .
^ abc Xiph.Org Foundation (24 сентября 2009 г.), Theora.org : новости, Xiph.Org Foundation , получено 25 сентября 2009 г.
^ Xiph.Org Foundation (17 сентября 2004 г.). "Theora I Specification, Xiph.org Foundation, 17 сентября 2004 г." (PDF) . Архивировано из оригинала (PDF) 28 сентября 2004 г. . Получено 26 сентября 2009 г. .
^ "CHANGES file" . Получено 31 декабря 2022 г. .
^ Джайлс, Ральф (3 ноября 2008 г.). "Theora 1.0 final release!". theora-dev (список рассылки) . Получено 4 ноября 2008 г.
^ "Фонд Xiph.Org объявляет о выпуске Theora 1.0" (пресс-релиз). Фонд Xiph.Org. 3 ноября 2008 г. Получено 6 августа 2009 г.
^ Джайлс, Ральф (24 сентября 2009 г.). "libtheora 1.1 (Thusnelda) stable release". theora-dev (список рассылки) . Получено 24 сентября 2009 г.
↑ Monty (18 мая 2010 г.). "Theora: Ptalarbvorm project update 20100518" . Получено 1 июля 2010 г. .
^ Маклин, Принс (7 июля 2009 г.). «Ogg Theora, H.264 и ссора браузеров HTML 5». AppleInsider . Получено 1 ноября 2020 г. .
^ Ларабель, Майкл (29 октября 2023 г.). «Google Chrome прекратит поддержку видеокодека Theora». Phoronix . Получено 1 ноября 2023 г.
^ "Намерение отправить: отменить и удалить поддержку Theora". groups.google.com . Получено 1 ноября 2023 г. .
^ "MPEG-4 Codec shoot-out 2002 – 1st partment". Doom9 . 2002. Архивировано из оригинала 23 февраля 2008 . Получено 19 декабря 2007 .
↑ Codec shoot-out 2005 – Qualification, Doom9 , 2005, архивировано из оригинала 31 декабря 2007 г. , извлечено 19 декабря 2007 г.
↑ Лоли-Керу, Евгения (12 декабря 2007 г.). «Теора против h.264». ОСНовости . Проверено 1 апреля 2008 г.
^ Halbach, Till (март 2009). "Dirac and Theora vs. H.264 and Motion JPEG2000". Архивировано из оригинала 7 июля 2012 года . Получено 22 апреля 2008 года .
^ Монтгомери, Крис. "Theora "the push for 1.0" update" . Получено 19 декабря 2007 г.
^ Blizzard, Кристофер. "Theora Update 7 мая 2009" . Получено 10 мая 2009 .
^ ДиБона, Крис (13 июня 2009 г.). "H.264-in-<video> против API плагинов". whatwg (список рассылки) . Получено 10 августа 2009 г.
^ Максвелл, Грег (13 июня 2009 г.). "Сравнение YouTube / Ogg/Theora". Xiph.Org Foundation. Архивировано из оригинала 9 июля 2009 г. Получено 10 августа 2009 г.
^ Merten, Maik (15 июня 2009 г.). «Еще одно сравнение онлайн-видео». Фонд Xiph.Org. Архивировано из оригинала 9 июля 2009 г. Получено 10 августа 2009 г.
^ Ричмонд, Гэри. «Firefogg: Транскодирование видео в открытые веб-стандарты с помощью Mozilla Firefox» . Получено 2 ноября 2023 г.
^ "Xiph Subversion repository: trunk/theora-fpga". Xiph.Org Foundation . Получено 10 августа 2009 г.
^ "XiphWiki: Theora Hardware". Фонд Xiph.Org . Получено 10 августа 2009 г.
↑ MozillaWiki (18 марта 2009 г.), Firefox3.5/Features, MozillaWiki , получено 11 октября 2009 г.
↑ Mozilla Corporation (30 июня 2009 г.), Mozilla Firefox 3.5 Release Notes, Mozilla Corporation , получено 11 октября 2009 г.
↑ Mozilla Corporation (9 февраля 2010 г.), Firefox Mobile Features, Mozilla Corporation , получено 9 февраля 2010 г.
^ "Mozilla рассматривает возможность удаления поддержки Theora из Firefox". www.phoronix.com . Получено 1 ноября 2023 г. .
^ "1860492 – Расследование удаления поддержки Theora". bugzilla.mozilla.org . Получено 1 ноября 2023 г. .
↑ Google Chrome поддерживает видео HTML 5, SoftSailor, 28 мая 2009 г., архивировано из оригинала 3 октября 2009 г. , извлечено 11 октября 2009 г.
↑ Шенкленд, Стивен (28 мая 2009 г.), Google Chrome получает поддержку видео в формате HTML, cnet news , получено 11 октября 2009 г.
↑ Проблема 16657: Убедитесь, что двоичные файлы FFmpeg попадают в моментальные снимки на всех платформах, Google Chromium, 14 июля 2009 г. , получено 6 февраля 2010 г.
^ Ларабель, Майкл (7 декабря 2023 г.). «Chrome 120 выпущен с исчезновением поддержки Theora, добавлены улучшения WebGPU и CSS». www.phoronix.com . Получено 9 декабря 2023 г.
^ "Устаревание и удаление поддержки Theora. – Статус платформы Chrome". chromestatus.com . Получено 24 октября 2023 г. .
↑ Kaiser, Robert (16 сентября 2009 г.), Что нового в SeaMonkey 2.0 Beta 2, seamonkey-project.org , получено 11 октября 2009 г.
↑ Отчет об ошибке: Желание поддержки аудио/видеоэлементов в Konqueror, 13 мая 2007 г., архивировано из оригинала 28 декабря 2012 г. , извлечено 2 декабря 2009 г.
↑ Планы для Konqueror 4.4, 26 ноября 2009 г., архивировано из оригинала 17 июля 2011 г. , извлечено 2 декабря 2009 г.
^ Йегенштедт, Филипп (31 декабря 2009 г.). "(Повторное) знакомство с <видео> – Официальный блог для разработчиков Core в Opera". Opera. Архивировано из оригинала 4 января 2010 г. Получено 2 января 2010 г.
↑ Арьян ван Леувен (31 декабря 2009 г.). «С Новым годом! – Официальный блог разработчиков ядра в Opera». Opera. Архивировано из оригинала 4 января 2010 г. Получено 2 января 2010 г.
↑ Экспериментальная сборка Opera-video с собственной поддержкой Ogg Theora, Opera, 25 апреля 2007 г., заархивировано из оригинала 2 декабря 2007 г. , извлечено 11 октября 2009 г.
↑ Призыв к видео в Интернете – выпуск Opera <video> на Labs, Opera, 7 ноября 2007 г. , получено 11 октября 2009 г.
^ "ffmpeg2theora". v2v.cc . Архивировано из оригинала 11 марта 2008 . Получено 2 июня 2009 .
^ "ffdshow Summary" . Получено 23 октября 2009 г. .
↑ Cutka, Милан (4 октября 2002 г.). "Поддержка Theora в ffdshow a ffvfw". theora-dev (список рассылки).
^ "Theora в .ogg нет только .avi – Форум проб ffdshow". 15 января 2008 г. Получено 23 октября 2009 г.
^ gstreamer.freedesktop.org. "GStreamer Base Plugins 0.10 (0.10.24.1)" . Получено 23 октября 2009 г. .
^ gstreamer.freedesktop.org. "Справочное руководство по плагинам GStreamer Base Plugins 0.10 – Библиотека плагинов Theora" . Получено 23 октября 2009 г. .
^ "Ogg Video Tools - Browse Files at SourceForge.net". sourceforge.net . Получено 6 ноября 2022 г. .
Внешние ссылки
Официальный сайт
Примеры видео, закодированных с помощью Theora
Почему Theora важна для интернет-телевидения
Руководство пользователя Theora
Формат полезной нагрузки RTP для видео, закодированного Theora – Xiph.Org, проект IETF Internet
Скоро выйдет спорный видеоплеер Википедии Архивировано 5 августа 2009 г. на Wayback Machine