Resource icon

Custom parameters of Quicksync

If you just want to know how to activate Quicksync, look here.

I looked a bit into the Quicksync API documentation, and this is what I have found out about the custom parameters of the Quick Sync encoder. It may help you to determine which algorithm is best suited for your use case.

In general, you are fine if you just choose from the presets in Settings->Advanced and don't activate any of the custom settings. This seems especially true if you want to stream your video, because the custom settings only provide additional algorithms suitable for local recording with variable bitrates that are not very suitable for streaming. As long as streaming providers require constant bitrates, it makes no sense to dig into the custom settings.

But if you don't want to stream but record locally with high quality, it may be worth to look into the custom parameters. You can get very high quality footage with almost zero CPU usage by using Quick Sync.

If available, Quick Sync is activated in Settings -> Encoding:


The general video tuning with its easy presets is configured in Settings -> Advanced:


The custom settings are these:


TL;DR:
For streaming, use VBR -> CBR
You can try VBR, and if the streaming service doesn't complain, keep it. Otherwise use CBR, in which case you don't need any custom parameter at all. VBR may be suited, but all other algorithms are definitely not suited for streaming.

For local recording, use LA ICQ -> ICQ -> CQP -> LA (VBR) -> AVBR -> VBR -> CBR
It depends on your hardware which algorithms are available.
For parameter tuning, see below.

The details:

CBR: constant bitrate control algorithm
Use case: streaming or recording with a constant bit rate.
Description: Bitrate is determined by the "Max Bitrate" setting in Encoding->Video Encoding or TargetKbps if "use global Max Bitrate" in Quick Sync Encoder Settings is unchecked.
Quality is determined by the bitrate. The higher the bitrate, the better the quality.

VBR: variable bit rate control algorithm
Use case: realtime, recording and streaming with a variable bitrate
Description: Video is encoded with target bitrate TargetKbps, while allowing MaxKbps spikes that smooth out using a buffer, whose size is determined by the global buffer size or BufferSizeInKB.
Remark: According to the SDK description, this algorithm is HRD compliant and can probably be used fine with streaming, although it is not a strict constant bit rate algorithm.
Quality is determined by the 2 bitrate parameters. The higher the bitrate, the better the quality.

CQP: constant quantization parameter algorithm
Use case: recording with a variable bit rate
Description: Video is encoded with a constant quality, regardless of motion. Bitrate is determined by the complexity of the video material. Quality is determined by QPI, QPP and QPB parameters. QPI determines intra frame quality (known as key frames), QPP determines predicted (P-) frames quality, and QPB determines h.264 B-frames (a weaker version of P-frames). You want to use the same value for all 3 parameters.
Remark: Very good for local recording for raw footage, since quality is not restricted to bitrate if you set the bitrate high enough, while not wasting disk space on low complex scenes.
Quality is determined by the 3 QP parameters (1..51). The lower the values, the better the quality. 0 uses SDK default. Sweet spot is probably around 20-25. My choice is 22 with a maximum bit rate of 50000, which results in an average bit rate of about 29000 while keeping high complex scenes at maximum quality. Lower values than 22 greatly increases the bitrate requirement.
Not available in every HD Graphics.

AVBR: average variable bit rate control algorithm
Use case: recording with a variable bit rate.
Description: The algorithm focuses on overall encoding quality while meeting the specified bitrate, TargetKbps, within the accuracy range Accuracy, after a Convergence period.
Quality is determined by the bitrate. The higher the bitrate, the better the quality. Allows spikes in bitrate consumption for short high complex scenes to maintain quality. Quality of high complex scenes is determined by the Accuracy and Convergence parameters. This is not constant enough for streaming like the VBR algorithm (not HRD compliant).
Not available in every HD Graphics.

LA (VBR): VBR algorithm look ahead
Use case: recording with a variable bit rate.
Description: A better version of the VBR algorithm. Quality improvements over VBR. Huge latency and increased memory consumption due to extensive analysis of several dozen frames before the actual encoding.
Quality is determined by the bitrate and the Look-Ahead depth (1..100). The higher the bitrate, the better the quality. The larger the Look-Ahead, the better the quality. A LA value of 0 gives the SDK default.
Not available in every HD Graphics.

ICQ: intelligent constant quality algorithm
Use case: recording with a variable bit rate.
Description: A better version of the CQP mode. Recording with a constant quality, similar to the CRF mode of x.264, that makes better usage of the bandwith than CQP mode.
Quality is determined by the ICQQuality parameter (1..51), where 1 corresponds to the best quality. Sane values of ICQQuality are probably around 20..25 like in CQP modes.
Not available in every HD Graphics.

VCM: Video conferencing mode
Use case: video conferencing. Probably low latency, low bitrate requirements, low quality.
Description: I did not find any details about this mode, but it is probably not suitable for high quality streaming or recording but focuses on low bandwith usage and robustness of the data stream.
Not available in every HD Graphics.

LA ICQ: intelligent constant quality algorithm with look ahead
Use case: recording with a variable bit rate.
Description: The same quality improvements and caveats as LA (VBR), but for the ICQ algorithm. Probably the best quality while at the same time consuming the least bandwidth of all available algorithms - if your CPU supports it.
Quality is determined by the ICQQuality parameter (1..51), where 1 corresponds to the best quality, and the Look-Ahead depth (1..100). The larger the Look-Ahead, the better the quality, where 0 gives the SDK default. Sane values of ICQQuality are probably around 20..25 like in CQP modes.
Not available in every HD Graphics.

General remark:
Depending on your output resolution, it may be that you get the message "WARNING: Taking too long to encode. Skipping Frame!". In this case, you ask too much from the encoder. The more advanced the algorithm you choose, the more time the encoder needs.
  • choose the next more simple algorithm. More simple means not always worse quality. Depending on your custom settings it usually only means bigger video, but that isn't that important with local recording.
  • choose a lower frame rate. If you try 60 fps, lower to 48 fps or 30 fps.
  • choose a lower output resolution
Author
koala
Views
3,208
First release
Last update
Rating
4.63 star(s) 8 ratings

Latest reviews

1 page from 3 screens.
Other info is very helpful.
I love it. The stream seems to be topping out at 30 Mbps. Plenty to record to my NAS over my Gigabit network. Even the low-end disks can take that in.
Incredible guide and the only one on the internet with the info i was looking for.
Really helpful, it permit me to test all options in order to stream, indeed only CBR can do it properly without too many bitrate variation but at low bitrate (4Mb/s) the quality is not enough comparatively to x264 implementation. Especially with sharpen scene. Just for recording LA ICQ is the best (tested with Intel hd 4600 - i54670k) even at high bitrate (50Mb/s), no perdition and no freeze.
Top