Commit graph

110 commits

Author SHA1 Message Date
evansepdx@gmail.com a3f11f293c Decent speed improvement for HybridBinarizer::calculateBlackPoints(). The
approach is to stop testing for min/max values once the dynamic range
condition is satisfied.

On "typical" images, the function is about 20% faster.  Worst-case images
(low contrast images) can be slower but they are less likely to be read
successfully.

This change makes no change to test results, only performance.



git-svn-id: https://zxing.googlecode.com/svn/trunk@2174 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2012-02-10 01:43:47 +00:00
smparkes@smparkes.net f3f5720a8e Syntax error in C++ builds under DEBUG. Closes issue 1105.
From evansepdx. I thought I fixed this a long time ago. Thanks!

git-svn-id: https://zxing.googlecode.com/svn/trunk@2087 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-12-13 22:34:53 +00:00
smparkes@smparkes.net d7a9a8b96a added unit tests for C++ BitArray::reverse(). Closes issue 1104
From evansepdx. Thanks!

git-svn-id: https://zxing.googlecode.com/svn/trunk@2086 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-12-13 20:58:25 +00:00
smparkes@smparkes.net a569f179ff improve profiled performance of C++ BitArray::get(). Closes issue 1101
From evansepdx. Thanks!

git-svn-id: https://zxing.googlecode.com/svn/trunk@2083 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-12-12 22:54:51 +00:00
smparkes@smparkes.net 1cd49dbcb1 Update C++ code from Java implementation, binarizer and ReedSolomon. Closes issue 1099.
git-svn-id: https://zxing.googlecode.com/svn/trunk@2082 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-12-12 22:38:50 +00:00
smparkes@smparkes.net fefe0a466f Fixes from evansepdx for FormatInformationTest.cpp. Closes issue 1066.
git-svn-id: https://zxing.googlecode.com/svn/trunk@2060 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-30 15:47:36 +00:00
smparkes@smparkes.net 1a53f4f875 Fix a few issues in test raised by the stricter gcc flags. Closes issue 1085.
- Some of the cpp tests still fail to compile, but that's covered in issue 1066.
- I tweaked the SConscript to be a little happier with OS X and cppunit and imagemagick
in /opt/local.  These should be benign on other systems but let me know if they aren't
and I'll back tweak them or back them out.

git-svn-id: https://zxing.googlecode.com/svn/trunk@2057 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-30 00:47:33 +00:00
smparkes@smparkes.net 06ac4a110d Turn on more conservative warnings in C++ and a few related cleanups.
Not quite gcc -pedantic clean: there are some variable-length auto arrays that aren't
standard C++. I don't want to touch those at this point.

git-svn-id: https://zxing.googlecode.com/svn/trunk@2056 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-29 19:58:18 +00:00
smparkes@smparkes.net 5e3fdcb31e fix signed/unsigned diff from java from the last patch
git-svn-id: https://zxing.googlecode.com/svn/trunk@2055 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-29 19:18:53 +00:00
smparkes@smparkes.net 46cd54ab64 A few portability fixes and one stupid string error (mine). Closes Issue 1082.
- remove some uses of floating min/max fns: use the same integer code as java
- Generalize counted pointers to compare against pointers instead of just integer 0
- Careless string error I added when porting some java code

git-svn-id: https://zxing.googlecode.com/svn/trunk@2054 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-29 18:50:25 +00:00
smparkes@smparkes.net 699e7a14f5 Make NFE a subclass of RE to match java. Closes Issue 1055
git-svn-id: https://zxing.googlecode.com/svn/trunk@2023 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-10 16:57:13 +00:00
smparkes@smparkes.net 80a76cb952 standard header and indenting only
git-svn-id: https://zxing.googlecode.com/svn/trunk@2022 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-11-10 16:57:04 +00:00
smparkes@smparkes.net 90f7e7b865 Correctly set rotated points values. Closes Issue 1041.
The rotate code was setting the rotated points in a copy of the vector of points, rather than
in the vector owned by the result. Use a reference instead of a copy so changes persist.

git-svn-id: https://zxing.googlecode.com/svn/trunk@1995 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-28 18:31:35 +00:00
luizcroc@gmail.com 41daacd233 Issue 1022: updating cpp port and making DataMatrixReader almost as good as java
git-svn-id: https://zxing.googlecode.com/svn/trunk@1992 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-28 11:24:50 +00:00
smparkes@smparkes.net 709f7f060a Port multi reader from Java. Closes Issue 1027.
I tweaked things a little, small formatting (to help me diff) and
made some of the protection levels match the Java code. Nothing
semantic.

Great work. Thanks!

git-svn-id: https://zxing.googlecode.com/svn/trunk@1986 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-20 19:11:33 +00:00
smparkes@smparkes.net c6f8ef2272 add default base to quiet llvm-gcc warning
git-svn-id: https://zxing.googlecode.com/svn/trunk@1982 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-19 14:26:01 +00:00
smparkes@smparkes.net b910002170 make line endings consistent
git-svn-id: https://zxing.googlecode.com/svn/trunk@1981 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-19 14:25:51 +00:00
smparkes@smparkes.net 31cb655de2 minor C++ optimizations
This is mostly just inlining a couple of getter/setter pairs that are in the tightest loops.
The only semantic change is making the retain() and release() methods of the reference counted
objects non-virtual, which allows them to be inlined.

See also http://groups.google.com/group/zxing/browse_thread/thread/6ea93730a7093199

git-svn-id: https://zxing.googlecode.com/svn/trunk@1974 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-15 00:58:10 +00:00
smparkes@smparkes.net 70190f7805 Tweak blackpoints estimates for internal black blocks. Closes Issue 1012.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1973 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-15 00:31:07 +00:00
smparkes@smparkes.net 69988df528 C++ changes that match r1969
git-svn-id: https://zxing.googlecode.com/svn/trunk@1972 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-14 13:03:03 +00:00
smparkes@smparkes.net 2c787d8440 Port r1623 changes to C++
This provide C++ support for Hanzi from issue 582. With it the C++
qrcode blackbox test results again match the Java results.

The changes are mostly a re-port of various pieces of the Java code
for supporting modes and bit stream parsing in QR codes. It expands
the modes/parsing including ECI and FNC, refactors StringUtils as was
done in Java, and makes DecoderResult include the fields that the Java
code has.

Although the non-qrcode blackbox tests don't all match the Java code
(a known issue) the entire blackbox suite was run under valgrind and
has no errors, including invalid memory references and leaks.

This commit also includes a few cleanups for things like files that
had mixed line endings, i.e., a combination of LF and CR-LF.

git-svn-id: https://zxing.googlecode.com/svn/trunk@1966 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-13 15:21:13 +00:00
smparkes@smparkes.net 492d773f59 formatting cleanup before trying to make the last failing C++ qr blackbox test pass
git-svn-id: https://zxing.googlecode.com/svn/trunk@1965 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-13 15:20:47 +00:00
smparkes@smparkes.net beeef242b2 formatting cleanup before trying to make the last failing C++ qr blackbox test pass
git-svn-id: https://zxing.googlecode.com/svn/trunk@1964 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-13 15:20:25 +00:00
smparkes@smparkes.net 9558d83d71 port relevant parts of r1937 to C++
git-svn-id: https://zxing.googlecode.com/svn/trunk@1962 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-12 18:11:40 +00:00
smparkes@smparkes.net ccf08aabe8 port r1921 java changes to C++
git-svn-id: https://zxing.googlecode.com/svn/trunk@1961 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-12 17:41:05 +00:00
smparkes@smparkes.net c7e2f62050 port r1899 java changes to C++
git-svn-id: https://zxing.googlecode.com/svn/trunk@1960 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-12 17:02:48 +00:00
smparkes@smparkes.net b72031d6e8 port r1875 to C++
git-svn-id: https://zxing.googlecode.com/svn/trunk@1959 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-12 16:41:57 +00:00
smparkes@smparkes.net e1457f76a7 remove some dead code
git-svn-id: https://zxing.googlecode.com/svn/trunk@1956 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-10-11 19:39:56 +00:00
smparkes@smparkes.net 7829686a8a avoid a -Wall warning (and remind myself how to override CXX)
git-svn-id: https://zxing.googlecode.com/svn/trunk@1902 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-09-02 21:40:29 +00:00
srowen 7daf9dc760 Issue 920 add ITF length 18, make C++ consistent with Java here
git-svn-id: https://zxing.googlecode.com/svn/trunk@1862 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-07-23 14:09:14 +00:00
srowen de125e2ddc Issue 911 update Code 128 from Java to fix some issues
git-svn-id: https://zxing.googlecode.com/svn/trunk@1858 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-07-14 18:32:23 +00:00
smparkes@smparkes.net 776e9b6a06 C++ changes to parallel r1837
git-svn-id: https://zxing.googlecode.com/svn/trunk@1840 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-06-28 16:06:13 +00:00
smparkes@smparkes.net 395cdb0f24 formatting only
git-svn-id: https://zxing.googlecode.com/svn/trunk@1839 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-06-28 16:02:20 +00:00
smparkes@smparkes.net 0d4ae9fef6 Port Java qr detector changes
re-port
Detector::sizeOfBlackWhiteBlackRunBothWays
and
Detector::sizeOfBlackWhiteBlackRun
to reflect changes from r1820 and earlier.

git-svn-id: https://zxing.googlecode.com/svn/trunk@1838 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-06-28 15:59:45 +00:00
smparkes@smparkes.net f17a43df81 use correct vector size after possible erases
git-svn-id: https://zxing.googlecode.com/svn/trunk@1817 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-06-09 20:00:14 +00:00
smparkes@smparkes.net d65d3e0d4b Issue 820 second format info was read incorrectly
Semantically, this is just C++ version of the changes from Java. I also did
some minor renaming of variables to match the current Java source to aide
in keeping the two trees in sync.


git-svn-id: https://zxing.googlecode.com/svn/trunk@1754 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-04-29 18:01:46 +00:00
rpechayr 7b4f5b86ef [cpp] Removed a const qualifier that was generating a warning with clang
git-svn-id: https://zxing.googlecode.com/svn/trunk@1730 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2011-03-29 11:40:25 +00:00
rpechayr 3e00ecd283 [cpp] Minor Changes. Changed static members initialization into enum to make the code build with clang, and probably visual c++, removed some dead code detected by clang static analyzer
git-svn-id: https://zxing.googlecode.com/svn/trunk@1689 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-12-22 17:31:16 +00:00
smparkes@smparkes.net d98d2af1ab Issue 524
git-svn-id: https://zxing.googlecode.com/svn/trunk@1570 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-31 03:18:56 +00:00
flyashi 84b6b3d57b C++: fix dormat BitArray quiet zone checking bug that was causing rampant false positives
also make zxing test app decode call a little cleaner.


git-svn-id: https://zxing.googlecode.com/svn/trunk@1566 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-26 14:46:31 +00:00
dswitkin@google.com 0f431db54d Removed dynamic allocation of new int[2] when searching for
guard patterns to improve performance.


git-svn-id: https://zxing.googlecode.com/svn/trunk@1563 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-25 20:51:14 +00:00
dswitkin@google.com 886b70e167 Minor formatting cleanup.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1562 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-25 19:03:32 +00:00
dswitkin@google.com aca11201ed Converted tabs to spaces.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1561 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-25 18:39:14 +00:00
dswitkin@google.com 3d9063dd17 Removed an extra memcpy and made getMatrix() pure virtual.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1556 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-24 18:59:26 +00:00
flyashi ca1cf153d6 GreyscaleRotatedLuminanceSource: implemented getMatrix()
BitMatrix: implemented getRow


git-svn-id: https://zxing.googlecode.com/svn/trunk@1551 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-20 20:24:20 +00:00
dswitkin@google.com f9bc448926 Fixed a bug I introduced while removing exceptions, which caused the
x coordinate of 1D barcodes to always be flipped, as if they had been
read upside down.


git-svn-id: https://zxing.googlecode.com/svn/trunk@1547 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-18 18:31:49 +00:00
smparkes@smparkes.net 3f8639c67e Issue 520
git-svn-id: https://zxing.googlecode.com/svn/trunk@1545 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-17 20:12:10 +00:00
smparkes@smparkes.net a251967f55 Issue 519
git-svn-id: https://zxing.googlecode.com/svn/trunk@1543 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-17 16:19:57 +00:00
dswitkin@google.com 56e9cef5b3 Fixed the double delete problem remaining in issue 503.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1536 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-16 15:34:00 +00:00
dswitkin@google.com e68b2951f4 Removed as many exceptions as possible from the C++ product readers
to improve performance. There is no change in the number of images
which pass the unit tests.


git-svn-id: https://zxing.googlecode.com/svn/trunk@1535 59b500cc-1b3d-0410-9834-0bbf25fbcc57
2010-08-16 15:17:39 +00:00