Analysis of CCD used in ES-1000
As I searched CCD information on WWW, I was able to find
a page of data
sheets of CCD area sensors on the WWW server of Sony America.
Among various CCDs shown here,
is 1/3 inch large and has 270K pixels which matches with the catalogue
spec of ES-1000/DC-20. So I wrote a decoder
expecting that this CCD is used in ES-1000/DC-20. As it worked
properly, I assume here that ICX054AK is the CCD used.
I would sincerely welcome objections to this assumption if you
will name the alternative CCD :-).
Summary of Specs
Detailed specs are in
the data sheet
in PDF format.
- Optical size: 1/3 inch
- Chip size: 6.0mm(H) x 4.96mm(V)
- Unit cell size: 9.6micron(H) x 7.5micron(V)
- Number of effective pixels: 510(H) x 492(V) (approx. 250K)
- Number of total pixels: 537(H) x 505(V) (approx. 270K)
- Ye, Cy, Mg, G complementary color mosaic filter
Physically, this CCD consists of the color filter array of Ye
(yellow), Cy (cyan), Mg (magenta), and G (green). They are aligned as
But we can't obtain data of each pixel separately; actual output data
is calculated by adding two adjacent lines vertically as shown left.
We can represent this output in RGB as shown left by substituting Ye =
R + G, Cy = G + B, and Mg = R + B.
This format looks rather complicated; the point is that we can obtain
2R+3G+2B (which can be used as luminosity) by adding any two
horizontally adjacent signals.
How to decode this output
After trials and errors, I found that following principles should be
Based on these principles, cmttoppm
decodes CCD data as follows (a sample data is attached in which
signal 1 is 2R+G+B, signal 2 is 2G+B, and signal 3 is R+2G):
- To obtain RGB value, three of the four CCD signals (i.e., 2G+B,
2R+G+B, R+G+2B, and R+2G) are needed.
- Each pixel has only one signal; other two signals should be
approximated from signals on pixels up, down, left, and right.
- Transition of colours between adjacent pixels is continuous.
- Luminosity, which can be obtained relatively correctly, is
fixed first; colours are calculated based on it it.
Critics and improvements to this method is welcome.
- CCD data itself is used as signal 1.
- Calculate signal 2 by horizontal interpolation.
- Use average of signal 2 of the pixel left and that of pixel
right as the initial value of signal 2 of this pixel.
- Use average of signal1 / signal 2 of the pixel left and that
of pixel right as signal 1 / signal 2 of this pixel, and derive signal
2 of this pixel from that value. This operation is repeated several times.
- Calculate signal 3 by vertical interpolation.
- Use average of signal3 / luminosity of the pixel up and that
of pixel down as signal 3 / luminosity of this pixel, and derive
signal 3 of this pixel from that value.
- Generate R, G, and B from signal 1, 2, and 3.
- Perform several postprocessing operations including Gamma correction.
Please send questions and comments about this page to