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.
Source CodeThe C++ source code, version 2.0, is available from the article web page 1 . The documentation is included in the archive. Basic compilation and usage instructions are included in the README.txt file. The demo permits to compute optimal flutter shutter codes for (truncated) Gaussian and uniform probability velocity distribution. It computes the optimal snapshot, as well. In this case the demo provides the ideal exposure time, taking the velocity model into account. It also computes the gain in terms of MSE of the flutter shutter compared to the optimal snapshot. This comparison permits to decide the viability of the flutter shutter apparatus for any application.1 http://dx