vf_hqdn3d.c File Reference

high quality 3d video denoiser, ported from MPlayer libmpcodecs/vf_hqdn3d.c. More...

#include "libavutil/pixdesc.h"
#include "avfilter.h"

Go to the source code of this file.

Data Structures

struct  HQDN3DContext

Macros

#define PARAM1_DEFAULT   4.0
#define PARAM2_DEFAULT   3.0
#define PARAM3_DEFAULT   6.0

Functions

static unsigned int LowPassMul (unsigned int PrevMul, unsigned int CurrMul, int *Coef)
static void deNoiseTemporal (unsigned char *FrameSrc, unsigned char *FrameDest, unsigned short *FrameAnt, int W, int H, int sStride, int dStride, int *Temporal)
static void deNoiseSpacial (unsigned char *Frame, unsigned char *FrameDest, unsigned int *LineAnt, int W, int H, int sStride, int dStride, int *Horizontal, int *Vertical)
static void deNoise (unsigned char *Frame, unsigned char *FrameDest, unsigned int *LineAnt, unsigned short **FrameAntPtr, int W, int H, int sStride, int dStride, int *Horizontal, int *Vertical, int *Temporal)
static void PrecalcCoefs (int *Ct, double Dist25)
static int init (AVFilterContext *ctx, const char *args, void *opaque)
static void uninit (AVFilterContext *ctx)
static int query_formats (AVFilterContext *ctx)
static int config_input (AVFilterLink *inlink)
static void null_draw_slice (AVFilterLink *link, int y, int h, int slice_dir)
static void end_frame (AVFilterLink *inlink)

Variables

AVFilter avfilter_vf_hqdn3d

Detailed Description

high quality 3d video denoiser, ported from MPlayer libmpcodecs/vf_hqdn3d.c.

Definition in file vf_hqdn3d.c.

Macro Definition Documentation

#define PARAM1_DEFAULT   4.0

Definition at line 193 of file vf_hqdn3d.c.

Referenced by init().

#define PARAM2_DEFAULT   3.0

Definition at line 194 of file vf_hqdn3d.c.

Referenced by init().

#define PARAM3_DEFAULT   6.0

Definition at line 195 of file vf_hqdn3d.c.

Referenced by init().

Function Documentation

static int config_input ( AVFilterLink inlink)
static

Definition at line 276 of file vf_hqdn3d.c.

static void deNoise ( unsigned char *  Frame,
unsigned char *  FrameDest,
unsigned int *  LineAnt,
unsigned short **  FrameAntPtr,
int  W,
int  H,
int  sStride,
int  dStride,
int *  Horizontal,
int *  Vertical,
int *  Temporal 
)
static

Definition at line 106 of file vf_hqdn3d.c.

Referenced by end_frame().

static void deNoiseSpacial ( unsigned char *  Frame,
unsigned char *  FrameDest,
unsigned int *  LineAnt,
int  W,
int  H,
int  sStride,
int  dStride,
int *  Horizontal,
int *  Vertical 
)
static

Definition at line 67 of file vf_hqdn3d.c.

Referenced by deNoise().

static void deNoiseTemporal ( unsigned char *  FrameSrc,
unsigned char *  FrameDest,
unsigned short *  FrameAnt,
int  W,
int  H,
int  sStride,
int  dStride,
int *  Temporal 
)
static

Definition at line 46 of file vf_hqdn3d.c.

Referenced by deNoise().

static void end_frame ( AVFilterLink inlink)
static

Definition at line 292 of file vf_hqdn3d.c.

static int init ( AVFilterContext ctx,
const char *  args,
void opaque 
)
static

Definition at line 197 of file vf_hqdn3d.c.

static unsigned int LowPassMul ( unsigned int  PrevMul,
unsigned int  CurrMul,
int *  Coef 
)
inlinestatic

Definition at line 38 of file vf_hqdn3d.c.

Referenced by deNoise(), deNoiseSpacial(), and deNoiseTemporal().

static void null_draw_slice ( AVFilterLink link,
int  y,
int  h,
int  slice_dir 
)
static

Definition at line 290 of file vf_hqdn3d.c.

static void PrecalcCoefs ( int *  Ct,
double  Dist25 
)
static

Definition at line 177 of file vf_hqdn3d.c.

Referenced by init().

static int query_formats ( AVFilterContext ctx)
static

Definition at line 265 of file vf_hqdn3d.c.

static void uninit ( AVFilterContext ctx)
static

Definition at line 255 of file vf_hqdn3d.c.

Variable Documentation

AVFilter avfilter_vf_hqdn3d
Initial value:
{
.name = "hqdn3d",
.description = NULL_IF_CONFIG_SMALL("Apply a High Quality 3D Denoiser."),
.priv_size = sizeof(HQDN3DContext),
.init = init,
.inputs = (AVFilterPad[]) {{ .name = "default",
.draw_slice = null_draw_slice,
.config_props = config_input,
.end_frame = end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO },
{ .name = NULL}},
}

Definition at line 326 of file vf_hqdn3d.c.