Mercurial > libavcodec.hg
comparison libpostproc/postprocess.h @ 829:c39e14fc2392 libavcodec
cleanup
| author | michael |
|---|---|
| date | Sat, 02 Nov 2002 13:58:14 +0000 |
| parents | 6d225a8f0ff0 |
| children | 0a1fbae9f6e1 |
comparison
equal
deleted
inserted
replaced
| 828:ace3ccd18dd2 | 829:c39e14fc2392 |
|---|---|
| 14 You should have received a copy of the GNU General Public License | 14 You should have received a copy of the GNU General Public License |
| 15 along with this program; if not, write to the Free Software | 15 along with this program; if not, write to the Free Software |
| 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 17 */ | 17 */ |
| 18 | 18 |
| 19 // POSTPROCESS_H is defined by opendivx's postprocess.h | |
| 20 #ifndef NEWPOSTPROCESS_H | 19 #ifndef NEWPOSTPROCESS_H |
| 21 #define NEWPOSTPROCESS_H | 20 #define NEWPOSTPROCESS_H |
| 22 | 21 |
| 23 #define V_DEBLOCK 0x01 | |
| 24 #define H_DEBLOCK 0x02 | |
| 25 #define DERING 0x04 | |
| 26 #define LEVEL_FIX 0x08 /* Brightness & Contrast */ | |
| 27 | |
| 28 #define LUM_V_DEBLOCK V_DEBLOCK // 1 | |
| 29 #define LUM_H_DEBLOCK H_DEBLOCK // 2 | |
| 30 #define CHROM_V_DEBLOCK (V_DEBLOCK<<4) // 16 | |
| 31 #define CHROM_H_DEBLOCK (H_DEBLOCK<<4) // 32 | |
| 32 #define LUM_DERING DERING // 4 | |
| 33 #define CHROM_DERING (DERING<<4) // 64 | |
| 34 #define LUM_LEVEL_FIX LEVEL_FIX // 8 | |
| 35 #define CHROM_LEVEL_FIX (LEVEL_FIX<<4) // 128 (not implemented yet) | |
| 36 | |
| 37 // Experimental vertical filters | |
| 38 #define V_X1_FILTER 0x0200 // 512 | |
| 39 | |
| 40 // Experimental horizontal filters | |
| 41 #define H_X1_FILTER 0x2000 // 8192 | |
| 42 | |
| 43 // select between full y range (255-0) or standart one (234-16) | |
| 44 #define FULL_Y_RANGE 0x8000 // 32768 | |
| 45 | |
| 46 //Deinterlacing Filters | |
| 47 #define LINEAR_IPOL_DEINT_FILTER 0x10000 // 65536 | |
| 48 #define LINEAR_BLEND_DEINT_FILTER 0x20000 // 131072 | |
| 49 #define CUBIC_BLEND_DEINT_FILTER 0x8000 // (not implemented yet) | |
| 50 #define CUBIC_IPOL_DEINT_FILTER 0x40000 // 262144 | |
| 51 #define MEDIAN_DEINT_FILTER 0x80000 // 524288 | |
| 52 #define FFMPEG_DEINT_FILTER 0x400000 | |
| 53 | |
| 54 #define TEMP_NOISE_FILTER 0x100000 | |
| 55 #define FORCE_QUANT 0x200000 | |
| 56 | |
| 57 #define GET_PP_QUALITY_MAX 6 | 22 #define GET_PP_QUALITY_MAX 6 |
| 58 | |
| 59 //use if u want a faster postprocessing code | |
| 60 //cant differentiate between chroma & luma filters (both on or both off) | |
| 61 //obviosly the -pp option at the commandline has no effect except turning the here selected | |
| 62 //filters on | |
| 63 //#define COMPILE_TIME_MODE 0x77 | |
| 64 | 23 |
| 65 #define QP_STORE_T int8_t | 24 #define QP_STORE_T int8_t |
| 66 | 25 |
| 67 typedef void pp_context_t; | 26 typedef void pp_context_t; |
| 27 typedef void pp_mode_t; | |
| 68 | 28 |
| 69 extern char *pp_help; | 29 extern char *pp_help; //a simple help text |
| 70 | |
| 71 //FIXME decide if this should be exported at all | |
| 72 typedef struct PPMode{ | |
| 73 int lumMode; // acivates filters for luminance | |
| 74 int chromMode; // acivates filters for chrominance | |
| 75 int error; // non zero on error | |
| 76 | |
| 77 int minAllowedY; // for brigtness correction | |
| 78 int maxAllowedY; // for brihtness correction | |
| 79 float maxClippedThreshold; // amount of "black" u r willing to loose to get a brightness corrected picture | |
| 80 | |
| 81 int maxTmpNoise[3]; // for Temporal Noise Reducing filter (Maximal sum of abs differences) | |
| 82 | |
| 83 int baseDcDiff; | |
| 84 int flatnessThreshold; | |
| 85 | |
| 86 int forcedQuant; // quantizer if FORCE_QUANT is used | |
| 87 } PPMode; | |
| 88 | 30 |
| 89 void pp_postprocess(uint8_t * src[3], int srcStride[3], | 31 void pp_postprocess(uint8_t * src[3], int srcStride[3], |
| 90 uint8_t * dst[3], int dstStride[3], | 32 uint8_t * dst[3], int dstStride[3], |
| 91 int horizontalSize, int verticalSize, | 33 int horizontalSize, int verticalSize, |
| 92 QP_STORE_T *QP_store, int QP_stride, | 34 QP_STORE_T *QP_store, int QP_stride, |
| 93 PPMode *mode, pp_context_t *ppContext, int pict_type); | 35 pp_mode_t *mode, pp_context_t *ppContext, int pict_type); |
| 94 | 36 |
| 95 // name is the stuff after "-pp" on the command line | 37 // name is the stuff after "-pp" on the command line |
| 96 PPMode pp_get_mode_by_name_and_quality(char *name, int quality); | 38 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); |
| 39 void pp_free_mode(pp_mode_t *mode); | |
| 97 | 40 |
| 98 pp_context_t *pp_get_context(int width, int height, int cpuCaps); | 41 pp_context_t *pp_get_context(int width, int height, int cpuCaps); |
| 99 void pp_free_context(pp_context_t *ppContext); | 42 void pp_free_context(pp_context_t *ppContext); |
| 100 | 43 |
| 101 #define PP_CPU_CAPS_MMX 0x80000000 | 44 #define PP_CPU_CAPS_MMX 0x80000000 |
