Дополнительные параметры кодировщика 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-кадров крайне рекомендуется, особенно при ограниченном битрейте, но их не должно быть слишком много, т.к они уязвимы к артефактам в динамичных фрагментах видео.
MaxConsecutiveBPictures
Регулирует максимальное количество последовательных b-кадров.
Вероятно, зависит от AdaptiveMiniGOP.
Варианты: 0-3
Рекомендуется: Зависит от использования
Пример использования: MaxConsecutiveBPictures=3
BPicturesPattern
Регулирует количество последовательных b-кадров.
Варианты: 0-3 (0=не использовать b-кадры)
Рекомендуется: 1 или 2
Пример использования: BPicturesPattern=1
AdaptiveMiniGOP
Включает адаптивные (динамические) B-кадры.
По умолчанию: false
Варианты: true / false
Рекомендуется: false
Пример использования: AdaptiveMiniGOP=false
BReferenceEnable
Включить/выключить использование b-кадров в качестве опорных.
Опция судя по тестам не работает!
По умолчанию: 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