Camera BoF Session Notes November 17, 2010 Jussi Rautio, Neusoft, convener Alison Chaiken, Nokia Mobility solutions, note-taker Michael Yao, Intel UMG Christian Gaugeraud, Techworks Marine Antti Klemetti, Nokia MeeGo Imaging Jing Wang, Intel OTC Cormac Brick, Movidius Justin Armstrong, Aspex Semiconductor Zheng Huan, Intel OTC Halley Zhao, Intel OTC Felipe Crochik, CSS LLC Toni Nikkanen, Teleca Germany Edward Herve, Collabora Gstreamer maintainer There are 3 image streams per camera on MeeGo: a video stream, a video preview stream and a still stream. Switching between them is slow because doing so requires a HW resolution reset. By comparison, the gstreamer pipeline switch is fast. The Fcam/Frankencamera project at Stanford garnered a lot of positive publicity for the N900. The N900 has more open firmware than other platforms. FCam allowed full control of the camera sensor in software and moved the image processing into software for greater flexibility. Fcam was Nokia-funded and its future is uncertain. Fcam most notably allowed acquistion of high-dynamic range images by acquiring multiple exposures with different shutter opening interval on one button press. Acquisition of HDR images is naturally slow and requires a tripod. The DCraw and uFRaw plugins of GIMP permit easy manipulation of HDR images. The CheeseCam that's included with PulseAudio is a resource hog. Going forward, MeeGo will use camerabin for embedded cameras instead. Rob Clark of TI has already submitted a patch. libjpeg, libpng and gstreamer are all part of MeeGo Core. vlfeat open source libraries allow more general image processing like Google Goggles although Google Goggles obviously has a massive backend as well. libQuill is a Nokia-contributed image post-processing library for MeeGo. Each image has an XML-formatted history file that allows easy reversion. In the future, an implementation of standard XML to describe features like horizon position and occurrence of faces would be useful. The resulting data could be stored in XMP metadata, which is extensible, as opposed to EXIF, which is prescribed. Tile-segmentation of images allows memory consumption to be limited to the portion which is displayed on-screen. libQuill has a plugin architecture will allows easy extension. QImages have 4 channels, 3 for RGB and one "alpha" that controls transparency. Use of OpenCV is under consideration. A new libQuill mailing list has been started by Jussi. The face tracking he has contributed uses a standard algorithm and is a candidate for inclusion in Qt Mobility.