This page shows the results from the student projects that were part of GSoC 2019.


OpenCL Deshake Filter

A blog post discussing this project can be found at

Complete DNG support

A blog post discussing this project can be found at

Derain Filter

Description: This project is aimed to remove rain/haze in images/videos. It can be used for image and video processing to make them clearer and it can be a preprocessing method for many computer vision systems.This project goal was to implement deep-learning-based derain filter and dehaze filter.

Results: Contributions of the GSoC period include:

  • Support of multiple DNN operations in FFmpeg, such as various padding methods ( commit), different kinds of activation functions ( commit) and the support of dilated convolution ( commit). These operations are needed for the implementation of derain filter and are also common operations for neural networks.
  • Implementation of RSECAN model for derain filter ( commit).
  • Implementation of dehaze filter ( commit).
  • Improvements and fixes of derain and dehaze filter. Commits: 1, 2, 3.
  • Scripts for model training, evaluation and generation for derain and dehaze filter are provided in the repository.

Future work: Evaluate more models for derain and dehaze. If their performance is better, they will be added to the derain filter in FFmpeg.

Mentor: Steven Liu (lq AT chinaffmpeg DOT org)

Student: Xuewei Meng (xwmeng96 AT gmail DOT com)

360 Video Filter

Description: 360° videos requires special representation format to store them as a regular video. Project’s goal was to write a filter which would be able to convert 360° videos between various formats and also apply operations like FoV extraction and rotation.

Results: The v360 filter which provides functionality to convert videos between the following 360° formats: equirectangular projection, regular cubemaps, Equi-Angular cubemap, dual fisheye. The filter supports FoV extraction, rotation and mirror operations. Several interpolation methods (nearest neighbor, bilinear, bicubic, and Lanczos) were examined and implemented. The filter is designed to be easily extendable with new formats and interpolation methods.

Filter documentation

Commit Links:

  • Add main body of the filter including support for 3 formats and 4 interpolation methods. Commit
  • Add padding option for cubemaps. Commit
  • Add dual fisheye format. Commit

Future work: New 360 formats and interpolation methods could be added to the filter by implementing a couple of functions. Support for non-360 panoramic formats and stereo might be a good addition to the filter.

Mentor: Paul B Mahol (onemda [at] gmail [dot] com)

Student: Eugene Lyapustin (unishifft [at] gmail [dot] com)

Last modified 18 months ago Last modified on Aug 26, 2019, 2:56:48 PM