Внимание - MPEG 4 ВИДЕО: Обмен, Продажа, Download и обзоры фильмов здесь.


Изменяем разрешение картинки

Последнее обновление:

Рано или поздно, но возникает вопрос - как изменить исходное разрешение картинки у фильмов на купленых дисках MPEG-4, например, с теоретической точки зрения... Долгое время и я не находил для себя ответа на него, а в конференции данный вопрос поднимался чуть-ли не через день. Так уж получилось, что способ был найден методом "научного тыка" и как оказалось, о нем знали некоторые пользователи, но почему-то упорно не распространялись на данную тему :). Ну да ладно, все это не главное... Кроме того, я не претендую на абсолютную верность найденого способа и если Вы знаете, как решить эту проблему оригинальнее, то напишите мне.

Теперь немного объясню суть вопроса. Итак, на многих (очень многих) дисках MPEG-4 фильмы записаны с разрешениями картинки, не отвечающими некоторым требованиям аппаратной части машин. Может так оказаться, что для включения оверлея у Вашей видео-карты, картинка должна будет иметь разрешение, кратное, скажем 16-ти по горизонтали и 16-ти по вертикали, а в некоторых случаях кратность по горизонтали должна быть 32-м (как для моей карты Matrox G400 DH). Казалось, все бы ничего, но, например, в моем случае изображение на TV-OUT без работы оверлея не пойдет, кроме того, нагрузка на процессор увеличится, поскольку аппаратные возможности по частичной обработке изображения не будут использованы. Все это может привести к тому, что фильм пойдет рывками, а это - первый признак слабости машины для решения конкретной задачи. Особенно это заметно на слабых и средних машинах, где работой оверлея не стоит пренебрегать...

Конкретный пример - фильм Мумия, исходное разрешение 584x432 (горизонталь не делится даже на 16! без остатка). Если на Вашей машине он пойдет рывками, то очень может быть, что после изменения картинки до разрешения 576x432 машина уже справится с этой задачей... Сказать однозначно какие фильмы пойдут, а какие не пойдут после преобразования очень трудно для каждого отдельного случая, но то, что процент успешной декомпрессии возрастет - это однозначно!

Ну хватит теории, перейдем к практике. Для решения поставленой задачи я использовал хорошо знакомую уже многим программу VirtualDub, точнее, некоторые ее возможности, которые до сих пор оставались для меня невостребованными. Я говорю об использовании фильтров, прилагающихся к программе. Теперь опишу конкретно весь выбор предустановок преобразования на примере фильма "Мумия".

Эксперименты с фильмами, компрессированными изначально кодеком Fast-Motion, показали, что при выборе скорости потока в пределах 3000kbit/s, получаемый файл по объему не превосходит исходный, а дальнейшее увеличение скорости потока не приводит к существенному росту конечного объема файла и ощутимо не сказывается на качестве картинки... На мой взгляд это связано с особенностью кодека Fast-Motion в том, что устанавливая какое-либо значение для скорости потока в поле Data rate, выбирается максимальное значение, которое будет необходимо для компрессии группы кадров. Следовательно, если это значение лежало ниже порога 2500kbit/s (при первоначальной компресиии), то выбор значения 3000kbit/s останется невостребованным, т.е. такое значение все равно не будет достигнуто... В результате, я устанавливаю в поле Data rate максимальное значение 6000 (с запасом) и объем получаемого файла все равно не превышает исходный. Исключение было только однажды (превышение на несколько десятков мегабайт), пришлось отрезать титры в конце фильма и довести объем до приемлемого занчения...
Другое дело, кодек Low-Motion. Здесь устанавливаются значения, которые будут соответсвовать средней скорости потока (для сцен со средней динамикой) и колебания (как максимальные, так и минимальные) могут быть достаточно существенными. Именно поэтому порой бывает очень трудно просчитать объем получаемого файла...

Процедура преобразования этого фильма у меня заняла около 6-ти часов на машине P-II/450MHz/128Mb. Попытка перевести программу на высокий приоритет иногда приводит к мертвым зависаниям системы, так что, использую Normal.

Индикатор прогресса в программе VirtualDub 1.3d

В конечном итоге Вам решать - намного ли ухудшается качество и стоит ли затевать подобную процедуру, но лично я результатами очень доволен и в ближайшее время планирую пережать все свои "непроходные" фильмы...

Должен сказать еще следующее - при перекомпрессии фильмов необходимо использовать тот же кодек - Low-Motion или Fast-Motion, который был использован при сжатии источника. При попытках повторной компрессии фильмов, первоначально сжатых кодеком Low-Motion почти всегда возникают проблемы следующего характера - при воспроизведении фильма с изменением разрешения, звук продолжает идти, а картинка замирает, причем такие сбои наблюдаются по нескольку раз за фильм, независимо от задаваемой скорости потока и интервала между ключевыми кадрами (изменяются только места в фильме, где возникают сбои). Я нашел для себя способ обойти эту неприятность, однако он слишком продолжительный по времени и представляет в основном теоретический интерес... Если сказать в двух словах, то сначала фильм дважды пережимается с изменением разрешения (разными кодеками Fast-Motion и Low-Motion), затем отслеживаются сбойные места и с помощью программы ProjectDivX конечный вариант фильма комбинируется из разных кусков (почти все в варианте Low-Motion, а сбойные места в варианте Fast-Motion). Кстати, с помощью это программы (или аналогичной) можно осуществить так называемое Смешанное кодирование, получая при этом практически идеальное качество картинки...



Эпоха цифрового видео и звука


Hosted by uCoz