TODO ----------------------------------------------------------------- version 1.0.0: (planned TBD) FOCUS: remaining gaps, testing, documentation o decoder: Investigate using MMX to optimize inner loops o decoder: Investigate using threads to split up image processing o testing: Generate metrics in reproducible format to enable historical tracking o testing: Investigate option of embedding decoded text into PNG test image comments o testing: Tests should compare scanned results to embedded PNG comments o testing: 'make test' writes metrics file o testing: 'make test' confirms performance version 0.9.0: (planned TBD) FOCUS: multiple barcode scanning, structured append, FNC1, macros o Implement --auto-fast option using algorithm from spec (lighter & faster?) o Structured append reading and writing o (test suite) Implement exhaustive comparison between --auto-fast and --auto-best o Implement consistent and robust error handling (errno.h + custom) o Implement structured append symbols o Image quality metric o Clean up source file permissions (write script to detect outliers?) version 0.8.0: (planned TBD) FOCUS: region detection o Use calibration edge alignment to set precise locs for all edges o Replace DmtxDirection (e.g., DmtxDirUp) with index range 0-7 (?) o Rename outputIdx to outputLength? (Count pad codewords instead of pointer) o Rename math types to drop unnecessary numeral (DmtxVector2, DmtxRay2, etc...) o Inspect SDL image packing naming conventions (stride vs. pad, etc...) o Clean up API for use with external ROI finders o Is there a good way to know if dmtxRegionFindNext() timed out or finished file? o testing: Test error corrections with controled damage to images o library: Add .gitignore for generated files o library: Add explicit build targets for debug and release o library: Library should never call exit() or assert() x encoder: Fixed Data Mosaic encoding bug version 0.7.4: (02-Jun-2011) x library: Relicensed to use Simplified BSD with waiver option x library: Added new error codes and messages in dmtxencode.c x library: Added DmtxByteList struct and supporting functions x library: Changed file header with updated text x library: Fixed ECC bug for 144x144 case (thanks Huver!) x library: New Reed Solomon implementation x library: New repository structure: libdmtx, dmtx-utils, and dmtx-wrappers x testing: Added test in compare_generated.sh to create directory if needed x testing: Fix compare_generated.sh to prevent false negatives x encoder: Review CHK macro strategy x encoder: New encoding implementation x encoder: Added Base 256 "encode to end of symbol" single byte header x encoder: Check ProcessEndOfSymbolTriplet() for same problem fixed in Edifact x encoder: Clean up PushCTXValues() passFail handling x encoder: Fixed all encoding bugs reported by compare_generated.sh x encoder: Fixed encoding bug affecting certain end-of-symbol conditions x encoder: Replaced "twothirdsbits" encoder concept (major source of headaches) x encoder: Track intermediate states in "optimize best" to handle all possibilities x decoder: Use new Edifact decode function that doesn't assume full triplet version 0.7.2: (04-Sep-2009) x Added initial macro decoding support (thanks Marlon!) x Fast quad fill for dmtxDecodeMatrixRegion() (thanks Mackenzie!) x Fixed capacity bug with rectangle requests x Add libdmtx-X.X.X.zip as source package option x Add libdmtx-win32-X.X.X.zip as binary package option x Add "project" directory to EXTRA_DIST in Makefile.am version 0.7.0: (02-Mar-2009) x Fix 64b->32b int assignment warnings x FNC1 and correct upper shift (thanks Robin!) x Support byte-padded row sizes via dmtxImageSetProp() x Move image scaling factors to DmtxDecode x Add DmtxUndefined to replace "-1" for undefined fixes, offset, etc... x Update dmtxImageCreate() parameter options x Switch DmtxFlipNone represent top-down row order x Add dmtxEncodeSetProp() and dmtxEncodeGetProp() x Relocate scan cache from DmtxImage to DmtxDecode x Remove status from DmtxPixelLoc x Configurable pixel packing x Removed DmtxRgb, dmtxcolor.c, DmtxColor3, and DmtxGradient x DmtxTrue/DmtxFalse replaces DMTX_TRUE/DMTX_FALSE x DmtxPass/DmtxFail replaces DMTX_SUCCESS/DMTX_FAILURE x Change all major types to use Create() and Destroy() convention x Update documentation to reflect API changes x Add comment to wiki pages that points to source README x Figure out earliest usable Magick version for configure.ac x Add simple_test project to libdmtx.sln x Rename wiki page to "Windows (VisualC)" x Introduce "project" directory for non-autotools platforms x Rename "wrappers" directory to "wrapper" for consistency x Create a common tasks and release checklist document version 0.6.0: (23-Nov-2008) x Initial work preparing for custom pixel packing in future x Begin static analysis cleanup with splint x New --disable-dmtxread and --disable-dmtxwrite [Romain] x Ability to specify max/min expected barcode sizes x New edge neighbor tracking (Hough Transform + 2 way edge cache) x Info cache to track scan progress and avoid rescanning pixels x Scan multiple barcodes within an image x Significantly reduced memory footprint x Major reduction in floating point operations x Dedicated README.xxx instructions for specific platforms x Various improvements for cross platform builds version 0.5.2: (04-Sep-2008) x Move SetRangeLimit and SetScanRegion into library x Replace DMTXUTIL_SUCCESS/ERROR with DMTX_SUCCESS/FAILURE x Add edge threshold filtering x Add encoding support for 144x144 barcodes x Fixed encoding case when message starts with two digits x Fixed bug in range limit option x Add dynamic image shrinking (pixel skipping) x Add step-by-step diagnostic image dump (debug build) x Fixed bug in minimum scan gap setting x Removed y-flip from internal pixel storage x Added strict border tests to eliminate false positives x Added squareness deviation filter x Implement simplified Hough transform for locating first edge x Several behind-the-scenes performance enhancements x Various improvements when building for OS X and FreeBSD version 0.5.1: (01-Jul-2008) x Fixed Extended ASCII encoding bug x Fixed error correction bug related to multiple interleaved blocks x Added timeout condition for region detection x Allow partial and complete disabling of error correction x Replaced DmtxPixel struct with DmtxRgb for safe pixel copies x Tighter integration with libfec x (test suite) Started unit test executable for low level testing x Include local copies of getopt1.c getopt.c getopt.h x Various things to help compiling in MS VC++ x Added missing header comments version 0.5: (13-Apr-2008) x Rework encoding and decoding API for consistency and intuitiveness x Handle region detection and region decoding as separate tasks x Pass found regions back to calling app before attempting decode x Image mask approach (for performance and multi-barcode scans) x Remove "2" from functions named *MatrixRegion2*() (whoops) x Fix TestForEndOfSymbolEdifact() to handle special cases correctly x Roll scan pattern into core library (inward breadth-first cross) x Replace dmtxScanLine() with dmtxScanPixel() x Implement 4-direction weighted module decisions (eliminates thresholds) x Error correction using libfec (thanks Florian!) x Remove gltest and simpletest from default build target x Update Subversion to be keyword friendly ($Id$) x Updated documentation to reflect API and option changes x (test suite) Moved all public images to common directory with single copyright file version 0.4: (07-Dec-2008) x Remove arbitrary sz scaling (100.0) since it doesn't matter anyway x Fix 4 bottom-right modules in sizes where they are not used (thanks Matthias R.!) x Replace callback references with preprocessor macros x Implement remaining encodation schemes for encoding (X12, Base 256, etc...) x Implement remaining encodation schemes for decoding (X12, Base 256, etc...) x Implement --auto-best option for best possible encoding efficiency x Implement multi-region symbols x Read and write rectangle shaped barcodes x Use GNU autotools (autoconf, automake, libtool) x New region detection overhaul x Fix chcon error in Makefile (right answer might be to use autoconf) x (test suite) 'make test' executes regression tests for encodation x (test suite) Add marathon images to project (thanks John!) version 0.3: (15-Oct-2006) x Use preprocessor to pull code into one big file before compiling x Update Makefile to handle monolithic approach; add targets for test, util, tarball x Rename DmtxInfo struct and variables to DmtxDecode (for consistency with DmtxEncode) x Merge placement logic into single implementation for both encoding and decoding x Deploy codebase to SourceForge CVS x Add revision control keywords to source files x Implement remaining encodation schemes in dmtxdecode.c (X12, Base 256, etc...) x Create separate file for callback functions (allows them to be optional) x Move PNG (and other format) logic and dependencies to dmtxread, dmtxwrite, etc... x Fix the regressions (crash bugs) introduced during v0.2 structural rework x Add multi-page TIFF capabilities to dmtxread x Move pure decode calls from dmtxScanLine into a dmtxdecode.c function x Sample module color from more than one pixel location x Rename DmtxVector3 to DmtxColor3 and merge into dmtxcolor.c x Add package/build dependencies to INSTALL file x Build coding style test scripts x Replace current calibration size estimate with new approach x Size step size dynamically according to pixel size version 0.2: (11-Jun-2006) x Move dmtxCapturePixel routine to library code x Initial restructuring of code for architectural goodness x Improve API for real-world use (and not just dumping results to STDOUT) x Implement error detection x Create "simpletest.c" for full-circle processing x Use libpng(3) in library to read Data Matrix images x Slap together some basic documentation version 0.1: (22-Apr-2006) x Cycle texture images with right-click x Complete PlotPoint so it handles floating rows and columns x Implement right and left directions of FollowEdge x Call right and left edge following scans started from vertical step scans x Implement 2D vector and matrix functions x Trace lines with actual line object (2D ray) x Turn corners when encountering the end of a followed line x Build 2d transformation to wrap around region, assuming parallelogram x Display pane 4 with reverse-transformed image capture x Enhance dmtxCapturePixel to use "area averaging" instead of nearest neighbor x Figure out why squares are 3 pixels off (to start: draw white gl lines over follower paths) x Add callback function for PlotEventPoint(x, y, event_type) x Improve follower logic (weighted line fit) x dmtxGetPixel: do averaged interpolation followed by a tMin/tMid/tMax cutoff x Add in de-skew transformation x Refactor vector libraries to consistently list target parameter first x Calibrate based on calibration lines x Shrink-fit transformation around region Future Versions: ----------------------------------------------------------------- o Capture high-level design in documentation (data flow, module analogies) o Try bi-linear approximation (instead of linear) in follower edge detection o Implement fixed point math functions for use on mobile platforms o Add calibration functionality to remove spherical distortion Perhaps Never: ----------------------------------------------------------------- o Implement pre-ECC200 Data Matrix standards (big effort/low demand) Website: ----------------------------------------------------------------- o Explore using single background image instead of split o Add what we currently do, don't do, would like to do in the future o Add http://hosted-projects.com/trac/hudora/public/wiki/huBarcode to resources page
Generated by dwww version 1.15 on Sat May 18 13:51:29 CEST 2024.