Libav
|
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 |
Functions | |
void | ff_gradfun_filter_line_c (uint8_t *dst, uint8_t *src, uint16_t *dc, int width, int thresh, const uint16_t *dithers) |
void | ff_gradfun_blur_line_c (uint16_t *dc, uint16_t *buf, uint16_t *buf1, uint8_t *src, int src_linesize, int width) |
static void | filter (GradFunContext *ctx, uint8_t *dst, 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) |
Variables | |
static const uint16_t | dither [8][8] |
static const AVOption | options [] |
static const AVClass | gradfun_class |
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 227 of file vf_gradfun.c.
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM |
Definition at line 228 of file vf_gradfun.c.
void ff_gradfun_filter_line_c | ( | uint8_t * | dst, |
uint8_t * | src, | ||
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, | ||
uint16_t * | buf1, | ||
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 163 of file vf_gradfun.c.
|
static |
Definition at line 182 of file vf_gradfun.c.
|
static |
Definition at line 46 of file vf_gradfun.c.
Referenced by ac3_decode_transform_coeffs_ch(), filter(), quantize_triangular_ns(), render_charset(), and rv40_loop_filter().
|
static |
Definition at line 229 of file vf_gradfun.c.
|
static |
Definition at line 235 of file vf_gradfun.c.
|
static |
Definition at line 242 of file vf_gradfun.c.
|
static |
Definition at line 252 of file vf_gradfun.c.
AVFilter ff_vf_gradfun |
Definition at line 260 of file vf_gradfun.c.