Adjust errorperbit according to RDMULT in activity masking
In activity masking, RDO constant RDMULT is adjusted on a per MB basis adaptive to activity with the MB. errorperbit, which is defined as RDMULT/RDDIV, is a constant used in motion estimation. Previously, in activity masking, errorperbit is not changed even when RDMULT is changed. This commit changed to adjust errorperbit according to the change in RDMULT. Test in cif set showed a very small but consistent gain by all quality metrics (average, overall psnr and ssim) when activity masking is on. Change-Id: I07ded3e852919ab76757691939fe435328273823
This commit is contained in:
parent
5fafa2d524
commit
1fba1e38ea
@ -336,6 +336,7 @@ void vp8_activity_masking(VP8_COMP *cpi, MACROBLOCK *x)
|
||||
{
|
||||
#if USE_ACT_INDEX
|
||||
x->rdmult += *(x->mb_activity_ptr) * (x->rdmult >> 2);
|
||||
x->errorperbit = x->rdmult/x->rddiv;
|
||||
#else
|
||||
INT64 a;
|
||||
INT64 b;
|
||||
@ -346,6 +347,8 @@ void vp8_activity_masking(VP8_COMP *cpi, MACROBLOCK *x)
|
||||
b = (2*act) + cpi->activity_avg;
|
||||
|
||||
x->rdmult = (unsigned int)(((INT64)x->rdmult*b + (a>>1))/a);
|
||||
x->errorperbit = x->rdmult/x->rddiv;
|
||||
|
||||
#endif
|
||||
|
||||
// Activity based Zbin adjustment
|
||||
|
Loading…
x
Reference in New Issue
Block a user