Table of Contents

Class AOMAV1EncoderSettings

Namespace
VisioForge.Core.Types.X.VideoEncoders
Assembly
VisioForge.Core.dll

Configuration settings for AOM (Alliance for Open Media) AV1 encoder.

public class AOMAV1EncoderSettings : IAV1EncoderSettings, IVideoEncoder, IMediaBlockSettings

Inheritance

Implements

Inherited Members

Fields

Name

Gets the display name of this encoder.

public static string Name

Field Value

string

Properties

BufferInitialSize

Gets or sets the initial buffer size for rate control.

public TimeSpan BufferInitialSize { get; set; }

Property Value

TimeSpan

Remarks

Default is 4000 milliseconds.

BufferOptimalSize

Gets or sets the optimal buffer size for rate control.

public TimeSpan BufferOptimalSize { get; set; }

Property Value

TimeSpan

Remarks

Default is 5000 milliseconds.

BufferSize

Gets or sets the maximum buffer size for rate control.

public TimeSpan BufferSize { get; set; }

Property Value

TimeSpan

Remarks

Default is 6000 milliseconds.

CPUUsed

Gets or sets the CPU usage level for encoding speed/quality trade-off.

public int CPUUsed { get; set; }

Property Value

int

Remarks

A value greater than 0 will increase encoder speed at the expense of quality.

DropFrame

Gets or sets the temporal resampling configuration for frame dropping.

public uint DropFrame { get; set; }

Property Value

uint

Remarks

Drops frames as a strategy to meet target data rate. Set to 0 (default) to disable.

MaxQuantizer

Gets or sets the maximum quantizer value (worst quality).

public uint MaxQuantizer { get; set; }

Property Value

uint

Remarks

Higher values result in lower quality.

MinQuantizer

Gets or sets the minimum quantizer value (best quality).

public uint MinQuantizer { get; set; }

Property Value

uint

Remarks

Lower values result in higher quality.

OvershootPCT

Gets or sets the rate control adaptation overshoot percentage.

public uint OvershootPCT { get; set; }

Property Value

uint

Remarks

Controls how much the bitrate can exceed target. Default is 25%.

RateControl

Gets or sets the rate control algorithm indicating the end usage of this stream.

public AOMAV1EncoderEndUsageMode RateControl { get; set; }

Property Value

AOMAV1EncoderEndUsageMode

Remarks

Default is Variable Bit Rate (VBR).

ResizeDenominator

Gets or sets the frame resize denominator.

public uint ResizeDenominator { get; set; }

Property Value

uint

Remarks

Used with numerator of 8 to determine resize ratio. Default is 8 (no resize).

ResizeKeyFrameDenominator

Gets or sets the keyframe resize denominator.

public uint ResizeKeyFrameDenominator { get; set; }

Property Value

uint

Remarks

Used with numerator of 8 to determine keyframe resize ratio. Default is 8 (no resize).

ResizeMode

Gets or sets the frame resize mode.

public AOMAV1EncoderResizeMode ResizeMode { get; set; }

Property Value

AOMAV1EncoderResizeMode

Remarks

Default is None (no resizing).

SuperResDenominator

Gets or sets the frame super-resolution denominator.

public uint SuperResDenominator { get; set; }

Property Value

uint

Remarks

Used only by SUPERRES_FIXED mode. Default is 8 (no super-resolution).

SuperResKeyFrameDenominator

Gets or sets the keyframe super-resolution denominator.

public uint SuperResKeyFrameDenominator { get; set; }

Property Value

uint

Remarks

Default is 8 (no super-resolution).

SuperResKeyFrameQThreshold

Gets or sets the keyframe super-resolution quantizer index threshold.

public uint SuperResKeyFrameQThreshold { get; set; }

Property Value

uint

Remarks

Used only by SUPERRES_QTHRESH mode. Default is 63.

SuperResMode

Gets or sets the super-resolution mode.

public AOMAV1SuperResolutionMode SuperResMode { get; set; }

Property Value

AOMAV1SuperResolutionMode

Remarks

Default is None (super-resolution disabled).

SuperResQThreshold

Gets or sets the frame super-resolution quantizer index threshold.

public uint SuperResQThreshold { get; set; }

Property Value

uint

Remarks

Used only by SUPERRES_QTHRESH mode. Default is 63.

TargetBitrate

Gets or sets the target bitrate in kilobits per second.

public uint TargetBitrate { get; set; }

Property Value

uint

Remarks

Default is 256 Kbps.

Threads

Gets or sets the maximum number of threads to use for encoding.

public uint Threads { get; set; }

Property Value

uint

Remarks

Set to 0 to let the system determine the optimal number of threads. Default is 0.

TileColumns

Gets or sets the number of vertical tile columns for parallel encoding.

public uint TileColumns { get; set; }

Property Value

uint

Remarks

Partitions the frame into columns that can be encoded in parallel. Default is 0.

TileRows

Gets or sets the number of horizontal tile rows for parallel encoding.

public uint TileRows { get; set; }

Property Value

uint

Remarks

Partitions the frame into rows that can be encoded in parallel. Default is 0.

UndershootPCT

Gets or sets the rate control adaptation undershoot percentage.

public uint UndershootPCT { get; set; }

Property Value

uint

Remarks

Controls how much the bitrate can fall below target. Default is 25%.

UseRowMT

Gets or sets a value indicating whether row-based multi-threading is enabled.

public bool UseRowMT { get; set; }

Property Value

bool

Remarks

Improves encoding performance on multi-core systems. Default is true.

Methods

CreateBlock()

Creates a new AV1 encoder block with these settings.

public MediaBlock CreateBlock()

Returns

MediaBlock

A configured VisioForge.Core.MediaBlocks.MediaBlock instance for AV1 encoding.

GetEncoderType()

Gets the type of the encoder.

public AV1EncoderType GetEncoderType()

Returns

AV1EncoderType

The VisioForge.Core.Types.X.VideoEncoders.AV1EncoderType indicating this is an AOM encoder.

IsAvailable()

Determines whether this encoder is available.

public static bool IsAvailable()

Returns

bool

true if this encoder is available; otherwise, false.

ToString()

Returns a String that represents this instance.

public override string ToString()

Returns

string

A String that represents this instance.