Project Goals
Robustness
Perfect barcode scans from any input, every time. Every time.
Performance
Crazyfast realtime performance.
Footprint
Small enough to live comfortably on even the wimpiest mobile device.
Cross Platforminess
Available for every platform known to man, and then some.
Flexibility
Make minimal assumptions, allowing the library to be used in unanticipated ways and across a wide range of resolutions. Also provide a modular structure that allows users to swap in their own logic when desired.
Implementation Goals
Whole-Image Operations
Avoid the practice of performing operations across every pixel of an input image. For example, do not run an image through an "edge detection" filter and then use the filtered copy as the starting point for the next stage of processing. Instead implement "pixel-by-pixel" operations that work at the local level without altering the original image. This approach helps smaller processors by focusing their limited resources on important parts of the image, and also allows the algorithms to scale to larger image resolutions without a significant performance hit.
Image Copies in Memory
Avoid storing multiple copies of an image in memory. By avoiding whole-image operations (mentioned above) this problem largely goes away on its own. This approach reduces the overall memory footprint and gives fewer opportunities for memory leaks to make their way into the code. Ideally, the only image copy in memory will be the one that is initially passed to the library.
Matrix Transformations
Use 3x3 matrix transformations to define the geometric relationship between a barcode in an image and its individual module (bit) locations. Using this approach, the problem of region detection boils down to refining a single 3x3 matrix until the resulting transformation perfectly aligns the corners of a barcode (in pixel coordinates) with the corners of a 1x1 unit square.
For those unfamiliar with the concept of matrix transformations, you can think of it as representing a mathematical "lens" through which if you view the original image it will bend the light such that the barcode portion of the image will appear perfectly square and scaled to a convenient size.

