FFmpeg
Loading...
Searching...
No Matches
vf_atadenoise_init.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Paul B Mahol
3 *
4 * This file is part of FFmpeg.
5 *
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
22#include "libavutil/cpu.h"
23#include "libavutil/x86/cpu.h"
25
26void ff_atadenoise_filter_row8_sse4(const uint8_t *src, uint8_t *dst,
27 const uint8_t **srcf,
28 int w, int mid, int size,
29 int thra, int thrb, const float *weights);
30
31void ff_atadenoise_filter_row8_serial_sse4(const uint8_t *src, uint8_t *dst,
32 const uint8_t **srcf,
33 int w, int mid, int size,
34 int thra, int thrb, const float *weights);
35
36av_cold void ff_atadenoise_init_x86(ATADenoiseDSPContext *dsp, int depth, int algorithm, const float *sigma)
37{
38#if ARCH_X86_64
40
41 for (int p = 0; p < 4; p++) {
42 if (EXTERNAL_SSE4(cpu_flags) && depth <= 8 && algorithm == PARALLEL && sigma[p] == INT16_MAX) {
44 }
45
46 if (EXTERNAL_SSE4(cpu_flags) && depth <= 8 && algorithm == SERIAL && sigma[p] == INT16_MAX) {
48 }
49 }
50#endif
51}
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition dsp.h:87
@ PARALLEL
Definition atadenoise.h:28
@ SERIAL
Definition atadenoise.h:29
static const int weights[]
Definition hevc_pel.c:32
Macro definitions for various function/variable attributes.
#define av_cold
Definition attributes.h:117
static atomic_int cpu_flags
Definition cpu.c:56
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition cpu.c:109
#define EXTERNAL_SSE4(flags)
Definition cpu.h:62
uint8_t w
Definition llvidencdsp.c:39
void(* filter_row[4])(const uint8_t *src, uint8_t *dst, const uint8_t **srcf, int w, int mid, int size, int thra, int thrb, const float *weight)
Definition atadenoise.h:34
#define src
Definition vp8dsp.c:248
int size
void ff_atadenoise_filter_row8_sse4(const uint8_t *src, uint8_t *dst, const uint8_t **srcf, int w, int mid, int size, int thra, int thrb, const float *weights)
void ff_atadenoise_filter_row8_serial_sse4(const uint8_t *src, uint8_t *dst, const uint8_t **srcf, int w, int mid, int size, int thra, int thrb, const float *weights)
av_cold void ff_atadenoise_init_x86(ATADenoiseDSPContext *dsp, int depth, int algorithm, const float *sigma)