[sane-devel] ICC support for SANE

m. allan noah kitno455 at gmail.com
Wed May 13 13:09:44 UTC 2009


On Wed, May 13, 2009 at 4:35 AM, Kai-Uwe Behrmann <ku.b at gmx.de> wrote:
> replying to digest
>
> Date: Mon, 11 May 2009 09:40:43 -0400
> From: "m. allan noah" <kitno455 at gmail.com>
>
>> On your blog posts, I think your list of how to get device
>> identification is good except for a few points-
>
>> 3. there is a version number exposed by the backend, but only as a
>> param of sane_init()
>>
>> 4. You should not make assumptions about which driver options might
>> change the output of the machine. Brightness/contrast/gamma are
>> common, but others might include exposure, or black level, or even
>> some sort of dynamic algo done by the scanner itself.
>>
>> 5. you might also want to adjust your work-flow drawing to show the
>> SANE backend between the scanner and the SANE API.
>
> How can we see what the backend does? I mean it is quite essential regarding
> colour apeparance to know, with which settings a scanner runs, e.g. gamma,
> gain ...  Is this exposed in the Sane API?

This information is not exposed by API. It could be added to the caps
flags on each option, but there are lots of un- or under- maintained
backends that would need updating. It would also require a new version
of the API, but that is under discussion already.

> As initial interesst for Sane related colour management is very old, I got
> some first steps from here, some the following notions might be already
> know.
>
> Anyway, let me elaborate:
> when one calibrates and profiles a scanner, hopefully good settings are used
> and the colour related part should be extracted and remembered somewhere.
> Ideally these setting are stored later in the final ICC device profile. A
> hardware driver knows possibly best which settings are colour related and
> which not. Therefore I plan to add a backend type to Oyranos, which links to
> a device driver, e.g. the Sane API, and serialises the colour related device
> settings ideally to a list of key/value text pairs. The Oyranos device
> backend of Yiannis will then recieve a Sane context from the frontend
> application and extract all colour related informations.

I would recommend that the front-end send the context to Oyranos prior
to the scan, because:
1. there may be some backend that resets params after the scan.
2. a batch scan would generally use the same params for all pages, so
no need to resend.

> The resulting
> information from the Sane scanner can then be stored in the Oyranos device
> profile DB and embedded into a ICC profile on request. [1]
> What this approach would be in need of, is some means to obtain colour
> relevance from a backend. Can all colour relevant settings be marked and
> transported to the front end? Would this be an extension or already
> available in Sane?
> The calibration part is done by a application, like for monitors and often
> or printers. This can be automatic or manual. After this phase the device is
> ready for measuring. The settings, used during the calibration, must be
> stored or at least not altered. It is always a good idea to have control
> over that settings, as a change of them will change any later output and
> invalidate the ICC profile. The calibration can be imagined like a reference
> for the ICC profile. [2]
>
> The test scan, typical of a colour patches chart, will then show the result
> of that colours scanned under these calibration.
> The obtained picture can then be feed to a profiling application, like
> ArgyllCMS or Lprof in the open source world. It will extract the resulting
> colours as device colours and create a ICC profile, which is able to correct
> these colours to a reference colour space.
>
> Applications using following combination of:
> * a defined or, regarding colour, similiar behaving device
> * a defined driver (backend?) settings and
> * a related ICC profile
> can then reach much more agreement about colours for the same scanned
> picture with different devices. Ideally the tint of the device will
> disappear after that process. The application part is already implemented in
> XSane. [3]
>
> Now related to Oyranos, the idea is to move that
>  device, driver, ICC profile combination out of a single application to a
> shared library, to offer every application using colour devices the same
> comfort of obtaining ICC colour management support from the Oyranos library.
> This includes a GUI to set profiles to each device and other options. The
> GUI part is called kolor-manager, a KDE system settings panel, which is
> currently part of the KDE playground [4].
>
>> There has been some discussion of making a modified version of the
>> SANE API, perhaps if you can outline the benefits of ICC support, you
>> might get some buy-in to adjust it to your needs...
>
>
> Date: Mon, 11 May 2009 16:22:53 +0200
> From: Julien BLACHE <jb at jblache.org>
>
>> To put it in a nutshell: uniquely identifying a scanner, don't count
>> on it. If it was doable, we would have done so loooooong ago already.
>
> What a pitty.
>
>> Fact is, USB scanners reporting a serial number at the USB level are
>> the exception. And as Allan wrote already, even otherwise, not a lot
>> of machines expose a serial number. Manufacturers just don't care,
>> except on high-end machines.
>
> Then these machines will probably see less troubles during colour critical
> work.
>
>
> kind regards
> Kai-Uwe Behrmann
> --
> developing for colour management
> www.behrmann.name + www.oyranos.org
>
> [1] http://www.oyranos.org/wiki/index.php?title=Device_Settings#Driver
> [2] http://www.oyranos.org/wiki/index.php?title=Device_Settings#Profiling
> [3] http://www.oyranos.org/wiki/index.php?title=Device_Settings#Scenario
> [4] http://www.oyranos.org/wiki/index.php?title=Kolor-manager
>
> --
> sane-devel mailing list: sane-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/sane-devel
> Unsubscribe: Send mail with subject "unsubscribe your_password"
>            to sane-devel-request at lists.alioth.debian.org
>


allan
-- 
"The truth is an offense, but not a sin"



More information about the sane-devel mailing list