Tuesday 28 January 2014

So what actually happened from Perfecapture V2.000 to V2.107?

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!

No comments:

Post a Comment