• Hi All

    Please note that at the Chandoo.org Forums there is Zero Tolerance to Spam

    Post Spam and you Will Be Deleted as a User

    Hui...

  • When starting a new post, to receive a quicker and more targeted answer, Please include a sample file in the initial post.

QR Codes - ISO 18004

SirJB7

Excel Rōnin
Hi!


Let me start asking instead of answering, just to keep the custom.


I started a project to develop Quick Response Codes features, both in Excel and in .NET, so I chose Visual Basic for Applications as the language to be used to develop first in Excel and then migrate it to Visual Basic in Visual Studio.


I've seen many websites and free software that provided symbol creation (the main square with little black and white squares) but I wasn't able to find any compliant with the "ISO 18004 - 2nd. Edition - 2006" normative (Micro QR and QR formats, 4 and 40 versions respectively, inverted colors -white on black- and mirrored images), so I begin analyzing, designing and coding a fully compliant QR Code symbol generation software.


The issue?


Two, in fact:


1) Error correction codewords:


In 6.5.2 "Generating the error correction codewords" it says "Thirty-six different generator polynomials are used for generating the error correction codewords for QR Code. And in the annex it prints the 36 polynomials thru degree 68.


But it says too in the same place that "The data codewords including Pad codewords as necessary shall be divided into the number of blocks shown in Table 9. Error correction codewords shall be calculated for each block and appended to the data codewords.". If so, only 18 would be needed (up to degree 30), and one is missing, so there should be 19 polynomials.


And if we don't interpret that the number of EC CW (error correction codewords) have to be considered by block -as there is the contradiction explained above) and we interpret that the number of EC CW is considered for the whole symbol, we're talking about of polynomials of up to degree 2430, for which I wrote an ad-hoc code that creates them.


Briefly, this is the unique non fully clear point in the whole normative, and I've failed trying to find out information about this point: the question is, how do EC CW are created regarding which degree polynomial is to be used?


It involves mathematics on Galois Fields 2^1 and 2^8 (256), just fyi. I had not problem with those operations over finite fields but the way they treat that part in the normative is absolutely obfuscating. I'm wondering if it weren't done in such manner with a deliberated purpose.


2) Symbol examples


In "Annex I (informative) Symbol encoding examples" there is a step by step procedure of how to create a Micro QR and a QR Code symbol, and it ends with the placement of each bit (white square for zero and black square for one) in the symbol accordingly to the entire normative, except that of masking the Data and EC Codewords.


Well, I get the exact values for each element, i.e. the same bits for each square of tye symbol, but the displayed symbol differs from what I build, which I checked bit a bit.


...


I have finished coding and testing each of the 19 parts in which I split the symbol generation trying to follow each process described in the normative, and all of them work fine individually, with the exception of the EC CW generation that works with my approach, which evidently is not the right one but the described in the normative isn't clear at all. So I think that this is the last stone in my path.


I cannot post the normative as it's copyrighted and I'm looking for someone that have worked with it to verify those previous two issues. If anyone faced or is facing the same problem I'm eager to see how did he managed it, and if anyone else is stuck with any other issue I'd be glad to help if I can.


Regards!
 
@Debraj Roy

Hi!

Ha ha ha... yesterday I was about to do something alike but I forgot it.

Regards!

PS: BTW, I'll post again on Monday :)
 
Hi, all!


Following Debraj Roy's initiative, here I am again. I'd highly appreciate any help or comments about Error Correction Codewords. Thanks in advance.


Regards!
 
Hi Pablo ,


I assume you have already gone through these links ?


1. http://www.thonky.com/qr-code-tutorial/


2. http://www.swetake.com/qr/qr3_en.html


3. http://www.qrcode.com/en/about/error_correction.html


4. http://qrcodenet.codeplex.com/


Narayan
 
Hi, NARAYANK991!


Thanks for the links but I'm afraid you were right as I've passed thru all of them before. Here're my comments to each one:


a) Thonky: Checked yet April 4th update, they just re-estructured in a more friendly way what they had previously.


EDIT: Checking deeply and reading carefully there are several changes between the 1st edition of April 4th version to what exists today April 22nd. Regarding error correction codewords this is one of the changed links:

http://www.thonky.com/qr-code-tutorial/error-correction-coding/#step-1-break-data-codewords-into-blocks-if-necessary

Will analyze it and post the results in a few days.


b) Swetake: The example is provided for a 1-H QR Code (version 1, level correction high) which don't has ECCW blocking as it has only one block (it's the smallest QR code available).


c) QRCode: Is merely descriptive.


d) QRCodeNet: I'm already registered at Denso Wave (the creators of QR Codes technology), I downloaded the actual versions of QRDraw and QRMaker but they still have the same restrictions for non-registered users (registration fee is 495U$S) and there's no detailed explanation about ECCW procedures as the PDF documentation and product manuals are the same for registered or unregistered versions and don't mention anything about it... leaving you the ISO 18004 text as the only available path, and the dog chases its tail.

Look particularly at what stated in 2), ... they display a symbol different as which'd correspond to the entered text! Crazy, isn't? So non-viable even for testing and comparison purposes.


-----

Feature restrictions of QRdraw Ad

March 2012


When installed, the QRdraw Ad is initially processed as a trial edition and some functions are restricted.

By entering the product registration key, the restrictions are removed and all of QRdraw Ad's functions will be accessible.


1. Feature restrictions imposed on the Trial Edition


1) At start-up, a dialogue "Un-Registering" appears stating that the QRdraw Ad has not been registered. This dialog is also displayed when the QRdraw Ad is used as an automation server.


2) The QRdraw Ad will create a QR Code image composed of a character string different from what you have entered.


If you enter numeric characters, the Software will automatically translate them into loop "0"-"9" characters, if alphanumeric, into loop "A"-"Z", and if 8-bit byte (binary), into "a"-"z", containing the same number of characters entered.


Example:

Character string entered: 0566259800QRCODEdensowave


Character string embedded: 0123456789STUVWXyzabcdefg


In the process of QR Code creation, it may interpret an entered numeric character as "A"-"Z" of the alphanumeric mode depending upon the number of characters entered and the mixing of character types since the Software automatically changes character modes.


The restrictions can be removed by entering the access code registration.

To find out how to obtain access code, please refer to document text "GetKey.txt".


2. Contents available using the trail version


1) As previously mentioned, the properties and methods are the same as the licensed edition. You can confirm operation and application development using VB and VC++ and Access.


2) Since a code is configured according to the character type (alphanumeric characters, Chinese characters, and binary codes) and the number of characters you have entered, the created image has the same size with the licensed edition. The image created by the QRdraw Ad is recognized as a QR code and can be ready by a standard reader.


Copyright(c) 2005-12 DENSO WAVE INCORPORATED All right reserved.

-----


Regards!


EDIT:


In the Reference section at the bottom of the main page of last link's website there are links to the ISO 18004 normative and it's update, to which points, items and paragraphs I referred in my first post, just in case anyone wants to give a look at them:

http://qrcodenet.codeplex.com/


EDITED: see a)
 
Back
Top