Mercurial > libavcodec.hg
changeset 793:8e9faf69110f libavcodec
cleanup
author | michael |
---|---|
date | Tue, 29 Oct 2002 20:12:24 +0000 |
parents | 2d1283d511b7 |
children | 670009af4fc2 |
files | libpostproc/postprocess.c libpostproc/postprocess.h libpostproc/postprocess_template.c |
diffstat | 3 files changed, 24 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/libpostproc/postprocess.c Tue Oct 29 18:51:52 2002 +0000 +++ b/libpostproc/postprocess.c Tue Oct 29 20:12:24 2002 +0000 @@ -47,10 +47,8 @@ /* 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 @@ #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))) b80= 0x8080808080808080LL; #endif -extern int divx_quality; -static int firstTime2 = 0; - -extern int verbose; +static int verbose= 0; -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 @@ 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 @@ { 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 @@ 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 @@ 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 @@ } } - 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],
--- a/libpostproc/postprocess.h Tue Oct 29 18:51:52 2002 +0000 +++ b/libpostproc/postprocess.h Tue Oct 29 20:12:24 2002 +0000 @@ -68,19 +68,20 @@ //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],
--- a/libpostproc/postprocess_template.c Tue Oct 29 18:51:52 2002 +0000 +++ b/libpostproc/postprocess_template.c Tue Oct 29 20:12:24 2002 +0000 @@ -2711,7 +2711,7 @@ // 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--)