Expand description
AV1 encoder tuning adapter.
Translates a single backend-agnostic perceptual quality target into per-encoder parameters so identical inputs yield visually consistent output across rav1e, NVENC AV1, and future backends (SVT-AV1, AMF, QSV).
See docs/av1-tuning-research.md for the source tables and
docs/av1-tuning-methodology.md for how to re-calibrate when a new
encoder lands.
§Design
The user picks two things:
- A
QualityTarget— perceptual goal expressed in VMAF/SSIMULACRA2 bands, not encoder-native CRF. Every backend must reach roughly the same VMAF for a given target (±2 VMAF band). - A
SpeedTier— how much wallclock to spend getting there. Maps to encoder-native speed presets.
The adapter also takes (width, height) because tile grid and
lookahead sizing depend on frame size.
Structs§
- AmfAv1
Params - Concrete parameters for AMD AMF AV1 (VCN on RDNA3+).
- Nvenc
Av1Params - Concrete parameters for NVENC AV1 (NV_ENC_CONFIG + NV_ENC_RC_PARAMS).
- QsvAv1
Params - Concrete parameters for Intel QSV AV1 (oneVPL on Arc / Meteor Lake+).
- Rav1e
Params - Concrete parameters for rav1e’s
EncoderConfig.
Enums§
- AmfQuality
Preset - AMF AV1 quality presets. Values match
AMF_VIDEO_ENCODER_AV1_QUALITY_PRESET_*constants from the GPUOpen AMF wiki. Lower = better quality / more wall-clock. The transcode service never picksSpeed(same rationale as NVENC: no low-latency presets in this service — see research §2.4). - AmfRate
Control - AMF AV1 rate control modes actually used by this service.
Values match
AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_*. - Nvenc
Rate Control - NVENC rate control modes actually used by this service. The numeric
value matches the SDK’s
NV_ENC_PARAMS_RC_MODE. - QsvRate
Control - QSV AV1 rate control mode values match
MFX_RATECONTROL_*inoneVPL/include/vpl/mfxstructs.h. - Quality
Target - A single perceptual quality target, backend-agnostic.
- Speed
Tier - User-facing speed tier — maps to encoder-native speed presets.
Constants§
- MFX_
CODINGOPTION_ OFF - oneVPL tri-state option values (from
MFX_CODINGOPTION_*). Used forLowPowerand a handful of othermfxU16toggles. - MFX_
CODINGOPTION_ ON - Not currently used but named so the value shows up next to
OFFwhenever a future code path wants explicit on-switching. - NVENC_
TUNING_ HIGH_ QUALITY - SDK constant
NV_ENC_TUNING_INFO_HIGH_QUALITY = 1.
Functions§
- amf_
av1_ params - Derive AMD AMF AV1 params for a given quality target + speed tier + resolution.
- libaom_
cq_ for_ target - libaom
cq-levelthat corresponds to a given QualityTarget. libaom is the cross-encoder reference: we equalize other encoders to libaom’s VMAF at each CQ. - nvenc_
av1_ params - Derive NVENC AV1 params for a given quality target + speed tier + resolution.
- qsv_
av1_ params - Derive Intel QSV AV1 params for a given quality target + speed tier + resolution.
- rav1e_
params - Derive rav1e params for a given quality target + speed tier + resolution.