Mercurial > libavcodec.hg
changeset 1806:2721e1859e19 libavcodec
normalize adaptive quantizatiuon fix (based upon a patch by (Jindrich Makovicka <makovick at kmlinux dot fjfi dot cvut dot cz>))
author | michael |
---|---|
date | Sat, 14 Feb 2004 13:37:58 +0000 |
parents | 5dd5b2052f5b |
children | db067aa9fc2b |
files | ratecontrol.c |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ratecontrol.c Sat Feb 14 03:49:43 2004 +0000 +++ b/ratecontrol.c Sat Feb 14 13:37:58 2004 +0000 @@ -545,9 +545,10 @@ /* handle qmin/qmax cliping */ if(s->flags&CODEC_FLAG_NORMALIZE_AQP){ + float factor= bits_sum/cplx_sum; for(i=0; i<s->mb_num; i++){ float newq= q*cplx_tab[i]/bits_tab[i]; - newq*= bits_sum/cplx_sum; + newq*= factor; if (newq > qmax){ bits_sum -= bits_tab[i]; @@ -558,6 +559,8 @@ cplx_sum -= cplx_tab[i]*q/qmin; } } + if(bits_sum < 0.001) bits_sum= 0.001; + if(cplx_sum < 0.001) cplx_sum= 0.001; } for(i=0; i<s->mb_num; i++){