Кодек DivX.

Что же такое DivX?

"DivX ;)" - это вскрытый мокрософтовский кодек MPEG-4, предложенный ко всеобщему использованию некой группой хакеров. Последней работающей версией на сегодня является DivX ;) 3.11 alpha. На этом версия 3.хх закончила свое существование. Следующей версией станет DivX-4 Deux (его исходник уже выложен на сайте проект майо - см. ссылки), по словам авторов, не совместимый с предыдущей версией 3.хх...

Рассмотрим обычный видеофайл ДивХ (да и любой файл со сжатием МПЕГ). Его поток состоит из трех типов кадров - ключевых, промежуточных (дельта) и восстанавливаемых. Ключевые кадры (КК) при обычном цифровании ставятся через равномерные промежутки времени (задаваемые в кодеке, обычно в секундах - у ДивХа минимальное значение = 1 сек) и содержат в себе максимальную информацию о кадре оригинального фильма. Дельта-кадры (ДК) содержат в себе не весь кадр фильма, а только разницу между предыдущим ключевым кадром и кадром, на который попадает сам дельта-кадр (греческой буквой "дельта" в математике и физике обычно называют некую разницу), таким образом, дельта-кадры обычно меньше по размеру, чем ключевые кадры. Остальные кадры не записываются, а восстанавливаются в реальном времени декодером (собственно компьютером, на котором проигрывается фильм).

Теоретически, если задать большее время между КК (скажем 60 или более секунд), по крайней мере при сжатии LM кодеком, то масса основного потока будет падать не на ключевые кадры, а на дельта-кадры, а следовательно качество фильма будет лучше (т.к. ДК будут содержать больше информации о фильме и значит будут точнее отображать разницу между ними и предыдущим ключевым кадром). С другой стороны, разница между ДК и КК будет становится все больше и потока будет не хватать для точного отображения. С третьей стороны, если задавать слишком большой интервал между КК, то появляется неудобство в прокрутке фильма - нам придется наблюдать немые ускоренные сцены при попытке отмотать фильм до нужного момента (сцены). Практически экспериментов по качеству я еще не ставил - позже займусь.

И что такое VKI?

К чести кодека ДивХ надо сказать, что его развитие продолжается и некий Dynamite создал заплатку для ДивХа - VKI (variable key frames) patch, которая автоматически расставляет Ключевые Кадры (Key Frames) так, что они приходятся на начало новой сцены. Как это происходит? Она проверяет по некой формуле, насколько велика разница между ДК и КК и, при превышении некоего порога, заменяет ДК на КК. То есть мы получаем ключевые кадры не только через равные промежутки времени, заданные в кодеке, но и при резкой смене сцены, что значительно улучшает картинку при том же потоке.

Теоретически автор заплатки предлагает вообще убрать стандартные КК - поставить значение для КК, равное 9999 секунд. Тогда, по его предположению, КК будут ставится исключительно на смене сцен фильма. Но Dynamite не учитывает, что при попытке перемотки такого фильма мы будем довольно долго проматывать сцену скажем, диалога героев на фоне общего плана заката и небольших фигур, бредущих по пляжу, либо клипа, стилизованного под старое черно-белое кино, которое кодеком Дивх вообще воспринимается как сплошной серый не изменяющийся фон. Я нарвался на это в клипах Depeche Mode 91 года - большинство переходов сцен там кодеком просто не воспринималось и качество VKI практически сошло на нет.



(c) 01/2001, Сибирский Лихоман http://mydivx.lihoman.ru
Следующая статья раздела
Возврат на список статей