FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavutil
lls.h
Go to the documentation of this file.
1
/*
2
* linear least squares model
3
*
4
* Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
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
#ifndef AVUTIL_LLS_H
24
#define AVUTIL_LLS_H
25
26
#include "
common.h
"
27
#include "
mem.h
"
28
#include "
version.h
"
29
30
#define MAX_VARS 32
31
#define MAX_VARS_ALIGN FFALIGN(MAX_VARS+1,4)
32
33
//FIXME avoid direct access to LLSModel from outside
34
35
/**
36
* Linear least squares model.
37
*/
38
typedef
struct
LLSModel
{
39
DECLARE_ALIGNED
(32,
double
,
covariance
[
MAX_VARS_ALIGN
][
MAX_VARS_ALIGN
]);
40
DECLARE_ALIGNED
(32,
double
,
coeff
[
MAX_VARS
][
MAX_VARS
]);
41
double
variance
[
MAX_VARS
];
42
int
indep_count
;
43
/**
44
* Take the outer-product of var[] with itself, and add to the covariance matrix.
45
* @param m this context
46
* @param var training samples, starting with the value to be predicted
47
* 32-byte aligned, and any padding elements must be initialized
48
* (i.e not denormal/nan).
49
*/
50
void
(*
update_lls
)(
struct
LLSModel
*
m
,
double
*var);
51
/**
52
* Inner product of var[] and the LPC coefs.
53
* @param m this context
54
* @param var training samples, excluding the value to be predicted. unaligned.
55
* @param order lpc order
56
*/
57
double (*
evaluate_lls
)(
struct
LLSModel
*
m
,
double
*var,
int
order);
58
}
LLSModel
;
59
60
void
avpriv_init_lls
(
LLSModel
*
m
,
int
indep_count
);
61
void
ff_init_lls_x86
(
LLSModel
*
m
);
62
void
avpriv_solve_lls
(
LLSModel
*
m
,
double
threshold,
unsigned
short
min_order);
63
64
#if FF_API_LLS_PRIVATE
65
void
av_init_lls
(
LLSModel
*
m
,
int
indep_count
);
66
void
av_update_lls
(
LLSModel
*
m
,
double
*param,
double
decay);
67
void
av_solve_lls
(
LLSModel
*
m
,
double
threshold,
int
min_order);
68
double
av_evaluate_lls
(
LLSModel
*
m
,
double
*param,
int
order);
69
#endif
/* FF_API_LLS_PRIVATE */
70
71
#endif
/* AVUTIL_LLS_H */
Generated on Wed Jul 10 2013 23:48:15 for FFmpeg by
1.8.2