Video Filter Programming Filter
July 25, 2006 4:41 PM   Subscribe

Software gurus: Help me scope out a video programming job, involving firewire, HDR tonemapping, autofocus and more jargon...

We're working on a visual inspection system at work which will likely require custom software. The basic system involves a motorized lens, and a firewire camera. Each of these come with reasonably good control software. However, we would like to implement a couple of features which require communication between the two:
  1. One window for video display, camera controls, and lens controls.
  2. Auto brightness: have the software move the iris and/or change the framerate to maintain a set (but adjustable) level despite changes in lighting.
  3. Auto focus: the display window would have a reticle, in which the software would attempt to maximize contrast by changing focus
  4. live HDR tonemapping: The camera would bracket each frame with under and overexposed shots. The detail from each exposure would be combined in real time using a "tonemapping" operator. Ref.
  5. Image/Video capture: save a frame to bitmap, or record video to file using DV or other compression.
(We have some other things on our wishlist, like image annotation, and integration with a image/video library program like Picassa, but lets ignore those for now).

The lens has simple .Net and C++ APIs. The camera conforms to the DCAM (IIDC) standard, for which there are a number of third party SDKs. Finally there are a few libraries for doing HDR tonemapping (though none seem to be intended for live video).

My question (finally) is, how much work are we looking at here? It looks like all the pieces are out there, so integration can't be too difficult. But I've never done any video programming, so what do I know. How would you rate the difficulty (read months to implement) of each of the above features? Is there any reason why they couldn't be accomplished using the above libraries? What else will I need to learn (directshow, quicktime) to get the job done? If I decided to outsource the work, who might I contact for a quote?

(thanks in advance for helping an overambitious developer)
posted by Popular Ethics to Computers & Internet (1 answer total)
 
"It looks like all the pieces are out there, so integration can't be too difficult. But I've never done any video programming, so what do I know. How would you rate the difficulty (read months to implement) of each of the above features?"

Ok, so figure out how long to implement each piece (and as there are exiting APIs and libraries, it's probably matter of learning enough of those to do what you want). Now figure out how to tie this all together; you probably want an existing windowing and thread library, possibly with a message passing framework built in. wxWidgets is one example, there are plenty of others. (Qt, whatever MS is calling MFC this week, etc.) You'll probably want to do this in C++ (or possibly Java). I'd avoid .Net, but plenty of people will disagree with me.

Crack open the GOF book, you'll probably find yourself making use of the GOF Adapter Pattern, Bridge Pattern, and Facade Pattern a lot. Remember to abstract early and prototype rapidly. Have fun. If you decide to outsource the work, you'll be spending a good deal of money; consider outsourcing only the parts that you don't understand. This may or may not include the overall architecture and design.
posted by orthogonality at 6:51 PM on July 25, 2006


« Older Is there a term for cross-over cosplay outfits?   |   Action! Newer »
This thread is closed to new comments.