Сегодня 25 декабря 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Звук и акустика

Кодек DivX

⇣ Содержание

Теперь узнаем, как посмотреть, что занесено в наш скрипт и как запустить его. Для того, что бы посмотреть скрипт, нужно зайти в меню "File"->"Job control…" или просто нажав клавишу F4.


Если в вашем скрипте есть какие-то лишние записи, то можно их удалить выбрав их и нажав на кнопку "Delete". Убедились, что в скрипте нет лишних записей и есть то, что нам надо. Теперь, запустить его можно прямо из этого окна, но процесс при этом очень не наглядный. Мне гораздо больше нравится запускать напрямую скрипт из VirtualDub. Для этого, из меню "File"->"Run script…" запускаем файл "VirtualDub.jobs", который находится в той же папке, что и сам VirtualDub. После окончания сжатия, нужно будет удалить этот файл или почистить скрипт из окна "Job control". Но вернёмся к настройкам кодека.

3 "Encoding bitrate" Ползунком мы выставляем битрейт с которым хотим произвести сжатие. В окошке можно набрать этот битрейт вручную. Как посчитать битрейт для вашего видео я описал в статье "Дополнения по Mpeg - видео". Если быть кратким, к этому есть два подхода:

  • Первый подход. Мы сжимаем видео для записи на CD. В этом случае, битрейт будет зависеть от ёмкости диска и продолжительности видео. Качество видео будет зависеть от разрешения видео.
  • Второй подход. Вы не смотрите на размеры, но хотите получить максимальное качество. Вот тогда вы будете исходить из собственных соображений выбора разрешения и битрейта.

4 "Bitrate modulation". Ползунок этой настройки позволяет распределение битрейта в зависимости от количества движения в фильме. Работает это таким образом: Дело в том, что формат Mpeg4, который является основой DivX, регистрирует изменение картинки. Для тех мест, где есть много движения, нужно больше битрейта. Параметр "Bitrate modulation" позволяет выставить, на сколько больше битрейта будет выделено на динамичные сцены, по отношению к другим кадрам. Если же, у нас весь фильм идёт достаточно монотонно, то можно заставить кодер не отрабатывать изменение количества движения. Смещение ползунка в сторону "high-motion" повышает выделение битрейта на динамические сцены. Смещение ползунка в сторону "low-motion" снижает выделение битрейта на динамические сцены. Какие-либо конкретные рекомендации по использованию этого параметра я не даю. Для каждого фильма этот параметр будет сугубо индивидуален. Могу лишь сказать, как определить нужно ли вам его использовать.

Запустите на просмотр фильм после сжатия. Найдите и посмотрите, как выглядят динамические сцены по отношению к статическим. Если динамика распадается на квадраты, теряет чёткость по сравнению со статикой, значит вам нужно сдвигать движок "Bitrate modulation" в сторону "high-motion". Может возникнуть и другая ситуация, когда на динамические сцены не желательно выделение большого битрейта. Например, подготовка видео к выкладыванию в Интернет. В этом случае, можно пожертвовать динамическими сценами ради уменьшения потока. Другой пример. У вас есть съёмки на которых гораздо важнее детали на статическом изображении, чем перемещение камеры. В этих случаях вам потребуется смещение параметра "Bitrate modulation" в сторону "low-motion".

5 "Multipass encoding files". В этом разделе находятся несколько опций, влияющих на многопроходное кодирование. В разных режимах работы есть доступные и недоступные галочки. Я буду говорить только о доступных галочках. Начну слева. Первая доступная галочка появляется если кодек находится в режиме работы " Multipass, n th pass". Это "Update log file". Как я уже объяснил выше, эта функция нужна для включения многопроходного режима (вместо двух проходного). По-умолчанию, она зачем-то включена, что очень не удобно. При двухпроходном кодировании обязательно следите за тем, что бы она была отключена. Под этой функцией находится окошко выбора файла статистики. Если у вас возникла необходимость поменять имя этого файла, то можно это сделать, но нужно помнить, что если вы хотите подсунуть для второго прохода готовый файл статистики, он должен быть создан при тех же условиях, что будет делаться второй проход (включены те же фильтры, с теми же настройками, и при тех же настройках кодека).

Вторая доступная галочка появится в режиме работы "Standard" и "Multipass, 1 st pass". Это будет галочка "Write MV file". Если вы поставите эту галочку, то в файл будет записана статистика работы кодека (информация о векторах смещения) и при втором проходе будет возможно ей воспользоваться. При включении режимов "Standard" и "Multipass, n th pass" на этом же месте появится опция "Read MV file". Она включает чтение этого файла со служебной информацией кодека. Эта функция ускоряет работу кодека, но при этом незначительно ухудшается качество сжимаемого видео. Ниже есть окошко выбора файла, в который будет писаться эта статистика. По результатам моих испытаний, ускорение работы кодека незначительное (5-10%), при этом различие в качестве получаемого видео есть. Я бы не рекомендовал использовать эту функцию.

6 Под этой цифрой находится единственная кнопка - "Settings". При нажатии на неё появится следующее окно:


Здесь есть только 2 интересующие нас настройки. Они помечены красным.

"Do not Prompt with errors and warnings" - этот пункт отключает подсказки и сообщения об ошибках. Если вы хорошо знаете, что делаете, то этот пункт будет вам только мешать.

"Disable the feedback window" - здесь производится отключение окна статистики во время кодирования. Оно появляется только в момент работы кодера и выглядит следующим образом:


Сразу предупрежу, что использование этого окна значительно замедляет работу кодека. Если же вы хотите наблюдать за параметрами кодирования, но смотреть на кадры вам не так важно, то можно отключить вывод изображения на эту панель. Это можно сделать галочкой "Show picture" (обозначено цифрой 1). При этом, скорость работы кодека повысится.

Под цифрой 2 есть два поля:

  • "Split fields" - раскладывает кадры на поля при выводе изображения на эту панель.. Не сказать, что это полезная функция.
  • "Show motion vectors" - включает показ векторов смещения. Так же, как и предыдущая функция не более чем на один раз посмотреть.

Под цифрой 3 в выпадающем меню можно выбрать, что будет показываться на графике.

Можно вообще отключить вывод любого графика ("Show graph"). Среди режимов отображения:

  • "PSNR" - показатель качества изображения.
  • "bits" - поток, расходуемый на видео.
  • complexity_per_mb - это показатель потока, требуемого для записи новых блоков изображения в кадре. Дело в том, что алгоритм Mpeg4 нацелен на то, что бы искать переместившиеся блоки, а при неизменных блоках кодировать их как текстуры оставшиеся на месте. Если какой-то блок переместился, то просто изменяются координаты этого блока. Если кодер не может найти похожий блок в предыдущем кадре, то он создаёт новый, на запись которого требуется на много больше потока, чем на текстуры или перемещённые блоки.
  • motion - количество движения в кадре.
  • quantizer - квантизер, применяемый для данного кадра.
  • texture - количество текстуры в кадре. Текстура - это постоянная составляющая кадра, которая передаётся из кадра в кадр. Чем больше текстуры, тем проще сжимать кадр и больше B-frames можно использовать.

В целом, это только информационная панель и на процесс кодирования она не оказывает никакого влияния.

Вернёмся же к главному окну настройки кодека. На вкладке "General" мы всё рассмотрели. Перейдём теперь на вкладку "Video".


Здесь мы можем произвести настройку кодека, относящуюся к обработке видео. Рассмотрим эту закладку сверху вниз:

  • "Psychovisual Enhancements" - как заявляется компанией DivX, это попытка убрать из изображения ненужные детали, например, для борьбы с шумом. В режиме "Fast" кодек пытается оптимизировать его таким образом, что бы шум маскировался крупными деталями. Режим "Slow" работает медленнее, чем "Fast", но он более осторожно обрабатывает материал и после него должно оставаться меньше артефактов. В целом, применять эту опцию я не рекомендовал бы. Гораздо лучших результатов можно достичь, включив чистящие фильтры при обработке видео в VirtualDub. "Psychovisual Enhancements" не рекомендуется включать для сжатия чересстрочного материала.
  • "Enable Crop" - при включении этой функции видео изображение будет подрезано на столько пикселей, сколько выставите в пунктах:
    • "Crop top" - обрезка сверху
    • "Crop left" - обрезка слева
    • "Crop right" - обрезка справа
    • "Crop bottom" - обрезка снизу
  • "Enable Resize" - при включении этой функции будет произведено изменение размеров видео перед кодированием. Таким образом, на кодек попадёт видео с заданными здесь размерами.
  • В окошке "width" задаётся ширина получаемого видео. При выставлении значения в этом окошке следим за тем, что бы ширина делилась на четыре.
  • В окошке "height" задаётся высота получаемого видео. При выставлении значения в этом окошке следим за тем, что бы ширина делилась на два.

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

Для пересчёта разрешения видео существуют несколько методов:

  • "Bilinear (Very Soft)" - билинейный, самый простой в расчетах, соответственно самый быстрый, рекомендуется только для уменьшения размеров.
  • "Bicubic (Soft)" - бикубический мягкий, самый простой из кубических Алгоритм его работы похож на билинейный.
  • "Bicubic (Normal)" - бикубический нормальный.
  • "Bicubic (Sharp)" - бикубический чёткий, рекомендуется для всех видов изменения размеров, но он самый медленный.

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

"Pre Processing Source" - при включении этой опции включается подавитель шума. Он работает как во временной области, так и в пространственной. Работа этой опции видна на глаз - происходит сглаживание картинки. Для материалов, кодируемых в DivX, это может принести как пользу, так и вред. Польза от сглаживания картинки состоит в том, что кодеку будет проще работать и для получения качественного видео на выходе кодека потребуется меньший битрейт. Вред от сглаживания картинки состоит в том, что при этом теряются мелкие детали изображения и происходит размытие границ изображения. В положении "Extreme" происходит максимальное сглаживание, в положении "Light" - минимальное сглаживание. Включать эту функцию я вам не рекомендую. Для подавления шумов написано много фильтров которые подключаются к программам Virtualdub и Avisynth. Они работают на много более качественно.

"Scene change threshold" - эта функция отлавливает порог изменения сцен, при котором нужно вставлять ключевой кадр. Как я уже говорил, кодер, при сравнении соседних кадров, разбивает их на текстуры и перемещаемые блоки. Если в предыдущем кадре не нашлось похожего блока, он регистрируется как новый блок. При поиске порога изменения сцен производится подсчёт количества этих блоков. Если их количество будет больше, чем выставлено в "Scene change threshold", то кадр будет закодирован как ключевой. Если выставить это значение слишком низким, то кодер будет часто отлавливать изменение сцен и сжимать кадры как ключевые, а это неблагоприятно скажется на размерах получаемого видео. Рекомендую ставить не менее 20%. Эта функция работает только если движок "Performance/Quality" будет выставлен в положение "Fastest" или "Standard". В положении "Slow" и "Slowest" работает собственный детектор сцен.

"Max key frame interval" - здесь можно выставить максимальное количество дельта кадров между ключевыми. Поясню, как это работает. Допустим, у нас идёт кодирование и после ключевого кадра подряд идут только дельта кадры. По прохождении количества кадров выставленного в "Max key frame interval" ключевой кадр будет выставлен автоматически. По умолчанию стоит 300, что соответствует 10-12 секундам, в зависимости от частоты кадров кодируемого материала. Я же рекомендую ставить 50-100, что соответствует 2-4 секунды, это несколько увеличивает размер конечного файла, но вместе с этим облегчает поиск нужного фрагмента, и улучшает качество (ведь в течение этого интервала кодек не показывает кадр целиком, а получает из ключевого, путём передачи изменений оного, при этом возможны любые искажения).

"Source Interlace" - В этом пункте определяется, какое видео будет у нас на входе и каким образом кодек должен обрабатывать это видео. Имеет 3 положения: "Encode as progressive" - на входе обычное прогрессивное видео и с ним ничего не делается кроме сжатия.

"Encode as interlaced" - на входе кодека чересстрочное видео. Для сжатия чересстрочного видео кодек включает сжатие по полям.

"Deinterlace all frames" - на входе кодека чересстрочное видео. Кодек конвертирует из чересстрочного видео в прогрессивное. Алгоритм работы в этом режиме неизвестен. Поэтому, включать этот режим для деинтнрлейса я бы не рекомендовал. Лучше пользоваться фильтрами VirtualDub или Avisynth.

При включении режима "Encode as interlaced" появляется ещё одна опция - "Top field first". Включать вам её или нет зависит от кодируемого материала. Если на входе кодера чересстрочный материал с первым верхним полем, то необходимо включить эту галочку. Для того, что бы определить, какого рода у вас материал на входе, нужно воспользоваться утилитой Avisynth.

Для этого, в любом текстовом редакторе пишем такой текст:

avisource("...путь...My_VHS.AVI")
AssumeTFF()
SeparateFields()

и сохраняем его с расширением AVS. Теперь, если у вас в системе установлен Avisynth, то после открытия этого скрипта в любом видео проигрывателе, получите картинку в 2 раза ниже, чем она есть на самом деле. Посмотрите внимательно на горизонтальные движения. Если они происходят без рывков, значит ваше видео "Top field first". Если же движения идут рывками, то ваше видео "Bottom field first" и для кодирования этого материала нужно снять галочку "Top field first".

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

 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
ИИ научили генерировать тысячи модификаций вирусов, которые легко обходят антивирусы 36 мин.
В Epic Games Store стартовала новая раздача Control — для тех, кто дважды не успел забрать в 2021 году 47 мин.
За 2024 год в Steam вышло на 30 % больше игр, чем за прошлый — это новый рекорд 2 ч.
«Яндекс» закрыл почти все международные стартапы в сфере ИИ 3 ч.
Создатели Escape from Tarkov приступили к тестированию временного решения проблем с подключением у игроков из России — некоторым уже помогло 3 ч.
Веб-поиск ChatGPT оказался беззащитен перед манипуляциями и обманом 5 ч.
Инвесторы готовы потратить $60 млрд на развитие ИИ в Юго-Восточной Азии, но местным стартапам достанутся крохи от общего пирога 5 ч.
Selectel объявил о спецпредложении на бесплатный перенос IT-инфраструктуры в облачные сервисы 6 ч.
Мошенники придумали, как обманывать нечистых на руку пользователей YouTube 7 ч.
На Открытой конференции ИСП РАН 2024 обсудили безопасность российского ПО и технологий искусственного интеллекта 7 ч.