Commit Graph

518 Commits

Author SHA1 Message Date
Paul B Mahol 72b6c8c99f avfilter: add Contrast Adaptive Sharpen video filter 2020-02-24 11:57:25 +01:00
Paul B Mahol 1c6a91990d avfilter: add pad opencl filter 2020-02-14 09:59:27 +01:00
Paul B Mahol ae5a435300 avfilter: add afirsrc filter 2020-02-07 17:07:30 +01:00
Lynne 907ae87d6e lavfi: add an chromaber_vulkan filter
This commit adds a chromatic aberration filter for Vulkan that attempts to
emulate a lens chromatic aberration effect.
For a YUV frame it will instead shift the chroma channels, providing a
simple approximation.
2020-02-04 23:19:48 +00:00
Lynne a2db7343e0 lavfi: add an avgblur_vulkan filter
This commit adds a fast avgblur Vulkan filter.
This will reset Intel GPUs on Linux due to a known, two-year-old driver bug
(!834 on mesa's gitlab).
2020-02-04 23:19:48 +00:00
Lynne 7bb443137c lavfi: add an overlay_vulkan filter
This commit adds a basic, non-converting overlay filter for Vulkan.
2020-02-04 23:19:48 +00:00
Lynne d95c509cc6 lavfi: add an scale_vulkan filter
This commit adds a basic, non-converting Vulkan scaling filter.
2020-02-04 23:19:48 +00:00
Paul B Mahol cd823dadf9 avfilter: add xfade opencl filter 2020-02-02 14:08:56 +01:00
Paul B Mahol 863accbefa avfilter: add xfade filter 2020-01-30 16:35:33 +01:00
Paul B Mahol 1a7f4a122e avfilter: add freezeframes video filter 2020-01-11 19:05:17 +01:00
Paul B Mahol cc43c2f29a avfilter: add thistogram video filter 2019-12-29 15:33:55 +01:00
Xinpeng Sun 2e2dfe6673 avfilter: Add tonemap vaapi filter for H2S
It performs HDR(High Dynamic Range) to SDR(Standard Dynamic Range) conversion
with tone-mapping. It only supports HDR10 as input temporarily.

An example command to use this filter with vaapi codecs:
FFMPEG -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
-i INPUT -vf 'tonemap_vaapi=format=p010' -c:v hevc_vaapi -profile 2 OUTPUT

Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-12-17 07:49:49 +08:00
leozhang 0c7f9f714d avfilter/vf_yaepblur: add yaepblur filter
Signed-off-by: leozhang <leozhang@qiyi.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-06 11:25:29 +01:00
Paul B Mahol 93414ce831 avfilter: add axcorrelate filter 2019-11-23 11:54:20 +01:00
Guo, Yejun 4d980a8ceb avfilter/vf_dnn_processing: add a generic filter for image proccessing with dnn networks
This filter accepts all the dnn networks which do image processing.
Currently, frame with formats rgb24 and bgr24 are supported. Other
formats such as gray and YUV will be supported next. The dnn network
can accept data in float32 or uint8 format. And the dnn network can
change frame size.

The following is a python script to halve the value of the first
channel of the pixel. It demos how to setup and execute dnn model
with python+tensorflow. It also generates .pb file which will be
used by ffmpeg.

import tensorflow as tf
import numpy as np
import imageio
in_img = imageio.imread('in.bmp')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]
filter_data = np.array([0.5, 0, 0, 0, 1., 0, 0, 0, 1.]).reshape(1,1,3,3).astype(np.float32)
filter = tf.Variable(filter_data)
x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
y = tf.nn.conv2d(x, filter, strides=[1, 1, 1, 1], padding='VALID', name='dnn_out')
sess=tf.Session()
sess.run(tf.global_variables_initializer())
output = sess.run(y, feed_dict={x: in_data})
graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'halve_first_channel.pb', as_text=False)
output = output * 255.0
output = output.astype(np.uint8)
imageio.imsave("out.bmp", np.squeeze(output))

To do the same thing with ffmpeg:
- generate halve_first_channel.pb with the above script
- generate halve_first_channel.model with tools/python/convert.py
- try with following commands
  ./ffmpeg -i input.jpg -vf dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:fmt=rgb24:dnn_backend=native -y out.native.png
  ./ffmpeg -i input.jpg -vf dnn_processing=model=halve_first_channel.pb:input=dnn_in:output=dnn_out:fmt=rgb24:dnn_backend=tensorflow -y out.tf.png

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-11-07 15:46:00 -03:00
Paul B Mahol 1c3b70e2e0 avfilter: add median filter 2019-10-29 10:56:04 +01:00
Paul B Mahol f166951d6e avfilter: add maskedmin/maskedmax filters 2019-10-24 20:54:33 +02:00
Paul B Mahol c6e01ebe41 avfilter: add bilateral filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2019-10-21 11:48:24 +02:00
Paul B Mahol b0bfa3699c avfilter: add arnndn filter 2019-10-16 15:13:59 +02:00
Paul B Mahol e37edc70bd avfilter: add anlms filter 2019-10-06 15:09:38 +02:00
Vladimir Panteleev c888adf590 libavfilter: add photosensitivity filter 2019-09-30 20:21:27 +02:00
Paul B Mahol a746359ede avfilter: add scroll video filter 2019-09-30 19:37:37 +02:00
Paul B Mahol 9c3e1c1937 avfilter: add sierpinski video source 2019-09-25 14:06:26 +02:00
Jarek Samic b29c7bcbf6 lavfi: add deshake_opencl filter 2019-08-23 00:56:13 +01:00
Eugene Lyapustin b26094e217 avfilter: add v360 filter
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
2019-08-19 09:06:07 +01:00
Mark Thompson 20fed2f0ab lavfi: addroi filter
This can be used to add region of interest side data to video frames.
2019-07-28 22:34:33 +01:00
Paul B Mahol bd5e92ef8a avfilter: add deesser audio filter 2019-07-02 19:02:54 +02:00
Xuewei Meng 78e1d7f421 libavfilter: Add derain filter
Remove the rain in the input image/video by applying the derain
methods based on convolutional neural networks. Training scripts
as well as scripts for model generation are provided in the
repository at https://github.com/XueweiMeng/derain_filter.git.

Signed-off-by: Xuewei Meng <xwmeng96@gmail.com>
2019-06-06 13:59:43 +08:00
Paul B Mahol b19550367f avfilter: add showspatial multimedia filter 2019-05-31 12:53:20 +02:00
Ruiling Song 1d74150a7d lavfi/opencl: add nlmeans_opencl filter
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-05-24 15:09:22 +08:00
Paul B Mahol f49cec2ba8 avfilter: add asr filter 2019-05-14 15:17:14 +02:00
Paul B Mahol 8ef163ba9e avfilter: add xmedian filter 2019-05-14 14:43:56 +02:00
Paul B Mahol 59fb8cae5e avfilter: add colorhold filter
Fixes #7671.
2019-05-11 20:16:45 +02:00
Paul B Mahol c2f305ca17 avfilter: add audio soft clip filter 2019-04-27 00:21:38 +02:00
Jarek Samic 1c46ab4815 lavfi: add colorkey_opencl filter
This is a direct port of the CPU filter.

Signed-off-by: Jarek Samic <cldfire3@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2019-04-20 16:32:34 +01:00
Paul B Mahol 782ae68a11 avfilter: add lagfun filter 2019-04-20 14:20:07 +02:00
Zachary Zhou b8ebce4f84 libavfilter: add transpose_vaapi filter
Swap width and height when do clock/cclock rotation
Add reversal/hflip/vflip options

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
-hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
-c:v h264_vaapi output.h264

Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2019-01-23 23:29:40 +00:00
Paul B Mahol 1ea5529dd2 avfilter: add maskfun filter 2019-01-12 19:49:15 +01:00
Paul B Mahol 8a1fc95840 avfilter: add anlmdn audio filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2019-01-08 22:00:51 +01:00
Ruiling Song 416dc9a5e8 lavf: add transpose_opencl filter
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-12-02 23:39:37 +00:00
Marton Balint 972ded33c0 avfilter/vf_freezedetect: add filter to detect frozen input
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-19 22:11:42 +01:00
Paul B Mahol 6da439219d avfilter: add rgbashift filter 2018-11-19 14:55:49 +01:00
Paul B Mahol cfd421226c avfilter: add chromashift filter 2018-11-19 14:46:45 +01:00
Paul B Mahol 7a73cca254 avfilter: add dedot video filter 2018-11-16 20:19:08 +01:00
Philip Langdale d5272e94ab avfilter/vf_yadif_cuda: CUDA accelerated yadif deinterlacer
This is a cuda implementation of yadif, which gives us a way to
do deinterlacing when using the nvdec hwaccel. In that scenario
we don't have access to the nvidia deinterlacer.
2018-11-02 11:26:30 -07:00
Paul B Mahol 97e9e3504d avfilter: add tpad filter 2018-11-02 09:32:52 +01:00
Paul B Mahol 323c2cfd38 avfilter: add (a)graphmonitor filter(s) 2018-10-31 11:49:39 +01:00
Paul B Mahol 4fcfb9c4eb avfilter: add xstack filter 2018-10-26 12:40:54 +02:00
Paul B Mahol b7b3e8c5c7 avfilter: add vibrance filter 2018-10-23 11:12:41 +02:00
Martin Vignali 02ad0416c0 avfilter/setparams : merge setfield and setrange filter to setparams filter
setfield and setrange filters are kept.
2018-10-21 22:00:01 +02:00