[[TracNav]] [[Image(TinyTag.png)]] = !TinyTag = !TinyTag is a 2-dimensional bar code recogniser written in standard C. It is designed for use in embedded systems such as mobile phones with cameras. !TinyTag recognises barcodes from images taken with conventional video camera. Its features include: * Arbitrary amounts of unconstrained data may be stored on each tag; * Data are protected by an error detecting code (based on a CRC) of strength chosen at compile time * Only integer arithmetic is used throughout the codebase (ideal for embedded systems without floating point units) * Available under the [http://www.gnu.org/copyleft/gpl.html GNU GPL] * Fast, optimised barcode recognition and decoding Some examples of !TinyTag tags: [[Image(tinytag1.png)]] [[Image(tinytag2.png)]] The larger capacity tag (right) is a 25x25 cell data area split into four quadrants, each protected by a 15 bit CRC. This leaves 564 bits of payload data which is enough for a 80 characters (encoded 7-bits per character). == Availability == Nightly snapshots of !TinyTag from our svn repository are available for download: [http://www.cl.cam.ac.uk/Research/DTG/snapshots/Tinytag-trunk.tar.gz Download snapshot]. As yet, there are no official releases available. == Example Programs == === codegen === This program will generate an image of a tag and save it to disk. The data to be coded should be given in hexadecimal. {{{ ./codegen 0123456789ABCDEF output.pnm }}} === imagetest === This program will load an image from disk, search for a tag and output the decoded tag data. {{{ ./imagetest output.pnm }}} === codetest === Integrated test harness. This program will generate a tag image in memory and then attempt to recognise it. The decoded data are then compared to the input data to ensure no errors have occurred. {{{ ./codetest 0123456789ABCDEF }}} === v4ltest === Video4Linux test program. This program will open the specified Video4Linux device (currently only cameras supporting YUV palettes devices are supported) and recognise images from it: {{{ ./v4ltest /dev/video0 }}}