FFmpeg
|
#include "libavutil/emms.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "libavutil/mem_internal.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "filters.h"
#include "qp_table.h"
#include "vf_fspp.h"
#include "video.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 | 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 enum AVPixelFormat | pix_fmts [] |
static const AVFilterPad | fspp_inputs [] |
const 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 | ) |
#define STORE2 | ( | pos | ) |
AVFILTER_DEFINE_CLASS | ( | fspp | ) |
|
static |
Definition at line 88 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 118 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 147 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 154 of file vf_fspp.c.
Referenced by filter_frame().
|
static |
Definition at line 252 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 375 of file vf_fspp.c.
Referenced by config_input().
|
static |
Definition at line 437 of file vf_fspp.c.
Referenced by config_input().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 62 of file vf_fspp.c.
Referenced by ac3_decode_transform_coeffs_ch(), aptx_invert_quantization(), aptx_process_subband(), aptx_quantize_difference(), check_yuv2yuv1(), check_yuv2yuvX(), encode_frame(), render_charset(), rv40_loop_filter(), set_frame(), store_slice16_c(), store_slice2_c(), store_slice_c(), yuv2plane1_8_c(), yuv2planeX(), yuv2planeX_8_16(), yuv2planeX_8_c(), yuv2planeX_8_lasx(), yuv2planeX_8_ref(), and yuv2planeX_u().
|
static |
Definition at line 73 of file vf_fspp.c.
Referenced by filter_frame().
|
static |
|
static |
const AVFilter ff_vf_fspp |