Forums: English (Thread #16019)

Hi, Yanbe. question for 0.8 version (2007-09-03 08:08 by Anonyme #31970)

I have read your 0.7.2 verison of qr code decoder. I wanna ask what kind of changes occurred in the 0.8 version.
and for this project, especially for the decoder, what algorithms did you use. would you please list the reference? I am also doing research on improve ment of 2d barcode recognize for my dissertation . I need your help.

Thank you very much

Regard Toby

Répondre à 31970×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: Hi, Yanbe. question for 0.8 version (2007-09-03 14:11 by yanbe #31980)

Hi

About changes of version 0.8, please read this document.
http://sourceforge.jp/projects/qrcode/document/qrcode_0.8_-_Changes/

And I'm using following reference.

QR Code specification
JIS-X-0510(2004) (Japanese)
http://sourceforge.jp/projects/qrcode/document/qrcode_specification_ja/en/1/qrcode_specification_ja.pdf

Basically, I obey the method of JIS-X-0510 how to recognize QR Code symbol from its image. But some un-documented method like QRCodeImageReader#applyCrossMaskingMedianFilter are used for improving decoding performance.

Some tables like QRCodeSymbol#numRSBlocks and QRCodeSymbol#numErrorCorrectionCode are ported from this specification. It is essential for process after decoder recognized symbol.

ISO/IEC18004
(English version of above)
It will be useful for most developers. But it costs over $100. Perhaps it is available on library.

ReedSolomon error correction code
I ported C version of ReedSolomon code below into Java.
http://sourceforge.net/projects/rscode

Yusuke Yanbe
Répondre à #31970

Répondre à 31980×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: Hi, Yanbe. question for 0.8 version (2007-09-04 00:52 by drhu00 #31994)

Yanbe,
A Question: Why other twp eccPerRSBlock not divided by 2 in correctDataBlocks? There is some reason for it?
Répondre à #31980

Répondre à 31994×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 02:41 by yanbe #31999)

drhu,

Because (as in comment) QR Code specification JIS-X-0510(2004), p30 says,

"in order to protect from miss-error correction, number of error correction shold be less than half of error correction code".

And I confirmed that this modification improve decoding rate slightly with my local test correction.
Répondre à #31994

Répondre à 31999×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 02:54 by drhu00 #32000)

I know why you divided by 2. But what I don't know why you don't divided by 2 for other similar ones in //symbol has 2 types of RS blocks
Should we treat the same? I mean also divide by 2 in ReedSolomon corrector = new ReedSolomon(shorterRSBlocks[i], eccPerRSBlock);
and
ReedSolomon corrector = new ReedSolomon(longerRSBlocks[i - numShorterRSBlocks], eccPerRSBlock);
?
Répondre à #31999

Répondre à 32000×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 03:24 by yanbe #32002)

> ReedSolomon corrector = new ReedSolomon(shorterRSBlocks[i], eccPerRSBlock);
and
> ReedSolomon corrector = new ReedSolomon(longerRSBlocks[i - numShorterRSBlocks], eccPerRSBlock);
?

Ah, you are right. We have to treat them same.
These part also should be divided by 2

Then I will update release files soon.

Thank you.
Répondre à #32000

Répondre à 32002×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion