DVD Rip. Часть 2
Smart Bitrate Control - новый шаг в сжатии цифрового видео

Nandub - настройки

Львиная доля из богатства настроек SBC находится в меню Video - SBC Options. Но начинать работу с Nandub нужно с пункта BitRate Calculator... При его выборе откроется следующее окно:

В этом окне доступны следующие значения:

Bitrate: значение высчитанного битрейта. Высчитывается и автоматически подставляется в настройки SBC. Если Вы решили воспользоваться калькулятором, то это окно трогать не стоит.
Final size: Требуемый размер файла.
Количество частей - количество файлов заданного размера (например, на сколько CD планируется разбить готовый материал).
Кроме этого, есть раздел Audio, в котором доступны следующие опции:
Kbps: учитывает место требуемое под звук определённого битрейта.
Mb: учитывает место требуемое под звук определённого размера.
Get data from audio source - данные о месте требуемом под звук берутся из меню Audio.
Заполнив все необходимые поля остаётся нажать на кнопку Calculate, и требуемый битрейт будет высчитан исходя из выставленных значений и загруженного в Nandub видео.

Определившись с битрейтом, тем или иным способом, можно переходить к настройкам непосредственно SBC, пункт SBC Options... После выбора этого пункта откроется окно, разделённое на несколько закладок. От значений выставленных на этих закладках зависит качество и размер полученного файла. Первая закладка называется

DivX

На ней доступны следующие разделы

Codec Setup - этот раздел отвечает за базовые настройки кодека. Доступные настройки:

Divx - выбрав этот пункт, для кодирования вы будете использовать Divx кодек установленный в системе. Крайне рекомендуется.
Mpeg4v2 - выбрав этот пункт, для кодирования будете использовать оригинальный кодек от Microsoft. Качество полученного фильма будет ниже, чем с Divx.
Bitrate: битрейт в килобитах в секунду. Если вы воспользовались Bitrate calculator, то это значение уже должно стоять. Этот параметр непосредственно влияет на размер итогового файла, но имеет мало общего с конкретными значениями битрейта для каждого конкретного кадра, он просто берётся в качестве базового значения при работе. Поэтому не переоценивайте значение bitrate, если неправильно настроить всё остальное - потеряете всякий контроль над размером файла.
Keyframe interval - значение в секундах, определяющее когда надо вставить keyframe, если он не вставлен SCD. Счётчик секунд сбрасывается каждый раз, когда SCD вставляет keyframe. 10 - вполне приемлемое значение для этой функции.
Minimum allowed bitrate: минимально допустимый битрейт. Именно это значение определяет как будут выглядеть самые низкокачественные кадры в фильме. Проблема выбора стоит со всей остротой, чем это значение выше, тем лучше выглядят статичные и второстепенные сцены, но тем меньше места остаётся под динамичные сцены, где действительно нужен высокий битрейт. Таким образом, чем спокойнее фильм, тем больше можно его сделать, чем динамичнее, тем меньше. В любом случае, крайне не рекомендуется ставить меньше 300-350 для полнометражных фильмов на один CD.
Internal SDC - определяет настройку SCD (Scene Change Detection). Keyframe вставляется если изменилось большее количество ключевых блоков, чем указано. Чем меньше это значение, тем чаще будут вставляться keyframe. Значение 96% подходит для подавляющего большинства случаев.
Space KFs: значение в кадрах, которое по минимуму должно отделять соседние keyframe. 24 подходит в большинстве случаев.
Anti-shit =) - второй раздел закладки Divx. Отвечает за поиск битых кадров и кадров с артефактами изображения. Принцип работы прост. Каждый сжатый кадр разжимается и сравнивается с исходным. В результате получается значение количества dB, в интервале от 0 до 95. Доступные настройки:
Shit: значение, считающееся предельно допустимым. Кадр с коэффициентом ниже заданного считается испорченным и пережимается заново. Соответственно, если поставить слишком большое значение, Вы рискуете тем, что фильм никогда не закодится. Рекомендуемое значение этого параметра - 16. Если выставить 0, это отключит эту функцию, и несколько ускорит кодирование. Стоит попробовать с этого и начать, если ошибок кодека не будет, значит эта функция Вам не нужна.
Min quality: минимальное качество кадра. Если значение ниже чем Min quality, но выше чем Shit, значит кадр будет перекоден как дельта-кадр, но уже с более низким уровнем сжатия. Если поставить слишком много, это приведёт примерно к тому же, что и при выставлении слишком высокого минимального битрейта. Рекомендуемые значения 28-30. Если Вы уверены в настройках остальных параметров SBC, можете выставить значение 0, и отключить эту функцию, несколько ускорив процесс кодирования.
Motion modulation: определяет как модифицируются значения Shit и Min quality в зависимости от уровня движения (что это такое будет объяснено на следующей закладке). Высчитывается это по простой формуле: Shit=Shit-modulation*Shit*motion/300 (точно так и для Min quality). Соответственно, чем более динамичные сцены присутствуют в видеоматериале, тем выше должно быть это значение.

Bitrate Curve

С этой закладки вы можете контролировать как меняется битрейт в зависимости от сцены.

Stats file: - здесь можете (и должны) указать stats файл, который сгенерился во время первого прохода.
Motion based curve modulation: этот параметр определяет, насколько должен изменяться битрейт по сравнению с базовым, в зависимости от уровня движения. Если Вы решите воспользоваться этой функцией, то начинать эксперименты можно со значения 25, хотя конкретное значение зависит от используемого материала. Если окажется что в результате Вы никак не сможете уложиться в нужный размер, то отключите эту функцию (значение 0), и почитайте описание следующей закладки. Лично я обычно так и делаю.
Curve compression. Определяет в какую сторону насколько должен меняться битрейт в зависимости от сцены.
Symmetric: означает что битрейт меняется симметрично, насколько он может подняться на сценах с высоким уровнем движения, настолько же он может опуститься на сценах с низким уровнем движения. Обычно, это значение не приходится выставлять вручную, а достаточно нажать на кнопку Calc... и всё выставится автоматически в зависимости от значения Crosspoint, про которое я расскажу ниже. Значение должно быть 25-30% для полнометражного фильма на один CD, и 10-20% на 2 CD.
Asymmetric: как несложно догадаться, если отметить этот пункт, то битрейт не будет меняться симметрично.
low - определяет насколько будет меняться битрейт для медленных сцен (конкретное значение зависит от фильма, размера, разрешения и среднего битрейта. Эксперименты начните с 15%).
high - определяет насколько будет меняться битрейт для быстрых сцен (конкретное значение зависит от фильма, размера, разрешения и среднего битрейта. Эксперименты начните с 25%).
Luminance correction. Причина появления этого пункта в том, что кодеку сложно кодировать сцены с малым контрастом (то есть, когда вся сцена светлая, или вся тёмная). Поэтому во время генерации stats файла в него записывается значение "luma noise" (баланс яркости), который тем ниже, чем ниже контраст.
Enable - после включения этой функции, сцены с низким значением "luma noise" будут получать дополнительный битрейт при кодировании, что положительно скажется на их качестве.
Threshold: - предел. Определяет начиная с каких значений "luma noise" следует выделать дополнительный битрейт. Распределяется битрейт так: от нуля до половины значения threshold количество дополнительного битрейта плавно увеличивается до максимума, потом к полному threshold, плавно уменьшается до нуля. Рекомендуемое значение этого пункта - 10.
Gain (max): определяет максимальную величину на которую может быть поднят базовый битрейт в рамках luminance correction.
End credits позволяет сэкономить битрейт на заключительных титрах. Функция полезная, потому что в титрах изображение постоянно меняется, keyframe в них ставятся очень часто, поэтому места они занимают немало.
End credits start at frame: номер кадра начиная с которого идут титры. Побегайте слайдером по фильму в основном окне, что бы определить это значение. Не забудьте, только, удерживать Shift при быстрой промотке.
Bitrate: значение, до которого надо сбросить битрейт на титрах. Не ставьте меньше 100-150, а то рискуете не прочитать кто же в фильме снимался.
Раздел Filters. Определяет минимальное и максимальное значение битрейта, которых должен придерживаться кодек.
High-pass - минимальное значение. Обычно ставят порядка 270, но если Nandub насчитает что для сцены нужен такой битрейт, то он будет скорректирован в соответствии со значением минимально допустимого, в закладке DivX.
Low-pass - максимальное значение. Оптимальное значение для этого параметра напрямую зависит от разрешения, желаемого размера итогового файла и конкретного фильма. Обычно это 2500-3000 для фильмов на 1 CD, и вплоть до максимума (6000) для фильмов на 2 CD.
Bitrate redistribution. Определяет как будет делиться битрейт.
Bias - всем поровну, определённое количество бит на определённое количество кадров. Подходит для спокойных фильмов, где мало действия и перемены обстановки.
Proportional - чем лучше сжимается кадр, тем меньше бит ему достаётся и, соответственно, наоборот. Может привести к ухудшению качества в спокойных сценах.
Smother. Сглаживает изменение битрейта, не даёт резким изменениям происходить очень часто. Рекомендуемое значение 3-5%.

Раздел Motion.

С этой закладки контролируется, как Nandub определяет уровень движения для каждого кадра, что непосредственно влияет на работу настрое в предыдущей закладке.

Раздел Motion curve parameters.

Span: определяет сколько кадров вперёд и назад должен сравнивать Nandub при определении уровня движения для конкретного кадра. Оптимальное значение зависит от фильма, но 8 хорошее значение что бы начать.
Sensitivity: определяет максимальное значение ключевых блоков в дельта кадре, которые должны быть изменены что бы уровень движения считался максимальным (300). Значение 10, которое обычно стоит здесь, максимальное, так что нет никакого смысла его увеличивать. Уменьшить его(и увеличить чувствительность) можно, если Nandub не даёт достаточно битрейта на быстрых сценах (бывает в фильмах где много дерутся руками, ногами, и подручными предметами).
Раздел Motion based DLL-switch определяет когда надо переключаться с Low motion кодека на High motiоn. На самом деле, это один и тот же кодек, только битрейт и коэффициент сжатия у них по разному меняется. Nandub для того и задуман, что бы правильно битрейт и коэффициент сжатия менять, поэтому можно использовать только один Low motion кодек. Если вам покажется что LM не даёт достаточно битрейта, увеличьте значение Low-pass фильтра в предыдущей закладке.
Switch to FM DLL when motion is over определяет, при каком уровне движения надо переключаться на Fast motion. Ставьте 300, и этого не произойдёт никогда.
Switch back to LM DLL when motion under определяет на каком уровне движения надо переключаться обратно в Low motion. Если предыдущий пункт стоит в 300, то значение этого ни на что не влияет.


Раздел Motion-based crispness modulation. Управляет настройкой кодека отвечающей за "резкость" в зависимости от уровня движения.

Crispness modulation определяет на сколько кодек должен уменьшить значение Crispness при максимальном уровне движения (когда уровень движения минимален, это значение 100). Значение 30 достаточно хорошо для большинства случаев, но если у Вас плохой исходник (много шумов), то его надо увеличить.
Enable Bit Reservoir modulation если не вдаваться в детали, эта опция позволяет Nandub-у отбирать битрейт из динамичных сцен и добавлять в нединамичные. Или не добавлять. Сделано это для того, что бы лучше контролировать размер финального файла. Обратным эффектом является ухудшение качества изображения. Если Вы не никак не можете уложить свой фильм в заданный размер (например на один CD), попробуйте включить эту опцию. При этом не забудьте выключить Motion based curve modulation в предыдущей закладке.

Gauge

Назначение этой закладки - дать столько контроля над размером итогового файла, сколько это возможно, и при этом предотвращает выпадение кадров.

Раздел Global deviation compensation. Определяет на сколько кодек должен заглядывать назад (а по моему и вперёд тоже), что бы определять а не слишком ли много битрейта используется. Ведь что бы добавить битрейта в одной сцене, надо убрать его в другой, иначе размер файла станет неконтролируемым.

Playback delay - время в секундах, делает именно то, что написано парой строк выше. Значение 45, выставленное по умолчанию достаточно хорошо подходит для большинства случаев. Однако, если фильм имеет много длинных динамичных сцен, может понадобиться увеличить это значение. Максимальное работающее значение - 120 секунд.
Раздел Gauge. Значения выставленные здесь определяют, сколько битов можно взять "про запас" на сценах что это позволяют, и сколько из этого "запаса" можно использовать на сценах которые в этом нуждаются.
Min: значение до которого может опуститься использование битов. Если выставить слишком мало, получите выпавшие кадры, если слишком много, получите файл слишком большого размера. Рекомендуемые значения 30 для фильмов на 1СD и 40 на 2CD. Если всё равно не влазит, можете попробовать уменьшить значение.
Start: Начальное значение. По умолчанию стоит 35, можно так и оставить.
Max: значение, до которого может подняться использование битов. Для фильмов на 1CD хороши 70-80, на 2CD можете поднять до 100. Как и в случае с минимальным значением, если не удаётся уложиться в нужный размер, можно попробовать уменьшить и это значение.
Раздел Hacks. Здесь содержаться пара настроек воздействие которых на кодек иначе как хаком и не назовёшь.
KF boost - добавляет указанное значение битов к "запасу" битрейта после каждого ключевого кадра. Может немного повысить качество фильма при увеличении размера. К использованию не рекомендуется, но если всё-таки решитесь, не ставьте это значение выше 5%
Freeze - заставляет кодек верить что "запас" битов всегда полон. Имеет смысл использовать только во время первого прохода, когда генерится файл статистики. Когда кодится фильм, использование этой функции приведёт к неоправданно высокому размеру файла.

Compression levels

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

Доступных настроек немного

DRF - Detail Removal Factor. Этой опцией настраивается уровень сжатия сразу для всего фильма. Многие этим и ограничиваются, выставляя его 2-8 для фильмов на 1 CD, и 2-5 для фильмов на 2 CD. Конечно же, много зависит от качества исходника, если он очень "шумный" и плохо поддаётся сжатию то, возможно, эти значения придётся увеличить, что бы выдержать требуемый размер файла.
Кроме этого есть пять граф, где можно настроить уровень сжатия в зависимости от уровня движения. Как я уже говорил, многие предпочитают выставить значения when motion over 300 для всех граф, и таким образом полностью отключить эту возможность. Если всё-таки решите воспользоваться ей, то оптимальные значения придётся подбирать самостоятельно, каждый раз, в зависимости от исходного материала. Общая рекомендация такова - чем выше уровень движения, тем более высокий уровень сжатия можно поставить. Ведь чем быстрее движется изображение, тем сложнее заметить артефакты сжатия. И, соответственно, наоборот.
Keyframes quality: определяет уровень сжатия для ключевых кадров. Так как от качества ключевых кадров зависит очень много в качестве готового фильма, то хорошей идеей будет изменить это значения с 4, что стоит по умолчанию, до минимальных 2.
На этом заканчиваются настройки SBC. Но, радоваться ещё рано, перед тем как перейти к кодированию, есть ещё одно окно, которое требует вашего внимания. Находится оно в Options - Preferences... Из него на процесс кодирования влияют две закладки:

Scene

Эта закладка управляет механизмом Scene Change Detection, и отвечает за то, как вставляются ключевые кадры. Основан он на смене параметра motion, и обычно советуется оставить значения по умолчанию, 206 и 64. Но, возможно вы захотите воспользоваться альтернативной методикой. Для этого надо отметить чекбокс Use Alternative и выставить Multiplier. Альтернативная методика работает на смене контраста, а не на уровня движения, что часто даёт лучшие результаты. Хорошее значения 35, но для тёмных фильмов можно выставить и меньше, 30-33.

SBC

Это последняя закладка, и вообще последнее место, которому нам надо уделить внимание прежде чем Nandub будет полностью настроен, и можно приступать к кодированию. На этой закладке доступна только одна функция - значение Crosspoint. Эта цифра используется при расчете значения Curve compression, что упоминалось выше. До сих пор у народа не сформировалось окончательное мнение, каким именно должно быть это значение. Поэтому используйте 250-280 для фильмов на 1 CD и 350-460 для фильмов на 2 CD, как значения хорошо себя зарекомендовавшие на практике.

Кодирование в Nandub


Содержание:
* Часть 2. Smart Bitrate Control - новый шаг в сжатии цифрового видео
* Часть 2. Nandub - настройки
* Часть 2. Кодирование в Nandub
* Часть 3. DivХ version 4.0 beta