postprocess.c File Reference


Detailed Description

postprocessing.

Definition in file postprocess.c.

Go to the source code of this file.

Functions

static DECLARE_ALIGNED (8, uint64_t attribute_used, w05)=0x0005000500050005LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, w04)=0x0004000400040004LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, w20)=0x0020002000200020LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, b00)=0x0000000000000000LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, b01)=0x0101010101010101LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, b02)=0x0202020202020202LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, b08)=0x0808080808080808LL
static DECLARE_ALIGNED (8, uint64_t attribute_used, b80)=0x8080808080808080LL
static void prefetchnta (void *p)
static void prefetcht0 (void *p)
static void prefetcht1 (void *p)
static void prefetcht2 (void *p)
static int isHorizDC_C (uint8_t src[], int stride, PPContext *c)
 Check if the given 8x8 Block is mostly "flat".
static int isVertDC_C (uint8_t src[], int stride, PPContext *c)
 Check if the middle 8x8 Block in the given 8x16 block is flat.
static int isHorizMinMaxOk_C (uint8_t src[], int stride, int QP)
static int isVertMinMaxOk_C (uint8_t src[], int stride, int QP)
static int horizClassify_C (uint8_t src[], int stride, PPContext *c)
static int vertClassify_C (uint8_t src[], int stride, PPContext *c)
static void doHorizDefFilter_C (uint8_t dst[], int stride, PPContext *c)
static void doHorizLowPass_C (uint8_t dst[], int stride, PPContext *c)
 Do a horizontal low pass filter on the 10x8 block (dst points to middle 8x8 Block) using the 9-Tap Filter (1,1,2,2,4,2,2,1,1)/16 (C version).
static void horizX1Filter (uint8_t *src, int stride, int QP)
 Experimental Filter 1 (Horizontal) 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 cannot smooth them if they did move) MMX2 version does correct clipping C version does not not identical with the vertical one.
static av_always_inline void do_a_deblock_C (uint8_t *src, int step, int stride, PPContext *c)
 accurate deblock filter
static void postProcess (uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc)
pp_mode_tpp_get_mode_by_name_and_quality (char *name, int quality)
 returns a pp_mode_t or NULL if an error occured name is the string after "-pp" on the command line quality is a number from 0 to PP_QUALITY_MAX
void pp_free_mode (pp_mode_t *mode)
static void reallocAlign (void **p, int alignment, int size)
static void reallocBuffers (PPContext *c, int width, int height, int stride, int qpStride)
static void global_init (void)
static const char * context_to_name (void *ptr)
pp_context_tpp_get_context (int width, int height, int cpuCaps)
void pp_free_context (void *vc)
void pp_postprocess (uint8_t *src[3], int srcStride[3], uint8_t *dst[3], int dstStride[3], int width, int height, QP_STORE_T *QP_store, int QPStride, pp_mode_t *vm, void *vc, int pict_type)

Variables

static uint8_t clip_table [3 *256]
static uint8_t *const clip_tab = clip_table + 256
static const int attribute_used deringThreshold = 20
static struct PPFilter filters []
static const char * replaceTable []
char * pp_help
 a simple help text
static AVClass av_codec_context_class = { "Postproc", context_to_name, NULL }


Function Documentation

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
w05   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
w04   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
w20   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
b00   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
b01   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
b02   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
b08   
) [static, pure virtual]

static DECLARE_ALIGNED ( ,
uint64_t  attribute_used,
b80   
) [static, pure virtual]

static void prefetchnta ( void *  p  )  [inline, static]

Definition at line 155 of file postprocess.c.

static void prefetcht0 ( void *  p  )  [inline, static]

Definition at line 162 of file postprocess.c.

static void prefetcht1 ( void *  p  )  [inline, static]

Definition at line 169 of file postprocess.c.

static void prefetcht2 ( void *  p  )  [inline, static]

Definition at line 176 of file postprocess.c.

static int isHorizDC_C ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Check if the given 8x8 Block is mostly "flat".

Definition at line 189 of file postprocess.c.

Referenced by horizClassify_C().

static int isVertDC_C ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Check if the middle 8x8 Block in the given 8x16 block is flat.

Definition at line 213 of file postprocess.c.

Referenced by vertClassify_C().

static int isHorizMinMaxOk_C ( uint8_t  src[],
int  stride,
int  QP 
) [inline, static]

Definition at line 235 of file postprocess.c.

Referenced by horizClassify_C().

static int isVertMinMaxOk_C ( uint8_t  src[],
int  stride,
int  QP 
) [inline, static]

Definition at line 258 of file postprocess.c.

Referenced by vertClassify_C().

static int horizClassify_C ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Definition at line 299 of file postprocess.c.

static int vertClassify_C ( uint8_t  src[],
int  stride,
PPContext c 
) [inline, static]

Definition at line 310 of file postprocess.c.

static void doHorizDefFilter_C ( uint8_t  dst[],
int  stride,
PPContext c 
) [inline, static]

Definition at line 321 of file postprocess.c.

static void doHorizLowPass_C ( uint8_t  dst[],
int  stride,
PPContext c 
) [inline, static]

Do a horizontal low pass filter on the 10x8 block (dst points to middle 8x8 Block) using the 9-Tap Filter (1,1,2,2,4,2,2,1,1)/16 (C version).

Definition at line 362 of file postprocess.c.

static void horizX1Filter ( uint8_t *  src,
int  stride,
int  QP 
) [inline, static]

Experimental Filter 1 (Horizontal) 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 cannot smooth them if they did move) MMX2 version does correct clipping C version does not not identical with the vertical one.

Definition at line 403 of file postprocess.c.

static av_always_inline void do_a_deblock_C ( uint8_t *  src,
int  step,
int  stride,
PPContext c 
) [static]

accurate deblock filter

Definition at line 464 of file postprocess.c.

static void postProcess ( uint8_t  src[],
int  srcStride,
uint8_t  dst[],
int  dstStride,
int  width,
int  height,
QP_STORE_T  QPs[],
int  QPStride,
int  isColor,
pp_mode_t vm,
pp_context_t vc 
) [inline, static]

Definition at line 649 of file postprocess.c.

Referenced by pp_postprocess().

pp_mode_t* pp_get_mode_by_name_and_quality ( char *  name,
int  quality 
)

returns a pp_mode_t or NULL if an error occured name is the string after "-pp" on the command line quality is a number from 0 to PP_QUALITY_MAX

Definition at line 744 of file postprocess.c.

Referenced by new_filter().

void pp_free_mode ( pp_mode_t mode  ) 

Definition at line 936 of file postprocess.c.

Referenced by cleanup().

static void reallocAlign ( void **  p,
int  alignment,
int  size 
) [static]

Definition at line 940 of file postprocess.c.

Referenced by reallocBuffers().

static void reallocBuffers ( PPContext c,
int  width,
int  height,
int  stride,
int  qpStride 
) [static]

Definition at line 945 of file postprocess.c.

Referenced by pp_get_context(), and pp_postprocess().

static void global_init ( void   )  [static]

Definition at line 973 of file postprocess.c.

Referenced by pp_get_context().

static const char* context_to_name ( void *  ptr  )  [static]

Definition at line 981 of file postprocess.c.

pp_context_t* pp_get_context ( int  width,
int  height,
int  cpuCaps 
)

Definition at line 987 of file postprocess.c.

Referenced by new_filter().

void pp_free_context ( void *  vc  ) 

Definition at line 1012 of file postprocess.c.

Referenced by cleanup().

void pp_postprocess ( uint8_t *  src[3],
int  srcStride[3],
uint8_t *  dst[3],
int  dstStride[3],
int  width,
int  height,
QP_STORE_T *  QP_store,
int  QPStride,
pp_mode_t vm,
void *  vc,
int  pict_type 
)

Definition at line 1033 of file postprocess.c.

Referenced by pp().


Variable Documentation

uint8_t clip_table[3 *256] [static]

Definition at line 114 of file postprocess.c.

Referenced by global_init(), globalInit(), sws_getContext(), and yuv2packed2().

uint8_t* const clip_tab = clip_table + 256 [static]

Definition at line 115 of file postprocess.c.

const int attribute_used deringThreshold = 20 [static]

Definition at line 117 of file postprocess.c.

Referenced by dering(), and dering_altivec().

struct PPFilter filters[] [static]

Initial value:

{
        {"hb", "hdeblock",              1, 1, 3, H_DEBLOCK},
        {"vb", "vdeblock",              1, 2, 4, V_DEBLOCK},

        {"h1", "x1hdeblock",            1, 1, 3, H_X1_FILTER},
        {"v1", "x1vdeblock",            1, 2, 4, V_X1_FILTER},
        {"ha", "ahdeblock",             1, 1, 3, H_A_DEBLOCK},
        {"va", "avdeblock",             1, 2, 4, V_A_DEBLOCK},
        {"dr", "dering",                1, 5, 6, DERING},
        {"al", "autolevels",            0, 1, 2, LEVEL_FIX},
        {"lb", "linblenddeint",         1, 1, 4, LINEAR_BLEND_DEINT_FILTER},
        {"li", "linipoldeint",          1, 1, 4, LINEAR_IPOL_DEINT_FILTER},
        {"ci", "cubicipoldeint",        1, 1, 4, CUBIC_IPOL_DEINT_FILTER},
        {"md", "mediandeint",           1, 1, 4, MEDIAN_DEINT_FILTER},
        {"fd", "ffmpegdeint",           1, 1, 4, FFMPEG_DEINT_FILTER},
        {"l5", "lowpass5",              1, 1, 4, LOWPASS5_DEINT_FILTER},
        {"tn", "tmpnoise",              1, 7, 8, TEMP_NOISE_FILTER},
        {"fq", "forcequant",            1, 0, 0, FORCE_QUANT},
        {NULL, NULL,0,0,0,0} 
}

Definition at line 120 of file postprocess.c.

Referenced by ChannelWizard::ChannelWizard(), NuppelVideoPlayer::InitFilters(), PlaybackBox::startPlayer(), and tta_decode_frame().

const char* replaceTable[] [static]

Initial value:

{
        "default",      "hdeblock:a,vdeblock:a,dering:a",
        "de",           "hdeblock:a,vdeblock:a,dering:a",
        "fast",         "x1hdeblock:a,x1vdeblock:a,dering:a",
        "fa",           "x1hdeblock:a,x1vdeblock:a,dering:a",
        "ac",           "ha:a:128:7,va:a,dering:a",
        NULL 
}

Definition at line 143 of file postprocess.c.

Referenced by pp_get_mode_by_name_and_quality().

char* pp_help

a simple help text

Definition at line 700 of file postprocess.c.

Referenced by new_filter().

AVClass av_codec_context_class = { "Postproc", context_to_name, NULL } [static]

Definition at line 985 of file postprocess.c.


Generated on Sat Dec 18 05:15:54 2010 for MythTV by  doxygen 1.5.5