kopia lustrzana https://gitlab.com/sane-project/website
137 wiersze
6.6 KiB
HTML
137 wiersze
6.6 KiB
HTML
<!-- received="Thu Jul 29 06:36:59 1999 PDT" -->
|
||
<!-- sent="Thu, 29 Jul 1999 15:54:09 +0200" -->
|
||
<!-- name="Ewald R. de Wit" -->
|
||
<!-- email="ewald@pobox.com" -->
|
||
<!-- subject="Re: SANE & exposure times" -->
|
||
<!-- id="" -->
|
||
<!-- inreplyto="37A01395.30ED38F2@gemse.fr" -->
|
||
<title>sane-devel: Re: SANE & exposure times</title>
|
||
<h1>Re: SANE & 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 15:54:09 +0200</i>
|
||
<p>
|
||
<ul>
|
||
<li> <b>Messages sorted by:</b> <a href="date.html#213">[ date ]</a><a href="index.html#213">[ thread ]</a><a href="subject.html#213">[ subject ]</a><a href="author.html#213">[ author ]</a>
|
||
<!-- next="start" -->
|
||
<li> <b>Next message:</b> <a href="0214.html">Ewald R. de Wit: "Re: SANE & exposure times"</a>
|
||
<li> <b>Previous message:</b> <a href="0212.html">Andreas Rick: "Re: SANE & exposure times"</a>
|
||
<li> <b>In reply to:</b> <a href="0210.html">Andreas Rick: "Re: SANE & exposure times"</a>
|
||
<!-- nextthread="start" -->
|
||
<li> <b>Next in thread:</b> <a href="0216.html">Nick Lamb: "Re: SANE & exposure times"</a>
|
||
<li> <b>Next in thread:</b> <a href="0211.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
||
<!-- reply="end" -->
|
||
</ul>
|
||
<!-- body="start" -->
|
||
Andreas Rick (<a href="mailto:rickand@gemse.fr">rickand@gemse.fr</a>) wrote:<br>
|
||
<i>> When you say "make sense out of the RGB values" do you mean:</i><br>
|
||
<i>> "get some calibrated interpretation of the RGB values"?</i><br>
|
||
<p>
|
||
What I mean is simply that if you scan say a negative, and the R:G:B<br>
|
||
exposure times are say 1:2:3 (blue gets exposed 3x more as red, etc),<br>
|
||
then I would like to know this exact ratio of R:G:B so you can know<br>
|
||
how red the original red was, etc.<br>
|
||
<p>
|
||
<i>> > That is, the frontend should</i><br>
|
||
<i>> > check these options and if they are present then it should divide the</i><br>
|
||
<i>> > RGB values by their corresponding exposure time.</i><br>
|
||
<i>> </i><br>
|
||
<i>> This will require to transmit the data in a format that is linear</i><br>
|
||
<i>> with exposure which requires 16 bit data to be transfered to the</i><br>
|
||
<i>> frontend and also that the LUT is applied in the frontend.</i><br>
|
||
<p>
|
||
Yep. I don't believe in doing gamma LUT in the scanner anyway.. the<br>
|
||
frontend can do a much better, realtime, wysiwyg job of it.<br>
|
||
<br>
|
||
<i>> If they were absolut we could do scanning with an absolut reference</i><br>
|
||
<i>> like optical density (=log(attenuation)). That could be nice too.</i><br>
|
||
<i>> This will make professional quality scans possible where the result</i><br>
|
||
<i>> is really as much scanner independent as possible within the limits</i><br>
|
||
<i>> of the scanners capabilities.</i><br>
|
||
<br>
|
||
Yes, that is another good point. I would like to see a <br>
|
||
SANE_NAME_OPTICAL_DENSITY_RANGE option so that the frontend can<br>
|
||
calculate the scandata back to film density. I think the one OD range<br>
|
||
option is sufficient for doing that (no need for separate RGB ranges,<br>
|
||
is there?)<br>
|
||
<p>
|
||
<i>> > So where should we put it, in the frontend or up the backend?</i><br>
|
||
<p>
|
||
<i>> I will probably do a test to implement this in the Coolscan backend,</i><br>
|
||
<i>> but this doesn't exclude the frontend developpers to include</i><br>
|
||
<i>> a better version (the two approaches are not exclusive).</i><br>
|
||
<p>
|
||
Yes, we can explore both ways.<br>
|
||
<p>
|
||
<p>
|
||
[next article]<br>
|
||
<i>> I don't have the LS-2000 so I don't know whether the</i><br>
|
||
<i>> multiple scanning is done by moving the scanner head</i><br>
|
||
<i>> multiple times over the image or wether the head does</i><br>
|
||
<i>> only one cycle but each line is scanned multiple times.</i><br>
|
||
<p>
|
||
The LS2000 does multisampling without moving the scan head.<br>
|
||
<br>
|
||
<i>> While I am trying to implement this functionality</i><br>
|
||
<i>> into the SANE-backend I had some doubts if this feature</i><br>
|
||
<i>> should not rather be implemented in the frontends.</i><br>
|
||
<i>> They have everything in their power to do so.</i><br>
|
||
<p>
|
||
If it's done in the frontend we're gonna need to document the protocol<br>
|
||
to do this in SANE.<br>
|
||
<p>
|
||
<i>> If I want to do it in the backend I have to store the</i><br>
|
||
<i>> whole image (up to 70MB on the LS-30).</i><br>
|
||
<p>
|
||
As a quick solution you can write it to a file and keep adding new<br>
|
||
scans to it, and export only the final result. <br>
|
||
<p>
|
||
<i>> The exposure related idea is: multi-exposure scanning.</i><br>
|
||
<i>> Instead of scanning all the images of a multi-scanning</i><br>
|
||
<i>> process with the same exposure level we might want to</i><br>
|
||
<i>> scan one image with the exposure calculated by the scanner,</i><br>
|
||
<i>> one with the double and one with 4-times the exposure.</i><br>
|
||
<i>> We then fusion the images by choosing the 3rd scan for</i><br>
|
||
<i>> all pixel values where the detector was not saturated during the</i><br>
|
||
<i>> third scan (ususally 25% of the dynamic range) the second</i><br>
|
||
<i>> image for the remaining pixels where the second image was not</i><br>
|
||
<i>> satturated and the first for the rest.</i><br>
|
||
<i>> Of course we have to scale the values to the same exposure</i><br>
|
||
<i>> level before the fusion (->divide by exposure).</i><br>
|
||
<p>
|
||
I think that is brilliant idea!<br>
|
||
<p>
|
||
<i>> The advantage of this method is to add two bits of resolution</i><br>
|
||
<i>> (or reduce the noise by a factor of sqrt(4)=2) with only 2/3 scans.</i><br>
|
||
<p>
|
||
The scanner noise stays the same, but your signal increases 4x, so<br>
|
||
your SNR improves by a hefty 4x. Or put differently, you add log10(4) = <br>
|
||
0.6 to your OD range. An OD of 3.6!!! oh baby<br>
|
||
<p>
|
||
I wish a had this Nikon but I only have a HP Photosmart which has<br>
|
||
horrible positioning accuracy and only goes to 2x exposure for<br>
|
||
slides..<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="0214.html">Ewald R. de Wit: "Re: SANE & exposure times"</a>
|
||
<li> <b>Previous message:</b> <a href="0212.html">Andreas Rick: "Re: SANE & exposure times"</a>
|
||
<li> <b>In reply to:</b> <a href="0210.html">Andreas Rick: "Re: SANE & exposure times"</a>
|
||
<!-- nextthread="start" -->
|
||
<li> <b>Next in thread:</b> <a href="0216.html">Nick Lamb: "Re: SANE & exposure times"</a>
|
||
<li> <b>Next in thread:</b> <a href="0211.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
||
<!-- reply="end" -->
|
||
</ul>
|