Make B-pyramid spec-compliant
authorLamont Alston <wewk584@gmail.com>
Tue, 13 Oct 2009 06:32:16 +0000 (23:32 -0700)
committerJason Garrett-Glaser <darkshikari@gmail.com>
Mon, 19 Oct 2009 09:29:03 +0000 (02:29 -0700)
commite2659dbdc0aed2d2cd4f6538faddf370e7740ada
tree3e5a32117f0c653bc231b961c3cca95740164a60
parentb826fd5475a5e883f85e26cbf9d2c0acf5efcbd6
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