In short, a lot.
FlatPage, our page-curve
correction feature in PerfecaptureTM basically underwent a major overhaul
since being launched in Oct 2013. Now, it no longer requires the book gutter to
be aligned to a center line – gutter position and book skews are automatically
detected and you can place books (of page size A5 and smaller) anywhere on the
xcanpad so long as the camera is able to see the whole book. We figured that it
would be a big plus to let users flip pages without having to worry about
repeatedly aligning the gutter. Curve correction is now more precise for texts
printed near the gutter. Page Detection and Cropping reliability have improved
tremendously, and so has Finger Image Removal – now you will hardly need to use
the manual cropping or finger image removal features. Page Background Whitening
(shadow + bleed-through removal) is now more robust to deep shadows caused by
very curved pages. Refinement was done to post-scan text enhancements, and you
now get better dynamic range when scanning photographs.
On to the bugs. To tell the
truth, the first software released with FlatPage was quite buggy. In fact I was
responsible for one of them – while initially implementing book curve
correction, a split second memory loss left a variable corrupted and this was
used within the super-important perspective correction codes (yup, you can
imagine I went nuts when I got to know about it). So if you are the curious
type and still have the early V2.000 version of software, you can try tilting
the camera way up to gloss mode and place a photo or receipt skewed maximally
around 45 degrees (to create heavy perspective error). The scan should turn out
so distorted you might have been looking through the eyes of a drunk person.
If you happen to be a software
developer, you might empathize with us a little more. You would know certain
bugs don’t just show up in the labs, they reveal themselves during demos to
your customers or when your backs are turned. Here is an example: V2.000 had some
bugs which caused crashes (when you see “PerfeCapture has stopped working”,
that means it has crashed) and we worked hard to fix them. We put the software
through rigorous tests, scanned thousands of times on different PCs and
different versions of Windows OS-es, with hundreds of different combinations
and sequences. We were determined not to let another crash occur. By the time
V2.105 was released, we were pretty confident we had solved them all, but oh
boy we were wrong.
A few days later a user wrote
to us and said “The software crashes a
lot”. A lot? The only logical explanation was that he hadn’t updated
to V2.105, I informed him. “I just did. Still crashes a lot” was his reply.
What was going on? We had to delve deeper. The reports of any software crashes
ate at me and I was determined to get to the bottom of the problem. Examining
and re-examining our lab evaluation procedures, we finally narrowed down to one
possibility – we had limited evaluation PCs with USB 3.0 ports (marked with an
“SS” symbol). Although xcanex worked flawlessly on those USB 3.0 ports that we
had, their USB chipsets and drivers were all from Fresco Logic. We learned that
most new Windows 8 PCs were subsequently installed with Intel’s USB 3.0
eXtensible Host Controller. Believing this to be the cause, we procured a new
test PC and true enough, a crash occurred by the 5th scan! Logically, it should not have posed a
problem because USB 3.0 hosts are supposed
to be backward compatible with USB 2.0 devices. Nevertheless, we were finally
able to work around this and V2.107 should no longer crash with USB 3.0 ports
driven by the eXtensible Host Controller. This case was not strictly caused by
a bug in the codes but it does illustrate how much the team and I put in to
V2.107 and for that, try it you must!