[x264-devel] commit: Add support for single-frame VBV, improve compliance ( Jason Garrett-Glaser )

git version control git at videolan.org
Wed Oct 7 03:27:44 CEST 2009


x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Fri Sep 25 16:23:52 2009 -0700| [db518eae22e57b37c806625685faba2f2a857f88] | committer: Jason Garrett-Glaser 

Add support for single-frame VBV, improve compliance
This allows both constant-framesize and capped-framesize encoding.
Literal constant framesize isn't actually supported yet due to the lack of
filler support.
Example with 30fps video: --vbv-bufsize 200 --vbv-maxrate 6000 will ensure that
no frame is ever larger than 200 kilobits.

One example use-case of this is for zero-delay streaming where bandwidth costs
need to be minimized.  If every frame is smaller than 200 kilobits and the
client has a 6 megabit connection, every single frame can be instantly sent
to the client and handled without any decoder-side buffer.

Fix a mistake in VBV calculation--this may have caused the VBV to be slightly
non-compliant in some situations without x264 realizing it.
Add primitive prediction handling for rows with quantizers lower than their
reference.  This slightly improves VBV in CBR mode.
Various other minor improvements to VBV, mostly to make single-frame VBV work.

Commit sponsored by a media streaming company that wishes to remain anonymous.

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=db518eae22e57b37c806625685faba2f2a857f88
---

 encoder/ratecontrol.c |  141 ++++++++++++++++++++++++++++++-------------------
 encoder/slicetype.c   |   10 ++++
 2 files changed, 96 insertions(+), 55 deletions(-)

Diff:   http://git.videolan.org/gitweb.cgi/x264.git/?a=commitdiff;h=db518eae22e57b37c806625685faba2f2a857f88


More information about the x264-devel mailing list