vf_qrestore

本文档记录qiyi-filter的生成和使用方法

文件说明

  1. 涉及到四个文件vf_qrestore.c qrestore.h qrestore.cpp

  2. vf_qrestore 提供的是qiyi-ffmpeg数据到libtorch数据转换和接口调用

  3. qrestore 实现了质量恢复方法,提供c wrapper调用 c++接口函数和libtorch库文件

集成步骤

集成步骤主要分四部:

  1. 所有文件放到libavfilter目录下。

  2. libavfilter/allfilters.c文件中新增 REGISTER_FILTER(QRESTORE, qrestore, vf);

  3. 修改libavfilter/Makefile文件,将需要编译的c文件引用进来OBJS-$(CONFIG_QRESTORE_FILTER) += vf_qrestore.o

  4. 修改libavfilter/Makefile文件,将需要编译的cpp和h文件引用进来,在 HEADERS处添加

    qrestore.h,在OBJS处添加qrestore.h

  5. 配置config-qiyi-simple,链接libtorch库,这里给出config-qiyi-simple配置:

./configure --enable-yasm  --enable-static   --enable-nonfree --enable-gpl   --disable-filter=intertrustwm --disable-filter=iqiyiwm --disable-filter=css   --disable-optimizations --extra-cflags="-I/data/source/wrappertest/src -I/data/source/Qrestore/src -I/data/source/pytorch/torch/lib/tmp_install/include" --extra-cxxflags="-std=c++11" --extra-ldflags="-L/data/source/pytorch/torch/lib/tmp_install/lib -L/usr/local/cuda/lib64 -L/usr/local/lib -L/data/source/wrappertest/src -L/data/source/Qrestore/src/build" --extra-libs="-lCppAddWrapper -lCppAdd -ltorch -lcuda -lnvrtc -lnvToolsExt -lcudart_static -lpthread -ldl -lrt -lcaffe2 -lcaffe2_gpu -lc10 -lc10_cuda -lcufft -lcurand -lcudnn -lculibos -lcublas -lcublas_device -lstdc++" --prefix=/usr/local/ffmpeg_new_master

使用

filter使用

./ffmpeg -i input -vf qrestore output

函数调用

: #include "qrestore.h"
: void *qRestoreObj = getQRestoreObj(); // get class QRestore object
: getQFixedFrame(...); // fix frame
: rgb24_to_yuv420(...); // result rgb convert to yuv
@param: qRestoreObj
void getQFixedFrame(void *qRestoreObj, uint8_t *src, uint8_t *dst, int width, int height, char *modelPath)
HDR-Project vim-using-skill

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×