When I try to re-encode a video into a MP4 container (with XMedia Recode) I have the choice between
MPEG-4 AVC H.264
MPEG-4 AVC H.264 (Intel quick sync)
Surprisingly both codecs have some different Bitrate Control Modes:
MPEG-4 AVC H.264:
- ABR (Average Bitrate)
- 2-pass ABR (2-pass average bitrate)
MPEG-4 AVC H.264 (Intel Quick Sync):
- ABR (average bitrate)
- VBR (variable bitrate)
- ICQ (Intelligent constant quality)
Why is there no 2-pass encoding for the second encoding but only for the first?
Whats the difference between ABR and VBR?
Which Bitrate Control Mode is the best for MPEG-4 AVC H.264 (Intel Quick Sync)?
+ Reply to Thread
Results 1 to 4 of 4
Last edited by pxstein; 23rd Jan 2022 at 13:30.
The rate control with enabled Quick Sync encoder relies on supported methods in the hardware encoder chip (or graphic driver); an independent software implementation of the MPEG-4 AVC standard may implement its own rate control algorithms.
A 2-pass method needs to collect statistics in the 1st pass to optimize the bitrate distribution during the 2nd pass, based on scaled values from these statistics. Apparently, the Quick Sync encoding system does not support such a framewise in-depth control, the video may pass only once.
There is no generally best method. It depends on the use case. For playback from fast media (usually harddisks), the optimum for a rather constant quality retention is a variable bitrate in relation to the required amount of data to keep the quality loss below a threshold, calculated by a metric that may imitate human video perception more or less credibly. For streaming over a limited bandwidth or reading from slow-seeking media, instead, the video bitrate shall not vary too much, hence the quality must vary, unfortunately.
There are different strategies to distribute the bitrate in a way that it may adapt to the requirements of the current video scene.
ABR allows it to vary in a small range around a given average target bitrate during a short range of time, which is useful for streaming or slow media (but the optimal implementation would need to know the bandwidth and buffer size).
One approach to a true variable bitrate is to use more or less constant quantization factors (yet I cannot know if that is the method Quick Sync uses, I don't know its specific implementation), but this method makes the resulting size unpredictable, and bitrates may vary in magnitudes.
I guess that ICQ may be similar to the CRF method in x264: The quantizer will not be exactly constant, but may vary a little depending on the calculated loss, which depends subsequently on the amount of details and motion in a video scene (x264 bases its decision on an internal variable named "Rate Factor").
I'm talking about the general concept of VBR, not the specific implementation in intel's Quick Sync encoder; I cannot use this as I don't have any intel processors, and I would not use it either as I know in which way its quality will be inferior.