NOTE: "Exciting" scans below! ;o)
There are some strange effects. NS seems to load the profiles up when
initiated, so changing profile requires NS to be closed and restarted.
Yes, you'd think that, wouldn't you, but it doesn't seem to be quite as
straight forward. ;-)
I noticed! Nikon seem to follow the: "Why simple when it can be
complicated" rule. ;o)
I tried removing the profiles from the directory and then replacing them
to see their effect on NS. With all of the profiles for the detected
scanner removed, NS crashes - which I mentioned the other day. However,
with either nkls4000ls40_p.icm *or* nkls4000ls40_k.icm loaded, it will
happily scan as a positive or as KC! In other words, the *_k file does
not even seem to be needed to scan KC, as long as the *_p file is there,
and the *_p file is not needed to scan positive if the *_k file is
present.
Huh? That's pretty weird! It seems to suggest there is more to both
TWAIN and possibly (?) firmware. I really wish I had the time to
finish disassembling the TWAIN and see what actually does it do with
the KC mode on. I started all this, a few months ago, but wading
through disassembled C code is sheer torture as C builds temporary
storage on stack and then calls several layers of subroutines.
I did, however, find a way to increase exposure and hex-edited my
version of NS4 to increase exposure in all channels to +16 (just an
arbitrary number). Curiously, and slightly to my surprise, NS4 has no
problem with this (!) and the exposure sliders increase (are lopsided)
to reflect the +16 (instead of +2) exposure range!! So, at least in
this respect, NS4 has been programmed properly i.e. the exposure is
not hardcoded in NS4 but read from TWAIN.
(!) However, for the purpose of all these tests I'm using the original
TWAIN to eliminate that as a possible problem.
*_n files are required for negatives - colour and monochrome, whilst the
*_r files seem to be linear profiles, probably for use with NCM off. But
I have no idea what the file without any underscore postscript is used
for - my scanner seemed to work fine without it when I briefly checked.
I haven't tried all the profile permutations with NS (I really
should...) because I have been focusing on getting the curves out
first. But there are some odd things going on.
Well, this seems to be the difference between the way that 4-series
scanners are treated from 5-series. The 4-series don't seem to have an
associated MN file, which has the Tone Reproduction Curves for the
5-series scanners. The TRCs seem to be "built in" to the profiles for
the 4-series, which is why they are significantly different.
I see. I suppose - in theory - they probably did that to be more
flexible? I see 9000 also has an MN profile.
Are you sure about that? NS is just an applet that accesses TWAIN. If
I remove the profiles for my scanner from the directory they are in then
neither NS nor TWAIN function - and I still run W98.
Yes, and I just repeated everything. This is the context: I have two
removable disks in my notebook: C with W98, and D with W2K (I can plug
both of them in simultaneously, but that's beside the point).
W98 has NS3 and no LS50* profiles anywhere. W2K has NS*4* and LS50
profiles.
On the W2K I renamed all LS50* profiles to xLS50*, turned on the
scanner and ran NS4. It hung for a very long time and then just exited
without any error or message of any sort (it should've really
complained about missing profiles).
Next, I rebooted into W98 and ran my program using the "custom" TWAIN
with boosted exposure which lives in the same directory as my program.
It scanned without any problems.
NS likes to "hide" things all over the place so just to be sure I did
a global search for LS50* profiles on the W98 machine and couldn't
find them anywhere i.e. the TWAIN used by my program is "flying solo".
So, it seems, TWAIN has *some* support (like the KC mode) built-in and
doesn't actually use profiles. That's probably why you can scan when
you remove the K profile but leave the P profile in (and vice versa).
Probably because you are running without NCM enabled and scanning raw -
no profile is actually being applied.
But TWAIN must be getting the KC curves from somewhere because I can
still select between KC and P in my program. It's a functionality
built into the TWAIN itself (we know that because there are TWAIN
calls to set the KC mode and it doesn't use profiles).
Which is puzzling because if the KC mode is built into TWAIN then why
duplicate it with an explicit K profile!? The same goes for negatives?
It appears NS itself "does things" in addition to TWAIN and thereby
bypassing duplicate (?) TWAIN functions!?
Does it do anything at all, though?
Yes! The KC scan in my program is clearly different from Positive (see
below for examples). So, clearly KC mode in TWAIN does something. But
this "something" is different from KC mode in NS4 which appears to do
things "on top of" TWAIN KC mode.
Now, my program doesn't use profiles while NS4 does. Therefore the
difference appears to be that NS4 applies the KC mode + scanner
profile, while my program only uses the KC mode function of TWAIN.
That's why I wanted to extract all those profile curves to confirm all
this by applying them selectively to scans from my program. But then I
ran into another problem, in that these curves seem to behave
differently in PS than they do in NS. That's, probably, because - as
you write above (!) - things are not that straight forward...
Eh? I thought you were complaining that KC was scanning too blue, not
too red!
Actually, it's both! When I use NS4 I get the "too blue" in the
highlights as usual, but then in addition I also get "too red" even in
dark midtones (let alone shadows)!? Here's what I mean:
The context: Both NS4 and my program use the same settings except NS4
does the following as well:
- AE (I set the exposure manually)
- profiles (I don't use them and apparently neither does TWAIN)
All images were cropped and saved in PS6, working profile: sRGB.
First the NS4 scans. Settings: Factory default monitor profile,
using sRGB color space:
http://members.aol.com/tempdon100164833/ns4/NS4_K_sRGB.jpg
http://members.aol.com/tempdon100164833/ns4/NS4_P_sRGB.jpg
and then "just-for-fun" using 'scanner profile' i.e. no profile:
http://members.aol.com/tempdon100164833/ns4/NS4_K_scanner.jpg
http://members.aol.com/tempdon100164833/ns4/NS4_P_scanner.jpg
Next, my scans. Manual exposure set to +2.0 AG which is roughly
equivalent to NS4 auto exposure for the slide:
http://members.aol.com/tempdon100164833/ns4/Don_K_2.0AG.jpg
http://members.aol.com/tempdon100164833/ns4/Don_P_2.0AG.jpg
Now, compare NS4_K_sRGB.jpg and Don_K_2.0AG.jpg which are equivalent.
Specifically, the shadow part of the wall on the right.
In the NS scan this shadow is quite bad with very pronounced *purple*
spots (and I'm not talking about grain!). BTW, that purple wall is
what tipped me over to write my own program. I just couldn't bring
myself to archive that.
Compare to my scan, which is nominally more blue, but the wall is much
"cleaner", much more "even". It's certainly easier to remove the blue
cast from my scan than it is to remove (albeit less pronounced) blue
*and* purple (!) casts from the NS scan.
Finally, even though the NS scan appears darker I don't think that's
the result of different exposure but due to NS4 setting the black
point and all sorts of other things as it applies the (scanner?)
profile. Well, that's my guess after examining the profiles... But you
know much more about this than I do.
The remaining scans are for reference.
What do you make of it all?
Don.