docs: Revise Intel QSV article.

This commit is contained in:
Bradley Sepos 2019-08-10 14:55:07 -04:00
parent 657ac16931
commit 9594ff9ed0
No known key found for this signature in database
GPG Key ID: DEADE2F57D42D9C7

View File

@ -1,59 +1,54 @@
---
Type: article
State: [ draft ]
Title: Intel QuickSync
Title: Intel QuickSync Video (QSV)
Project: HandBrake
Project_URL: https://handbrake.fr/
Project_Version: Latest
Language: English
Language_Code: en
Authors: [ Scott (s55) ]
Authors: [ Bradley Sepos <bradley@bradleysepos.com> (BradleyS), Scott (s55) ]
Copyright: 2019 HandBrake Team
License: Creative Commons Attribution-ShareAlike 4.0 International
License_Abbr: CC BY-SA 4.0
License_URL: https://handbrake.fr/docs/license.html
---
Intel Quick Sync Video
==========================
Intel QuickSync Video (QSV)
===========================
Supported Hardware and Configurations
--------------
- Intel Skylake Processors (6th Generation Core) CPU's with Intel HD Graphics better
- Windows 10 (GUI and CLI)
## Supported hardware
- Intel Skylake (6th Generation Core) CPU or later with Intel HD Graphics or better
- Windows 10
- Linux (Available in our flatpak build via a plugin)
Please note, these are not hard limits and the feature *may* work on older cards and operating systems, but this is not officially supported.
Please note, these are not hard limits. Hardware encoding via Intel QSV *might* work on older series GPUs and older operating systems, but this is not officially supported.
Enabling support
--------------
Support for the QuickSync encoder can be enabled in preferences under the video tab. If your system is not supported, the option will be greyed out.
## Enabling support
Support for the Intel QSV encoder is enabled in preferences on the video tab. If your system is not supported, the option will be disabled.
Performance
--------------
Take note that only the decode (when enabled) and encode portions of the pipeline is done on the Intel hardware.
Every stage in the pipeline in-between including (decoding, filters, a/v sync, muxing etc.) all happen on the CPU. As a result, it is normal to have high, or 100% CPU utilisation during encodes.
## Performance
It is common, particularly on lower end hardware that the CPU may be a bottleneck for the encoder. To minimise this effect, turn off any filters that you do not require.
Only video encoding is performed by the hardware encoder. Every stage prior to and after video encoding including decoding, filters, audio/video sync, audio encoding, muxing, etc., is performed by the CPU. As a result, it is normal to have high (even 100%) CPU utilisation during encodes.
It is common, particularly on lower-end hardware, for the CPU to be a bottleneck for the hardware video encoder. To minimise this effect, disable any filters that you do not require.
Using the Advanced Options
--------------
QuickSync does have a limited set of advanced encoder options that can be used. Generally speaking is is not recommended to change these parameters.
The built-in presets offer a good range of options.
## Advanced options
From the command line, you can use the --encopts parameter as follows:
The Intel QuickSync hardware encoder has a limited set of advanced encoder options. Generally speaking, it is not recommended to change these parameters, as the built-in presets offer a good range of options for common uses.
From HandBrakes command line interface, use the `--encopts` parameter as follows:
--encopts="option1=value1:option2=value2"
From the graphical user interface, just set the options in the dedicated text box:
From HandBrakes graphical interface, set the options in the `Advanced Options` field on the `Video` tab:
option1=value1:option2=value2
Option Types
--------------
### Option value types
The following value types are supported (each option only accepts one value type):
- integer
@ -64,17 +59,12 @@ The following value types are supported (each option only accepts one value type
1 means on (or enabled).
- string
Takes a setting defined as s string. See comment for details.
Available Options
--------------
Available Options
--------------
An alphanumeric string of characters. See the options comments for acceptable values.
### Options list
- target-usage (or tu) <integer>
- Sets the trade-off between quality and speed, from 1 (best quality) to 7 (best speed).
- Sets the trade-off between quality and speed, from 1 (best quality) to 7 (fastest speed).
- Default: 2
- num-ref-frame (or ref) <integer>
@ -101,7 +91,7 @@ Available Options
- cavlc <boolean>
- Use CAVLC instead of CABAC entropy coding. Reduces compression efficiency.
- It may improve encoding performance slightly, especially on older hardware.
- Note: you can also use ''cabac'' (same as ''cavlc'' with reversed meaning).
- Note: you can also use `cabac` (same as `cavlc` with reversed meaning).
- Default: 0 (CAVLC off, CABAC on)
- b-pyramid <integer>
@ -118,7 +108,7 @@ Available Options
- Enables macroblock-level bitrate control that generally improves subjective visual quality.
- It may have a negative impact on performance and objective visual quality metrics.
- Default: 1 (on)
- Note: not compatible with Constant QP or !LookAhead rate control methods (ignored).
- Note: not compatible with Constant QP or LookAhead rate control methods (ignored).
- Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.6 of the Media SDK API.
- extbrc <boolean>
@ -126,7 +116,7 @@ Available Options
- It generally improves objective visual quality metrics and subjective visual quality,
- but can also lead to violation of HRD conformance and may significantly reduce performance.
- Default: 0 (off)
- Note: not compatible with Constant QP or !LookAhead rate control methods (ignored).
- Note: not compatible with Constant QP or LookAhead rate control methods (ignored).
- Caveats: requires driver support for version 1.6 of the Media SDK API.
- trellis <integer>
@ -140,12 +130,12 @@ Available Options
- Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 of the Media SDK API.
- lookahead (or la) <boolean>
- Use the !LookAhead (LA or LA_ICQ) bitrate control algorithm.
- Use the LookAhead (LA or LA_ICQ) bitrate control algorithm.
- Default: 1 (on)
- Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 (1.8 for LA_ICQ) of the Media SDK API.
- lookahead-depth (or la-depth) <integer>
- If !LookAhead bitrate control is enabled, number of frames that are analyzed before encoding, from 11 to 60.
- If LookAhead bitrate control is enabled, number of frames that are analyzed before encoding, from 11 to 60.
- Default: 40
- Note: may be sanitized to a lower value in some cases to avoid hangs.
- Caveats: requires hardware support (4th gen. Intel Core processor or equivalent), and driver support for version 1.7 of the Media SDK API.
@ -161,16 +151,16 @@ Available Options
- vbv-maxrate <integer>
- Sets the maximum rate the VBV buffer should be assumed to refill at, in kilobits per second (Kbps).
- Default: 0 (set at runtime by the implementation)
- Note: not compatible with Constant QP, Intelligent Constant Quality or !LookAhead rate control methods (ignored).
- Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored).
- vbv-bufsize <integer>
- Sets the size of the VBV buffer in kilobits (Kb).
- Default: 0 (set at runtime by the implementation)
- Note: not compatible with Constant QP, Intelligent Constant Quality or !LookAhead rate control methods (ignored).
- Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored).
- vbv-init <float>
- Sets how full the VBV Buffer must be before playback starts.
- If it is less than 1, then the initial fill is: vbv-init * vbv-bufsize.
- Otherwise it is interpreted as the initial fill in kilobits (Kb).
- Default: 0 (set at runtime by the implementation)
- Note: not compatible with Constant QP, Intelligent Constant Quality or !LookAhead rate control methods (ignored).
- Note: not compatible with Constant QP, Intelligent Constant Quality or LookAhead rate control methods (ignored).