Class QSVH264EncoderPage
- 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, IComponentConnectorInheritance
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
CABAC
Gets or sets a value indicating whether CABAC entropy coding is enabled.
public bool CABAC { get; set; }Property Value
GOPSize
Gets or sets the Group of Pictures size defining keyframe interval.
public uint GOPSize { get; set; }Property Value
Level
Gets or sets the profile.
public QSVH264EncLevel Level { get; set; }Property Value
LevelStr
Gets or sets the level (as string).
public string LevelStr { get; set; }Property Value
Levels
Gets or sets the levels.
public ObservableCollection<string> Levels { get; set; }Property Value
LowLatency
Gets or sets a value indicating whether low latency mode is enabled for real-time encoding.
public bool LowLatency { get; set; }Property Value
MaxBitrate
Gets or sets the maximum bitrate limit for variable bitrate modes.
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 H.264 profile determining feature set and compatibility.
public QSVH264EncProfile 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 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 algorithm for bitrate management.
public QSVH264EncRateControl 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 QSVH264EncoderSettings)
Fills the provided settings object with current values from all UI controls.
public void Fill(ref QSVH264EncoderSettings settings)Parameters
settingsQSVH264EncoderSettings-
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
settingsQSVH264EncoderSettings-
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
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