I had the honor and privilege to hold a presentation about Microsoft Tag at regional community conference KulenDayz 2010 conference
And when asked by organizers Dean Vitner, Bernardin Katic (thank you for invitation, congratulations really was a great event and a lot of fun), to give them the pptx and the code I started to write this post.My problem, since the presentations where more on the Chalk & Talk, or Chalk & Code etc
, my pptx has more info at comments
. And at beggining of writing this post, the language options where, English, Croatian, Romanian. Yes, the slide with text was in Croatian, but I feel that English is…
My presentation point is that MicrosoftTag is not just for marketing, there are many other uses untapped.
Moreover the technology behind it High Capacity Color Barcode (HCCB) is really a game changer in this field.
Q:Why the barcodes appeared?
A:A typical engineer trick, since writing recognition, is a very complex affair (even now) they invented a writing easy to understand by computers, enter barcodes.
Even now, I said because this saga begun a long time ago, for example the first barcode we are going to talk is of 1959 vintage.
To have a grasp on the subject I did barcodes of different types containing the link to the conference site using the generator at http://bcgen.com/ .
Linear 1 D (barecode below is code 128)

Is a 60 invention, absolute common now. The problem as you see is that is not compact, if is to small is unreadable, if readable could be huge.
It is commonly read, and is optimized to, by laser scanners. Which are fast reliable, a tad complex, quite tick (no cell phone could house one) and relatively expensive. The idea was to use software to read the barcode from a digital picture. As problem to solve, the algorithm must be size independent, also must know where to begin to interpret the data and where to stop.
To print it you need to have a decent to good printer, there is some resilience to ink bloating but no nirvana.
In search to a better barcode, we will talk about 2D barcodes, and we will talk about the end of the spectrum the most common industrial one and one of the most common consumer one.
DataMatrix

Is square, black and white, capacity max 2,335 alphanumeric characters. Public domain so free for many applications.
Legend has it that where developed for NASA, for tracing rocket components, and was stamped on them (a label I believe was not a good idea
). True or not, this code works even stamped, we can say even that is 3D. To print it you need again a decent to good printer (or a stamping machine).And Ink bloating could cause problems. To read it software is used, let us see how we see the orientation, hence where to begin the interpretation.
Do you see an L shape? Yes, you guess it.
Nevertheless, the camera used should be again fairly good.
Or the more consumer oriented, QRCode

Is square, black and white, capacity max 4,296 characters. Free.
Created by Toyota, designed to read from label moving, means a very fast decoder, means suited for mobile.
How it gets orientation and rest see here http://en.wikipedia.org/wiki/File:QR_Code_Structure_Example.svg
OK, so again we need fairly good printer, and camera.
Some summing up
2D barcodes are read by soft, who need to find out the orientation of the barcode to be able to interpret it. Also they could come in different sizes…
For error correction, the most common method is http://en.wikipedia.org/wiki/Reed-Solomon_code
All barcodes up to now need good printers. And the 2D especially need good cameras, for examples from the requirements of this software http://www.freewarepocketpc.net/ppc-download-quickmark-v3-3-barcode-reader.html “only 3 hundred thousand pixel cameras are required “. And you need to have quite a steady hand.
High Capacity Color Barcode
Lets go to Google Patents http://www.google.com/patents and search patent 7751585.
Found “System and method for encoding high density geometric symbol set” from 6 iulie 2010 inventor Gavin Janke engineering director at Microsoft Research.
HCCB is square, symbol can be represented on colors black and white (2 colors 1 bit), 4 colors (2 bits), 8 colors (3 bits). Capacity 3,500 characters per square inch.
I did not copy paste figures from the patent, but I will try to explain some of them.
Ingredients as shown in figure 2, colored triangular symbols and white spaces. The triangles ease up considerably the orientation problem see figure 4.
Aliasing posed a problem to older 2D barcodes, the aliasing as a phenomenon is illustrated in figures 5,6. On short sampling blurs the dots or camera capture. And has a huge effect on the readability of 2D barcodes see fig 7, 8. HCCB is far less sensible to that fig 9.
The HCCB has provisions for color auto calibration fig 10.
A question is how you choose the colors for the barcode; a formula is provided fig 15 is interesting that is referring to RGB, I suppose that out there is a formula for CMYK.
This barcode uses as utile info the points at the centre of the triangles, the triangles seems to be there for redundancy and speed, fig 14, 18.
Microsoft Tag

An implementation of HCCB, square, BW in a 7 x 14 grid, 4 colors in a 5 x 10 grid (row number could change and since is square also the symbol number; formula is symbol nr = 2 * rows),capacity 200 chars? Free for most uses.
Ingredients Symbol rows (colored triangular symbols), a white border, a black frame, Row spacers (white spaces).
Is web based means after recognizing the information is obtained from a Microsoft site, where you create and manage the tags. The information can be a link, a contact, or a text.
Exist a web service API to do these operations, you need a key free,but you need to ask for it …
Microsoft provides free clients for Windows Mobile, iPhone, Android, Blackberry.
Can be printed on any printer from the common jet printers up, and the results are readable.
Since is web based, you have also analytics on the scanned tags.
This spring the service shed the beta status: what is new?
The analytics now know to identify unique users based on device id. Localization in "French, Spanish, Turkish, Simplified Chinese, Italian“. A new beta tool, marketing oriented, Heat Map, on how “hot” is a campaign based on the tag scanned.
A new format for representing the tags .tag. In beta existed the option to create tags, which blended into a graphical element.
I did one blended in the logo of KulenDayz…

And does not look too blended, so for this they have created this format. The idea is that a graphic artist using the .tag file could create better barcodes in images. The format is explained here http://www.microsoft.com/downloads/en/details.aspx?familyid=1DCCA3F8-E268-4584-B379-805854C94E62&displaylang=en . The document is good also to understand the HCCB format…
But back to the .tag format, these are the point of interest (for me) from the document:
1. The first character in the series indicates the Tag type. Currently, the only possible values are 0 (black-and-white) or 1 (color). The interpretation of the rest of the characters in the encoding is determined by the Tag type.
2. For both color and black-and-white Tag types, the second character in the series indicates the number of rows that make up the Tag. While standard black-and-white Tags are made up of 7 rows each and standard color Tags are made up of 5 rows each, Tags created in the future can consist of as few as 4 rows and as many as 15 rows.
3. For both of these Tag types, the third and subsequent characters specify the color of each symbol within the Tag. The Tag symbols are encoded left to right, starting with the first row. For color Tags, each character contains two symbols. For black-and-white Tags, each character represents four symbols. If the number of symbols in a Tag does not divide evenly by two (for a color Tag) or four (for a black-and-white Tag), the last character will be padded with zero-valued symbols as necessary.
Each symbol within a black-and-white Tag corresponds to a 1-bit value. Each symbol within a color Tag corresponds to a 2-bit value.
In the tag specs there are also specifications on spacing.
The bottom line that attracted me is how a tag is represented in this new format,
Our example looks like this 15CAF623D9FFDC61EE60BFC711B and if we use the above info is quite easy to decode, color on 5 rows, and then each hex char is 2 symbols.
Lets talk about the about the web service API, is by no means rocket science, has the method you would expect, create tag render tags, to create categories but also to pause them. Pause? Well is marketing oriented, so I can have a campaign, that has and start and end date and the pause of category affect all tags in that cathegory…I have a small sample here http://ronua.ro/CS/groups/ronua-timisoara/media/p/216704.aspx.
The other point of interest is that you need to increase the values maxBufferSize and maxReceivedMessageSize since the generated rendered tag is not small…
So applications, obvious one is document management coupled with SharePoint services (even the patent application has a barcode on it).
Another area is indoor navigation, GPS does not get inside, but strategic placed tags with links to maps, and since almost all big public space have free WiFi…
Product information, extensive product and lot information could be another venue for this technology. Again, prevalence of WiFi in supermarkets makes this a feasible solution.
Audio guides, could be another idea, again competing to very expensive hardware, scan a tag and get the information you want, in the language you want, from a web site a bit more special.
For conferences, for counting audience at specific sessions, the cost compared to a “normal” barcode solution is significantly reduced. These kind of solutions go a bit on the limitations of Microsoft Tag, the must web connection, and no control over reader.
In health also could have applicability, for an electronic health record card. Modern electronic health records such as HealthVault, Google Health or Dossia, are cloud based (some imagistic test results are in the GBs so will and cannot fit on o smart card). So on the card you need to have just your identifier on these systems.
And these are only a couple of ideas top of the head, and just pushing a bit the limitations of the Microsoft Tag but not of HCCB(BTW last year at Mobility Day www.mobilityday.com was a presentation about an indoor navigation solution made for Microsoft headquarters done with HCCB ).
And why I praise so much this technology? All 2D codes o this blog post are the same size (except Microsoft Tag in KulenDayz logo). Play with the browser zoom and see which one is most readable… I have used BeeTagg http://www.freewarepocketpc.net/ppc-download-beetagg.html and my phone camera in 2 MPixels. Microsoft Tag works from 1 MPixel up.
Almost fortgetted to put the BW version

And if got this far and you do not know what kulen is http://en.wikipedia.org/wiki/Kulen.
Hope that I will be able to get KulenDayz 2011, this year it got me hooked (the peoples, the conference, the atmosphere, and of course the kulen
) .
Posted
Fri, Sep 10 2010 1:34 AM
by
MrSmersh