Thursday 22 November 2007

What are these squares?!

Most of us knows what barcodes are and feel their importance in our lives:) Virtually any thing we have has or had label with barcode on it. This set of white and black lines automates job of cashiers, simplifies logistics and significantly reduces human factor:)

Humans need more and more... Barcodes came close to limits - they cannot keep as many data as we need. Next logical step was to use two dimensions in stead of one. It means useful utilization of area plus new features like error correction that allows correct reading of code even if it is damaged partly. Lines became squares. Of course, detection of 2D codes needs more powerful devices and sophisticated mathematical algorithms. Fortunately, modern electronics can supply required things.
There are plenty of different standards on 2D codes, some of them are QR Code and Datamatrix. Both offers reasonable informational density, comparable error correction possibilities; both require similar processing power. For me, the most important feature is an ability to capture and process 2D code by low resolution cameras built into modern mobile devices. I use QR Code.

To scan barcodes, either laser guns or linear image sensors are used. To detect 2D code we need real picture and use CCD or CMOS sensors similar to ones built into digital cameras.

In spite of possibilities of modern 2D codes to keep huge amount of data (even 16 KB), consumer phones offers relatively low optical resolution products. Take into account noise in dark environment, focusing problems and dirt on lenses... As a result we are limited in code size. General rule is - the bigger squares and higher contrast between black and white elements - more reliable reading we have.

My application is based on QR Code that can keeps 27 decimal digits and offers correction in case of corruption of 30% of the code.

123456789012345678901234567

It is enough for indexing services I plan to create.

1 comment:

Anonymous said...

Please make it QR Code compatible.