Class QSVHEVCEncoderPage
- 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, IComponentConnectorInheritance
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
GOPSize
Gets or sets the Group of Pictures (GOP) size in frames.
public uint GOPSize { get; set; }Property Value
LowLatency
Gets or sets a value indicating whether low latency mode is enabled.
public bool LowLatency { get; set; }Property Value
MaxBitrate
Gets or sets the maximum bitrate for variable bitrate modes in kilobits per second (Kbps).
public uint MaxBitrate { get; set; }Property Value
MaxQPB
Gets or sets the maximum quantization parameter allowed for B-frames.
public double MaxQPB { get; set; }Property Value
MaxQPI
Gets or sets the maximum quantization parameter allowed for I-frames.
public double MaxQPI { get; set; }Property Value
MaxQPP
Gets or sets the maximum quantization parameter allowed for P-frames.
public double MaxQPP { get; set; }Property Value
MinQPB
Gets or sets the minimum quantization parameter allowed for B-frames.
public double MinQPB { get; set; }Property Value
MinQPI
Gets or sets the minimum quantization parameter allowed for I-frames.
public double MinQPI { get; set; }Property Value
MinQPP
Gets or sets the minimum quantization parameter allowed for P-frames.
public double MinQPP { get; set; }Property Value
Profile
Gets or sets the HEVC encoding profile.
public QSVHEVCEncProfile Profile { get; set; }Property Value
ProfileStr
Gets or sets the coder mode (as string).
public string ProfileStr { get; set; }Property Value
Profiles
Gets or sets the profiles.
public ObservableCollection<string> Profiles { get; set; }Property Value
QPB
Gets or sets the quantization parameter for B-frames (bidirectional predicted frames).
public double QPB { get; set; }Property Value
QPI
Gets or sets the quantization parameter for I-frames (keyframes).
public double QPI { get; set; }Property Value
QPP
Gets or sets the quantization parameter for P-frames (predicted frames).
public double QPP { get; set; }Property Value
RateControl
Gets or sets the rate control mode for encoding.
public QSVHEVCEncRateControl RateControl { get; set; }Property Value
RateControlModes
Gets or sets the rate control mode list.
public ObservableCollection<string> RateControlModes { get; set; }Property Value
RateControlStr
Gets or sets the rate control (as string).
public string RateControlStr { get; set; }Property Value
Methods
Fill(ref QSVHEVCEncoderSettings)
Fills the provided settings object with values from the UI controls.
public void Fill(ref QSVHEVCEncoderSettings settings)Parameters
settingsQSVHEVCEncoderSettings-
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
settingsQSVHEVCEncoderSettings-
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
fieldT-
The field.
newValueT-
The new value.
propertyNamestring-
Name of the property.
Returns
- bool
-
trueif successful,falseotherwise.
Type Parameters
T-
Type.
PropertyChanged
Property changed event.
public event PropertyChangedEventHandler PropertyChanged