summaryrefslogtreecommitdiff
path: root/vp8/encoder/encodeframe.c
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2012-08-24 15:44:01 +0100
committerPaul Wilkins <paulwilkins@google.com>2012-08-24 18:08:21 +0100
commit2d60bee1fbfb7e5b6862e4e636151effabae98e3 (patch)
tree3f0760847eaba681c8c708f6e4f029129cd81137 /vp8/encoder/encodeframe.c
parent3777125ba66d15fef1436ea8871b3901a86c6991 (diff)
downloadlibvpx-2d60bee1fbfb7e5b6862e4e636151effabae98e3.tar
libvpx-2d60bee1fbfb7e5b6862e4e636151effabae98e3.tar.gz
libvpx-2d60bee1fbfb7e5b6862e4e636151effabae98e3.tar.bz2
libvpx-2d60bee1fbfb7e5b6862e4e636151effabae98e3.zip
New Motion Reference Search
Alternative strategy for finding a list of candidate motion vectors to use as reference values in mv coding and as nearest and near. Sort by sad in vp8_find_best_ref_mvs() rather than just pick the best. Allow 0,0 as a best ref option but not a nearest or near unless there are no alternatives. Encode/Decode verified on at least some clips. Some commented out experimental and stats code still in place. Gain over existing code averages about 1% on derf (alll metrics) with improvement on all clips. Other test results pending. The entropy coding of the mode (nearest/near etc) still depends upon and requires the old "findnear" code so this needs looking at and may provide room for further gains. Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
Diffstat (limited to 'vp8/encoder/encodeframe.c')
-rw-r--r--vp8/encoder/encodeframe.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index f834e0b83..6ade0aa78 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -34,6 +34,10 @@
#include "vp8/common/pred_common.h"
#define DBG_PRNT_SEGMAP 0
+#if CONFIG_NEW_MVREF
+#include "vp8/common/mvref_common.h"
+#endif
+
#if CONFIG_RUNTIME_CPU_DETECT
#define RTCD(x) &cpi->common.rtcd.x
@@ -1301,6 +1305,12 @@ static void encode_frame_internal(VP8_COMP *cpi) {
// this frame which may be updated with each iteration of the recode loop.
compute_mod_refprobs(cm);
+#if CONFIG_NEW_MVREF
+ // temp stats reset
+ vp8_zero( cpi->mv_ref_sum_distance );
+ vp8_zero( cpi->best_ref_index_counts );
+#endif
+
// debug output
#if DBG_PRNT_SEGMAP
{