ref: c6d90f05359101e8003577128ae62f63781bc035
parent: 33a0deb92835500f4f1edf71fe085f530acd0cc5
author: James Zern <[email protected]>
date: Mon Jul 6 16:49:28 EDT 2015
vp9_entropymv: remove vp9_get_mv_mag() inline the code directly in read_mv_component(), the only place where it was being used; this removes a function call in a hot function Change-Id: I66f99c0c9ce3bc310101dbca4a470f023cc6fb55
--- a/vp9/common/vp9_entropymv.c
+++ b/vp9/common/vp9_entropymv.c
@@ -132,10 +132,6 @@
(abs(ref->col) >> 3) < COMPANDED_MVREF_THRESH;
}
-int vp9_get_mv_mag(MV_CLASS_TYPE c, int offset) {
- return mv_class_base(c) + offset;
-}
-
static void inc_mv_component(int v, nmv_component_counts *comp_counts,
int incr, int usehp) {
int s, z, c, o, d, e, f;
--- a/vp9/common/vp9_entropymv.h
+++ b/vp9/common/vp9_entropymv.h
@@ -106,8 +106,6 @@
}
MV_CLASS_TYPE vp9_get_mv_class(int z, int *offset);
-int vp9_get_mv_mag(MV_CLASS_TYPE c, int offset);
-
typedef struct {
unsigned int sign[2];
--- a/vp9/decoder/vp9_decodemv.c
+++ b/vp9/decoder/vp9_decodemv.c
@@ -242,6 +242,7 @@
// Integer part
if (class0) {
d = vp9_read_tree(r, vp9_mv_class0_tree, mvcomp->class0);
+ mag = 0;
} else {
int i;
const int n = mv_class + CLASS0_BITS - 1; // number of bits
@@ -249,6 +250,7 @@
d = 0;
for (i = 0; i < n; ++i)
d |= vp9_read(r, mvcomp->bits[i]) << i;
+ mag = CLASS0_SIZE << (mv_class + 2);
}
// Fractional part
@@ -260,7 +262,7 @@
: 1;
// Result
- mag = vp9_get_mv_mag(mv_class, (d << 3) | (fr << 1) | hp) + 1;
+ mag += ((d << 3) | (fr << 1) | hp) + 1;
return sign ? -mag : mag;
}