FFmpeg
libavfilter
hermite.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVFILTER_HERMITE_H
20
#define AVFILTER_HERMITE_H
21
22
static
inline
double
hermite_interpolation
(
double
x,
double
x0,
double
x1,
23
double
p0,
double
p1,
24
double
m0,
double
m1)
25
{
26
double
width
= x1 - x0;
27
double
t = (x - x0) /
width
;
28
double
t2
,
t3
;
29
double
ct0, ct1, ct2, ct3;
30
31
m0 *=
width
;
32
m1 *=
width
;
33
34
t2
= t*t;
35
t3
=
t2
*t;
36
ct0 = p0;
37
ct1 = m0;
38
39
ct2 = -3 * p0 - 2 * m0 + 3 * p1 - m1;
40
ct3 = 2 * p0 + m0 - 2 * p1 + m1;
41
42
return
ct3 *
t3
+ ct2 *
t2
+ ct1 * t + ct0;
43
}
44
45
#endif
/* AVFILTER_HERMITE_H */
width
#define width
hermite_interpolation
static double hermite_interpolation(double x, double x0, double x1, double p0, double p1, double m0, double m1)
Definition:
hermite.h:22
t3
#define t3
Definition:
regdef.h:31
t2
#define t2
Definition:
regdef.h:30
Generated on Tue Feb 28 2023 21:33:51 for FFmpeg by
1.8.17