]> git.sesse.net Git - x264/commit
Make B-pyramid spec-compliant
authorLamont Alston <wewk584@gmail.com>
Tue, 13 Oct 2009 06:32:16 +0000 (23:32 -0700)
committerFiona Glaser <fiona@x264.com>
Mon, 19 Oct 2009 09:29:03 +0000 (02:29 -0700)
commitcf5ba8134a4bdd381e75a5c2ea434198a7174a36
treeea605efc07de55dd1ed1b60a1eff148b15362325
parente691cc0e3563b554e199cafbec82109d6a496c36
Make B-pyramid spec-compliant
The rules of the specification with regard to picture buffering for pyramid coding are widely ignored.
x264's b-pyramid implementation, despite being practically identical to that proposed by the original paper, was technically not compliant.
Now it is.
Two modes are now available:
1) strict b-pyramid, while worse for compression, follows the rule mandated by Blu-ray (no P-frames can reference B-frames)
2) normal b-pyramid, which is like the old mode except fully compliant.
This patch also adds MMCO support (necessary for compliant pyramid in some cases).
MB-tree still doesn't support b-pyramid (but will soon).
12 files changed:
common/common.c
common/common.h
common/frame.h
common/macroblock.c
encoder/encoder.c
encoder/lookahead.c
encoder/ratecontrol.c
encoder/set.c
encoder/slicetype.c
muxers.c
x264.c
x264.h