[x264-devel] commit: Weighted P-frame prediction (Dylan Yudaken )

git version control git at videolan.org
Mon Nov 9 05:22:04 CET 2009


x264 | branch: master | Dylan Yudaken <dyudaken at gmail.com> | Sun Nov  8 17:59:08 2009 -0800| [87de2346225721e8ca68a1b59bc87133fc598a42] | committer: Jason Garrett-Glaser 

Weighted P-frame prediction
Merge Dylan's Google Summer of Code 2009 tree.
Detect fades and use weighted prediction to improve compression and quality.
"Blind" mode provides a small overall quality increase by using a -1 offset without doing any analysis, as described in JVT-AB033.
"Smart", the default mode, also performs fade detection and decides weights accordingly.
MB-tree takes into account the effects of "smart" analysis in lookahead, even further improving quality in fades.
If psy is on, mbtree is on, interlaced is off, and weightp is off, fade detection will still be performed.
However, it will be used to adjust quality instead of create actual weights.
This will improve quality in fades when encoding in Baseline profile.

Doesn't add support for interlaced encoding with weightp yet.
Only adds support for luma weights, not chroma weights.
Internal code for chroma weights is in, but there's no analysis yet.
Baseline profile requires that weightp be off.
All weightp modes may cause minor breakage in non-compliant decoders that take shortcuts in deblocking reference frame checks.
"Smart" may cause serious breakage in non-compliant decoders that take shortcuts in handling of duplicate reference frames.

Thanks to Google for sponsoring our most successful Summer of Code yet!

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

 common/common.c       |    4 +
 common/common.h       |   19 ++++
 common/frame.c        |  128 +++++++++++++++++------
 common/frame.h        |   13 ++-
 common/macroblock.c   |   73 +++++++++++++-
 common/mc.c           |   83 ++++++++++++++-
 common/mc.h           |   35 ++++++-
 common/x86/mc-a.asm   |  230 ++++++++++++++++++++++++++++++++++++++++-
 common/x86/mc-c.c     |  123 +++++++++++++++++++++-
 encoder/analyse.c     |  104 +++++++++++++------
 encoder/analyse.h     |    3 +
 encoder/encoder.c     |  223 +++++++++++++++++++++++++++++++++++++++-
 encoder/macroblock.c  |   22 ++++-
 encoder/me.c          |   46 +++++----
 encoder/me.h          |    6 +-
 encoder/ratecontrol.c |   62 ++++++++++--
 encoder/ratecontrol.h |    2 +
 encoder/set.c         |    4 +-
 encoder/slicetype.c   |  273 ++++++++++++++++++++++++++++++++++++++++++++++---
 tools/checkasm.c      |   84 ++++++++++++++-
 x264.c                |   10 ++
 x264.h                |    6 +-
 22 files changed, 1408 insertions(+), 145 deletions(-)

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


More information about the x264-devel mailing list