[Mplayer-cvslog] CVS: main/postproc postprocess.c,1.52,1.53 postprocess_template.c,1.51,1.52 postprocess.h,1.18,1.19
Michael Niedermayer
michael at mplayer.dev.hu
Fri Dec 28 14:56:06 CET 2001
Update of /cvsroot/mplayer/main/postproc
In directory mplayer:/var/tmp.root/cvs-serv4477
Modified Files:
postprocess.c postprocess_template.c postprocess.h
Log Message:
minor brightness/contrast bugfix / moved some global vars into ppMode
non mmx compilation bugfix
Index: postprocess.c
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/postprocess.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- postprocess.c 28 Dec 2001 00:09:55 -0000 1.52
+++ postprocess.c 28 Dec 2001 13:56:04 -0000 1.53
@@ -47,6 +47,7 @@
/*
TODO:
+remove global/static vars
reduce the time wasted on the mem transfer
implement everything in C at least (done at the moment but ...)
unroll stuff if instructions depend too much on the prior one
@@ -153,15 +154,12 @@
int vFlatnessThreshold= 56 - 16;
int deringThreshold= 20;
-static int dcOffset= 1;
-static int dcThreshold= 3;
+static int dcOffset;
+static int dcThreshold;
//amount of "black" u r willing to loose to get a brightness corrected picture
double maxClippedThreshold= 0.01;
-int maxAllowedY=234;
-int minAllowedY=16;
-
static struct PPFilter filters[]=
{
{"hb", "hdeblock", 1, 1, 3, H_DEBLOCK},
@@ -672,6 +670,7 @@
ppMode.minAllowedY= 16;
ppMode.maxAllowedY= 234;
for(o=0; options[o]!=NULL; o++)
+ {
if( !strcmp(options[o],"fullyrange")
||!strcmp(options[o],"f"))
{
@@ -679,6 +678,7 @@
ppMode.maxAllowedY= 255;
numOfUnknownOptions--;
}
+ }
}
else if(filters[i].mask == TEMP_NOISE_FILTER)
{
@@ -704,6 +704,9 @@
else if(filters[i].mask == V_DEBLOCK || filters[i].mask == H_DEBLOCK)
{
int o;
+ ppMode.maxDcDiff=1;
+// hFlatnessThreshold= 40;
+// vFlatnessThreshold= 40;
for(o=0; options[o]!=NULL && o<2; o++)
{
@@ -712,16 +715,7 @@
if(tail==options[o]) break;
numOfUnknownOptions--;
- if(o==0)
- {
- dcOffset= val;
- dcThreshold= 2*val+1;
- mmxDCOffset= 0x7F - val;
- mmxDCThreshold= 0x7F - 2*val - 1;
-
- mmxDCOffset*= 0x0101010101010101LL;
- mmxDCThreshold*= 0x0101010101010101LL;
- }
+ if(o==0) ppMode.maxDcDiff= val;
else hFlatnessThreshold=
vFlatnessThreshold= val;
}
@@ -800,6 +794,9 @@
ppMode.maxTmpNoise[0]= 700;
ppMode.maxTmpNoise[1]= 1500;
ppMode.maxTmpNoise[2]= 3000;
+ ppMode.maxAllowedY= 234;
+ ppMode.minAllowedY= 16;
+ ppMode.maxDcDiff= 1;
#ifdef HAVE_ODIVX_POSTPROCESS
// Note: I could make this shit outside of this file, but it would mean one
Index: postprocess_template.c
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/postprocess_template.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- postprocess_template.c 28 Dec 2001 00:09:55 -0000 1.51
+++ postprocess_template.c 28 Dec 2001 13:56:04 -0000 1.52
@@ -2615,11 +2615,20 @@
long long memcpyTime=0, vertTime=0, horizTime=0, sumTime;
sumTime= rdtsc();
#endif
-//mode= 0x7F;
+
+ dcOffset= ppMode->maxDcDiff;
+ dcThreshold= ppMode->maxDcDiff*2 + 1;
+
#ifdef HAVE_MMX
maxTmpNoise[0]= ppMode->maxTmpNoise[0];
maxTmpNoise[1]= ppMode->maxTmpNoise[1];
maxTmpNoise[2]= ppMode->maxTmpNoise[2];
+
+ mmxDCOffset= 0x7F - dcOffset;
+ mmxDCThreshold= 0x7F - dcThreshold;
+
+ mmxDCOffset*= 0x0101010101010101LL;
+ mmxDCThreshold*= 0x0101010101010101LL;
#endif
if(mode & CUBIC_IPOL_DEINT_FILTER) copyAhead=16;
@@ -2662,8 +2671,8 @@
if(mode & FULL_Y_RANGE)
{
- maxAllowedY=255;
- minAllowedY=0;
+ ppMode->maxAllowedY=255;
+ ppMode->minAllowedY=0;
}
}
@@ -2703,14 +2712,14 @@
clipped-= yHistogram[white];
}
- scale= (double)(maxAllowedY - minAllowedY) / (double)(white-black);
+ scale= (double)(ppMode->maxAllowedY - ppMode->minAllowedY) / (double)(white-black);
#ifdef HAVE_MMX2
packedYScale= (uint16_t)(scale*256.0 + 0.5);
- packedYOffset= (((black*packedYScale)>>8) - minAllowedY) & 0xFFFF;
+ packedYOffset= (((black*packedYScale)>>8) - ppMode->minAllowedY) & 0xFFFF;
#else
packedYScale= (uint16_t)(scale*1024.0 + 0.5);
- packedYOffset= (black - minAllowedY) & 0xFFFF;
+ packedYOffset= (black - ppMode->minAllowedY) & 0xFFFF;
#endif
packedYOffset|= packedYOffset<<32;
Index: postprocess.h
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/postprocess.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- postprocess.h 26 Dec 2001 19:45:49 -0000 1.18
+++ postprocess.h 28 Dec 2001 13:56:04 -0000 1.19
@@ -85,6 +85,8 @@
int maxAllowedY; // for brihtness correction
int maxTmpNoise[3]; // for Temporal Noise Reducing filter (Maximal sum of abs differences)
+
+ int maxDcDiff; // max abs diff between pixels to be considered flat
};
struct PPFilter{
More information about the MPlayer-cvslog
mailing list