diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-10-29 20:12:24 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-10-29 20:12:24 +0000 |
commit | df8d4d0ed5bb0658006a9349a814c5b220aef09d (patch) | |
tree | 13577081dff501cea5ac7b5c348946cfefdad1a5 | |
parent | 9cb54f431196c09460510abf7c72a094e28ef5e3 (diff) | |
download | ffmpeg-df8d4d0ed5bb0658006a9349a814c5b220aef09d.tar.gz |
cleanup
Originally committed as revision 7964 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
-rw-r--r-- | postproc/postprocess.c | 62 | ||||
-rw-r--r-- | postproc/postprocess.h | 15 | ||||
-rw-r--r-- | postproc/postprocess_template.c | 2 |
3 files changed, 24 insertions, 55 deletions
diff --git a/postproc/postprocess.c b/postproc/postprocess.c index f3914ecdc7..a3d2ed36bb 100644 --- a/postproc/postprocess.c +++ b/postproc/postprocess.c @@ -47,10 +47,8 @@ c = checked against the other implementations (-vo md5) /* TODO: -remove global/static vars reduce the time wasted on the mem transfer unroll stuff if instructions depend too much on the prior one -we use 8x8 blocks for the horizontal filters, opendivx seems to use 8x4? move YScale thing to the end instead of fixing QP write a faster and higher quality deblocking filter :) make the mainloop more flexible (variable number of blocks at once @@ -69,7 +67,6 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <errno.h> #ifdef HAVE_MALLOC_H #include <malloc.h> #endif @@ -104,15 +101,9 @@ static uint64_t __attribute__((aligned(8))) b08= 0x0808080808080808LL; static uint64_t __attribute__((aligned(8))) b80= 0x8080808080808080LL; #endif -extern int divx_quality; -static int firstTime2 = 0; +static int verbose= 0; -extern int verbose; - -int deringThreshold= 20; - -//amount of "black" u r willing to loose to get a brightness corrected picture -double maxClippedThreshold= 0.01; +static const int deringThreshold= 20; struct PPFilter{ char *shortName; @@ -593,11 +584,21 @@ struct PPMode pp_get_mode_by_name_and_quality(char *name, int quality) char *p= temp; char *filterDelimiters= ",/"; char *optionDelimiters= ":"; - struct PPMode ppMode= {0,0,0,0,0,{150,200,400}}; + struct PPMode ppMode; char *filterToken; + ppMode.lumMode= 0; + ppMode.chromMode= 0; + ppMode.maxTmpNoise[0]= 700; + ppMode.maxTmpNoise[1]= 1500; + ppMode.maxTmpNoise[2]= 3000; + ppMode.maxAllowedY= 234; + ppMode.minAllowedY= 16; + ppMode.baseDcDiff= 256/4; + ppMode.flatnessThreshold=40; ppMode.flatnessThreshold= 56-16; - + ppMode.maxClippedThreshold= 0.01; + strncpy(temp, name, GET_MODE_BUFFER_SIZE); if(verbose>1) printf("pp: %s\n", name); @@ -705,9 +706,6 @@ struct PPMode pp_get_mode_by_name_and_quality(char *name, int quality) { int o; int numOfNoises=0; - ppMode.maxTmpNoise[0]= 150; - ppMode.maxTmpNoise[1]= 200; - ppMode.maxTmpNoise[2]= 400; for(o=0; options[o]!=NULL; o++) { @@ -725,9 +723,6 @@ struct PPMode pp_get_mode_by_name_and_quality(char *name, int quality) else if(filters[i].mask == V_DEBLOCK || filters[i].mask == H_DEBLOCK) { int o; - ppMode.baseDcDiff=256/4; -// hFlatnessThreshold= 40; -// vFlatnessThreshold= 40; for(o=0; options[o]!=NULL && o<2; o++) { @@ -818,32 +813,6 @@ void pp_free_context(void *vc){ free(c); } -//FIXME move this shit away from here -int readPPOpt(void *conf, char *arg) -{ - int val; - - if(arg == NULL) - return -2; // ERR_MISSING_PARAM - errno = 0; - val = (int)strtol(arg,NULL,0); - if(errno != 0) - return -4; // What about include cfgparser.h and use ERR_* defines */ - if(val < 0) - return -3; // ERR_OUT_OF_RANGE - - divx_quality = val; - firstTime2 = 1; - - return 1; -} - -void revertPPOpt(void *conf, char* opt) -{ - divx_quality=0; -} - - void pp_postprocess(uint8_t * src[3], int srcStride[3], uint8_t * dst[3], int dstStride[3], int width, int height, @@ -889,10 +858,9 @@ for(y=0; y<mbHeight; y++){ } } - if(firstTime2 && verbose) + if(verbose>2) { printf("using npp filters 0x%X/0x%X\n", mode->lumMode, mode->chromMode); - firstTime2=0; } postProcess(src[0], srcStride[0], dst[0], dstStride[0], diff --git a/postproc/postprocess.h b/postproc/postprocess.h index 6cfa039231..79eb9387c8 100644 --- a/postproc/postprocess.h +++ b/postproc/postprocess.h @@ -68,19 +68,20 @@ char *pp_help; //FIXME decide if this should be exported at all typedef struct PPMode{ - int lumMode; //acivates filters for luminance - int chromMode; //acivates filters for chrominance - int error; // non zero on error + int lumMode; // acivates filters for luminance + int chromMode; // acivates filters for chrominance + int error; // non zero on error - int minAllowedY; // for brigtness correction - int maxAllowedY; // for brihtness correction + int minAllowedY; // for brigtness correction + int maxAllowedY; // for brihtness correction + float maxClippedThreshold; // amount of "black" u r willing to loose to get a brightness corrected picture - int maxTmpNoise[3]; // for Temporal Noise Reducing filter (Maximal sum of abs differences) + int maxTmpNoise[3]; // for Temporal Noise Reducing filter (Maximal sum of abs differences) int baseDcDiff; int flatnessThreshold; - int forcedQuant; // quantizer if FORCE_QUANT is used + int forcedQuant; // quantizer if FORCE_QUANT is used } PPMode; void pp_postprocess(uint8_t * src[3], int srcStride[3], diff --git a/postproc/postprocess_template.c b/postproc/postprocess_template.c index beea9604f5..d9cdb658c0 100644 --- a/postproc/postprocess_template.c +++ b/postproc/postprocess_template.c @@ -2711,7 +2711,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int // printf("\n\n"); /* we allways get a completly black picture first */ - maxClipped= (uint64_t)(sum * maxClippedThreshold); + maxClipped= (uint64_t)(sum * c.ppMode.maxClippedThreshold); clipped= sum; for(black=255; black>0; black--) |