diff options
author | Paul Wilkins <paulwilkins@google.com> | 2013-03-07 15:02:57 +0000 |
---|---|---|
committer | Paul Wilkins <paulwilkins@google.com> | 2013-03-18 23:07:51 +0000 |
commit | d8ffee45269b33ca4dda47472e909afc44fcc3fe (patch) | |
tree | 5f6b8649a26ff88851b64b2236c7e2676fd709f1 /vp9/encoder/vp9_mcomp.c | |
parent | a5b54d73e43186f676b4bbbe960aaa8eea250911 (diff) | |
download | libvpx-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.c | 5 |
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 |