FLCC: Fast computation of Local Correlation Coefficients
Why Use FLCC?
The FLCC Library (Fast LCC) is a programming tool for fast computation of Local Correlation Coefficients (LCCs) between an image (or a stream of images) and an image template. The LCC computation is a basic image-based information processing step which finds numerous applications in areas such as template or pattern matching, image registration, motion detection and many more. However, the LCC computation has always been considered of high arithmetic complexity and time consuming, especially for real-time applications, thus making the usage of LCCs rather troublesome.
This library intends to overcome this problem and provide users with a simple yet powerful interface for computing the LCCs. Most implementations so far tried to reduce computation time by sacrificing the local normalization characteristic of the LCCs or approximating the result in other lossy ways. This library, though, manages to reduce computation time to a minimum, yet without making any compromises on the quality of the result. The user can be sure that the output result is accurately the “real” LCC distribution in any case, as exactly it is defined formally.
The performance benefit is achieved by two routes. On the one hand, the library implements a set of optimized fast algorithms, selecting the most appropriate for each case. On the other hand, it fully exploits current top-notch architectures, namely multicore CPU processors and manycore GPU devices. In other words, the library takes advantage of the system computational resources, executing in parallel on multiple CPU threads or having the work load carried out by the powerful GPU devices of the system (according to what it deems to be faster).