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_spp.h"
#include "video.h"
Go to the source code of this file.
Macros | |
#define | OFFSET(x) offsetof(SPPContext, x) |
#define | FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define | TFLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM |
#define | STORE(pos) |
#define | STORE16(pos) |
Enumerations | |
enum | mode { FF_EBUR128_MODE_M = (1 << 0), FF_EBUR128_MODE_S = (1 << 1) | FF_EBUR128_MODE_M, FF_EBUR128_MODE_I = (1 << 2) | FF_EBUR128_MODE_M, FF_EBUR128_MODE_LRA = (1 << 3) | FF_EBUR128_MODE_S, FF_EBUR128_MODE_SAMPLE_PEAK = (1 << 4) | FF_EBUR128_MODE_M, MODE_NONE, MODE_RO, MODE_RW, MODE_TOGGLE, MODE_RANDOM, NB_MODES, MODE_COVER, MODE_BLUR, NB_MODES, MODE_HARD, MODE_SOFT, MODE_MEDIUM, MODE_HARD, MODE_SOFT, NB_MODES } |
Functions | |
static const AVClass * | child_class_iterate (void **iter) |
static void * | child_next (void *obj, void *prev) |
static void | hardthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation) |
static void | softthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation) |
static void | store_slice_c (uint8_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8]) |
static void | store_slice16_c (uint16_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8], int depth) |
static void | add_block (uint16_t *dst, int linesize, const int16_t block[64]) |
static void | filter (SPPContext *p, uint8_t *dst, uint8_t *src, int dst_linesize, int src_linesize, int width, int height, const uint8_t *qp_table, int qp_stride, int is_luma, int depth) |
static int | config_input (AVFilterLink *inlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
static int | process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) |
static av_cold int | preinit (AVFilterContext *ctx) |
static av_cold void | uninit (AVFilterContext *ctx) |
Variables | |
static const AVOption | spp_options [] |
static const AVClass | spp_class |
static const uint8_t | ldither [8][8] |
static const uint8_t | offset [128][2] |
static enum AVPixelFormat | pix_fmts [] |
static const AVFilterPad | spp_inputs [] |
const AVFilter | ff_vf_spp |
Simple post processing filter
This implementation is based on an algorithm described in "Aria Nosratinia Embedded Post-Processing for Enhancement of Compressed Images (1999)"
Originally written by Michael Niedermayer for the MPlayer project, and ported by Clément Bœsch for FFmpeg.
Definition in file vf_spp.c.
#define OFFSET | ( | x | ) | offsetof(SPPContext, x) |
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define STORE | ( | pos | ) |
#define STORE16 | ( | pos | ) |
enum mode |
|
static |
|
static |
Definition at line 125 of file vf_spp.c.
Referenced by config_input().
|
static |
Definition at line 146 of file vf_spp.c.
Referenced by config_input().
|
static |
Definition at line 168 of file vf_spp.c.
Referenced by config_input().
|
static |
|
inlinestatic |
|
static |
Definition at line 245 of file vf_spp.c.
Referenced by filter_frame().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 89 of file vf_spp.c.
Referenced by filter().
|
static |
Definition at line 100 of file vf_spp.c.
Referenced by filter().
|
static |
|
static |
const AVFilter ff_vf_spp |