diff --git a/source/docs/en/latest/technical/video-qsv.markdown b/source/docs/en/latest/technical/video-qsv.markdown index 212e7625..98d16ecf 100644 --- a/source/docs/en/latest/technical/video-qsv.markdown +++ b/source/docs/en/latest/technical/video-qsv.markdown @@ -1,80 +1,70 @@ --- 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 (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 HandBrake’s 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 HandBrake’s 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 +- integer A number that can be written without a fractional or decimal component. -- boolean - 0 means off (or disabled). +- boolean + 0 means off (or disabled). 1 means on (or enabled). -- string - Takes a setting defined as s string. See comment for details. - -Available Options --------------- - -Available Options --------------- +- string + An alphanumeric string of characters. See the option’s comments for acceptable values. +### Options list - target-usage (or tu) - - 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) @@ -82,7 +72,7 @@ Available Options - 0 means unspecified (set at runtime by the implementation). - Default: 0 (unspecified) -- gop-ref-dist +- gop-ref-dist - Distance between I or P reference frames, from 1 to 16. - -1 means automatic (4 in constant QP mode, 3 otherwise). - 0 means unspecified (set at runtime by the implementation). @@ -101,7 +91,7 @@ Available Options - cavlc - 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 @@ -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 @@ -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 @@ -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) - - 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) - - 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 - 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 - 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 - 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).