Найти тему
Sandrix

Параметры AMF для OBS Studio c пояснениями

Оглавление

Дополнительные параметры кодировщика AMF на видеокартах Radeon, которые можно использовать в OBS Studio версии 28.0 и выше.

Я постарался предоставить понятное объяснение параметров и каким образом их следует указывать. В конце статьи добавлены новых функции PreAnalysis, которые были исправлены в драйверах Adrenalin Edition 23.2.1.

«Рекомендуется: По умолчанию» - означает, что эти параметры обычно не следует указывать, т.к. они и так работают по умолчанию. Изменяйте только в том случае, если хотите переопределить настройки энкодера.

Общее

Usage - Регулировка

Изменяет параметры работы кодировщика в зависимости от выбранного режима использования.

По умолчанию: Transcoding

Варианты: transcoding, ultralowlatency, lowlatency, webcam

Рекомендуется: По умолчанию

Пример использования: Usage=transcoding

Quality - Предустановка

В зависимости от выбранного пресета кодировщик используются больше или меньше алгоритмов для сжатия видео.

Пресет «Качество» предоставляет самое высокое качество, но при этом наиболее требовательный. При перегрузке кодировщика рекомендуются переключиться на пресет «Баланс».

По умолчанию: Quality

Варианты: speed, balanced, quality

Рекомендуется: По умолчанию

Пример использования: Quality=quality

Profile - Профиль

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

По умолчанию: High

Варианты: main, high, constrained_baseline, constrained_high

Рекомендуется: По умолчанию

Пример использования: Profile=high

ProfileLevel - Уровень

Уровень определяет определенные численные ограничения в рамках заданного профиля. Например, максимальное количество опорных кадров (0-16), максимальное разрешение, частота кадров и т.д.

Рекомендуется позволить кодировщику автоматически выбирать необходимый уровень в зависимости от параметров вывода.

По умолчанию: зависит от разрешения, частоты кадров и профиля.

Варианты: 10-62

Рекомендуется: По умолчанию

Пример использования: 42 (4.2)

MaxNumRefFrames - Максимальное количество опорных кадров

Ограничивает максимальное количество опорных кадров (0-16). Этот максимум также ограничен аппаратным обеспечением и уровнем.

Увеличение опорных кадров требует больше времени на кодирование, но потенциально обеспечивают более высокое сжатие.

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

По умолчанию: 4

Варианты: 0-16

Рекомендуется: По умолчанию

Пример использования: MaxNumRefFrames=4

Контроль скорости

RateControlPreanalysisEnable - Предварительный анализ управления скоростью

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

Опция увеличивает нагрузку на кодировщик примерно на 10%, поэтому на старых видеокартах рекомендуется отключить, чтобы избежать перегрузки кодировщика.

По умолчанию: 1

Варианты: 0 / 1

Рекомендуется: По умолчанию

Пример использования: RateControlPreanalysisEnable=1

EnforceHRD - Гипотетический эталонный декодер

Ограничивает изменения QP в изображении для удовлетворения требований HRD. Позволяет кодировщику соответствовать заданному битрейту при кодировании.

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: EnforceHRD=true

FillerDataEnable - Данные наполнителя

Опция полезна для строгого кодирования CBR, например, для прямой трансляции.

По умолчанию: false (true при CBR)

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: FillerDataEnable=true

VBVBufferSize - Размер буфера (в битах)

Размер буфера обычно следует указывать в 1.5-2 раза больше, чем заданный битрейт.

Рекомендуется: По умолчанию

Пример использования: VBVBufferSize=6000000 (6000 кбит/с)

InitialVBVBufferFullness - Исходное заполнение буфера

По умолчанию: 64 (100%)

Варианты: 0=0%, 64=100%

Рекомендуется: По умолчанию

Пример использования: InitialVBVBufferFullness=64

PeakBitrate - Пиковый битрейт (в битах)

Рекомендуется: По умолчанию

Пример использования: PeakBitrate=6000000 (6000 кбит/с)

MinQP

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

Простыми словами, параметр позволяет регулировать максимальное качество, например, в моментах когда камера неподвижна.

☝️ Следует использовать с осторожностью при CBR/VBR, чтобы не превысить рамки установленного битрейта.

По умолчанию: 18

Варианты: 0-51

Рекомендуется: По умолчанию

Пример использования: MinQP=18

MaxQP

Параметр отвечает за максимальную степень сжатия. Позволяет регулирует минимальное качество. Чем выше значение, тем хуже качество в динамике.

☝️ Следует использовать с осторожностью при CBR/VBR, чтобы не превысить рамки установленного битрейта.

По умолчанию: 46

Варианты: 0-51

Рекомендуется: По умолчанию

Пример использования: MaxQP=46

B-Frames

B-кадры и их функции в настоящее время требуют RDNA2 (RX 6000 и выше).

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

Обратите внимание на размер b-кадров (отмечены зеленым цветом), по сравнению с p-кадрами (синие) и i-кадрами (красные).
Обратите внимание на размер b-кадров (отмечены зеленым цветом), по сравнению с p-кадрами (синие) и i-кадрами (красные).

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

MaxConsecutiveBPictures

Регулирует максимальное количество последовательных b-кадров.

Вероятно, зависит от AdaptiveMiniGOP.

Варианты: 0-3

Рекомендуется: Зависит от использования

Пример использования: MaxConsecutiveBPictures=3

BPicturesPattern

Регулирует количество последовательных b-кадров.

Варианты: 0-3 (0=не использовать b-кадры)

Рекомендуется: 1 или 2

Пример использования: BPicturesPattern=1

AdaptiveMiniGOP

Включает адаптивные (динамические) B-кадры.

-3

По умолчанию: false

Варианты: true / false

Рекомендуется: false

Пример использования: AdaptiveMiniGOP=false

BReferenceEnable

Включить/выключить использование b-кадров в качестве опорных.

Опция судя по тестам не работает!

-4

По умолчанию: false

Варианты: true / false

Рекомендуется: true

Пример использования: BReferenceEnable=true

PSY

Опции помогаю избавиться от блочностей за счёт перераспределения битрейта при кодирования и/или изменения QP.

DeBlockingFilter

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: DeBlockingFilter=true

EnableVBAQ - адаптивное квантование

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

По умолчанию: true (кроме CQP)

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: EnableVBAQ=true

HighMotionQualityBoostEnable

Улучшает качество в динамичных фрагментах. Является эксклюзивной опцией для AMD Navi (RDNA) - RX 5000 серии и выше.

По умолчанию: false

Варианты: true / false

Рекомендуется: true

Пример использования: HighMotionQualityBoostEnable=true

Оценка движения

HalfPixel - Пол пикселя

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

QuarterPixel - Четверть пикселя

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

Pre-Analysis

PreAnalysis - это новые функции, которые были добавлены в OBS 28.0 и поддерживаются только H.264/AVC, на видеокартах RX 5000 серии и более старших моделях (RX 6000, 7000).

Опции можно считать экспериментальными и требует тщательного тестирования, т.к. долгое время не работали и были исправлены 14 февраля 2023 года, в драйверах
Adrenalin Edition 23.2.1.

Перечисленные ниже опции работаю только если EnablePreAnalysis=true

EnablePreAnalysis - Предугадывание

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

При включении PreAnalysis отключается VBAQ.
PreAnalysis совместим с RateControlPreanalysis, опции могут использоваться вместе.

По умолчанию: false

Варианты: true / false

Рекомендуется: Зависит от использования

Пример использования: EnablePreAnalysis=true

PASceneChangeDetectionEnable

Отключает адаптивные I-кадры

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: PASceneChangeDetectionEnable=true

PAFrameSadEnable

Алгоритм Frame SAD (сумма абсолютной разности)

По умолчанию: true

Варианты: true / false

Рекомендуется: По умолчанию

Пример использования: PAFrameSadEnable=true

PALookAheadBufferDepth

Количество буферизированных кадров для PreAnalysis. Не рекомендуется указывать значение 41, что может вызвать артефакты при кодировании.

По умолчанию: 0

Варианты: 0-41

Рекомендуется: 11

Пример использования: PALookAheadBufferDepth=true

PAPerceptualAQMode

Перцептивное адаптивное квантование. Плохо изучено, схож по работе со Spatial AQ.

PAPerceptualAQMode и PATemporalAQMode несовместимы и не могут работать одновременно.

По умолчанию: 0

Варианты: 0 / 1

Рекомендуется: Зависит от использования

Пример использования: PAPerceptualAQMode=1

PATemporalAQMode

Temporal AQ корректирует QP на основе временных характеристик последовательности. Он использует прогнозируемые кадры для захвата временных характеристик, в которых статика/малое движение или фон отличаются от областей с высоким движением. Области с высоким движением не очень чувствительны к человеческому глазу по сравнению с областями с низким движением. Temporal AQ использует этот факт и перераспределяет больше битов в статические или малоподвижные области.

PAPerceptualAQMode и PATemporalAQMode несовместимы и не могут работать одновременно.

Для работы PATemporalAQMode требуется указать значения PALookAheadBufferDepth 11, 21, 41, согласно документации.

По умолчанию: 0

Варианты: 0 / 2 ( 1=для неигровых приложений, 2
для игровых приложений)

Рекомендуется: Зависит от использования

Пример использования: PATemporalAQMode=2

PAHighMotionQualityBoostMode

То же, что и HighMotionQualityBoost, но использует PreAnalysis для более точной работы.

Опция плохо оптимизирована, потребляет большое количество ресурсов GPU, поэтому не рекомендуется использовать.

PAHighMotionQualityBoostMode и HighMotionQualityBoostMode несовместимы и не могут работать одновременно.

По умолчанию: 0

Варианты: 0 / 1

Рекомендуется: 0

Пример использования: PAHighMotionQualityBoostMode=1

PACAQStrength

Сила адаптивного квантования контента (CAQ)

По умолчанию: 1

Варианты: 0 / 2 (0=low, 1=med, 2=high)

Рекомендуется: 1

Пример использования: PACAQStrength=1