FFmpeg
Loading...
Searching...
No Matches
libavcodec
svq1encdsp.h
Go to the documentation of this file.
1
/*
2
* SVQ1 encoder DSP
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
#ifndef AVCODEC_SVQ1ENCDSP_H
22
#define AVCODEC_SVQ1ENCDSP_H
23
24
#include <stdint.h>
25
26
#include "config.h"
27
28
typedef
struct
SVQ1EncDSPContext
{
29
int (*
ssd_int8_vs_int16
)(
const
int8_t *pix1,
const
int16_t *pix2,
30
intptr_t
size
);
31
}
SVQ1EncDSPContext
;
32
33
void
ff_svq1enc_init_ppc
(
SVQ1EncDSPContext
*
c
);
34
void
ff_svq1enc_init_riscv
(
SVQ1EncDSPContext
*
c
);
35
void
ff_svq1enc_init_x86
(
SVQ1EncDSPContext
*
c
);
36
37
static
int
ssd_int8_vs_int16_c
(
const
int8_t *pix1,
const
int16_t *pix2,
38
intptr_t
size
)
39
{
40
int
score = 0;
41
42
for
(intptr_t
i
= 0;
i
<
size
;
i
++)
43
score += (pix1[
i
] - pix2[
i
]) * (pix1[
i
] - pix2[
i
]);
44
return
score;
45
}
46
47
static
inline
void
ff_svq1enc_init
(
SVQ1EncDSPContext
*
c
)
48
{
49
c
->ssd_int8_vs_int16 =
ssd_int8_vs_int16_c
;
50
51
#if ARCH_PPC
52
ff_svq1enc_init_ppc
(
c
);
53
#elif ARCH_RISCV
54
ff_svq1enc_init_riscv
(
c
);
55
#elif ARCH_X86 && HAVE_X86ASM
56
ff_svq1enc_init_x86
(
c
);
57
#endif
58
}
59
60
#endif
/* AVCODEC_SVQ1ENCDSP_H */
i
#define i(width, name, range_min, range_max)
Definition
cbs_h264.c:63
SVQ1EncDSPContext
Definition
svq1encdsp.h:28
SVQ1EncDSPContext::ssd_int8_vs_int16
int(* ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2, intptr_t size)
Definition
svq1encdsp.h:29
ssd_int8_vs_int16_c
static int ssd_int8_vs_int16_c(const int8_t *pix1, const int16_t *pix2, intptr_t size)
Definition
svq1encdsp.h:37
ff_svq1enc_init
static void ff_svq1enc_init(SVQ1EncDSPContext *c)
Definition
svq1encdsp.h:47
ff_svq1enc_init_riscv
void ff_svq1enc_init_riscv(SVQ1EncDSPContext *c)
Definition
svqenc_init.c:30
ff_svq1enc_init_x86
void ff_svq1enc_init_x86(SVQ1EncDSPContext *c)
Definition
svq1enc_init.c:30
ff_svq1enc_init_ppc
void ff_svq1enc_init_ppc(SVQ1EncDSPContext *c)
Definition
svq1enc_altivec.c:74
size
int size
Definition
twinvq_data.h:10344
c
static double c[64]
Definition
vsrc_mptestsrc.c:89
Generated on Sun Aug 23 2026 19:20:59 for FFmpeg by
1.13.2