FFmpeg
libavfilter
dnn_backend_native.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Sergey Lavrushkin
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
/**
22
* @file
23
* DNN inference functions interface for native backend.
24
*/
25
26
27
#ifndef AVFILTER_DNN_BACKEND_NATIVE_H
28
#define AVFILTER_DNN_BACKEND_NATIVE_H
29
30
#include "
dnn_interface.h
"
31
#include "
libavformat/avio.h
"
32
33
typedef
enum
{
INPUT
,
CONV
,
DEPTH_TO_SPACE
}
DNNLayerType
;
34
35
typedef
enum
{
RELU
,
TANH
,
SIGMOID
,
NONE
,
LEAKY_RELU
}
DNNActivationFunc
;
36
37
typedef
enum
{
VALID
,
SAME
,
SAME_CLAMP_TO_EDGE
}
DNNConvPaddingParam
;
38
39
typedef
struct
Layer
{
40
DNNLayerType
type
;
41
float
*
output
;
42
void
*
params
;
43
}
Layer
;
44
45
typedef
struct
ConvolutionalParams
{
46
int32_t
input_num
,
output_num
,
kernel_size
;
47
DNNActivationFunc
activation
;
48
DNNConvPaddingParam
padding_method
;
49
int32_t
dilation
;
50
float
*
kernel
;
51
float
*
biases
;
52
}
ConvolutionalParams
;
53
54
typedef
struct
InputParams
{
55
int
height
,
width
,
channels
;
56
}
InputParams
;
57
58
typedef
struct
DepthToSpaceParams
{
59
int
block_size
;
60
}
DepthToSpaceParams
;
61
62
// Represents simple feed-forward convolutional network.
63
typedef
struct
ConvolutionalNetwork
{
64
Layer
*
layers
;
65
int32_t
layers_num
;
66
}
ConvolutionalNetwork
;
67
68
DNNModel
*
ff_dnn_load_model_native
(
const
char
*model_filename);
69
70
DNNReturnType
ff_dnn_execute_model_native
(
const
DNNModel
*model,
DNNData
*
outputs
, uint32_t nb_output);
71
72
void
ff_dnn_free_model_native
(
DNNModel
**model);
73
74
#endif
InputParams
Definition:
dnn_backend_native.h:54
ConvolutionalParams::kernel
float * kernel
Definition:
dnn_backend_native.h:50
ff_dnn_load_model_native
DNNModel * ff_dnn_load_model_native(const char *model_filename)
Definition:
dnn_backend_native.c:103
INPUT
@ INPUT
Definition:
dnn_backend_native.h:33
NONE
@ NONE
Definition:
dnn_backend_native.h:35
SAME
@ SAME
Definition:
dnn_backend_native.h:37
ConvolutionalNetwork::layers_num
int32_t layers_num
Definition:
dnn_backend_native.h:65
ConvolutionalNetwork
Definition:
dnn_backend_native.h:63
SIGMOID
@ SIGMOID
Definition:
dnn_backend_native.h:35
DNNLayerType
DNNLayerType
Definition:
dnn_backend_native.h:33
VALID
@ VALID
Definition:
dnn_backend_native.h:37
ConvolutionalParams::input_num
int32_t input_num
Definition:
dnn_backend_native.h:46
TANH
@ TANH
Definition:
dnn_backend_native.h:35
Layer::type
DNNLayerType type
Definition:
dnn_backend_native.h:40
DNNReturnType
DNNReturnType
Definition:
dnn_interface.h:31
DNNData
Definition:
dnn_interface.h:43
outputs
static const AVFilterPad outputs[]
Definition:
af_acontrast.c:203
ConvolutionalParams::activation
DNNActivationFunc activation
Definition:
dnn_backend_native.h:47
InputParams::height
int height
Definition:
dnn_backend_native.h:55
int32_t
int32_t
Definition:
audio_convert.c:194
Layer::params
void * params
Definition:
dnn_backend_native.h:42
CONV
@ CONV
Definition:
dnn_backend_native.h:33
ConvolutionalNetwork::layers
Layer * layers
Definition:
dnn_backend_native.h:64
ConvolutionalParams::kernel_size
int32_t kernel_size
Definition:
dnn_backend_native.h:46
Layer
Definition:
dnn_backend_native.h:39
avio.h
DepthToSpaceParams
Definition:
dnn_backend_native.h:58
RELU
@ RELU
Definition:
dnn_backend_native.h:35
dnn_interface.h
ConvolutionalParams::output_num
int32_t output_num
Definition:
dnn_backend_native.h:46
DNNConvPaddingParam
DNNConvPaddingParam
Definition:
dnn_backend_native.h:37
DNNActivationFunc
DNNActivationFunc
Definition:
dnn_backend_native.h:35
SAME_CLAMP_TO_EDGE
@ SAME_CLAMP_TO_EDGE
Definition:
dnn_backend_native.h:37
DEPTH_TO_SPACE
@ DEPTH_TO_SPACE
Definition:
dnn_backend_native.h:33
DepthToSpaceParams::block_size
int block_size
Definition:
dnn_backend_native.h:59
Layer::output
float * output
Definition:
dnn_backend_native.h:41
ff_dnn_free_model_native
void ff_dnn_free_model_native(DNNModel **model)
Definition:
dnn_backend_native.c:367
DNNModel
Definition:
dnn_interface.h:48
LEAKY_RELU
@ LEAKY_RELU
Definition:
dnn_backend_native.h:35
InputParams::channels
int channels
Definition:
dnn_backend_native.h:55
ConvolutionalParams::padding_method
DNNConvPaddingParam padding_method
Definition:
dnn_backend_native.h:48
InputParams::width
int width
Definition:
dnn_backend_native.h:55
ConvolutionalParams
Definition:
dnn_backend_native.h:45
ff_dnn_execute_model_native
DNNReturnType ff_dnn_execute_model_native(const DNNModel *model, DNNData *outputs, uint32_t nb_output)
Definition:
dnn_backend_native.c:309
ConvolutionalParams::dilation
int32_t dilation
Definition:
dnn_backend_native.h:49
ConvolutionalParams::biases
float * biases
Definition:
dnn_backend_native.h:51
Generated on Wed Aug 24 2022 21:27:10 for FFmpeg by
1.8.17