gradfun.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010 Nolan Lum <nol888@gmail.com>
3  * Copyright (c) 2009 Loren Merritt <lorenm@u.washignton.edu>
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVFILTER_GRADFUN_H
23 #define AVFILTER_GRADFUN_H
24 
25 #include "avfilter.h"
26 
27 /// Holds instance-specific information for gradfun.
28 typedef struct GradFunContext {
29  const AVClass *class;
30  float strength;
31  int thresh; ///< threshold for gradient algorithm
32  int radius; ///< blur radius
33  int chroma_w; ///< width of the chroma planes
34  int chroma_h; ///< weight of the chroma planes
35  int chroma_r; ///< blur radius for the chroma planes
36  uint16_t *buf; ///< holds image data for blur algorithm passed into filter.
37  /// DSP functions.
38  void (*filter_line) (uint8_t *dst, const uint8_t *src, const uint16_t *dc, int width, int thresh, const uint16_t *dithers);
39  void (*blur_line) (uint16_t *dc, uint16_t *buf, const uint16_t *buf1, const uint8_t *src, int src_linesize, int width);
41 
43 
44 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);
45 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);
46 
47 #endif /* AVFILTER_GRADFUN_H */
external API header
int radius
blur radius
Definition: gradfun.h:32
Holds instance-specific information for gradfun.
Definition: gradfun.h:28
int chroma_h
weight of the chroma planes
Definition: gradfun.h:34
uint8_t
void ff_gradfun_init_x86(GradFunContext *gf)
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: vf_gradfun.c:58
uint16_t * buf
holds image data for blur algorithm passed into filter.
Definition: gradfun.h:36
static int width
Definition: tests/utils.c:158
AVS_Value src
Definition: avisynth_c.h:523
typedef void(RENAME(mix_any_func_type))
FIXME Range Coding of cr are mx and my are Motion Vector top and top right vectors is used as motion vector prediction the used motion vector is the sum of the predictor and(mvx_diff, mvy_diff)*mv_scale Intra DC Predicton block[y][x] dc[1]
Definition: snow.txt:392
Describe the class of an AVClass context structure.
Definition: log.h:50
struct GradFunContext GradFunContext
Holds instance-specific information for gradfun.
float strength
Definition: gradfun.h:30
void(* filter_line)(uint8_t *dst, const uint8_t *src, const uint16_t *dc, int width, int thresh, const uint16_t *dithers)
DSP functions.
Definition: gradfun.h:38
const uint8_t dithers[8][8][8]
int chroma_w
width of the chroma planes
Definition: gradfun.h:33
void(* blur_line)(uint16_t *dc, uint16_t *buf, const uint16_t *buf1, const uint8_t *src, int src_linesize, int width)
Definition: gradfun.h:39
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
int thresh
threshold for gradient algorithm
Definition: gradfun.h:31
int chroma_r
blur radius for the chroma planes
Definition: gradfun.h:35
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: vf_gradfun.c:72