Videorip.info

Учимся кодировать видео и делимся опытом

Настройки кодека x264 в MeGUI, Presets (пресеты)

Содержание материала












Вкладка Frame-type

Frame-Type

H.264 Features:

Deblocking

Использование фильтра подавления блоков с параметрами - alpha (сила подавления блоков):beta (точность определения блоков). При кодировании изображение разбивается на блоки размерами 8х8 пикселей и каждый такой блок кодируется отдельно. При недостаточном битрейте, эти блоки становятся заметными. Включение данной опции поможет решить проблему.

Рекомендации: Параметр "alpha" рекомендуется выбрать от -3 до 3. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно чёткой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Параметр "beta" рекомендуется выбирать от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте меньшие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Сила деблокинга вычисляется для каждого макроблока, исходя из квантизера для него и близлежащих макроблоков. Альфа определяет: является ли приграничный квадрат блочным или же на самом деле это деталь. Это похоже на порог. Бета так же похожа на порог, но используется для того, чтобы убедиться в однородности картинки с обеих приграничных сторон и, тем самым, отделить детали от блочности. Когда определена блочность, альфа решает, какую силу использовать (максимально допустимое изменение пикселя). Бета немного изменяет силу, если блок однородный. Сила деблокинга: Порог деблокинга. Порог деблокинга устанавливает жёсткость отбора блочности фильтром. Сила деблокинга регулирует, как сильно определённые блоки будут смягчены. Значения по умолчанию сочетают аккуратность удаления блочности и сохранение деталей. Значения должны лежать в диапазоне от -3 до 3 (чем ниже значения, тем меньше устраняется блочность. Отрицательные значения не означают, что блочность оставляется).
Примечание: Слишком высокие значения дадут потерю многих деталей и текстур или смазывание. Установка слишком низких значений оставит резкие края и "москитный шум" (mosquito noise). Должна быть положительная взаимосвязь между двумя коэффициентами деблокинга (желательно, чтобы обе цифры были отрицательными или положительными). Если Вы увеличиваете силу, то должны увеличить и порог
В MediaInfo: deblock=1:<integer>:<integer>

Deblocking Strength

Сила подавления блоков, параметр альфа. Описание выше.

Deblocking Threshold

Точность определения блоков, параметр бета. Описание выше.

CABAC

CABAC (Context-Adaptive Binary Arithmetic Coding / Контекстно-Адаптивное Двоичное Арифметическое Кодирование) - это умная техника сжатия без потерь. Если эту опцию отключить - энкодер начнет использовать CAVLC (Контекстно-Адаптивное Неравномерное Кодирование).

Рекомендации: Для карманных устройств(КПК, КМК и смартфонов) лучше использовать CAVLC. Так как их мощности не хватит что бы справится с CABAC.
Примечание: CABAC дает сжатие, приблизительно, на 10-20% больше, по сравнению с CAVLC.
CABAC использует больше процессорного времени для кодирования и декодирования.
В MediaInfo: cabac=0..1

GOP Size:

Maximum GOP Size

Максимальный интервал между ключевыми/IDR кадрами. Этот параметр контролирует количество кадров между ключевыми, и если по достижению придела ключевой кадр не наступил - принудительно его ставит. Стандартный размер GOP'а динамически вычисляется во время кодирования для максимального сжатия.
IDR(ключевые) кадры - это так называемые кадры-разделители. Кадры, находящиеся в промежутке между двумя ключевыми кадрами не могут ссылаться на кадры, вне этого промежутка. Также, сами ключевые кадры являются I-кадрами, так что они не могу использоваться как референсные. По этому они могут использоваться в качестве контрольных точек в видеопотоке.

Примечание: Влияет на перемотку видео в плеере. Если значения очень большие, то при перемотке(прокрутке), не по ключевым кадрам, видео в плеере будет немного притормаживать. Так как декодеру придется отрендерить все кадры начиная с ближайшего ключевого и до выбранного пользователем. Перемотка не по ключевым кадрам поддерживается на уровне плеера, кодека.
Рекомендации
: Значение по умолчанию применимо в большинстве случаев. Если Вы хотите использовать собственное значение, используйте следующую формулу: fps*10 (значение должно быть целым числом, кратным 10-и). Если Вы кодируете для Blu-ray или потокового видео, то возможно, Вам придется использовать значения, равные частоте кадров итогового видео. Большие значения полезны только для статичного видео.
То есть для частоты кадров в 25 нужно выбирать 250, для 23,976 - 240 и для 29,970 - 300.
В MediaInfo: keyint=<integer>

Minimum GOP Size

Минимальное расстояние между ключевыми (I) кадрами. Минимальный размер группы.
Устанавливает минимальный размер группы картинок - GOP'а. Макроблоки в картинке одного GOP'а не могут быть связанными (референсами) с макроблоками картинки из другого GOP'а, с помощью начального кадра этой группы (IDR кадров) выполняется поиск по фильму. Размер GOP'а динамически вычисляется во время кодирования для максимального сжатия, хотя маленький GOP может обеспечить лучшую передачу динамичных сцен, но это приведёт к излишней трате битрейта.
Максимально значение не должно превышать: keyint/2+1.

Open GOP

Open-GOP(Group Of Pictures) - техника увеличивающая эффективность кодирования. По сути, open-gop запрещает трансформацию B-кадра в P-кадр, если текущий кадр должен быть ключевым, исходя из значения --keyint, но новая сцена еще не началась. Это позволяет уменьшить излишне большое количество ключевых кадров и дает меньший битрейт, и соответственно более высокую степень сжатия.

Рекомендации: Полезно, если Вы используете низкие значения --keyint.
Примечание
: Некоторые декодеры не поддерживают open-gop, по этому эта опция не включена по умолчанию.
В MediaInfo: open_gop=<integer>

Slicing:

Nb of slices by Frame

Указываем количество частей (квадратов), на которые будет разбит кадр.

Рекомендации: Если Вы кодируете Blu-ray - используйте значение 4. В противном случае вообще не используйте эту опцию. Разве что Вы точно знаете что она вам нужна.

Max size (in bytes)

Задаем максимальное размер slice в байтах.

Примечание: На данные момент конфликтует с --tff, --bff.

Max size (in mbs)

Задаем максимальный размер slice в макроблоках.

Примечание: На данные момент конфликтует с --tff, --bff

B-Frames:

Weighted Prediction for B-Frames

Позволяет "взвешивать" ссылки на B-кадры. Управляя, таким образом, тем, на сколько каждая ссылка будет влиять на предполагаемое изображение. Эта опция отключает данную возможность.

В MediaInfo: weightb=<integer>

Number of B-frames

Количество последовательных B-кадров между I- и P- кадрами. B-кадры – это кадры, в которых закодированы изменения не только от предыдущих кадров, но и от последующих. Имеют еще большую степень сжатия, чем P-кадры, но также и наихудшее качество. B-кадры подобны P-кадрам, кроме того, они могут использовать предсказание движения от будущих кадров также. Это может привести к значительному улучшению степени сжатия.

Рекомендации: Оптимальные значения: 2..6.
Если Вы используете --b-adapt 2, то можно смело задавать --bframes 16. Это самый простой способ, так как выбор оптимального значения падает на енкодер.
Оптимальное значение для конкретного видео можно получить путем чтения статистики первого прохода.
Примечание: При высоких значениях, больших чем необходимо, кодирование может быть значительно замедленно, без выйграша в качестве. Также большое количество В-кадров затрудняет декодирование.
В MediaInfo: bframes=<integer>

B-frames bias

Контролирует количество B-кадров, которые будут использованы вместо P-кадров.

Рекомендации: Используйте, только если считаете что сможете добиться лучшего контроля битрейта, чем сам x264.
Примечание: Значения выше 0 увеличивают вероятность использования В-кадров, а значения ниже 0 - уменьшают. Значения равные 100/-100 гарантируют/не гарантируют что каждый Р-кадр будет преобразован. Для этого используйте --b-adapt 0.
В MediaInfo: b_bias=<integer>

Adaptive B-Frames

Позволяет x264 адаптивно решать, где будут использоваться B-кадры, уменьшая количество B-кадров там, где это не нужно.

Рекомендации: При высоком значении --bframes лучше задавать значение 2.
Настройки
:
  0 - полностью отключить
  1 - "быстрый" алгоритм. Этот метод позволяет использовать --bframes 16
  2 - оптимальный алгоритм, медленнее предыдущего
Примечание: В многопроходном кодировании эта опция необходима только для первого прохода, где типы кадров определены.
В MediaInfo: b_adapt=<integer>

B-Pyramid

Позволяет B-кадрам ссылаться на другие В-кадры, тем самым увеличивая эффективность использования 2-х или более B-кадров.

Типы:
  none - запрещает использовать В-кадры как референсные.
  strict - разрешают по 1-му референсному В-кадру на каждый minigop (соблюдает ограничения стандарта Blu-ray).
  normal - разрешает множественное использование референсных В-каров на каждый minigop.
Примечание: Без этого параметра, В-кадры могут ссылаться только на I- или P-кадры. Хотя I/P-кадры и более ценны, из-за их более высокого качества, B-кадры также могут быть полезными.
Необходимо значение --bframes выше 2-х. Немного замедляет кодирование. При кодировании для Blu-ray не используйте normal.
В MediaInfo: b_pyramid=<integer>

Other:

Number of Reference Frames

Параметр задает количество используемых рефернсных кадров. Определяет, сколько предыдущих кадров может быть связано (заимствование макроблоков) с P- или B-кадрами.

Рекомендации: Приблизительно 4-6. Большие значения могут быть полезны для анимации, аниме, скринкастов и другого "статичного" видео.
Примечание: При 5-ти и более референсных кадрах, качество, обычно, повышается незначительно.
Кроме того, 4 - максимальное значение для 1080p, а 9 - максимальное для 720p, придерживаясь спецификации Level 4.1. Это самый высокий уровень, поддерживаемый в большинстве бытовой электроники, которая поддерживают воспроизведение H.264, включая также Xbox 360 и Playstation 3.
Чем больше референсных кадров, тем медленнее кодирование.
В MediaInfo: ref=<integer>

Number of Extra I-Frames

Этот параметр определяет на сколько часто будут использоваться дополнительные I-кадры. x264 высчитывает метрику каждого кадра, что бы определить насколько он отличается от предыдущего. Если полученное значение меньше чем установлено для scenecut, то энкодер помещает в этом месте I-кадр, но только если последний ключевой кадр был не раньше чем --min-keyint. Если значение выше, то вставляет ключевой/IDR кадр. Полезность определения смены сцен заключается в оптимальной расстановке I-кадров в местах резкой смены сцен. Это повышает качество, но слишком частая смена приведёт к напрасной трате битрейта.

Примечание: Значение "0" соответствует отключению опции Adaptive I-Frame Decision.
В MediaInfo: scenecut=<integer>

P-frame Weighted Prediration

Взвешенное предсказание яркости для P-кадров, которое улучшает затухания и градиенты цвета (небо и т. п.).

Варианты:
  Disabled - отключено
  Blind - оценка затуханий
  Smart - оценка затуханий и поиск референсных дубликатов
В MediaInfo: weightp=<integer>

Interlaced Mode

Включаем череcстрочное кодирование.

Варианты:
  none - отключено
  TFF - включено, первое поле - верхнее
  BFF - включено, перове поле - нижнее

Рекомендации: Чересстрочное кодирование необходимо только для чересстрочных дисплеев.
Примечание: x264 использует для череcстрочного кодирования MBAFF, и это намного хуже прогрессивного кодирования.
В MediaInfo: interlaced=1

Pulldown

Выбираем пресет софт-телесина для входного видео. Телесин - это способ преобразования видео в телевизионный формат. То есть частота исходного видео подгоняется под частоту телевещания (50Гц - PAL, 60Гц - NTSC), при этом возможно незначительное ускорение видео. Данный параметр задает тип исходного преобразования, для выполнения обратного.

Пресеты: none, 22, 32, 64, double, triple, euro (требует crf входное видео).
Примечание: использование любого пресета, кроме none, подразумевает использование --pic-struct.
В MediaInfo: Неизвестно

Adaptive I-Frame Decision

Полное отключение адаптивных I-кадров. 

Обновлено 05.09.2011 17:48