[sane-devel] Current TODO list

Karl Heinz Kremer khk@khk.net
Sun, 27 Jul 2003 17:59:09 -0400

On Sunday, July 27, 2003, at 07:54 AM, Henning Meier-Geinitz wrote:

> Hi,
> On Sun, Jul 27, 2003 at 07:43:40AM -0400, Karl Heinz Kremer wrote:
>> Once we store the image data, there are (at least) two options: For
>> image formats that support embedded ICC profiles (TIFF and PNG) it is
>> not necessary to do any color correction: The image gets stored as it
>> was read from the scanner. In addition to the raw image data, the ICC
>> profile gets also stored in the image file. This way, there is no
>> loss in image quality, and an application that is ICC aware can then
>> apply the source profile (scanner profile) and e.g.  another display
>> profile or an output profile (printer) to perform the necessary
>> color correction. Every time a profile is applied, the image quality
>> suffers a bit, so it's a good idea to limit the number of profile
>> transformations.
> Ok, but e.g. with Xsane viewer mode the program doesn't know which file
> type is used before the user actually saves the file.

For this mode you would also use the two profiles (scanner and monitor) 
convert the raw data to color corrected data for the viewer.

> And I think the color correction should be done in hardware if the
> backend/scanner supports that. So the user has to decide if he wants
> to apply the color correction immediately (instead of saving the ICC
> data with the image data) before actually doing the scan. That's
> because the frontend must set the gamma tables before the scan.

In order to profile scanner, you would pick one gamma setting, create 
profile and then restore the same setting everytime you are going to use
this profile. A scanner profile is only valid for one set of scanner 

Scanning based on a profile is probably not something the average user
would do, it's a very advanced concept. Therefore it does not have to
be fool proof.

Using the gamma table to perform color corrections is not always a good
idea: Some scanners use only 8-bit gamma tables, even though they
scan with 12, 14 or 16 bit per channel. ICC profiles can deal with 16
bit data, and therefore will create less error.

Karl Heinz