summaryrefslogtreecommitdiff
path: root/vp8/common/entropymv.h
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2012-09-06 09:07:42 -0700
committerDeb Mukherjee <debargha@google.com>2012-09-12 11:51:10 -0700
commit2b26cf17862949123618d2dbe60a661fbb7eb4a9 (patch)
treeef2cbadc62a86cad8c5d69a7287159367ef397f7 /vp8/common/entropymv.h
parentd406334f2712a1ec1bef890b2397927918a84e48 (diff)
downloadlibvpx-2b26cf17862949123618d2dbe60a661fbb7eb4a9.tar
libvpx-2b26cf17862949123618d2dbe60a661fbb7eb4a9.tar.gz
libvpx-2b26cf17862949123618d2dbe60a661fbb7eb4a9.tar.bz2
libvpx-2b26cf17862949123618d2dbe60a661fbb7eb4a9.zip
Adds feature for companded MV encoding
The high-precision (1/8) pel bit is turned off if the reference MV is larger than a threshold. The motivation for this patch is the intuition that if motion is likely large (as indicated by the reference), there is likley to be more motion blur, and as a result 1/8 pel precision would be wasteful both in rd sense as well as computationally. The feature is incorporated as part of the newmventropy experiment. There is a modest RD improvement with the patch. Overall the results with the newmventropy experiment with the threshold being 16 integer pels are: derf: +0.279% std-hd: +0.617% hd: +1.299% yt: +0.822% With threshold 8 integer pels are: derf: +0.295% std-hd: +0.623% hd: +1.365% yt: +0.847% Patch: rebased Patch: rebase fixes Change-Id: I4ed14600df3c457944e6541ed407cb6e91fe428b
Diffstat (limited to 'vp8/common/entropymv.h')
-rw-r--r--vp8/common/entropymv.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/vp8/common/entropymv.h b/vp8/common/entropymv.h
index 20af7e461..1a193b172 100644
--- a/vp8/common/entropymv.h
+++ b/vp8/common/entropymv.h
@@ -21,11 +21,11 @@ struct VP8Common;
void vp8_entropy_mv_init();
void vp8_init_mv_probs(struct VP8Common *cm);
void vp8_adapt_mv_probs(struct VP8Common *cm);
-#if CONFIG_NEWMVENTROPY
-void vp8_adapt_nmv_probs(struct VP8Common *cm, int usehp);
-#endif
#if CONFIG_NEWMVENTROPY
+void vp8_adapt_nmv_probs(struct VP8Common *cm, int usehp);
+void vp8_lower_mv_precision(MV *mv);
+int vp8_use_nmv_hp(const MV *ref);
#define VP8_NMV_UPDATE_PROB 255
//#define MV_GROUP_UPDATE