The Flutter Shutter Code Calculator
Yohann Tendero
Yohann Tendero, The Flutter Shutter Code Calculator, Image Processing On Line, 5 (2015), pp. 234–256.

Communicated by Mauricio Delbracio
Demo edited by Yohann Tendero

This IPOL article is related to a companion publication in the SIAM Journal on Imaging Sciences:
Y. Tendero, and J.-M. Morel. "A Theory of Optimal Flutter Shutter for Probabilistic Velocity Models" SIAM Journal on Imaging Sciences 9(1):445-480, 2016.


The goal of the flutter shutter is to make uniform motion blur invertible, by a "fluttering" shutter that opens and closes on a sequence of well chosen sub-intervals of the exposure time interval. In other words, the photon flux is modulated according to a well chosen sequence called flutter shutter code. This article provides a numerical method that computes optimal flutter shutter codes in terms of mean square error (MSE). We assume that the observed objects follow a known (or learned) random velocity distribution. In this paper, Gaussian and uniform velocity distributions are considered. Snapshots are also optimized taking the velocity distribution into account. For each velocity distribution, the gain of the optimal flutter shutter code with respect to the optimal snapshot in terms of MSE is computed. This symmetric optimization of the flutter shutter and of the snapshot allows to compare on an equal footing both solutions, i.e. camera designs. Optimal flutter shutter codes are demonstrated to improve substantially the MSE compared to classic (patented or not) codes. A numerical method that permits to perform a reverse engineering of any existing (patented or not) flutter shutter codes is also described and an implementation is given. In this case we give the underlying velocity distribution from which a given optimal flutter shutter code comes from. The combination of these two numerical methods furnishes a comprehensive study of the optimization of a flutter shutter that includes a forward and a backward numerical solution.