FFmpeg
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 
34 
36 
38 
39 typedef struct Layer{
41  float *output;
42  void *params;
43 } Layer;
44 
45 typedef struct ConvolutionalParams{
50  float *kernel;
51  float *biases;
53 
54 typedef struct InputParams{
56 } InputParams;
57 
58 typedef struct DepthToSpaceParams{
61 
62 // Represents simple feed-forward convolutional network.
63 typedef struct 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 
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