diff options
author | hkuang <hkuang@google.com> | 2013-07-25 11:11:39 -0700 |
---|---|---|
committer | hkuang <hkuang@google.com> | 2013-07-25 12:03:12 -0700 |
commit | 91037db265ecdd914a26e056cf69207b4f50924e (patch) | |
tree | c78c618cf6d0ffb187e2734d524bca19698b3c0d /libvpx/vp9/common/vp9_entropymv.h | |
parent | ba164dffc5a6795bce97fae02b51ccf3330e15e4 (diff) | |
download | android_external_libvpx-91037db265ecdd914a26e056cf69207b4f50924e.tar.gz android_external_libvpx-91037db265ecdd914a26e056cf69207b4f50924e.tar.bz2 android_external_libvpx-91037db265ecdd914a26e056cf69207b4f50924e.zip |
Roll latest libvpx into Android.
Make the VP9 decoding 2X faster than the old one.
Checkout is from master branch(hash:242157c756314827ad9244952c7253e8900b9626).
Change-Id: Ibe67b3ee19f82b87df2416826b63a67f7f79b63a
Diffstat (limited to 'libvpx/vp9/common/vp9_entropymv.h')
-rw-r--r-- | libvpx/vp9/common/vp9_entropymv.h | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/libvpx/vp9/common/vp9_entropymv.h b/libvpx/vp9/common/vp9_entropymv.h index 15994a6..85a1f3a 100644 --- a/libvpx/vp9/common/vp9_entropymv.h +++ b/libvpx/vp9/common/vp9_entropymv.h @@ -21,15 +21,11 @@ struct VP9Common; void vp9_entropy_mv_init(); void vp9_init_mv_probs(struct VP9Common *cm); -void vp9_adapt_nmv_probs(struct VP9Common *cm, int usehp); -int vp9_use_nmv_hp(const MV *ref); +void vp9_adapt_mv_probs(struct VP9Common *cm, int usehp); +int vp9_use_mv_hp(const MV *ref); #define VP9_NMV_UPDATE_PROB 252 -//#define MV_GROUP_UPDATE - -#define LOW_PRECISION_MV_UPDATE /* Use 7 bit forward update */ - /* Symbols for coding which components are zero jointly */ #define MV_JOINTS 4 typedef enum { @@ -99,7 +95,14 @@ typedef struct { nmv_component comps[2]; } nmv_context; -MV_JOINT_TYPE vp9_get_mv_joint(const MV *mv); +static INLINE MV_JOINT_TYPE vp9_get_mv_joint(const MV *mv) { + if (mv->row == 0) { + return mv->col == 0 ? MV_JOINT_ZERO : MV_JOINT_HNZVZ; + } else { + return mv->col == 0 ? MV_JOINT_HZVNZ : MV_JOINT_HNZVNZ; + } +} + MV_CLASS_TYPE vp9_get_mv_class(int z, int *offset); int vp9_get_mv_mag(MV_CLASS_TYPE c, int offset); @@ -121,22 +124,8 @@ typedef struct { nmv_component_counts comps[2]; } nmv_context_counts; -void vp9_increment_nmv(const MV *mv, const MV *ref, nmv_context_counts *mvctx, - int usehp); -extern const nmv_context vp9_default_nmv_context; -void vp9_counts_to_nmv_context( - nmv_context_counts *NMVcount, - nmv_context *prob, - int usehp, - unsigned int (*branch_ct_joint)[2], - unsigned int (*branch_ct_sign)[2], - unsigned int (*branch_ct_classes)[MV_CLASSES - 1][2], - unsigned int (*branch_ct_class0)[CLASS0_SIZE - 1][2], - unsigned int (*branch_ct_bits)[MV_OFFSET_BITS][2], - unsigned int (*branch_ct_class0_fp)[CLASS0_SIZE][4 - 1][2], - unsigned int (*branch_ct_fp)[4 - 1][2], - unsigned int (*branch_ct_class0_hp)[2], - unsigned int (*branch_ct_hp)[2]); +void vp9_inc_mv(const MV *mv, nmv_context_counts *mvctx); + void vp9_counts_process(nmv_context_counts *NMVcount, int usehp); #endif // VP9_COMMON_VP9_ENTROPYMV_H_ |