Привет, Гость ( Вход | Регистрация )



Reply to this topic Start new topic

> IV. VirtualDub: ПОДГОТОВКА К СЖАТИЮ ВИДЕО
@ Четверг, 05 Февраля 2004, 1:08 / TVRip / Chapter4  Edit Post
IV. VirtualDub: ПОДГОТОВКА К СЖАТИЮ ВИДЕО


Для обработки видео мы используем исключительно бесплатную программу VirtualDub (свежую версию можно скачать здесь или ее клон - VirtualDubMod. Сгодится любая версия VirtualDub от 1.4.х до 1.5.х. Также нам могут понадобиться дополнительные фильтры-плагины к VirtualDubи, возможно, другая программа для обработки видео из той же оперы: VirtualDub Mod.


Скачиваем и устанавливаем VirtualDub (достаточно распаковать zip-файл в отдельную папку). Скачиваем и устанавливаем дополнительные фильтры для VirtualDub (распаковать и скопировать в подпапку Plagins). Рекомендованный список дополнительных фильтров:
- smart deinterlace v2.6 или v2.7 beta 2 by Donald Graft - устраняет эффект "гребенки", сопровождающей переход от
чересстрочной телевизионной развертки к прогрессивной развертке монитора; деинтерлейс выполняется только в изменяющихся областях изображения (движущиеся объекты), в статических областях "гребенка" не проявляется; этот фильтр работает лучше встроенного в VirtualDub деинтерлейса
- brightness/contrast (UI-enhanced) v1.0 by Avery Lee/Donald Graft - этот фильтр - аналог встроенного фильтра brightness/contrast, но в отличие от встроенного имеет возможность preview (предпросмотра)
- dynamic noise reduction v2.1 by Steven Don/Avery Lee/Donald Graft - уменьшает шумы в изображении, не смазывая его
- hue/saturation/intensity v1.0 by Donald Graft - коррекция цвета, насыщения и интенсивности
- logoaway v3.01 или v3.5 by Krzysztof Wojdon - Удаление логотипов из видео
- smart smoother v1.1 by Donald Graft/Avery Lee - Сглаживает картинку, сохраняя структуру изображения, удаляет шум и уменьшает размер результирующего AVI-файла
- unsharp mask v1.3 by Donald Graft - повышение четкости изображения

Встроенные фильтры VirtualDub, которые мы будем использовать:
- blur (встроенный) - размытие изображения по Гауссу
- fill (встроенный) - заполняет прямоугольник на изображении указанным цветом
- grayscale (встроенный) - убирает цветность из изображения
- null transform (встроенный) - применяется для обрезания (cropping или clipping) краев изображения
- Resize (встроенный) - позволяет изменять размер выходного кадра

user posted image

Input-Output : Окна с изображением до и после обработки (можно их поменять местами: Options - Swap Input/Output)
Trackbar : Ползунок для перемещения по кадрам
Start-End : Кнопки для перемещения к началу-концу видеоряда
Keyframes : Кнопки для перемещения по ключевым кадрам
Mark In/Out : Кнопки выделения фрагментов


1. Открываем захваченный файл : File - Open Video File (или "Ctrl-O")

Если захваченный материал состоит из нескольких файлов (использовалась Segmentation), то 2-й, 3-й и прочие фрагменты добавляем при помощи File - Append AVI segment. Здесь может возникнуть ошибка: "Cannot append segment: The video streams have different data formats". Причина обычно в том, что захваченный фрагменты имеют немного различные значения частоты кадров. Несмотря на то, что мы выбрали ее равной, скажем, 25fps, файлы записаться со значениями fps типа 25.001. Исправить это можно так:

- вручную изменить значение fps в заголовке AVI-файлов. Для этого можно воспользоваться одной из многочисленных утилит для редактирования AVI-тегов (например, этой: AVI Frame Rate Changer).
Побочным результатом такого вмешательства может стать некоторая рассинхронизация видео- и аудио-потоков в AVI-файле, устранить которую можно будет только вручную;

- другой способ - воспользоваться скриптовым языком AVISynth. Описывать здесь AVISynth я не буду (в дальнейшем мы им не будем пользоваться), а просто приведу рецепт: создаем в Notepad'е файл со следующими строчками:
AVISource("D:\Capture\Film001.avi") - здесь указать маршрут к файлу
AssumeFPS(25.00, True) - здесь указать частоту кадров
и сохраняем его под именем "Film1.avs", затем корректируем первую строчку, указывая маршрут ко второму файлу ("D:\Capture\Film002.avi") и сохраняем как "Film2.avs" и так далее. Теперь в VirtualDub'е открываем файл "Film1.avs" и добавляем через Append AVI segment остальные файлы: "Film2.avs" и т.д.

2. Вырезаем рекламу и прочие посторонние включения, сохраняем звук в отдельный файл

Внимательно просматриваем видеоряд, двигая Trackbar. Кнопками Mark In/Out выделяем ненужные (либо испорченные) фрагменты и жмем кнопку Del на клавиатуре. Физических изменений с исходными файлами при этом не происходит. Результат редактирования проявится только в результирующем файле.

Поскольку звуковую дорожку категорически рекомендуется сжимать отдельно, не используя VirtualDub, то перед тем как приступить к работе с видео следует записать звук в отдельный файл. Нажимаем File - Save WAV, указываем маршрут и имя файла, ждем пока файл запишется на диск.


3. Установка фильтров

Фильтры, предназначенные для коррекции картинки, удаления шума, сглаживания и т.п. мы рассматривать не будем, поэкспериментируйте с ними самостоятельно. Помните: результат работы всех фильтров отображается в окне Output. Если большой размер окон Input-Output не позволяет вам полностью видеть результирующее окно, поменяйте окна местами (Options - Swap Input/Output). Установив тот или иной фильтр, подвигайте ползунком Trackbar'а, чтобы посмотреть, как действует фильтр на разных кадрах.

Откройте окно установки фильтров (Video-Filters). Нажимая на кнопку Add, установите следующие фильтры:
- smart deinterlace
- logoaway (этот фильтр нужен, только если мы хотим убрать из кадра логотип телеканала)
- null transform (этот фильтр-пустышку мы будем использовать для обрезания дефектов изображения по краям)
- Resize

user posted image

Если вы не находите в списке фильтров smart deinterlace и logoway, значит вы не скопировали их в папку с плагинами (Plagins).
Местоположение (порядок) фильтров можно менять, пользуясь кнопками Move Up и Move Down.


4. Настройка фильтров

Для настройки установленного фильтра нужно его выделить и нажать кнопку Configure.

4.1 Настройка smart deinterlace

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

user posted image


В частности, попробуйте "Field-only differencing" вместо "Frame-only differencing". Попробуйте убрать галочку с "Compare color channels (instead of luma)". "Mothion treshold" - настройка чувствительности фильтра к движению в кадре. Закладка "Show motion areas only" позволяет увидеть интерлейсные области кадра.

"Advanced Processing".
Иногда удается обойтись без анализа/обработки движения в кадре, что ускоряет процесс устранения "гребенки". Попробуйте отключить обработку - "Disable motion processing" и включить коррекцию сдвига фазы - "Phase Shift". Закройте настройку фильтра и попробуйте пройтись по последовательности из нескольких кадров вперед. Если "гребенка" пропала - все ОК. Если нет, попробуйте пройти по кадрам назад. Если при этом "гребенка" пропадает, то нужно вернуться в настройку и отметить галочкой смену полей.
Выбор "Fild swap..." зависит от того, в какой последовательности ваша карта захватывает поля телесигнала (нечетный захват полей - "Field swap before phase shift"). Если не знаете - попробуйте оба варианта.

Если ничего не выходит, попробуйте последнее средство. Отключите "Phase Shift" и "Disable motion processing". Отметьте "Blend instead of interpolate in motion area". Качество будет не очень, но иногда (особенно с некоторыми NTSC-источниками) другого варианта не остается.


4.2 Настройка logoaway

user posted image

Самый простой способ использования этого фильтра - просто указать границы области кадра, в которой находится мешающее лого. Укажите параметры Logo border position и Logo border size сначала на глазок. Потом включите "видимость" границы - Visible borders и нажмите Show preview. Если не попали с первого раза, закройте окно preview и скорректируйте параметры Logo border position/size. По окончании настройки "видимость" границ можно отключить и приступить к выбору режима удаления лого - Remove mode. Вот, к примеру, результаты работы методов XY и UGLARM (до применения фильтра, после XY, после UGLARM):

user posted image user posted image user posted image

Для метода XY можно изменять баланс X к Y (X-Y weight), а для всех методов имеется регулятор мощности "замыливания" - Blur power.

В случае если телевизионное лого выходит за пределы изображения (например, в широкоэкранном фильме), то в настройках Advanced border setup необходимо с этой стороны вместо Direct выбрать Copy opposite.

Более широкие возможности открываются при использовании альфа-канала (Alpha channel). Чтобы воспользоваться этим средством нам понадобится графический редактор Photoshop. Вначале с помощью редактора нужно изготовить специальный файл-маску. Делается это так. Двигаясь по кадрам, находим место, где лого четко выделяется на темном фоне. Копируем этот кадр в Clipboard (меню Video - Copy source frame to clipboard). Открываем редактор, создаем новый файл и вставляем кадр из Clipboard'а. Выбираем инструмент для выделения прямоугольных областей. Намечаем область для выделения. Рекомендую выбирать прямоугольник размерами существенно перекрывающий лого по всем сторонам, т.к. впоследствии нам неоднократно придется корректировать файл-маску, расширяя маскируемую область. Перед выделением области, убедитесь, что в редакторе открыто окно Info. Поставьте мышку в левый верхний угол намеченной области и запишите координаты этой точки (Info - X, Y). Не двигая мышку, нажмите левую кнопку. Не отпуская кнопки, выделите намеченную область. Запишите размер выделенной области (Info - W, H). Скопируйте выделение (Edit-Copy). Создайте новый файл и вставьте выделенное изображение (Edit-Paste). Склейте слои (Layers - Merge Layers). Переведите изображение в черно-белый режим (Image - Mode - Greyscale). Возьмите кисть или карандаш. Маскирующую лого часть картинки закрасьте белым, а окружающее лого пространство - черным цветом. Помните, что оттенки серого будут полупрозрачны. Этим можно воспользоваться, выделив границу черного с белым и применив к границе размытие (Filter - Blur).

user posted image user posted image user posted image user posted image

(До обработки, черно-белый режим, закраска, маска с размытием границы)

Применим полученный файл-маску. Для этого сохраните его как BMP-файл (редактор пока не закрывайте). В настройках фильтра logoaway отметьте Alpha channel и укажите маршрут к сохраненному файлу. Манипулируя методами и параметрами удаления лого, добейтесь оптимального эффекта на разных кадрах видеоряда. При необходимости можно вернуться к редактированию и скорректировать/расширить границы маски. Особенно часто это приходится делать, когда за изображением лого тянутся цветные тени.

user posted image user posted image user posted image user posted image user posted image user posted image

(1 - до обработки; 2,3 - XY и UGLARM - размер маски мал; 4 - UGLARM - маска увеличена; 5,6 - XY и UGLARM - к маске добавлена размытая граница)

Форму маски можно использовать любую, лишь бы она закрывала лого. В данном случае можно было бы, например, использовать овальную маску. А если нанести в редакторе на белое поле маски темный текст или эмблему, то получится замена телевизионного логотипа на свой.

user posted image user posted image

Однако при наложении такой маски на изображение в кадре буквы будут плохо видны, ведь фон за нами непостоянен. В этом случае нам поможет фильтр fill. Этим фильтром можно закрасить любую прямоугольную часть кадра в нужный цвет. Фильтр fill нужно поставить ДО фильтра logoaway. В данном случае, чтобы fill закрыл всю надпись, но не вышел за рамки овала, я использовал его два раза.

user posted image user posted image user posted image user posted image user posted image

(до обработки, овальный UGLARM, с текстом, текст поверх fill, схема расположения областей fill)

Можно, конечно, для вывода своего лого использовать специальный дополнительный фильтр (например, logo v1.3 beta 4 by Donald Graft), но в предложенном мной варианте удается совместить две задачи в одном фильтре, что, в конечном счете, сокращает время обработки видеоматериала.

Необходимо добавить одну важную вещь: если вы работаете не только для себя, но и для других, то не стоит увлекаться навешиванием на видеоряд своих лого. Длительное лицезрение вашего творчества будет раздражать зрителей не меньше, чем телевизионное лого. Достаточно будет, если вы отрежете небольшой фрагмент от файла (либо с начала, либо с конца) и обработаете его отдельно с вашим лого, а на основную часть видеоматериала пустите logoaway с обычной маской.


4.3 Настройка null transform (Croping)

Единственная цель использования этого фильтра-пустышки будет заключаться в обрезании дефектов изображения по краям кадра. Этой цели на панели фильтров служит кнопка Croping. Важно помнить две вещи - лучше отрезать лишнюю строчку, чем оставить дефект на экране. Перед окончанием настройки внимательно пройдитесь по кадрам ВСЕГО видеоряда. Иногда в разных местах дефекты проявляются больше, чем в других. Настроив Croping по одному кадру, вы рискуете пропустить дефекты в других местах. Количество отрезанных пикселей с любой стороны может быть произвольным, если дальше вы планируете использовать фильтр Resize (рекомендуется). Если вы не будете использовать Resize, то следуйте золотому правилу: размер выходного кадра по горизонтали должен быть кратен 32. Для вертикали нет такого строгого правила, однако, рекомендуется выдерживать размер по вертикали кратным 8 (лучше - 16).

user posted image user posted image

(Левая и нижняя границы кадра до и после Croping'а)


4.4 Настройка Resize

Сначала о целях этой процедуры. Во-первых, Resize служит для лучшего последующего воспроизведения обработанного видео. В конечном счете, обработанный (сжатый) видеоматериал будет записан на носитель, имеющий ограниченный объем. Это предполагает, в свою очередь, фиксированное значение видео-битрейта. А каждому битрейту вполне логично соответствует определенные оптимальные размеры кадра. Неверно думать, что чем шире вы сделаете кадр, тем четче будет результат. Ограничение битрейта сыграет здесь свою роковую роль. В итоге, после сжатия, вы можете получить вместо четкой картинки набор квадратиков. Кроме того, даже при большом (с запасом) битрейте не рекомендуется делать размер выходного кадра больше чем 640x480 (или, скажем, 720x384). При б'ольших размерах возникнут проблемы при воспроизведении, ведь мощности компьютеров не беспредельны, а каждый элемент изображения потребует распаковки и обработки.

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

Для выполнения правильного Resize рекомендуется выполнять два правила: ширина результирующего кадра должна быть кратна 32, а пропорция X к Y должна быть равной 4:3. Рекомендованный размерный ряд такой: 640x480, 608x456, 572x432, 512x384, 480x360, 384x288. Если вы имеете дело с широкоэкранным изображением, на котором присутствуют черные области сверху и снизу экрана, можно поступить двояко: либо оставить их (но хотя бы залить обе эти области двумя фильтрами fill), либо обрезать их (рекомендуется), использовав после Resize еще один фильтр null transform.

user posted image

В окне настройки фильтра кроме размеров нужно также выбрать режим расчета результирующего изображения. Как наиболее качественный, рекомендуется использовать режим Precise bicubic, хотя есть мнение, что в некоторых случаях режим Precise bilinear дает даже лучший результат.

user posted image


Случается, что после настройки Resize по тем или иным причинам мы видим в окне Output искажение естественных пропорций изображения. Об этом можно судить по сплющенным, либо вытянутым лицам людей или по овальному отображению круглых предметов. В этом случае следует вернуться к настройке фильтра Resize и добиться отсутствия искажений, соответственно увеличивая, либо уменьшая высоту кадра с шагом в 16 пикселей.


Продолжение

Lo-Fi Версия CMSBlog Сейчас: Четверг, 28 Марта 2024, 16:25