Table of Contents

Class QSVH264EncoderPage

Namespace
VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages
Assembly
VisioForge.Core.dll

Configuration page for the Intel Quick Sync Video (QSV) H.264 hardware encoder.

public class QSVH264EncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnector

Inheritance

Implements

Inherited Members

Remarks

The QSV H.264 encoder leverages Intel's integrated graphics hardware to provide high-performance H.264/AVC video encoding with minimal CPU usage. Quick Sync Video is Intel's dedicated media processing technology built into Intel processors with integrated graphics.

Key features of the QSV H.264 encoder: - Hardware-accelerated encoding using Intel GPU - Multiple rate control modes including CQP, CBR, VBR, AVBR, and LA (lookahead) variants - Support for all H.264 profiles (Baseline, Main, High) - Low latency mode for real-time streaming - Per-frame type QP control (I, P, B frames) - CABAC entropy coding support - Efficient power consumption compared to CPU encoding

Rate control modes: - CQP: Constant Quantization Parameter for consistent quality - CBR: Constant Bitrate for streaming with fixed bandwidth - VBR: Variable Bitrate for optimal quality/size balance - AVBR: Average Variable Bitrate with better rate control - ICQ/LA_ICQ: Intelligent Constant Quality modes - LA: Lookahead modes for improved quality and rate control

Hardware requirements: - Intel processor with HD Graphics 2000 or newer - Intel Media SDK or oneVPL runtime installed - Sufficient system memory for encoding resolution

Constructors

QSVH264EncoderPage()

Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.QSVH264EncoderPage class.

public QSVH264EncoderPage()

Properties

Bitrate

Gets or sets the target bitrate for video encoding in kilobits per second.

public uint Bitrate { get; set; }

Property Value

uint

CABAC

Gets or sets a value indicating whether CABAC entropy coding is enabled.

public bool CABAC { get; set; }

Property Value

bool

GOPSize

Gets or sets the Group of Pictures size defining keyframe interval.

public uint GOPSize { get; set; }

Property Value

uint

Level

Gets or sets the profile.

public QSVH264EncLevel Level { get; set; }

Property Value

QSVH264EncLevel

LevelStr

Gets or sets the level (as string).

public string LevelStr { get; set; }

Property Value

string

Levels

Gets or sets the levels.

public ObservableCollection<string> Levels { get; set; }

Property Value

ObservableCollection<string>

LowLatency

Gets or sets a value indicating whether low latency mode is enabled for real-time encoding.

public bool LowLatency { get; set; }

Property Value

bool

MaxBitrate

Gets or sets the maximum bitrate limit for variable bitrate modes.

public uint MaxBitrate { get; set; }

Property Value

uint

MaxQPB

Gets or sets the maximum Quantization Parameter allowed for B-frames.

public double MaxQPB { get; set; }

Property Value

double

MaxQPI

Gets or sets the maximum Quantization Parameter allowed for I-frames.

public double MaxQPI { get; set; }

Property Value

double

MaxQPP

Gets or sets the maximum Quantization Parameter allowed for P-frames.

public double MaxQPP { get; set; }

Property Value

double

MinQPB

Gets or sets the minimum Quantization Parameter allowed for B-frames.

public double MinQPB { get; set; }

Property Value

double

MinQPI

Gets or sets the minimum Quantization Parameter allowed for I-frames.

public double MinQPI { get; set; }

Property Value

double

MinQPP

Gets or sets the minimum Quantization Parameter allowed for P-frames.

public double MinQPP { get; set; }

Property Value

double

Profile

Gets or sets the H.264 profile determining feature set and compatibility.

public QSVH264EncProfile Profile { get; set; }

Property Value

QSVH264EncProfile

ProfileStr

Gets or sets the coder mode (as string).

public string ProfileStr { get; set; }

Property Value

string

Profiles

Gets or sets the profiles.

public ObservableCollection<string> Profiles { get; set; }

Property Value

ObservableCollection<string>

QPB

Gets or sets the Quantization Parameter for B-frames (bidirectional frames).

public double QPB { get; set; }

Property Value

double

QPI

Gets or sets the Quantization Parameter for I-frames (keyframes).

public double QPI { get; set; }

Property Value

double

QPP

Gets or sets the Quantization Parameter for P-frames (predicted frames).

public double QPP { get; set; }

Property Value

double

RateControl

Gets or sets the rate control algorithm for bitrate management.

public QSVH264EncRateControl RateControl { get; set; }

Property Value

QSVH264EncRateControl

RateControlModes

Gets or sets the rate control mode list.

public ObservableCollection<string> RateControlModes { get; set; }

Property Value

ObservableCollection<string>

RateControlStr

Gets or sets the rate control (as string).

public string RateControlStr { get; set; }

Property Value

string

Methods

Fill(ref QSVH264EncoderSettings)

Fills the provided settings object with current values from all UI controls.

public void Fill(ref QSVH264EncoderSettings settings)

Parameters

settings QSVH264EncoderSettings

The QSV H.264 encoder settings object to populate with the current configuration from the UI.

GetPageType()

Gets the type of encoder settings this page configures.

public Type GetPageType()

Returns

Type

The Type object representing QSVH264EncoderSettings.

Init(QSVH264EncoderSettings)

Initializes the encoder page with existing QSV H.264 encoder settings.

public void Init(QSVH264EncoderSettings settings)

Parameters

settings QSVH264EncoderSettings

The QSV H.264 encoder settings to load, including rate control, quality parameters, and encoding features.

InitializeComponent()

InitializeComponent

public void InitializeComponent()

SetProperty<T>(ref T, T, string)

Sets the property.

protected bool SetProperty<T>(ref T field, T newValue, string propertyName = null)

Parameters

field T

The field.

newValue T

The new value.

propertyName string

Name of the property.

Returns

bool

true if successful, false otherwise.

Type Parameters

T

Type.

PropertyChanged

Property changed event.

public event PropertyChangedEventHandler PropertyChanged

Event Type

PropertyChangedEventHandler