VMAF Re-implementation on PyTorch: Some Experimental Results
This work provides a PyTorch-based tool for video processing tasks, but it is incremental as it adapts an existing metric to a new framework.
The authors re-implemented the VMAF video quality metric in PyTorch, achieving a discrepancy of less than 0.01 VMAF units compared to the standard version, and used it to train a preprocessing filter that outperforms unsharp masking for video compression improvement.
Based on the standard VMAF implementation we propose an implementation of VMAF using PyTorch framework. For this implementation comparisons with the standard (libvmaf) show the discrepancy $\lesssim 10^{-2}$ in VMAF units. We investigate gradients computation when using VMAF as an objective function and demonstrate that training using this function does not result in ill-behaving gradients. The implementation is then used to train a preprocessing filter. It is demonstrated that its performance is superior to the unsharp masking filter. The resulting filter is also easy for implementation and can be applied in video processing tasks for video copression improvement. This is confirmed by the results of numerical experiments.