Commit 3b58b885 authored by Michael Niedermayer's avatar Michael Niedermayer

rewrote the horizontal lowpass filter to fix a bug which caused a blocky look

added deinterlace filters (linear interpolate, linear blend, median)
minor cleanups (removed some outcommented stuff)

Originally committed as revision 2204 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
parent 9ae0a66d
This diff is collapsed.
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define BLOCK_SIZE 8 #define BLOCK_SIZE 8
#define TEMP_STRIDE 8 #define TEMP_STRIDE 8
//#define NUM_BLOCKS_AT_ONCE 16 //not used yet
#define V_DEBLOCK 0x01 #define V_DEBLOCK 0x01
#define H_DEBLOCK 0x02 #define H_DEBLOCK 0x02
...@@ -32,20 +33,28 @@ ...@@ -32,20 +33,28 @@
#define LUM_H_DEBLOCK H_DEBLOCK // 2 #define LUM_H_DEBLOCK H_DEBLOCK // 2
#define CHROM_V_DEBLOCK (V_DEBLOCK<<4) // 16 #define CHROM_V_DEBLOCK (V_DEBLOCK<<4) // 16
#define CHROM_H_DEBLOCK (H_DEBLOCK<<4) // 32 #define CHROM_H_DEBLOCK (H_DEBLOCK<<4) // 32
#define LUM_DERING DERING // 4 #define LUM_DERING DERING // 4 (not implemented yet)
#define CHROM_DERING (DERING<<4) // 64 #define CHROM_DERING (DERING<<4) // 64 (not implemented yet)
#define LUM_LEVEL_FIX LEVEL_FIX // 8 #define LUM_LEVEL_FIX LEVEL_FIX // 8
//not supported currently #define CHROM_LEVEL_FIX (LEVEL_FIX<<4) // 128 (not implemented yet)
#define CHROM_LEVEL_FIX (LEVEL_FIX<<4) // 128
// Experimental vertical filters // Experimental vertical filters
#define V_RK1_FILTER 0x0100 // 256 #define V_RK1_FILTER 0x0100 // 256
#define V_X1_FILTER 0x0200 // 512 #define V_X1_FILTER 0x0200 // 512
// Experimental horizontal filters // Experimental horizontal filters
#define H_RK1_FILTER 0x1000 // 4096 #define H_RK1_FILTER 0x1000 // 4096 (not implemented yet)
#define H_X1_FILTER 0x2000 // 8192 #define H_X1_FILTER 0x2000 // 8192
//Deinterlacing Filters
#define DEINTERLACE_FILTER_MASK 0xF0000
#define LINEAR_IPOL_DEINT_FILTER 0x10000 // 65536
#define LINEAR_BLEND_DEINT_FILTER 0x20000 // 131072
#define CUBIC_BLEND_DEINT_FILTER 0x30000 // 196608 (not implemented yet)
#define CUBIC_IPOL_DEINT_FILTER 0x40000 // 262144 (not implemented yet)
#define MEDIAN_DEINT_FILTER 0x80000 // 524288
#define GET_PP_QUALITY_MAX 6 #define GET_PP_QUALITY_MAX 6
//#define TIMEING //#define TIMEING
...@@ -53,18 +62,6 @@ ...@@ -53,18 +62,6 @@
#define QP_STORE_T int #define QP_STORE_T int
//#ifdef __cplusplus
//#include <inttypes.h>
//void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
// QP_STORE_T QPs[], int QPStride, int isColor, int mode);
//#endif
//#ifdef __cplusplus
//extern "C"
//{
//#endif
void postprocess(unsigned char * src[], int src_stride, void postprocess(unsigned char * src[], int src_stride,
unsigned char * dst[], int dst_stride, unsigned char * dst[], int dst_stride,
int horizontal_size, int vertical_size, int horizontal_size, int vertical_size,
...@@ -72,8 +69,4 @@ void postprocess(unsigned char * src[], int src_stride, ...@@ -72,8 +69,4 @@ void postprocess(unsigned char * src[], int src_stride,
int getPpModeForQuality(int quality); int getPpModeForQuality(int quality);
//#ifdef __cplusplus
//}
//#endif
#endif #endif
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment