Commit graph

109 commits

Author SHA1 Message Date
srowen 65f4f7c1c6 Fix an (old?) compile error
git-svn-id: https://zxing.googlecode.com/svn/trunk@997 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-06-26 19:03:04 +00:00
dswitkin 167197ec7a Refactored the MonochromeBitmapSource class hierarchy into LuminanceSource, Binarizer, and BinaryBitmap classes. The unit tests pass and I believe the change is complete, but there are some clients like J2ME and Bug that I can't build.
This change will allow new thresholding algorithms to be developed and tested, as well as implemented per platform if needed (e.g. in JNI on Android). It should also perform better when multiple 2D Readers are installed, because the underlying image will only be converted to 1 bit once. It also allows some platforms to return luminance data without a copy.

The current state of this checkin is to use the old black point algorithm, which now lives in GlobalHistogramBinarizer. This will be our benchmark and fallback for slower platforms. Going forward we will begin to use LocalBlockBinarizer as I shake out the edge cases and tune it for performance. Currently it is unused.

IMPORTANT: I have temporarily included three methods from MonochromeBitmapSource at the end of BinaryBitmap as a way to make this change in stages. They are deprecated and will be removed soon. All of the Reader classes will need to change the way they examine 1 bit pixels to use the new getBlackRow() and getBlackMatrix() calls.

git-svn-id: https://zxing.googlecode.com/svn/trunk@993 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-06-26 17:49:45 +00:00
dswitkin e19e9a83f6 I moved a chunk of the histogram/black point code out of BaseMonochromeBitmapSource and into BlackPointEstimator which makes a lot more sense. Unfortunately I had to expose three new methods and touch a bunch of files. But I did manage to reuse an array on subsequent calls, which was being allocated on every row scanned, so that might be a bit faster. It will also be easier to convert this code to JNI in the future if we want to, and/or do more advanced thresholding.
git-svn-id: https://zxing.googlecode.com/svn/trunk@945 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-05-21 19:56:25 +00:00
srowen ad30e12985 Workaround for NPE on some Nokias from webblaz...
git-svn-id: https://zxing.googlecode.com/svn/trunk@916 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-04-23 07:01:00 +00:00
srowen 64686b9fb1 Slightly smarter version of last change
git-svn-id: https://zxing.googlecode.com/svn/trunk@891 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-03-12 21:10:53 +00:00
srowen 85507c3b5d Try to do a better job of understanding if the phone supports video capture, and what formats, to provide better errors when it won't work
git-svn-id: https://zxing.googlecode.com/svn/trunk@889 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-03-11 21:43:04 +00:00
dswitkin d9498fdc4e Removed getWidth() and getHeight() which I added by mistake. They are already present on the base class.
git-svn-id: https://zxing.googlecode.com/svn/trunk@876 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-03-06 19:06:06 +00:00
dswitkin c1bc060065 Changed the order of the BaseMonochromeBitmapSource constructor arguments to be width, height to match the rest of the codebase, and added two apparently missing methods to the J2ME subclass, although I can't test it.
git-svn-id: https://zxing.googlecode.com/svn/trunk@874 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-03-06 16:52:35 +00:00
srowen f2a9165b7c Refactored width/height values into superclass and enabled construction of RGBMonochromeBitmapSource from a Bitmap
git-svn-id: https://zxing.googlecode.com/svn/trunk@846 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-02-09 21:25:45 +00:00
srowen 07db37e997 Issue 141 -- add flash control for JSR 234 phones
git-svn-id: https://zxing.googlecode.com/svn/trunk@839 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-02-03 10:15:23 +00:00
srowen 270edc5785 Commit Simon's changes for Issue 134
git-svn-id: https://zxing.googlecode.com/svn/trunk@838 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-02-01 11:44:56 +00:00
srowen d1cae5a9b2 Committed Simon's splash screen for Issue 130
git-svn-id: https://zxing.googlecode.com/svn/trunk@833 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-30 16:04:03 +00:00
srowen e7f4699037 Issue 131: reuse Alert objects
git-svn-id: https://zxing.googlecode.com/svn/trunk@829 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-20 23:41:10 +00:00
srowen 6a9910a9b2 Improve handling of MultimediaManager to make it a bit easier to make a 'basic' build
git-svn-id: https://zxing.googlecode.com/svn/trunk@822 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2009-01-10 14:05:37 +00:00
srowen 131cfe4c5c More reckless refactoring and code style tweaks -- mostly adding braces around conditional/loops, and using @Override
git-svn-id: https://zxing.googlecode.com/svn/trunk@784 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-12-11 23:34:49 +00:00
srowen b300a0a4b4 Reduce alert timeout in J2ME client to 5 seconds from forever
git-svn-id: https://zxing.googlecode.com/svn/trunk@760 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-11-25 21:14:55 +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
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 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
srowen 6f6da9a04c moved ProGuard optimization into Android build file since it's the only way to fully optimize the final build product (inlining of key methods). Also always dump proguard results.
git-svn-id: https://zxing.googlecode.com/svn/trunk@649 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-29 15:42:22 +00:00
srowen a1deb27f46 Going back to old approach of using JSR-234 directly, then compiling with different code to produce a non-JSR-234 version. This approach isn't working on some phones -- including JSR-234 phones.
git-svn-id: https://zxing.googlecode.com/svn/trunk@641 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-26 13:29:46 +00:00
srowen 96f6428eea Add column caching to MonochromeBitmapSources and use it to improve Data Matrix speed
git-svn-id: https://zxing.googlecode.com/svn/trunk@631 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-22 08:43:56 +00:00
srowen 09ce5db11d Workaround (I think) for bizarre array corruption problem on Sun WTK and some SE phones
git-svn-id: https://zxing.googlecode.com/svn/trunk@619 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-15 11:29:22 +00:00
srowen 6f8a5f49ca Added notes about how to comment out anything that might possibly lead to JSR-234 problems.
git-svn-id: https://zxing.googlecode.com/svn/trunk@597 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-10-04 10:11:19 +00:00
srowen 9e65557e47 Another light hack attempt to work around Issue 70
git-svn-id: https://zxing.googlecode.com/svn/trunk@541 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-07-31 19:21:34 +00:00
srowen 3ab723c0c4 ISSUE 70: Catch NoClassDefFoundError too
git-svn-id: https://zxing.googlecode.com/svn/trunk@540 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-07-31 14:24:13 +00:00
srowen 11e60cd6e5 Small thread-safety correctness fix which may not matter in J2ME: "done" field should be volatile so that changes from other threads are definitely seen.
git-svn-id: https://zxing.googlecode.com/svn/trunk@511 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-07-10 19:59:46 +00:00
srowen 45ba99787e Try looking up multimedia controls under alternate names to potentially improve interoperability
git-svn-id: https://zxing.googlecode.com/svn/trunk@500 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-07-07 16:19:04 +00:00
srowen aa65741586 More refactoring of parsed results / result parsers; added basic vCard support
git-svn-id: https://zxing.googlecode.com/svn/trunk@487 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-27 17:50:47 +00:00
srowen 011e6e9cee Big refactoring of ParsedResult: now split into ResultParser and ParsedResult classes, per Christian's suggestion. This unifies the parsed results that are produced from various input, simplifying client handling of different types.
git-svn-id: https://zxing.googlecode.com/svn/trunk@482 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-26 19:49:38 +00:00
srowen 7780ada5ad Implemented Paul's solution to the basic/regular build problem -- a sort of pseudo-reflection approach that works in J2ME. Now we have only a build target, not separate products for the basic version.
git-svn-id: https://zxing.googlecode.com/svn/trunk@481 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-26 15:35:39 +00:00
srowen f652a4b100 Remove level="9" here (oops) and add a dump target for debugging
git-svn-id: https://zxing.googlecode.com/svn/trunk@480 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-25 19:40:13 +00:00
srowen e0db8f9271 Standardize and update all copyright statements to name "ZXing authors" as suggested by open-source team to correctly attribute copyright in a project with contributions from several sources.
git-svn-id: https://zxing.googlecode.com/svn/trunk@455 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-19 20:56:24 +00:00
srowen 6effdd4bd0 Renamed core OSGi bundle to "ZXing"; removed "level=" attribute on <jar> tasks since it singlehandly introduces a depence on Ant 1.7 and doesn't buy much. OS X for example does not ship with Ant 1.7 yet.
git-svn-id: https://zxing.googlecode.com/svn/trunk@437 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-18 17:40:14 +00:00
srowen 20df62a8af Made this more like RGBMonochromBitmapSource, caching a row instead of the whole image
git-svn-id: https://zxing.googlecode.com/svn/trunk@425 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-12 16:29:04 +00:00
srowen 31b8b3d226 Small tweaks on top of Daniel's excellent refactoring
git-svn-id: https://zxing.googlecode.com/svn/trunk@420 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-12 12:51:26 +00:00
dswitkin 9adb83bbd3 Refactored the MonochromeBitmapSource hierarchy to share a great deal of code and shrink the derived classes considerably.
git-svn-id: https://zxing.googlecode.com/svn/trunk@418 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-11 23:52:35 +00:00
srowen 3140b4abdb Add sharpening filter to this implementation too
git-svn-id: https://zxing.googlecode.com/svn/trunk@415 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-06-11 18:12:41 +00:00
srowen 3a5bed7681 SnapshotThread now Runnable instead of a Thread, to dodge an odd override problem with stop() method
git-svn-id: https://zxing.googlecode.com/svn/trunk@403 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-05-27 17:51:46 +00:00
srowen a73fc5919a Added SMSTO support, added subject/body param support in mailto:, improved handling of mailto: and tel: URIs
git-svn-id: https://zxing.googlecode.com/svn/trunk@402 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-05-23 22:40:13 +00:00
srowen 635d904283 Many more little tweaks from IntelliJ inspections
git-svn-id: https://zxing.googlecode.com/svn/trunk@382 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-05-02 19:18:14 +00:00
srowen 188c7fbecb Added preliminary support for MobileTag formats; not enabled yet.
Added "sms:" URI support.

git-svn-id: https://zxing.googlecode.com/svn/trunk@380 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-05-02 18:39:03 +00:00
dswitkin 0b7bface5b Made sure the BitmapSource subclasses do not reuse a BitArray which is too small.
git-svn-id: https://zxing.googlecode.com/svn/trunk@355 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-04-10 20:57:37 +00:00
srowen 93db610970 Made the RGB to luminance approximation/optimization a little faster -- one less shift
git-svn-id: https://zxing.googlecode.com/svn/trunk@327 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-31 19:04:38 +00:00
srowen 7de539a67c biasTowardsWhite was, embarassingly, not accomplishing anything mathematically. It proved to not have much value so has been removed, to simplify the code.
git-svn-id: https://zxing.googlecode.com/svn/trunk@313 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-26 14:42:33 +00:00
srowen c32827af04 More aggressive inlining, to inline some key methods like BitArray.get(), resulting in significant performance boost
git-svn-id: https://zxing.googlecode.com/svn/trunk@311 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-25 18:23:49 +00:00
srowen 7813847052 "Regular" version now attempts to set desired camera exposure settings
git-svn-id: https://zxing.googlecode.com/svn/trunk@310 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-25 17:03:15 +00:00
srowen b88df41dca More aggressive ProGuard optimization
git-svn-id: https://zxing.googlecode.com/svn/trunk@307 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-21 12:46:00 +00:00
srowen 14a9eb7d20 Fixed bug in rotation code for BufferedImageMonochromeBitmapSource; fixed "SKIP_N_BARCODES" behavior to ignore barcodes already found.
git-svn-id: https://zxing.googlecode.com/svn/trunk@297 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-19 17:09:27 +00:00
srowen cb4408f1f6 Removed unneeded 'keep' args to ProGuard
git-svn-id: https://zxing.googlecode.com/svn/trunk@295 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2008-03-18 17:06:21 +00:00