]> granicus.if.org Git - libvpx/commit
Rewrite reference frame costing in the RD loop.
authorRonald S. Bultje <rbultje@google.com>
Tue, 15 May 2012 00:39:42 +0000 (17:39 -0700)
committerRonald S. Bultje <rbultje@google.com>
Tue, 15 May 2012 22:32:44 +0000 (15:32 -0700)
commit0b8a95a0b2e3451b79cfbc6bc629c779d9915762
tree480a9f744a4d368efcf1f31e6f8055fdda3269f5
parentc5ddb7f0160ff9e2b8f2f67491fe27947e709923
Rewrite reference frame costing in the RD loop.

I now see I didn't write a very long description, so let's do it
here then. We took a pretty big quality hit (0.1-0.2%) from my
recent fix of the inversion of arguments to vp8_cost_bit() in the
RD reference frame costing. I looked into it and basically the
costing prevented us from switching reference frames. This is of
course silly, since each frame codes its own prob_intra_coded, so
using last frame cost indications as a limiting factor can never
be right.

Here, I've rewritten that code to estimate costings based partially
on statistics from progress on current frame encoding. Overall,
this gives us a ~0.2%-0.3% improvement over what we had previously
before my argument-inversion-fix, and thus about ~0.4% over current
git (on derf-set), and a little more (0.5-1.0%) on HD/STD-HD/YT.

Change-Id: I79ebd4ccec4d6edbf0e152d9590d103ba2747775
vp8/common/pred_common.c
vp8/encoder/bitstream.c
vp8/encoder/encodeframe.c
vp8/encoder/mbgraph.c
vp8/encoder/onyx_int.h
vp8/encoder/rdopt.c