DivX MPEG-4 Video Codec


Начиная разговор о DivX , прежде всего необходимо разделить понятия, схожие по написанию, но отличные по своей сути. Первоначально аббревиатура Divx использовалась для некоего коммерческого варианта DVD-дисков, которые можно было использовать определенное время для просмотра (как правило около двух дней), после чего считать информацию с них было невозможно. Суть в том, что по стоимости такие диски были в несколько раз дешевле полноценных DVD-дисков, потому и могли быть привлекательными для пользователей (многие не любят смотреть фильм по нескольку раз, да и дешевый вариант более доступен). Несмотря на кажущиеся достоинства, широкого распространения данный вид услуг не получил.

Здесь же речь пойдет о совершенно другой технологии, используемой для своего обозначения аббревиатуру DivX ;-).

Итак, двое хакеров, известных под прозвищами MaxMorice и Gej, придумали новый формат сжатия видеофайлов, названный ими DivX ;-). DivX ;-) на самом деле является, всего лишь, взломанной версией, того же Microsoft MPEG-4 Video Codeс (Low-Motion кодек, это взломаная версия 4.1.00.4920 M$ MPEG4v3, а High-Motion кодек - 4.1.4917 M$ MPEGv3), как утверждают авторы, они убрали глюки и слегка его улучшили. В частности, они сделали возможным вывод файлов после компрессии в формате *.avi, в то время, как кодек M$ MPEG-4 Video Codec поддерживает формат *.asf и устанавливается вместе с Windows Media Player или Windows Media Tools (последние версии кодеков Microsoft MPEG-4 Video Codec V1,V2,V3 также выводят поток в *.avi-файл).

Т.е. фактически, официально данный алгоритм не поддерживается, по крайней мере в таком исполнении, тем не менее, DivX ;-) базируется на формате MPEG-4, который, собственно говоря не является форматом сжатия, а представляет собой новый мультимедиа-формат, рассчитанный на низкоскоростную передачу данных. Суть его заключается в том, чтобы подразделить материал на несколько типов элементов (медиа-объектов): неподвижные, видео-, аудио-объекты и т.д., формализовать их структуру и взаимосвязь и скомпоновать в единую, изменяемую пользователем сцену.

Прелесть алгоритма DivX ;-) в том, что фильм, длительностью до трех часов можно сжать до объема, умещающегося на одном CD, что вдвое меньше чем у VideoCD, получив при этом более качественную картинку, особенно в плане разрешения. Появившиеся на рынках диски с записью фильмов в стандарте MPEG-4 - как раз и есть тот самый случай использования алгоритма DivX ;-). Стоят они на сегодняшний день 60руб. (в пакете с обложкой) и 70руб. в обычной CD коробке. В качестве источника как правило используется DVD. Большинство фильмов записано в формате 16:9, что не сильно радует глядя в монитор, однако качество у таких фильмов как правило выше, чем у фильмов с обычным форматом 4:3. Кроме того, чем короче по времени фильм, тем большую скорость цифрового потока можно использовать, заполняя все пространство диска CD. Разумеется и качество в этом случае будет выше.

Что дает нам, простым обывателям эта новая технология? Я бы сказал, кое-что дает... а именно: предположим к Вам какими-то загадочными путями попал DVD-диск с хорошим фильмом. Благодаря технологии DivX ;-) Вы можете сохранить файл фильма у себя, скажем, на винте, да еще и прилично сжать его по объему, правда, с некоторой потерей качества. Однако, с этим придется смириться - лучше DivX ;-) в руке, чем DVD вдалеке:) В дальнейшем полученный сжатый файл можно залить на подложку CD-R как и любой другой файл и использовать его в нужное время.

Если же нет желания или возможности заниматься самостоятельной компрессией, то вполне можно использовать готовую продукцию, объемы которой стремительно нарастают.

Для просмотра компрессированных файлов по алгоритму DivX ;-) Вам потребуется программа Windows Media, но если у Вас есть дистанционное управление к карте Hollywood Plus - Real magic Remote Control, то я бы рекомендовал использовать Micro DVD Rlayer, поскольку в этом случае Вы получаете возможность управлять просмотром на расстоянии.

Второй необходимый компонент - сам кодек DivX ;-), который используется в программных плейерах для декомпрессии цифрового потока. Этот же кодек используется и для компрессии в программных кодерах. После того, как Вы перекачаете файл кодека, сначала прописываете его (двойным нажатием мыши на значке файла divx_311alpha) в папку C:\program files\DivX_311alpha. Затем заходите в нее и дважды нажимаете на файл Register_DivX. После этого кодек регистрирует себя в системе соответствующим образом для того, чтобы его могли видеть другие программы, использующие этот кодек в работе. Не помешает установить последние версии DirectX7.0 и DXMedia 6.0. Кроме того, Ваш компьютер должен отвечать определенным системным требованиям и если у Вас слабая машина, то про DivX ;-) пока придется забыть... Например, для более-менее нормального кодирования необходим процессор не ниже P-II/300MHz, а полное время кодирования полутора-часового фильма на P-III/500MHz может занять от 8-ми до 15-ти часов, в зависимости, опять же, от выбранных предустановок кодирования. Какой конфигурации хватает для просмотра - сказать трудно... Например, фильм "Враг государства" (разрешение картинки 480x208) мне удалось посмотреть даже на конфигурации P-200MMX/32/ATI Rage II 2Мб. Конечно же это ни в коем случае не ориентир, поскольку фильмы с максимальным разрешением картинки и при установке "максимального качества" в программе Windows Media могут притормаживать даже на машинах вплоть до P-III/550MHz. Отсюда правило - чем быстрее машина, тем меньше проблем с декомпрессией.

Хочу обратить Ваше внимание на один момент. Если изображение на мониторе при просмотре идет рывками - попробуйте нажать правую кнопку мыши на экране с изображением и выбрать опцию Свойства=>Дополнительно=>DivX MPEG-4 DVD Video decompressor=>Свойства=>CPU(Quality) и установить программный фейдер на отметку "0" (эта регулировака доступна в версии Windows Media 6.4). Тем самым Вы отключите так называемое "сглаживание" которое позволяет в некоторой степени улучшить изображение. Это как раз и есть регулировка, которую я в вольном переводе назвал как регулировку "качества". Чем правее программный фейдер, тем выше качество. Однако, необходимо иметь достаточно серьезный камень для того, чтобы предусмотренная настройка дала эффект и даже на P-III/550MHz могут быть притормаживания видео на отметках 3-4... На той же закладке можно программно регулировать параметры изображения - яркость, контраст, насыщенность. На разных фильмах эффект притормаживания может проявляться по-разному. Зависит это в некоторой степени от формата картинки - чем выше разрешение, тем сильнее загрузка системы. Если для отображения картинки включается оверлей (для этого должны соблюдаться некоторые условия, в частности, для карты Matrox и TNT2 должна быть кратность разрешения картинки 32-м по горизонтали, для карт на чипе TNT - кратность по горизонтали 16-ти), то процессор значительно разгружается, если же фильм воспроизводится программно, то нагрузка на процессор увеличивается и не всегда его мощности хватает для успешной декомпрессии.

Если Вам интересно проверить каким образом декодируется конкретный фильм - сделать это можно следующим образом - перевести экран в разрешение 256 цветов и если фильм идет как через сетку, то декомпрессия осуществляется программно, (следовательно процессор загружен сильнее), а если же картинка идет полноцветная, то работает оверлей, т.е. механизм вывода изображения на экран, когда не требуется преобразовывать формат цветности изображения (обычно YUV) в RGB, и масштабирование картинки происходит на аппаратном уровне.

В последнее время стали появляться софт-плейеры, успешно решающие проблему включения оверлея у видео-карт, в случае, если изначально фильм имеет значение горизонтали, не кратное 32-м (строки доводятся до кратных значений, добавлением черных пикселов). Например: Sasami2k the Advanced Mplayer (для корректного отображения меню необходимо изменить расширение файла Sasami2000.ENU на *.RUS) либо BSPlayer (для использования оверлея, его необходимо принудительно включить, выбрав опцию Optiomns=>Preferenses=>General=>Use Overlay). Со временем подобных продуктов будет появляться всё больше, поскольку проблема оверлея - актуальна.

Надо сказать, что иногда имеет смысл установить разрешение экрана у монитора 800x600, поскольку нагрузка на систему в этом случае будет меньше, чем при более высоком разрешении, что позволит в какой-то степени отдать большую часть ресурсов машины на декомпрессию цифрового потока.

Если у Вас слабая машина (например: P-200MMX) и хочется посмотреть имеющийся MPEG-4 фильм, а ресурсов не хватает, то выйти из ситуации можно следующим образом - уменьшить разрешение картинки...

Теперь вкратце об устанавливаемых файлах при инсталляции кодека и их предназначении:

Можно отметить такой факт в работе кодеков - при удалении файла c:\windows\system\DivX_c32.ax (что ранее применялось в случаях с некратными фильмами для видео-карты Matrox G400 DH), декопрессия видео осуществляется файлом c:\windows\system\DivXc32.dll, независимо от того, каким кодеком (Low-Motion или Fast-Motion) был сжат фильм. Если удалить и его, то в работу вступит файл c:\windows\system\DivXc32f.dll. Т.е. декомпрессия будет осуществляться наилучшим программным инструментом, имеющимся на данный момент. Надо сказать, что в такой ситуации качество картинки пропорционально ухудшается, однако, эта информация имеет чисто теоретический интерес и на практике, удалением отдельных файлов Вам заниматься, скорее всего, не придется :)

Кстати, о версиях кодеков - если Вы будете практиковать самостоятельную компрессию, то можете скачать новый вариант кодеков Low-Motion и Fast-Motion, позволяющих реально вставлять ключевые кадры в необходимые места (поскольку кодеки в пакете divx_311alpha этой возможностью, к сожалению, не обладают), что позволит улучшить в конечном итоге качество компрессии... После скачивания и распаковки поместите файлы DivXc32.dll и DivXc32f.dll в папку c:\windows\system, заменив имеющиеся, которые были установлены при инсталляции кодека divx_311alpha.

Нелишним будет узнать и про технологию смешанного кодирования...

Если говорить о недостатках DivX ;-), то есть один существенный, на мой взгляд - нет возможности смотреть полученый в результате всех телодвижений фильм на TV. Правда, если Вы счастливый обладатель, скажем, Matrox Millenium G400 Dual Head, то все будет в порядке, поскольку у нее прекрасный TV-OUT. Подробнее об этой карте и ее возможностях по этой части я написал здесь. Если же в Вашем распоряжении нет видео-карты с полноценным TV-OUT, но есть карта MPEG1/2 decoder, то в этой ситуации есть другой выход - непосредственное кодирование DVD или DivX ;-) в поток MPEG-1, с последующей возможностью просмотра фильмов через выход декодера на экране TV (разумеется все проблемы с декодированием MPEG-1 карта также возьмет на себя) и записью полученых файлов на подложки CD-R. Как это делается - написано здесь для DVD и здесь для DivX ;-).

Что касается MPEG-4, то хочется надеяться, что в ближайшем будущем появятся карты с аппаратной компрессией/декомпрессией с полноценным видео-выходом, либо аппаратные решения в виде стационарных или портативных MPEG-4-плейеров с TV-OUT. Рассчитывать на аппаратную поддержку DivX ;-) от фирм-производителей врядли стоит, поскольку данный алгоритм не соответствует главной концепции формата MPEG-4 для видео-изображений - способности кодирования/транспортировки не только кадра, но и объекта, или смеси кадра и объекта. Например, когда на общем плане движется объект, то и общий план и объект кодируются отдельно и транспортируются кждый отдельно со своим собственным битрейтом. Аппаратная же поддержка будет и должна соответствовать реальной спецификации MPEG-4, но никак не варианту DivX ;-).

В заключении дам одну ссылку, по которой можно почерпнуть массу полезной информации на данную тему: http://www.divx-digest.com Материал именно этого сайта послужил базовой основой для написания данной страницы. На указанном сайте есть еще масса ссылок, софта, программных плейеров, статей и подробное изучение данного ресурса может занять не один день. Желаю Вам успехов в освоении DivX ;-)!

Hosted by uCoz