postscriptbarcode icon indicating copy to clipboard operation
postscriptbarcode copied to clipboard

Add support for JAB Code

Open terryburton opened this issue 5 years ago • 5 comments

Specification: https://www.bsi.bund.de/EN/Publications/TechnicalGuidelines/TR03137/BSITR03137.html

terryburton avatar Nov 26 '18 00:11 terryburton

Preliminary code is available with the following limitations:

  • No optimised high-level data encoding.
  • Master symbols only.
  • Too slow to be usable due to the high computational complexity of the LDPC error correction as defined at present.

https://github.com/bwipp/postscriptbarcode/blob/master/src/jabcode.ps

Development is stalled waiting for possible changes by the JAB Code authors.

terryburton avatar Nov 26 '18 00:11 terryburton

On hold as the specification is in a state of flux. Working with the upstream authors on robustness and standardisation related issues.

terryburton avatar Mar 29 '19 16:03 terryburton

Any progress on that? How slow would it be to implement error correction with JS for JAB code atm? Is it feasible?

hvitis avatar Jan 25 '21 23:01 hvitis

The draft specification that is being worked on by ISO/IEC JTC 1/SC 31 WG 1 is structurally distinct from the published German BSI specification.

The LDPC process requires ~10,000,000 iterations of the innermost loop which is unlikely to be efficient in any interpreted runtime. A simple transliteration of the C implementation to PostScript yielded the following timings for a relatively small 8-colour JAB Code symbol:

  • 1420ms createMatrixA
  • 11200ms GaussJordan
  • 250ms createGeneratorMatrix

I would be surprised if a JavaScript JIT were to accelerate this a great deal.

terryburton avatar Jan 25 '21 23:01 terryburton

I understand. Thank you very much!

hvitis avatar Jan 29 '21 01:01 hvitis

Closing. If someone whats to complete the implementation against the ISO standard then they are welcome to, however it seems that it would be practically unusable in a PostScript environment.

terryburton avatar Apr 29 '24 10:04 terryburton