Введение

Библиотека видеокодеков Xvid (ранее "XviD") – это библиотека видеокодеков, реализующая стандарт видеокодирования MPEG 4, в частности, расширенный простой профиль MPEG 4 Part 2 (ASP). Она использует возможности ASP, такие как B-кадры, глобальная и четвертьпиксельная компенсация движения, маскирование яркости, квантование на основе решётки, а также матрицы квантования H.263, MPEG и собственные матрицы. Xvid является основным конкурентом кодека DivX Pro. В отличие от кодека DivX, являющегося проприетарным программным обеспечением, разработанным DivX, Inc., Xvid распространяется как свободное программное обеспечение на условиях лицензии GNU General Public License. Это также означает, что в отличие от кодека DivX, доступного лишь для ограниченного числа платформ, Xvid может использоваться на любых платформах и операционных системах, для которых возможно компилирование исходного кода.

История

В январе 2001 года DivXNetworks основал OpenDivX в рамках проекта Mayo, который задумывался как платформа для мультимедийных проектов с открытым исходным кодом. OpenDivX был видеокодеком MPEG 4 с открытым исходным кодом, основанным на упрощенной версии эталонного кодировщика MPEG 4 от MoMuSys. Однако исходный код был выпущен под ограничительную лицензию, и только члены Центра передовых исследований DivX (DARC) имели права на запись в CVS проекта. В начале 2001 года участник DARC, Sparky, разработал улучшенную версию кодирующего ядра под названием encore2. Она несколько раз обновлялась, пока в апреле не была внезапно удалена из CVS без предупреждения. Sparky объяснил это так: "Мы (наши руководители) решили, что ещё не готовы к публичному релизу". В июле 2001 года разработчики стали жаловаться на отсутствие активности в проекте: последний коммит в CVS был сделан несколько месяцев назад, исправления ошибок игнорировались, а обещанная документация так и не была написана. Вскоре после этого DARC выпустил бета-версию своего коммерческого кодека DivX 4 с закрытым исходным кодом, основанного на encore2, заявив, что "сообществу нужен Winamp, а не Linux". После этого был создан форк OpenDivX, основанный на последней версии encore2, загруженной до её удаления. С тех пор весь код OpenDivX был заменен, а Xvid был опубликован под лицензией GNU General Public License.

Патентные вопросы

В качестве реализации MPEG 4 Часть 2, Xvid использует множество запатентованных технологий. По этой причине версии Xvid 0.9.x не лицензировались в странах, где эти программные патенты признаются. Начиная с версий 1.0.x используется лицензия GNU GPL v2 без каких-либо явных географических ограничений. Однако, законное использование Xvid все еще может быть ограничено местным законодательством. К счастью, проект Fedora, сообщество, поддерживаемое Red Hat, импортировало xvidcore в свои репозитории 24 января 2023 года. Последние патенты в США истекли в ноябре 2023 года. Единственные действующие патенты в мире остались в Бразилии.

Спор о дизайне Sigma

В июле 2002 года Sigma Designs выпустила видеокодек MPEG 4 под названием REALmagic MPEG 4 Video Codec. Вскоре тестировщики этого нового кодека обнаружили, что он содержит значительные фрагменты кода Xvid. С компанией Sigma Designs связались, и она подтвердила, что программист создал REALmagic на основе Xvid, но заверила, что весь код, распространяемый по лицензии GPL, будет заменен, чтобы избежать нарушения авторских прав. Когда Sigma Designs выпустила предположительно переписанный кодек REALmagic, разработчики Xvid немедленно провели его дизассемблирование и пришли к выводу, что он по-прежнему содержит код Xvid, просто переупорядоченный в попытке замаскировать его присутствие. Разработчики Xvid решили приостановить работу и предать ситуацию огласке, чтобы заставить Sigma Designs соблюдать условия лицензии GPL. После публикации статей на Slashdot и The Inquirer, в августе 2002 года Sigma Designs согласилась опубликовать свой исходный код.

Просмотр файлов с кодировкой Xvid

Xvid — это не видеоформат, а программа для сжатия и декомпрессии (отсюда и название — кодек) формата MPEG 4 ASP. Поскольку Xvid использует сжатие MPEG 4 Advanced Simple Profile (ASP), видео, закодированное с помощью Xvid, является видео MPEG 4 ASP (а не «Xvid video»), и поэтому теоретически может быть декодировано всеми декодерами, совместимыми с ASP. Это включает в себя большое количество медиаплееров и декодеров на основе libavcodec (таких как MPlayer, VLC, ffdshow или Perian). По состоянию на 2016 год на сайте xvid.com доступны бинарные файлы для использования кодека. Однако ранние версии кодека содержали ошибку, из-за которой файлы, закодированные XviD, не могли быть декодированы DivX, даже если они были закодированы с использованием fourcc DivX. Файлы, закодированные Xvid, можно записать на CD или DVD и воспроизвести на некоторых (но не всех) DVD-плеерах и медиаплеерах, совместимых с DivX. Однако Xvid может опционально кодировать видео с расширенными функциями MPEG 4, которые большинство проигрывателей с сертификатом DivX не поддерживают. Файлы, закодированные с глобальной компенсацией движения, Qpel, MPEG-квантованием, множественными B-кадрами или файлы, превышающие ограничения Video Buffering Verifier, могут воспроизводиться некорректно на сертифицированных DivX аппаратных устройствах. Например, Xvid определяет три точки варпа для своей реализации глобальной компенсации движения, в отличие от реализации DivX с одной точкой варпа. Включение некоторых более продвинутых функций кодирования может снизить совместимость с проигрывателями. Существуют проблемы с пользовательскими матрицами квантования, используемыми в таких инструментах, как AutoGK, которые автоматизируют кодирование с Xvid. Это может (в зависимости от чипсета декодера проигрывателя) привести к созданию видео с нестабильным воспроизведением и артефактами. Однако в последних моделях DVD-плееров, совместимых с DivX, улучшена поддержка пользовательских матриц квантования.

Приложения кодирования

Операционные системы Программное обеспечение Комментарии Windows VirtualDub, DVDx, xvid encraw, AutoGK, MeGUI и т.д. И все остальные приложения, поддерживающие кодирование через фреймворк VfW. Mac OS X, Linux, BSD и Windows MEncoder, Avidemux, VLC, WinFF (графический интерфейс на основе FFmpeg) и т.д. Эти приложения, не зависящие от платформы и фреймворка, обращаются к библиотеке Xvid напрямую.