FFmpeg
|
Fast Simple Post-processing filter This implementation is based on an algorithm described in "Aria Nosratinia Embedded Post-Processing for Enhancement of Compressed Images (1999)" (http://www.utdallas.edu/~aria/papers/vlsisp99.pdf) Further, with splitting (I)DCT into horizontal/vertical passes, one of them can be performed once per block, not per pixel. More...
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "internal.h"
#include "vf_fspp.h"
Go to the source code of this file.
Macros | |
#define | OFFSET(x) offsetof(FSPPContext, x) |
#define | FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define | STORE(pos) |
#define | STORE2(pos) |
Functions | |
AVFILTER_DEFINE_CLASS (fspp) | |
static void | store_slice_c (uint8_t *dst, int16_t *src, ptrdiff_t dst_stride, ptrdiff_t src_stride, ptrdiff_t width, ptrdiff_t height, ptrdiff_t log2_scale) |
static void | store_slice2_c (uint8_t *dst, int16_t *src, ptrdiff_t dst_stride, ptrdiff_t src_stride, ptrdiff_t width, ptrdiff_t height, ptrdiff_t log2_scale) |
static void | mul_thrmat_c (int16_t *thr_adr_noq, int16_t *thr_adr, int q) |
static void | filter (FSPPContext *p, uint8_t *dst, uint8_t *src, int dst_stride, int src_stride, int width, int height, uint8_t *qp_store, int qp_stride, int is_luma) |
static void | column_fidct_c (int16_t *thr_adr, int16_t *data, int16_t *output, int cnt) |
static void | row_idct_c (int16_t *workspace, int16_t *output_adr, ptrdiff_t output_stride, int cnt) |
static void | row_fdct_c (int16_t *data, const uint8_t *pixels, ptrdiff_t line_size, int cnt) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
static av_cold void | uninit (AVFilterContext *ctx) |
Variables | |
static const AVOption | fspp_options [] |
static const uint8_t | dither [8][8] |
static const short | custom_threshold [64] |
static const AVFilterPad | fspp_inputs [] |
static const AVFilterPad | fspp_outputs [] |
AVFilter | ff_vf_fspp |
Fast Simple Post-processing filter This implementation is based on an algorithm described in "Aria Nosratinia Embedded Post-Processing for Enhancement of Compressed Images (1999)" (http://www.utdallas.edu/~aria/papers/vlsisp99.pdf) Further, with splitting (I)DCT into horizontal/vertical passes, one of them can be performed once per block, not per pixel.
This allows for much higher speed.
Originally written by Michael Niedermayer and Nikolaj for the MPlayer project, and ported by Arwa Arif for FFmpeg.
Definition in file vf_fspp.c.
#define OFFSET | ( | x | ) | offsetof(FSPPContext, x) |
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define STORE | ( | pos | ) |
Referenced by store_slice_c().
#define STORE2 | ( | pos | ) |
AVFILTER_DEFINE_CLASS | ( | fspp | ) |
|
static |
Definition at line 83 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 113 of file vf_fspp.c.
Referenced by config_input().
Definition at line 142 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 149 of file vf_fspp.c.
Referenced by filter_frame().
Definition at line 247 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 370 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 432 of file vf_fspp.c.
Referenced by config_input().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 57 of file vf_fspp.c.
Referenced by ac3_decode_transform_coeffs_ch(), encode_frame(), quantize_triangular_ns(), render_charset(), rv40_loop_filter(), store_slice2_c(), store_slice_c(), and yuv2yuvX_TMPL().
|
static |
Definition at line 68 of file vf_fspp.c.
Referenced by filter_frame().
|
static |
|
static |
AVFilter ff_vf_fspp |