Mercurial > libavcodec.hg
comparison ratecontrol.c @ 693:b6a7ff92df57 libavcodec
darkness masking (lumi masking does only bright stuff now)
author | michaelni |
---|---|
date | Tue, 24 Sep 2002 10:53:59 +0000 |
parents | a1c69cb685b3 |
children | c0a914cc90c0 |
comparison
equal
deleted
inserted
replaced
692:852b5a416161 | 693:b6a7ff92df57 |
---|---|
463 } | 463 } |
464 | 464 |
465 static void adaptive_quantization(MpegEncContext *s, double q){ | 465 static void adaptive_quantization(MpegEncContext *s, double q){ |
466 int i; | 466 int i; |
467 const float lumi_masking= s->avctx->lumi_masking / (128.0*128.0); | 467 const float lumi_masking= s->avctx->lumi_masking / (128.0*128.0); |
468 const float dark_masking= s->avctx->dark_masking / (128.0*128.0); | |
468 const float temp_cplx_masking= s->avctx->temporal_cplx_masking; | 469 const float temp_cplx_masking= s->avctx->temporal_cplx_masking; |
469 const float spatial_cplx_masking = s->avctx->spatial_cplx_masking; | 470 const float spatial_cplx_masking = s->avctx->spatial_cplx_masking; |
470 const float p_masking = s->avctx->p_masking; | 471 const float p_masking = s->avctx->p_masking; |
471 float bits_sum= 0.0; | 472 float bits_sum= 0.0; |
472 float cplx_sum= 0.0; | 473 float cplx_sum= 0.0; |
490 }else{ | 491 }else{ |
491 cplx= temp_cplx; | 492 cplx= temp_cplx; |
492 factor= pow(temp_cplx, - temp_cplx_masking); | 493 factor= pow(temp_cplx, - temp_cplx_masking); |
493 } | 494 } |
494 factor*=pow(spat_cplx, - spatial_cplx_masking); | 495 factor*=pow(spat_cplx, - spatial_cplx_masking); |
495 factor*= (1.0 - (lumi-128)*(lumi-128)*lumi_masking); | 496 |
497 if(lumi>127) | |
498 factor*= (1.0 - (lumi-128)*(lumi-128)*lumi_masking); | |
499 else | |
500 factor*= (1.0 - (lumi-128)*(lumi-128)*dark_masking); | |
496 | 501 |
497 if(factor<0.00001) factor= 0.00001; | 502 if(factor<0.00001) factor= 0.00001; |
498 | 503 |
499 bits= cplx*factor; | 504 bits= cplx*factor; |
500 cplx_sum+= cplx; | 505 cplx_sum+= cplx; |