X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavfilter%2Fdnn_backend_native.h;h=51d4cac9553431730b48a9718d65047c7e913b75;hb=a064530da8b6276057ae5796575938dc24acf157;hp=adbb7088b45312bade5254f3ce102ef423b4e548;hpb=768b07e3bca7e81d2f9c60badb3973d3d88481dc;p=ffmpeg diff --git a/libavfilter/dnn_backend_native.h b/libavfilter/dnn_backend_native.h index adbb7088b45..51d4cac9553 100644 --- a/libavfilter/dnn_backend_native.h +++ b/libavfilter/dnn_backend_native.h @@ -28,10 +28,40 @@ #define AVFILTER_DNN_BACKEND_NATIVE_H #include "dnn_interface.h" +#include "libavformat/avio.h" -DNNModel *ff_dnn_load_model_native(const char *model_filename); +typedef enum {INPUT, CONV, DEPTH_TO_SPACE} DNNLayerType; + +typedef enum {RELU, TANH, SIGMOID} DNNActivationFunc; + +typedef struct Layer{ + DNNLayerType type; + float *output; + void *params; +} Layer; + +typedef struct ConvolutionalParams{ + int32_t input_num, output_num, kernel_size; + DNNActivationFunc activation; + float *kernel; + float *biases; +} ConvolutionalParams; -DNNModel *ff_dnn_load_default_model_native(DNNDefaultModel model_type); +typedef struct InputParams{ + int height, width, channels; +} InputParams; + +typedef struct DepthToSpaceParams{ + int block_size; +} DepthToSpaceParams; + +// Represents simple feed-forward convolutional network. +typedef struct ConvolutionalNetwork{ + Layer *layers; + int32_t layers_num; +} ConvolutionalNetwork; + +DNNModel *ff_dnn_load_model_native(const char *model_filename); DNNReturnType ff_dnn_execute_model_native(const DNNModel *model);