FFmpeg
libavfilter
x86
vf_psnr_init.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Ronald S. Bultje <rsbultje@gmail.com>
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
21
#include "
libavutil/x86/cpu.h
"
22
23
#include "
libavfilter/psnr.h
"
24
25
uint64_t
ff_sse_line_8bit_sse2
(
const
uint8_t *buf,
const
uint8_t *
ref
,
int
w
);
26
uint64_t
ff_sse_line_16bit_sse2
(
const
uint8_t *buf,
const
uint8_t *
ref
,
int
w
);
27
28
void
ff_psnr_init_x86
(
PSNRDSPContext
*dsp,
int
bpp)
29
{
30
int
cpu_flags
=
av_get_cpu_flags
();
31
32
if
(
EXTERNAL_SSE2
(
cpu_flags
)) {
33
if
(bpp <= 8) {
34
dsp->
sse_line
=
ff_sse_line_8bit_sse2
;
35
}
else
if
(bpp <= 15) {
36
dsp->
sse_line
=
ff_sse_line_16bit_sse2
;
37
}
38
}
39
}
cpu.h
ff_sse_line_8bit_sse2
uint64_t ff_sse_line_8bit_sse2(const uint8_t *buf, const uint8_t *ref, int w)
w
uint8_t w
Definition:
llviddspenc.c:38
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:98
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:50
psnr.h
PSNRDSPContext
Definition:
psnr.h:27
ff_psnr_init_x86
void ff_psnr_init_x86(PSNRDSPContext *dsp, int bpp)
Definition:
vf_psnr_init.c:28
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:59
PSNRDSPContext::sse_line
uint64_t(* sse_line)(const uint8_t *buf, const uint8_t *ref, int w)
Definition:
psnr.h:28
ref
static int ref[MAX_W *MAX_W]
Definition:
jpeg2000dwt.c:107
ff_sse_line_16bit_sse2
uint64_t ff_sse_line_16bit_sse2(const uint8_t *buf, const uint8_t *ref, int w)
Generated on Wed Aug 24 2022 21:38:19 for FFmpeg by
1.8.17