Commit graph

335 commits

Author SHA1 Message Date
dswitkin 581464ad21 Fixed a bunch more tests, and commented out all of the Renderer tests for now so everything compiles.
Sean, try commenting out testEncode(). It'll let you run a bit further to see a genuine problem that testInterleaveWithECBytes() finds.

git-svn-id: https://zxing.googlecode.com/svn/trunk@728 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-19 01:58:31 +00:00
dswitkin bafe58d06e Moved ByteArray up to core/common now that it has no dependencies on qrcode/encoder.
git-svn-id: https://zxing.googlecode.com/svn/trunk@727 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 23:01:42 +00:00
dswitkin c95fe48a76 Made several good fixes to and because of the unit tests. Turns out the EC array was never being set to the right size. I've now established that the Reed Solomon code is generating one fewer coefficient than the layer above it asked for.
git-svn-id: https://zxing.googlecode.com/svn/trunk@726 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 22:54:04 +00:00
dswitkin b5dbec4469 Created a WriterException class and updated a bunch of documentation.
git-svn-id: https://zxing.googlecode.com/svn/trunk@725 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:46:24 +00:00
dswitkin 1357c87441 Made some incremental progress on the Encoder unit test. I think we've now hit the first real bug in the code.
git-svn-id: https://zxing.googlecode.com/svn/trunk@724 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:34:17 +00:00
srowen 4883f8cd11 Finally submit tiny change to comments here
git-svn-id: https://zxing.googlecode.com/svn/trunk@722 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:18:10 +00:00
srowen 604a10e8e5 Replace IllegalStateException; still want to make it WriterException
git-svn-id: https://zxing.googlecode.com/svn/trunk@721 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 21:15:30 +00:00
dswitkin 919958c40f Made a small change to allow discovery of multiple email addresses within a Docomo MECARD.
git-svn-id: https://zxing.googlecode.com/svn/trunk@720 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 19:44:25 +00:00
ccmysen 559c79e1cc Adding in the rest of the qrcode test cases.
Most of them seem to be having run errors right now, but most of the major
syntax errors are now gone. The main missing feature right now is the use of
the GaloisField polynomial and a working Renderer class.



git-svn-id: https://zxing.googlecode.com/svn/trunk@719 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 18:56:19 +00:00
ccmysen e14607e785 Add testdata for the qrcode encoder tests (mainly part of the renderer testcase).
git-svn-id: https://zxing.googlecode.com/svn/trunk@718 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 18:17:22 +00:00
dswitkin 83758391f7 My BitVector implementation was totally buggy. I rewrote a lot of it and ported the test case, which now passes.
Now I'm tracking down an assertion in Encoder.InterleaveWithECBytes().

git-svn-id: https://zxing.googlecode.com/svn/trunk@717 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-18 15:34:45 +00:00
dswitkin 8175e2cc25 Created the base Writer object for all barcode encoding, then wrote a QR Code version. A Writer encodes a series of raw bytes into a 2D greyscale bitmap, represented by a ByteArray. This seems like a better container than MonochromeBitmapSource, because we may want shades of grey when encoding future formats. The next step is to hook this up to the Android client.
git-svn-id: https://zxing.googlecode.com/svn/trunk@716 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 22:10:45 +00:00
dswitkin 8d79ad7085 Fixed the build.
git-svn-id: https://zxing.googlecode.com/svn/trunk@715 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 20:49:10 +00:00
srowen e9a29fb098 move to singleton ReaderException for a bit more performance
git-svn-id: https://zxing.googlecode.com/svn/trunk@714 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-17 17:56:31 +00:00
srowen be59e299dc Add a bit of a hack to better detect UTF-8 in the wild, versus ISO88591
git-svn-id: https://zxing.googlecode.com/svn/trunk@712 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-16 12:46:18 +00:00
srowen 4fcdac3ae7 Change assert to an exception since this facility would not be available in J2ME. I vote for removing use of Debug anyway.
git-svn-id: https://zxing.googlecode.com/svn/trunk@711 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-16 12:03:11 +00:00
srowen 247e7c95bb Now uses new Reed Solomon encoder code
git-svn-id: https://zxing.googlecode.com/svn/trunk@709 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 20:23:32 +00:00
srowen c5d81d76d1 Add to result the raw, but parsed, bytes of byte segments in 2D barcodes
git-svn-id: https://zxing.googlecode.com/svn/trunk@708 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 13:50:18 +00:00
srowen ce341d92aa Bug fix to unrandomization routine from sanfordsquires
git-svn-id: https://zxing.googlecode.com/svn/trunk@707 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 12:58:36 +00:00
srowen 62d9959a3c Remove my old email address from files. Might as well save spammers the trouble.
git-svn-id: https://zxing.googlecode.com/svn/trunk@706 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-15 00:07:25 +00:00
dswitkin aea12b5286 Wrote a new ByteArray class to replace StringPiece and fixed all uses of it. Also converted all uses of stl::string (which was being used as vector<unsigned char>) to ByteArray. Everything in the Encoder but the Reed Solomon related code compiles now.
ByteArray could certainly move up to the common package, although it currently has a dependency on BitVector. We'll have to figure out what to do with the latter first.

This is the first set of changes I've made which are error prone. They involved a lot of pointer conversion, signed/unsigned semantics, etc. These diffs may have clues for later bugs.

git-svn-id: https://zxing.googlecode.com/svn/trunk@705 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 21:51:26 +00:00
dswitkin fabdd40edf Huge progress on the Encoder. I'm down to StringPiece errors (that class hasn't been replaced yet) and a few nasty methods, which call into Reed Solomon (not done yet).
git-svn-id: https://zxing.googlecode.com/svn/trunk@704 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 18:43:54 +00:00
srowen f80cd1ff51 More enhancements to Reed-Solomon tests
git-svn-id: https://zxing.googlecode.com/svn/trunk@703 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 18:34:19 +00:00
dswitkin b625c6f7e5 Got MatrixUtil to compile, and refactored some methods out of it, and into Matrix where they belong.
git-svn-id: https://zxing.googlecode.com/svn/trunk@702 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 16:21:05 +00:00
dswitkin 97ffa36734 Did a bunch of comments cleanup.
git-svn-id: https://zxing.googlecode.com/svn/trunk@701 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 15:40:38 +00:00
srowen 7cae0d4cc9 Added Reed-Solomon encoder, suitable for QR Code encoding
git-svn-id: https://zxing.googlecode.com/svn/trunk@699 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-14 12:40:55 +00:00
dswitkin 5dba28fc86 Wrote a reasonable implementation of BitVector which now compiles.
git-svn-id: https://zxing.googlecode.com/svn/trunk@698 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 21:59:08 +00:00
dswitkin 6f4898c68f Wrote a Matrix class and fixed all uses of it, as well as other small fixes like StringBuffer. MaskUtil and QRCode now compile with no errors.
git-svn-id: https://zxing.googlecode.com/svn/trunk@697 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 21:18:56 +00:00
srowen 8666ac2f8f Comment out QR code encoder package for the moment
git-svn-id: https://zxing.googlecode.com/svn/trunk@696 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 19:08:25 +00:00
dswitkin 60f3af2607 Converted the Mode and ECLevel enums in QRCode.java.
git-svn-id: https://zxing.googlecode.com/svn/trunk@695 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 17:12:53 +00:00
dswitkin f50305895d Began porting the QR Code encoder from ChartServer to Java/ZXing. Some important comments are flagged with JAVAPORT. I've done the following so far:
- Created Java files with our headers, packages, etc.
- Converted includes to imports, or commented out the unresolved dependencies
- Merged all the .h and .cpp contents into Java classes
- Fixed most of the formatting
- Did all the simple transformations (bool, NULL, const, struct, string, ::, ->)
- Created a Debug class to handle all the asserts and logging
- Fixed about half of the static arrays
- Removed some pthread cruft

IMPORTANT:

- Please do not start hacking this code up as I'm going to keep making large changes to it. In particular, we need to leave the trailing underscores on member variables for now. Once everything is compiling with no errors, we can revisit stylistic issues.
- There will be a number of similar classes within the encoder and in the rest of ZXing. We should refactor those later (BitVector and BitArray come to mind). In the mean time, I want to get everything working and the tests passing before we do that.

git-svn-id: https://zxing.googlecode.com/svn/trunk@694 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-13 16:14:44 +00:00
dswitkin cd0ff37fdb Made a small change to the KDDI AU parsing code to handle pronunciation (aka Furigana) specifically.
git-svn-id: https://zxing.googlecode.com/svn/trunk@692 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 16:21:19 +00:00
srowen 977c2e38ca Updates from sanfordsquires to fix RS decoding for Datamatrix
git-svn-id: https://zxing.googlecode.com/svn/trunk@689 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 13:47:45 +00:00
srowen d56fb38427 Updates from sanfordsquires to fix RS decoding for Datamatrix
git-svn-id: https://zxing.googlecode.com/svn/trunk@688 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-12 12:59:47 +00:00
dswitkin e9a6e8e906 Added support for Furigana using the SOUND field in MECARD. AddressBookParsedResult now has a pronunciation field to represent this. I'm not aware of whether this is supported in other formats like VCARD, so they all pass null for now.
git-svn-id: https://zxing.googlecode.com/svn/trunk@686 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-11 16:31:27 +00:00
srowen ae46d12d21 Partially addressed Reed-Solomon decoding issue for Datamatrix, but not entirely. Still some small issue that prevents correcting as many errors as possible.
git-svn-id: https://zxing.googlecode.com/svn/trunk@680 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-09 16:22:43 +00:00
srowen 04f17f67a6 Made new array fields final
git-svn-id: https://zxing.googlecode.com/svn/trunk@679 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-09 16:20:15 +00:00
srowen 5f817c69b6 Address a small but clear bug in detector logic
git-svn-id: https://zxing.googlecode.com/svn/trunk@678 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-08 14:27:08 +00:00
srowen 41a386f04c Attempt to make encoding detection slightly more accurate -- rule out Shift_JIS in a few more cases
git-svn-id: https://zxing.googlecode.com/svn/trunk@677 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-08 14:25:36 +00:00
srowen 56644b1af2 Small additional error check in decoder
git-svn-id: https://zxing.googlecode.com/svn/trunk@674 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-06 19:14:48 +00:00
dswitkin c4a28fa4a7 Made some temporary changes to make throwing ReaderExceptions more efficient. Long term, we need to delete this class and change the decoders to return errors instead of throwing.
git-svn-id: https://zxing.googlecode.com/svn/trunk@669 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-05 19:16:27 +00:00
srowen e6e3472471 Renamed UPC result type to Product, and introduced an idea of 'product ID' and 'normalized product ID' to account for UPC-E, where the actual visible ID is different from what we may want to search for as a key. Updated clients to use this too.
git-svn-id: https://zxing.googlecode.com/svn/trunk@668 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-04 12:08:19 +00:00
dswitkin 1dc71920e9 Another round of optimization, focused on reusing arrays and small objects.
git-svn-id: https://zxing.googlecode.com/svn/trunk@665 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 16:07:36 +00:00
srowen 14e22bd443 Revamp the character encoding detection to use a more complicated but still crude algorithm that detects more Shift_JIS sequences correctly.
git-svn-id: https://zxing.googlecode.com/svn/trunk@664 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 12:22:33 +00:00
srowen 79d7b01e9e Updated qrcode-2 with corrected output for some Japanese-language results. Also standardized on UTF-8 encoding for test result files and enabled --dump_results for single-file case.
git-svn-id: https://zxing.googlecode.com/svn/trunk@663 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 11:06:20 +00:00
srowen 70732c334e Now more lenient in detecting Shift_JIS to detect more byte sequences as Shift_JIS
git-svn-id: https://zxing.googlecode.com/svn/trunk@662 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-02 10:30:09 +00:00
dswitkin a8b57c466d Discovered that our 1D Readers were being reallocated for every row scanned - yikes! I made them reusable across both rows and different scans. This saved 26 ms on the worst case rejection. We can now consistently reject any 240x240 image on Android in 150 ms or less, checking all 7 formats.
git-svn-id: https://zxing.googlecode.com/svn/trunk@661 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-01 02:31:05 +00:00
srowen 5a5987df88 Allow up to 3 superfluous bits at end of stream
git-svn-id: https://zxing.googlecode.com/svn/trunk@659 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-31 18:49:54 +00:00
dswitkin bf362ae853 Added 17 new, unusual QR Codes to the blackbox tests. We can decode the majority OK, but some of the contents are not agreeing with the golden results because of a text encoding issue.
git-svn-id: https://zxing.googlecode.com/svn/trunk@658 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-31 18:09:24 +00:00
dswitkin 8671371c59 Did a big refactoring on the MonochromeBitmapSource. I removed all the caching luminance calls and converted them to getting luminance data on demand. This saved another 33,000 function calls per rejected scan, good for another 15 ms savings. I also moved the luminance calls to BaseMonochromeBitmapSource and made them protected, to indicate that the decoders shouldn't use them.
Overall the recent optimizations took one rejected scan from 307 to 135 ms, which is definitely noticeable.

WARNING: I am not able to build the Bug or J2ME clients, but I believe they are correct.

git-svn-id: https://zxing.googlecode.com/svn/trunk@656 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-30 18:44:10 +00:00