diff 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
line wrap: on
line diff
--- a/ratecontrol.c	Tue Sep 24 09:15:46 2002 +0000
+++ b/ratecontrol.c	Tue Sep 24 10:53:59 2002 +0000
@@ -465,6 +465,7 @@
 static void adaptive_quantization(MpegEncContext *s, double q){
     int i;
     const float lumi_masking= s->avctx->lumi_masking / (128.0*128.0);
+    const float dark_masking= s->avctx->dark_masking / (128.0*128.0);
     const float temp_cplx_masking= s->avctx->temporal_cplx_masking;
     const float spatial_cplx_masking = s->avctx->spatial_cplx_masking;
     const float p_masking = s->avctx->p_masking;
@@ -492,7 +493,11 @@
             factor= pow(temp_cplx, - temp_cplx_masking);
         }
         factor*=pow(spat_cplx, - spatial_cplx_masking);
-        factor*= (1.0 - (lumi-128)*(lumi-128)*lumi_masking);
+
+        if(lumi>127)
+            factor*= (1.0 - (lumi-128)*(lumi-128)*lumi_masking);
+        else
+            factor*= (1.0 - (lumi-128)*(lumi-128)*dark_masking);
         
         if(factor<0.00001) factor= 0.00001;