Project done in colaboration with Alvaro Pardo and Julieta Keldjian for the Electrical Engineering Department of Universidad Católica del Uruguay (UCUDAL) funded by ANII (Fondo María Viñas).

The preservation of audiovisual materials is part of a large objective of preservation of the cultural heritage. In order to preserve audiovisual materials restoration and storing procedures compatible with actual standards are needed. The goal of this project is to study computational efficient digital restoration algorithms. For that end computational systems based on GPUs (graphic processing units) were used.

The main strategy was to find a way of implementing the algorithms that takes advantage of the special characteristics of GPUs and therefore obtain significant runtime reductions.

Visual flicker is one of the most common consequences of degradation in old films. It is the result of global intensity fluctuations between consecutive frames. Although it may seem a simple problem that could be addressed with traditional intensity normalization techniques, usually this approach is not able to remove the distortion completely.

In this work we propose an algorithm for film restoration aimed at reducing the flicker effect while preserving the original overall illumination of the film. The algorithm is based on the computation of the inverse weighted average of the cumulative histograms within a time window. We also present a comparative study of the performance of this algorithm implemented following a sequential approach on a CPU and following a parallel approach on a GPU using OpenCL.

The performance results obtained in this study lead to the conclusion that using OpenCL for computing image histograms on a GPU fails to achieve better performance than the computation of image histograms on a CPU. Regarding the transformation process that reduces the flicker it was observed that the extra time required to transfer data to and from GPU is not justfi ed unless the frames being processed are larger than 1 MP. In such cases running histogram calculation on the CPU and applying the transformation on the GPU can achieve a better performance of the flicker reduction algorithm than if it runs entirely on the CPU.

GPU based Implementation of Film Flicker Reduction Algorithms