]> git.sesse.net Git - x264/commit
VFR/framerate-aware ratecontrol, part 2
authorFiona Glaser <fiona@x264.com>
Fri, 24 Dec 2010 00:33:01 +0000 (19:33 -0500)
committerFiona Glaser <fiona@x264.com>
Mon, 10 Jan 2011 20:28:08 +0000 (12:28 -0800)
commitc583687fab832ba7eaf8626048f05ad1f861a855
tree9a550bd28308b945f55a07945473353ed6d0d865
parent247f504d3c7ac64a87ed5a12bab0f6b99af5959c
VFR/framerate-aware ratecontrol, part 2
MB-tree and qcomp complexity estimation now consider the duration of a frame in their calculations.
This is very important for visual optimizations, as frames that last longer are inherently more important quality-wise.
Improves VFR-aware PSNR as much as 1-2db on extreme test cases, ~0.5db on more ordinary VFR clips (e.g. deduped anime episodes).

WARNING: This change redefines x264's internal quality measurement.
x264 will now scale its quality based on the framerate of the video due to the aforementioned frame duration logic.
That is, --crf X will give lower quality per frame for a 60fps video than for a 30fps one.
This will make --crf closer to constant perceptual quality than previously.
The "center" for this change is 25fps: that is, videos lower than 25fps will go up in quality at the same CRF and videos above will go down.
This choice is completely arbitrary.

Note that to take full advantage of this, x264 must encode your video at the correct framerate, with the correct timestamps.
common/mc.c
common/mc.h
common/x86/const-a.asm
common/x86/mc-a2.asm
common/x86/mc-c.c
encoder/ratecontrol.c
encoder/ratecontrol.h
encoder/slicetype.c
tools/checkasm.c