FFmpeg
xpsnr.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 Christian R. Helmrich
3  * Copyright (c) 2024 Christian Lehmann
4  * Copyright (c) 2024 Christian Stoffers
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 /**
24  * @file
25  * Public declaration of DSP context structure of XPSNR measurement filter for FFmpeg.
26  *
27  * Authors: Christian Helmrich, Lehmann, and Stoffers, Fraunhofer HHI, Berlin, Germany
28  */
29 
30 #ifndef AVFILTER_XPSNR_H
31 #define AVFILTER_XPSNR_H
32 
33 #include <stddef.h>
34 #include <stdint.h>
35 #include "libavutil/x86/cpu.h"
36 
37 /* public XPSNR DSP structure definition */
38 
39 typedef struct XPSNRDSPContext {
40  uint64_t (*sse_line) (const uint8_t *buf, const uint8_t *ref, const int w);
41  uint64_t (*highds_func) (const int x_act, const int y_act, const int w_act, const int h_act, const int16_t *o_m0, const int o);
42  uint64_t (*diff1st_func)(const uint32_t w_act, const uint32_t h_act, const int16_t *o_m0, int16_t *o_m1, const int o);
43  uint64_t (*diff2nd_func)(const uint32_t w_act, const uint32_t h_act, const int16_t *o_m0, int16_t *o_m1, int16_t *o_m2, const int o);
45 
46 void ff_xpsnr_init_x86(PSNRDSPContext *dsp, const int bpp);
47 
48 #endif /* AVFILTER_XPSNR_H */
cpu.h
w
uint8_t w
Definition: llviddspenc.c:38
XPSNRDSPContext::diff1st_func
uint64_t(* diff1st_func)(const uint32_t w_act, const uint32_t h_act, const int16_t *o_m0, int16_t *o_m1, const int o)
Definition: xpsnr.h:42
PSNRDSPContext
Definition: psnr.h:27
XPSNRDSPContext::diff2nd_func
uint64_t(* diff2nd_func)(const uint32_t w_act, const uint32_t h_act, const int16_t *o_m0, int16_t *o_m1, int16_t *o_m2, const int o)
Definition: xpsnr.h:43
XPSNRDSPContext::sse_line
uint64_t(* sse_line)(const uint8_t *buf, const uint8_t *ref, const int w)
Definition: xpsnr.h:40
ff_xpsnr_init_x86
void ff_xpsnr_init_x86(PSNRDSPContext *dsp, const int bpp)
Definition: vf_xpsnr_init.c:35
XPSNRDSPContext
Definition: xpsnr.h:39
XPSNRDSPContext::highds_func
uint64_t(* highds_func)(const int x_act, const int y_act, const int w_act, const int h_act, const int16_t *o_m0, const int o)
Definition: xpsnr.h:41
ref
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:112