On 4/8/07, Moose <olymoose@xxxxxxxxx> wrote:
> <a load of clever stuff>
A good explanation of the compression used in N*kon D70 ...
http://www.majid.info/mylos/weblog/2004/05/02-1.html
Extract:
The camera has a 12-bit analog to digital converter (ADC) that digitizes the
analog signal coming out of the Sony ICX413AQ CCD sensor. In theory a 12-bit
sensor should yield up to 212 = 4096 possible values, but the RAW conversion
reduces these 4096 values into 683 by applying a quantization curve. These
683 values are then encoded using a variable number of bits (1 to 10) with a
tree structure similar to the lossless Huffmann or Lempel-Ziv compression
schemes used by programs like ZIP.
The decoding curve is embedded in the NEF file (and could thus be changed by
a firmware upgrade without having to change NEF converters), I used a D70
NEF file made available <http://www.jirvana.com/raw_large/d70/> by Uwe
Steinmuller of Digital Outback Photo <http://www.outbackphoto.com/>.
The quantization discards information by converting 12 bits' worth of data
into into log2(683) = 9.4 bits' worth of resolution. The dynamic range is
unchanged. This is a fairly common technique - digital telephony encodes 12
bits' worth of dynamic range in 8 bits using the so-called A-law and mu-law
codecs. I modified the program to output the data for the decoding
curve<http://www.majid.info/mylos/weblog/2004/05/curve.csv>(Excel-compatible
CSV format), and plotted
the curve <http://www.majid.info/mylos/weblog/2004/05/curve.pdf> (PDF) using
linear and log-log scales, along with a quadratic regression fit (courtesy
of R <http://www.r-project.org/>). The curve resembles a gamma correction
curve, linear for values up to 215, then quadratic.
==============================================
List usage info: http://www.zuikoholic.com
List nannies: olympusadmin@xxxxxxxxxx
==============================================
|