28#ifndef AVFILTER_GBLUR_INIT_H
29#define AVFILTER_GBLUR_INIT_H
39 for (
int i = 0;
i < length;
i++) {
46 float nu,
float bscale,
float *localbuf)
49 for (
int y = 0; y <
height; y++) {
50 for (
int step = 0; step <
steps; step++) {
55 for (x = 1; x <
width; x++)
56 ptr[x] += nu * ptr[x - 1];
57 ptr[x =
width - 1] *= bscale;
61 ptr[x - 1] += nu * ptr[x];
67 int column_begin,
int column_end,
int steps,
68 float nu,
float boundaryscale,
int column_step)
72 for (
int x = column_begin; x < column_end;) {
73 for (
int step = 0; step <
steps; step++) {
75 for (
int k = 0; k < column_step; k++) {
76 ptr[k] *= boundaryscale;
80 for (
int k = 0; k < column_step; k++) {
81 ptr[
i + k] += nu * ptr[
i -
width + k];
86 for (
int k = 0; k < column_step; k++)
87 ptr[
i + k] *= boundaryscale;
91 for (
int k = 0; k < column_step; k++)
92 ptr[
i -
width + k] += nu * ptr[
i + k];
101 float nu,
float boundaryscale)
106 steps, nu, boundaryscale, 8);
109 steps, nu, boundaryscale, 1);
118#if ARCH_X86 && HAVE_X86ASM
#define i(width, name, range_min, range_max)
common internal and external API header
static const FLOAT postscale[64]
void ff_gblur_init_x86(GBlurContext *s)
Macro definitions for various function/variable attributes.
static const int16_t steps[16]
static int slice_end(AVCodecContext *avctx, AVFrame *pict, int *got_output)
Handle slice ends.
static void verti_slice_c(float *buffer, int width, int height, int slice_start, int slice_end, int steps, float nu, float boundaryscale)
static void do_vertical_columns(float *buffer, int width, int height, int column_begin, int column_end, int steps, float nu, float boundaryscale, int column_step)
static void horiz_slice_c(float *buffer, int width, int height, int steps, float nu, float bscale, float *localbuf)
static av_unused void ff_gblur_init(GBlurContext *s)
static void postscale_c(float *buffer, int length, float postscale, float min, float max)
static int slice_start(SliceContext *sc, VVCContext *s, VVCFrameContext *fc, const CodedBitstreamUnit *unit, const int is_first_slice)