summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_mcomp.c
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2013-03-07 15:02:57 +0000
committerPaul Wilkins <paulwilkins@google.com>2013-03-18 23:07:51 +0000
commitd8ffee45269b33ca4dda47472e909afc44fcc3fe (patch)
tree5f6b8649a26ff88851b64b2236c7e2676fd709f1 /vp9/encoder/vp9_mcomp.c
parenta5b54d73e43186f676b4bbbe960aaa8eea250911 (diff)
downloadlibvpx-d8ffee45269b33ca4dda47472e909afc44fcc3fe.tar
libvpx-d8ffee45269b33ca4dda47472e909afc44fcc3fe.tar.gz
libvpx-d8ffee45269b33ca4dda47472e909afc44fcc3fe.tar.bz2
libvpx-d8ffee45269b33ca4dda47472e909afc44fcc3fe.zip
Changes to rd error_per_bit calculation.
Specifically changes to retain more precision especially at low Q through to the point of use. Change-Id: Ief5f010f2ca4daaabef49520e7edb46c35daf397
Diffstat (limited to 'vp9/encoder/vp9_mcomp.c')
-rw-r--r--vp9/encoder/vp9_mcomp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_mcomp.c b/vp9/encoder/vp9_mcomp.c
index 5fd1e83cd..e642b7487 100644
--- a/vp9/encoder/vp9_mcomp.c
+++ b/vp9/encoder/vp9_mcomp.c
@@ -68,7 +68,7 @@ static int mv_err_cost(int_mv *mv, int_mv *ref, int *mvjcost, int *mvcost[2],
v.col = mv->as_mv.col - ref->as_mv.col;
return ((mvjcost[vp9_get_mv_joint(v)] +
mvcost[0][v.row] + mvcost[1][v.col]) *
- error_per_bit + 128) >> 8;
+ error_per_bit + 4096) >> 13;
}
return 0;
}
@@ -205,7 +205,8 @@ void vp9_init3smotion_compensation(MACROBLOCK *x, int stride) {
(mvcost ? \
((mvjcost[((r) != rr) * 2 + ((c) != rc)] + \
mvcost[0][((r) - rr)] + mvcost[1][((c) - rc)]) * \
- error_per_bit + 128) >> 8 : 0)
+ error_per_bit + 4096) >> 13 : 0)
+
#define SP(x) (((x) & 7) << 1) // convert motion vector component to offset
// for svf calc