sane-project-website/old-archive/1999-07/0217.html

99 wiersze
4.4 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- received="Thu Jul 29 10:51:08 1999 PDT" -->
<!-- sent="Thu, 29 Jul 1999 20:08:33 +0200" -->
<!-- name="Ewald R. de Wit" -->
<!-- email="ewald@pobox.com" -->
<!-- subject="Re: SANE &amp; exposure times" -->
<!-- id="" -->
<!-- inreplyto="Pine.LNX.4.10.9907291705330.10012-100000@chef.ecs.soton.ac.uk" -->
<title>sane-devel: Re: SANE &amp; exposure times</title>
<h1>Re: SANE &amp; exposure times</h1>
<b>Ewald R. de Wit</b> (<a href="mailto:ewald@pobox.com"><i>ewald@pobox.com</i></a>)<br>
<i>Thu, 29 Jul 1999 20:08:33 +0200</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#217">[ date ]</a><a href="index.html#217">[ thread ]</a><a href="subject.html#217">[ subject ]</a><a href="author.html#217">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0218.html">Nick Lamb: "Re: SANE &amp; exposure times"</a>
<li> <b>Previous message:</b> <a href="0216.html">Nick Lamb: "Re: SANE &amp; exposure times"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>
<!-- body="start" -->
Nick Lamb (<a href="mailto:njl98r@ecs.soton.ac.uk">njl98r@ecs.soton.ac.uk</a>) wrote:<br>
<i>&gt; There is a third option which won't have me (or anyone else) crying out</i><br>
<i>&gt; for the lost precision from messing about with my data in the backend,</i><br>
<i>&gt; while avoiding having to put the same code in every frontend...</i><br>
<p>
Like, how many frontends are there? It is easy to implement and if<br>
it's not implemented then flatbed users won't miss a thing.<br>
<p>
<i>&gt; You can write "proxy" backends in SANE, like sane-net, which look like</i><br>
<i>&gt; both a front-end and a back-end. This means that Coolscan need only</i><br>
<i>&gt; know how to do standard SANE stuff (+ Exposures or whatever exported</i><br>
<i>&gt; as a SANE well-known-option) and the frontend need know nothing about</i><br>
<i>&gt; negatives, but the proxy will do any mangling for you.</i><br>
<p>
My frontend *wants* to know about negatives. It wants to know the exact<br>
film density and do stuff with it. I don't need no stinking proxy<br>
mangling my pure raw scandata before it enters my precious enhance routines!<br>
<br>
<i>&gt; This way users who want e.g. exciting multiple-scan mangling, or cool</i><br>
<i>&gt; exposure time compensation algorithms, can use them without everyone</i><br>
<i>&gt; having to put up with the overhead, delay, and/or loss of precision.</i><br>
<p>
The disadvantages you mention are only when it's implemented in the<br>
backend. The more I thought about it the more I felt that exposure time<br>
correction should be in the frontend. Anyway I've implemented it in my<br>
experimental frontend and it works great.<br>
<p>
What I would like to propose for filmscanners, is to export the <br>
SANE_NAME_SCAN_EXPOS_TIME_R<br>
SANE_NAME_SCAN_EXPOS_TIME_G<br>
SANE_NAME_SCAN_EXPOS_TIME_B<br>
<p>
or (exclusive or)<br>
<p>
SANE_NAME_SCAN_EXPOS_TIME<br>
<p>
as SANE_Fixed values, where a value of 1 denotes the normal exposure time,<br>
that is the exposure time where scanning air (no slide at all) will just<br>
saturate the corresponding RGB channel(s). So a SANE_NAME_SCAN_EXPOS_TIME_R<br>
of 0.5 would fill the red channel exactly half way, etc.<br>
<p>
<p>
Further, I like to put these lines in sane/saneopts.h:<br>
<p>
#define SANE_NAME_DENSITY_RANGE "optical-density-range"<br>
#define SANE_TITLE_DENSITY_RANGE "Optical density range"<br>
<p>
I like to have this option exported as a SANE_Fixed too.<br>
This is a value that's dependent on the make and model of the scanner.<br>
For example, most 10 bits scanners have a density range of about 3.0 .<br>
<p>
Note that increasing the exposure time will shift the density range<br>
but not change it. Say a 4x increased exposure will shift a OD range<br>
of 3.0 from 0.6 to 3.6. So by knowing both the normalized exposure<br>
time and the OD range, we now have access to the densitometrically<br>
correct film data. <br>
<p>
<pre>
--
-- Ewald
<p>
<p>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0218.html">Nick Lamb: "Re: SANE &amp; exposure times"</a>
<li> <b>Previous message:</b> <a href="0216.html">Nick Lamb: "Re: SANE &amp; exposure times"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>