Since I took over Kuuvik Capture last year, one of my top priorities is to provide the fastest, highest performance tool possible. While the original company arrangement did not allow for costly, time consuming optimizations required to reach the speed I wanted, now I can spend all my spare time on it. And the results are stunning. Just think the brutal improvements version 2 brought to the table…
These days I’m doing some groundwork that will make exciting new features possible in Kuuvik Capture (and also serve as a base for upcoming products). And improving performance along the way.
No more Windows leftover
Originally Kuuvik Capture was designed to be able to run on both OS X and Windows, and we used a bunch of readily available software components (Canon’s own SDK and libraw for example), which turned out to be a bag of ugly worms. I had spent several long days on wrapping those components to make them usable and reliable.
This “wrapper” was able to run on both operating systems. On top of this, the operating system specific “engine” connected the “wrapper” to the user interface and provided services to the “wrapper” (such as proper asynchronous camera communication – something that Windows completely lacks).
With version 2 I had already replaced these problematic components with my own code, but parts of the “wrapper” and the “engine” were still present. Since we decided to drop any and all Windows plans, there was no need for them – my Digital Camera Library and the user interface could talk directly. So I started to gradually remove them, which task is finished by now.
During the removal I had not just eliminated several thousand lines of code, but since there’s less machinery involved, camera communication became faster and consumes less battery. Image download from the 5DS R is 1% faster compared to version 2.4, and overall communication is up to 5% faster compared to 2.0 (measured on my mid-2012 15″ Retina MacBook Pro). This seems a small number, but think about it this way: you can take 1-5% more shots on a charge.
Even faster RAW decoding
I’m using a lossless jpeg decoder based on dcraw‘s routines to open the RAW files. This had one drawback: dcraw was not designed to be able to work on multiple images simultaneously – something I need for my future plans. Not to mention that I also had to work around this limitation in Kuuvik Capture.
Fortunately I found and fixed the issue, and my decoder not just works parallel on multiple processor cores, but also crunching numbers faster. I measured 5-6% faster file opens (with 50 megapixel files on my MacBook Pro).
These improvements will be available in Kuuvik Capture 2.5 later this fall.