Table of Contents

Class QSVHEVCEncoderPage

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

Configuration page for the Intel Quick Sync Video (QSV) HEVC/H.265 hardware encoder.

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

Inheritance

Implements

Inherited Members

Remarks

The QSV HEVC encoder provides hardware-accelerated H.265/HEVC video encoding using Intel's integrated graphics processors. HEVC offers approximately 50% better compression efficiency compared to H.264, making it ideal for 4K video and bandwidth-constrained streaming scenarios.

Key features of the QSV HEVC encoder: - Hardware acceleration on Intel 6th generation (Skylake) processors and newer - Support for Main and Main10 profiles (8-bit and 10-bit encoding) - Multiple rate control modes including CQP, CBR, VBR, and ICQ - Per-frame type quantization control - Low latency mode for real-time applications - Efficient encoding for 4K and high-resolution content - Power-efficient encoding using dedicated hardware

Rate control modes: - CQP: Constant QP for predictable quality - CBR: Constant bitrate for streaming - VBR: Variable bitrate for storage - AVBR: Average VBR with better stability - ICQ: Intelligent constant quality - QVBR: Quality-defined VBR mode

Hardware requirements: - Intel 6th Gen Core processors (Skylake) or newer for HEVC encoding - Intel Graphics driver with HEVC support - Intel Media SDK or oneVPL runtime

Constructors

QSVHEVCEncoderPage()

Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.QSVHEVCEncoderPage class. Sets up the UI components and populates rate control and profile options.

public QSVHEVCEncoderPage()

Properties

Bitrate

Gets or sets the target bitrate for encoding in kilobits per second (Kbps).

public uint Bitrate { get; set; }

Property Value

uint

GOPSize

Gets or sets the Group of Pictures (GOP) size in frames.

public uint GOPSize { get; set; }

Property Value

uint

LowLatency

Gets or sets a value indicating whether low latency mode is enabled.

public bool LowLatency { get; set; }

Property Value

bool

MaxBitrate

Gets or sets the maximum bitrate for variable bitrate modes in kilobits per second (Kbps).

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 HEVC encoding profile.

public QSVHEVCEncProfile Profile { get; set; }

Property Value

QSVHEVCEncProfile

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 predicted 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 mode for encoding.

public QSVHEVCEncRateControl RateControl { get; set; }

Property Value

QSVHEVCEncRateControl

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 QSVHEVCEncoderSettings)

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

public void Fill(ref QSVHEVCEncoderSettings settings)

Parameters

settings QSVHEVCEncoderSettings

The settings object to populate with current UI values.

GetPageType()

Gets the encoder settings type associated with this configuration page.

public Type GetPageType()

Returns

Type

The VisioForge.Core.Types.X.VideoEncoders.QSVHEVCEncoderSettings type.

Init(QSVHEVCEncoderSettings)

Initializes the encoder page with existing settings.

public void Init(QSVHEVCEncoderSettings settings)

Parameters

settings QSVHEVCEncoderSettings

The QSV HEVC encoder settings to load into the UI.

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