diff options
author | Deb Mukherjee <debargha@google.com> | 2012-09-06 09:07:42 -0700 |
---|---|---|
committer | Deb Mukherjee <debargha@google.com> | 2012-09-12 11:51:10 -0700 |
commit | 2b26cf17862949123618d2dbe60a661fbb7eb4a9 (patch) | |
tree | ef2cbadc62a86cad8c5d69a7287159367ef397f7 /vp8/common/entropymv.h | |
parent | d406334f2712a1ec1bef890b2397927918a84e48 (diff) | |
download | libvpx-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.h | 6 |
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 |