[x264-devel] commit: Periodic intra refresh (Jason Garrett-Glaser )

git version control git at videolan.org
Thu Jan 14 05:51:06 CET 2010


x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Tue Dec 22 18:59:29 2009 -0500| [52a4fbe142926435571fbf2fb3d535e8873627d3] | committer: Jason Garrett-Glaser 

Periodic intra refresh
Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes.
Attempt to hide the visual appearance of the intra bar when --no-psy isn't set.
Enabled with --intra-refresh.
The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame.
Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding.
Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%.
x264 is now the best free software low-latency video encoder in the world.

Accordingly, change the API to add b_keyframe to the parameters present in output pictures.
Calling applications should check this to see if a frame is seekable, not the frame type.

Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work.
Also fix a major bug in sliced-threads VBV handling.
Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing.
Also simplify ratecontrol's checking of first pass options.
Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames.

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

 common/bs.h           |    5 ++
 common/common.c       |    6 ++-
 common/common.h       |    5 +-
 common/frame.c        |    1 +
 common/frame.h        |    9 +++-
 encoder/analyse.c     |   88 ++++++++++++++++++++++++++++++++----------
 encoder/encoder.c     |  103 ++++++++++++++++++++++++++++++++++++-------------
 encoder/lookahead.c   |    2 +-
 encoder/me.c          |   12 +++--
 encoder/ratecontrol.c |   71 +++++++++++++--------------------
 encoder/set.c         |   17 ++++++++
 encoder/set.h         |    1 +
 encoder/slicetype.c   |   52 +++++++++++++++++-------
 output/flv.c          |    2 +-
 output/matroska.c     |    2 +-
 output/mp4.c          |    2 +-
 x264.c                |    2 +
 x264.h                |    7 +++-
 18 files changed, 265 insertions(+), 122 deletions(-)

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


More information about the x264-devel mailing list