Keyint: MSDK defaults this to 1 sec. Meanwhile, both x264 and x265 defaults keyint to 10s. Even Youtube only forces an I frame every 5 seconds nowadays. Unless the Handbrake team believes that QS is targeting a dramatically different use case, I think the default key interval should match x264/x265's.
B-frames & B-pyramid: The archetypal AVC frame cadence is IbBbP. Handbrake only uses this with CQP, which itself is only set as default on older CPUs. Otherwise, `constant quality` is the default mode, and Handbrake switches to mpeg2-esque IbbP. Unless something is seriously wrong with ICQ+LA in Quicksync, this looks like a large handicap.
To make sure I'm not making a big deal out of nothing, I did some cursory tests on a ~3 minute clip (2nd chapter of Contagion Bluray). Everything was done using Handbrake 6306svn with no audio and `--quality 24` on a Haswell Pentium G3258. Y-PSNR is used to determine RD ability and roughly estimate perceptual impact. It was calculated through ffmpeg-2.3.3*.
Code: Select all
kbps FPS Y-PSNR
Default 3783.84 57.69 39.89
Key120 3408.05 53.22 39.83
Key240 3356.54 52.25 39.82
Key240_ibbbp_pyr1 3229.78 56.82 39.85
Key240_ibbbp_pyr1_ref4 3132.50 47.30 39.85 (was curious)
I don't claim that the numbers above are representative of everything under the sun, but I think they show that Intel's MSDK's defaults for Quicksync aren't necessarily optimal for the average Handbrake user. If nothing else, the settings should be reexamined.
*Encoded outputs had an extra frame added at beginning. I manually accounted for this.