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;