References for Cameras as Computing Systems

Reference materials will be dynamically added here as the course progresses.

Basic Concepts & Practices Of Photography

Introduction to digital photography
A brief overview originally prepared for a free short course offered during Engineer's Day open house at the University of Kentucky's Department of Electrical & Computer Engineering
Cambridge in Colour
This is "a learning community for photographers" with some excellent tutorials including a variety of interactive displays and calculators
10 Top Photography Composition Rules
A very nice, simple, overview of what makes a good composition

Camera Internals

Stuff You Didn't Know About Lenses
Slides prepared by H. Dietz for this course as an overview of camera optics
(Here and here are interesting little discussions about another wave of optical glass content restrictions in Europe; this gives a nice overview of what glasses are available and what they do.)
In Search Of Sensors
Slides prepared by H. Dietz for this course as an overview of stuff on the way to the camera sensor
The Ghost In The Machine
Slides prepared by H. Dietz for this course as an overview of the computing facilities inside a camera
Focus
Slides prepared by H. Dietz for this course as an overview of focus issues (slides not yet final!)
The Canon PowerShot A4000 IS
This is a brief overview prepared by H. Dietz of the A4000 IS -- one of the two PowerShots we'll be using for some of the key experiments/assignments in this course
The Canon PowerShot ELPH 115 IS
This is a brief overview prepared by H. Dietz of the ELPH 115 IS -- one of the two PowerShots we'll be using for some of the key experiments/assignments in this course
The Canon PowerShot ELPH 160
This is a brief overview prepared by H. Dietz of the ELPH 160 -- another PowerShot that we have available for use with CHDK
CHDK -- the Canon Hack Development Kit
Software that allows running scripts and even arbitrary C code inside a Canon PowerShot. Many, but not all, models are supported. These cameras run an ARM processor in an embedded DOS environment.
FlashAir SD cards
For Fall 2016, we are trying something new: a programmable wifi SD card in each camera. You can read about them here.
Magic Lantern (ML)
Software that does much the same for specific Canon EOS/EOS-M cameras that CHDK does for PowerShots. Whereas CHDK is largely about scripting, ML is more about adding specific features with an emphasis on video capture.
Android camera framework
Software that provides a consistent programming interface for the basic camera controls under Android.
DCRaw
Dave Coffin's tool for decoding just about every raw image file format. This is the place that most tools get their raw decode logic from because even when manufacturers provide an SDK for processing their raw files, it usually is not provided in a form that can easily be integrated in a tool that handles raw images from many different camera models (yes, I'm talking about you, Canon).
Ting Chen's Course Project on Interpolation
This 1999 paper (via the wayback machine) is a course project titled A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras. It's a great overview of a variety of methods... and easier to read than the code in dcraw. A few similar references: University of Washington, ARL, Yale (stencils), West Virginia University, Duke (multi-frame superresolution demosaic), and a really nice interactive demo
Comparison of Demosaicing Algorithms
A nice little demo of what dcraw does....

Postprocessing & Analysis Tools

MTF Mapper
This is a neat little open source program to empirically measure MTFs without requiring carefully controlled testing circumstances.
ExifTool
This is a neat little open source program to read/write EXIF data from various image file formats, most notably including JFIF -- the format used for JPEG files.

Course Hardware Resources

We have set-up a Linux system with the full environment needed to rebuild CHDK from source (i.e., the cross compilers) on one of the systems in 108A Marksbury. Coal can be reached via:

ssh user@super.ece.engr.uky.edu -p 10085

Each student registered for the course will have an account named as per their email address (some of which include a "."), and there will be a pre-built ARM cross compiler in build-dir in your home directory.

Research Materials

Home page for Digital Imaging Technologies at Aggregate.Org
Various things that we've been doing with digital imaging


http://aggregate.org/CACS/ Cameras as Computing Systems