FFmpeg
4.0
|
gradfun debanding filter, ported from MPlayer libmpcodecs/vf_gradfun.c More...
#include "libavutil/imgutils.h"
#include "libavutil/common.h"
#include "libavutil/cpu.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "gradfun.h"
#include "internal.h"
#include "video.h"
Go to the source code of this file.
Macros | |
#define | OFFSET(x) offsetof(GradFunContext, x) |
#define | FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
Functions | |
void | ff_gradfun_filter_line_c (uint8_t *dst, const uint8_t *src, const uint16_t *dc, int width, int thresh, const uint16_t *dithers) |
void | ff_gradfun_blur_line_c (uint16_t *dc, uint16_t *buf, const uint16_t *buf1, const uint8_t *src, int src_linesize, int width) |
static void | filter (GradFunContext *ctx, uint8_t *dst, const uint8_t *src, int width, int height, int dst_linesize, int src_linesize, int r) |
static av_cold int | init (AVFilterContext *ctx) |
static av_cold void | uninit (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
AVFILTER_DEFINE_CLASS (gradfun) | |
Variables | |
static const uint16_t | dither [8][8] |
static const AVOption | gradfun_options [] |
static const AVFilterPad | avfilter_vf_gradfun_inputs [] |
static const AVFilterPad | avfilter_vf_gradfun_outputs [] |
AVFilter | ff_vf_gradfun |
gradfun debanding filter, ported from MPlayer libmpcodecs/vf_gradfun.c
Apply a boxblur debanding algorithm (based on the gradfun2db AviSynth filter by prunedtree). For each pixel, if it is within the threshold of the blurred value, make it closer. So now we have a smoothed and higher bitdepth version of all the shallow gradients, while leaving detailed areas untouched. Dither it back to 8bit.
Definition in file vf_gradfun.c.
#define OFFSET | ( | x | ) | offsetof(GradFunContext, x) |
Definition at line 225 of file vf_gradfun.c.
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
Definition at line 226 of file vf_gradfun.c.
void ff_gradfun_filter_line_c | ( | uint8_t * | dst, |
const uint8_t * | src, | ||
const uint16_t * | dc, | ||
int | width, | ||
int | thresh, | ||
const uint16_t * | dithers | ||
) |
Definition at line 57 of file vf_gradfun.c.
Referenced by init().
void ff_gradfun_blur_line_c | ( | uint16_t * | dc, |
uint16_t * | buf, | ||
const uint16_t * | buf1, | ||
const uint8_t * | src, | ||
int | src_linesize, | ||
int | width | ||
) |
Definition at line 71 of file vf_gradfun.c.
Referenced by init().
|
static |
Definition at line 82 of file vf_gradfun.c.
Referenced by filter_frame().
|
static |
Definition at line 124 of file vf_gradfun.c.
|
static |
Definition at line 142 of file vf_gradfun.c.
|
static |
Definition at line 148 of file vf_gradfun.c.
|
static |
Definition at line 164 of file vf_gradfun.c.
|
static |
Definition at line 183 of file vf_gradfun.c.
AVFILTER_DEFINE_CLASS | ( | gradfun | ) |
|
static |
Definition at line 46 of file vf_gradfun.c.
Referenced by filter().
|
static |
Definition at line 228 of file vf_gradfun.c.
|
static |
Definition at line 236 of file vf_gradfun.c.
|
static |
Definition at line 246 of file vf_gradfun.c.
AVFilter ff_vf_gradfun |
Definition at line 254 of file vf_gradfun.c.