21#ifndef AVFILTER_CONVOLUTION_H
22#define AVFILTER_CONVOLUTION_H
62 const uint8_t *
c[],
int peak,
int radius,
70 int x,
int w,
int y,
int h,
int bpc)
74 for (
i = 0;
i < 9;
i++) {
84 const uint8_t *
c[],
int peak,
int radius,
87 const uint8_t *c0 =
c[0], *
c1 =
c[1], *
c2 =
c[2];
88 const uint8_t *c3 =
c[3], *c5 =
c[5];
89 const uint8_t *c6 =
c[6], *c7 =
c[7], *c8 =
c[8];
92 for (x = 0; x <
width; x++) {
93 float suma = c0[x] * -1 +
c1[x] * -2 +
c2[x] * -1 +
94 c6[x] * 1 + c7[x] * 2 + c8[x] * 1;
95 float sumb = c0[x] * -1 +
c2[x] * 1 + c3[x] * -2 +
96 c5[x] * 2 + c6[x] * -1 + c8[x] * 1;
104 const uint8_t *
c[],
int peak,
int radius,
107 uint16_t *
dst = (uint16_t *)dstp;
110 for (x = 0; x <
width; x++) {
122 for (
int i = 0;
i < 4;
i++) {
124 s->copy[
i] = !((1 <<
i) &
s->planes);
127 s->rdiv[
i] =
s->scale;
128 s->bias[
i] =
s->delta;
131 for (
int i = 0;
i < 4;
i++)
133#if ARCH_X86_64 && HAVE_X86ASM
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Main libavfilter public API header.
#define i(width, name, range_min, range_max)
static void filter16_sobel(uint8_t *dstp, int width, float scale, float delta, const int *const matrix, const uint8_t *c[], int peak, int radius, int dstride, int stride, int size)
void ff_convolution_init_x86(ConvolutionContext *s)
static void filter_sobel(uint8_t *dst, int width, float scale, float delta, const int *const matrix, const uint8_t *c[], int peak, int radius, int dstride, int stride, int size)
static void setup_3x3(int radius, const uint8_t *c[], const uint8_t *src, int stride, int x, int w, int y, int h, int bpc)
void ff_sobel_init_x86(ConvolutionContext *s, int depth, int nb_planes)
static void ff_sobel_init(ConvolutionContext *s, int depth, int nb_planes)
static __device__ float sqrtf(float a)
static void scale(int *out, const int *in, const int w, const int h, const int shift)
common internal API header
static av_always_inline av_const int avpriv_mirror(int x, int w)
Describe the class of an AVClass context structure.
void(* filter[4])(uint8_t *dst, int width, float rdiv, float bias, const int *const matrix, const uint8_t *c[], int peak, int radius, int dstride, int stride, int size)
void(* setup[4])(int radius, const uint8_t *c[], const uint8_t *src, int stride, int x, int width, int y, int height, int bpc)