hvirtual/quicktime/ffmpeg/libavcodec/libpostproc/postprocess_template.c File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define REGa   eax
#define REGc   ecx
#define REGd   edx
#define REG_a   "eax"
#define REG_c   "ecx"
#define REG_d   "edx"
#define REG_SP   "esp"
#define ALIGN_MASK   "$0xFFFFFFF8"
#define PAVGB(a, b)   REAL_PAVGB(a,b)
#define FAST_L2_DIFF

Functions

static void RENAME() doVertLowPass (uint8_t *src, int stride, PPContext *c)
static void RENAME() vertX1Filter (uint8_t *src, int stride, PPContext *co)
static void RENAME() doVertDefFilter (uint8_t src[], int stride, PPContext *c)
static void RENAME() dering (uint8_t src[], int stride, PPContext *c)
static void RENAME() deInterlaceInterpolateLinear (uint8_t src[], int stride)
static void RENAME() deInterlaceInterpolateCubic (uint8_t src[], int stride)
static void RENAME() deInterlaceFF (uint8_t src[], int stride, uint8_t *tmp)
static void RENAME() deInterlaceL5 (uint8_t src[], int stride, uint8_t *tmp, uint8_t *tmp2)
static void RENAME() deInterlaceBlendLinear (uint8_t src[], int stride, uint8_t *tmp)
static void RENAME() deInterlaceMedian (uint8_t src[], int stride)
static void RENAME() tempNoiseReducer (uint8_t *src, int stride, uint8_t *tempBlured, uint32_t *tempBluredPast, int *maxNoise)
static void RENAME() postProcess (uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c)
static void RENAME() blockCopy (uint8_t dst[], int dstStride, uint8_t src[], int srcStride, int levelFix, int64_t *packedOffsetAndScale)
static void RENAME() duplicate (uint8_t src[], int stride)


Detailed Description

mmx/mmx2/3dnow postprocess code.

Definition in file postprocess_template.c.


Define Documentation

#define ALIGN_MASK   "$0xFFFFFFF8"

Definition at line 42 of file postprocess_template.c.

Referenced by dering(), and doVertDefFilter().

#define FAST_L2_DIFF

#define PAVGB ( a,
b   )     REAL_PAVGB(a,b)

Definition at line 55 of file postprocess_template.c.

#define REG_a   "eax"

Definition at line 38 of file postprocess_template.c.

#define REG_c   "ecx"

#define REG_d   "edx"

#define REG_SP   "esp"

Definition at line 41 of file postprocess_template.c.

Referenced by dering(), and doVertDefFilter().

#define REGa   eax

#define REGc   ecx

#define REGd   edx


Function Documentation

static void RENAME() blockCopy ( uint8_t  dst[],
int  dstStride,
uint8_t  src[],
int  srcStride,
int  levelFix,
int64_t *  packedOffsetAndScale 
) [inline, static]

Copies a block from src to dst and fixes the blacklevel levelFix == 0 -> dont touch the brighness & contrast

Definition at line 3191 of file postprocess_template.c.

References memcpy, REG_d, REGa, and REGd.

static void RENAME() deInterlaceBlendLinear ( uint8_t  src[],
int  stride,
uint8_t *  tmp 
) [inline, static]

Deinterlaces the given block by filtering all lines with a (1 2 1) filter. will be called for every 8x8 block and can read & write from line 4-15 lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced this filter will read lines 4-13 and write 4-11

Definition at line 1849 of file postprocess_template.c.

References a, b, c, PAVGB, and REG_d.

static void RENAME() deInterlaceFF ( uint8_t  src[],
int  stride,
uint8_t *  tmp 
) [inline, static]

Deinterlaces the given block by filtering every second line with a (-1 4 2 4 -1) filter. will be called for every 8x8 block and can read & write from line 4-15 lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced this filter will read lines 4-13 and write 5-11

Definition at line 1667 of file postprocess_template.c.

References CLIP, REG_d, REGa, REGd, t1, and t2.

static void RENAME() deInterlaceInterpolateCubic ( uint8_t  src[],
int  stride 
) [inline, static]

Deinterlaces the given block by cubic interpolating every second line. will be called for every 8x8 block and can read & write from line 4-15 lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced this filter will read lines 3-15 and write 7-13

Definition at line 1602 of file postprocess_template.c.

References CLIP, REG_c, REG_d, REGa, REGc, and REGd.

static void RENAME() deInterlaceInterpolateLinear ( uint8_t  src[],
int  stride 
) [inline, static]

Deinterlaces the given block by linearly interpolating every second line. will be called for every 8x8 block and can read & write from line 4-15 lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced

Definition at line 1549 of file postprocess_template.c.

References a, b, PAVGB, and REG_c.

static void RENAME() deInterlaceL5 ( uint8_t  src[],
int  stride,
uint8_t *  tmp,
uint8_t *  tmp2 
) [inline, static]

Deinterlaces the given block by filtering every line with a (-1 2 6 2 -1) filter. will be called for every 8x8 block and can read & write from line 4-15 lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced this filter will read lines 4-13 and write 4-11

Definition at line 1747 of file postprocess_template.c.

References CLIP, REG_d, REGa, REGd, t1, t2, and t3.

static void RENAME() deInterlaceMedian ( uint8_t  src[],
int  stride 
) [inline, static]

Deinterlaces the given block by applying a median filter to every second line. will be called for every 8x8 block and can read & write from line 4-15, lines 0-3 have been passed through the deblock / dering filters allready, but can be read too lines 4-12 will be read into the deblocking filter and should be deinterlaced

Definition at line 1950 of file postprocess_template.c.

References a, b, c, e, MEDIAN, REG_d, REGa, and REGd.

static void RENAME() dering ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Definition at line 1183 of file postprocess_template.c.

References ABS, ALIGN_MASK, avg, c, deringThreshold, error(), LL, MANGLE, MIN, min, PAVGB, REG_c, REG_d, REG_SP, REGa, REGd, s, and t.

Here is the call graph for this function:

static void RENAME() doVertDefFilter ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Definition at line 611 of file postprocess_template.c.

References ABS, ALIGN_MASK, c, MANGLE, MAX, MIN, PAVGB, REG_c, REG_SP, REGc, and SIGN.

static void RENAME() doVertLowPass ( uint8_t *  src,
int  stride,
PPContext c 
) [inline, static]

Do a vertical low pass filter on the 8x16 block (only write to the 8x8 block in the middle) using the 9-Tap Filter (1,1,2,2,4,2,2,1,1)/16

Definition at line 196 of file postprocess_template.c.

References ABS, BLOCK_SIZE, c, PAVGB, REG_a, REG_c, REGa, REGc, src, and stride.

static void RENAME() duplicate ( uint8_t  src[],
int  stride 
) [inline, static]

Duplicates the given 8 src pixels ? times upward

Definition at line 3322 of file postprocess_template.c.

References memcpy.

static void RENAME() postProcess ( uint8_t  src[],
int  srcStride,
uint8_t  dst[],
int  dstStride,
int  width,
int  height,
QP_STORE_T  QPs[],
int  QPStride,
int  isColor,
PPContext c2 
) [static]

Filters array of bytes (Y or U or V values)

static void RENAME() tempNoiseReducer ( uint8_t *  src,
int  stride,
uint8_t *  tempBlured,
uint32_t *  tempBluredPast,
int *  maxNoise 
) [inline, static]

Definition at line 2238 of file postprocess_template.c.

References MANGLE, PAVGB, REG_c, REG_d, REGa, REGc, and REGd.

static void RENAME() vertX1Filter ( uint8_t *  src,
int  stride,
PPContext co 
) [inline, static]

Experimental Filter 1 will not damage linear gradients Flat blocks should look like they where passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter can only smooth blocks at the expected locations (it cant smooth them if they did move) MMX2 version does correct clipping C version doesnt

Definition at line 482 of file postprocess_template.c.

References a, ABS, b, c, co(), MANGLE, MAX, PAVGB, REG_c, SIGN, and stride.

Here is the call graph for this function:


Generated on Mon Apr 28 14:04:59 2008 for Cinelerra by  doxygen 1.5.5