23:01 | pozitron | joined the channel | |
23:03 | pozitrono | left the channel | |
23:24 | MartinS | left the channel | |
01:13 | davidak | left the channel | |
04:02 | troy_s | intracube: it was me. I said junk.
| |
04:02 | intracube | troy_s: yes :P
| |
04:02 | troy_s | I meant it
| |
04:04 | intracube | troy_s: would be interesting to work out how much colour accuracy is lost
| |
04:04 | intracube | not sure how that would be quantified though
| |
04:05 | intracube | troy_s: junk suggests no value at all
| |
04:06 | troy_s | intracube: it is junk. It is guessed.
| |
04:07 | troy_s | intracube: Nuke and the rest have had guesswork for reconstruction, some with _vastly_ complex algorithms and techniques.
| |
04:07 | troy_s | (You can see the SIGGRAPH papers from 2014)
| |
04:08 | troy_s | In my eyes it comes down to what the camera recorded, and in the case of missing channels, it didn't.
| |
04:09 | troy_s | No questions asked. You simply cannot know what was there nor implement anything into a pipeline.
| |
04:09 | intracube | well, some extended luminance data is recorded
| |
04:09 | troy_s | It just cannot, will not, ever work.
| |
04:09 | intracube | even if accurate colour can't be derived from it
| |
04:09 | troy_s | No it isn't!
| |
04:09 | troy_s | Three points in space. Let's say you get lucky and only are missing one. You have no damn clue where that point is.
| |
04:09 | troy_s | End.
| |
04:10 | troy_s | It isn't data.
| |
04:10 | troy_s | It _is_ one variant on a visual effect
| |
04:10 | troy_s | But again there, there are _very_ sophisticated approaches that can also yield solid results. Still, basing a pipeline around it is nothing short of foolhardy.
| |
04:10 | troy_s | So yes great for a post production visual effect pass. Absolutely worth a try.
| |
04:11 | intracube | troy_s: wasn't there two separate issues here?
| |
04:11 | intracube | one is the simple case where one channel clips out
| |
04:11 | troy_s | But as a "this is the image out of camera" not even remotely in the same time zone.
| |
04:11 | troy_s | It isn't one channel.
| |
04:11 | intracube | the other is some non-linearity in the top end of the sensor response
| |
04:11 | intracube | possibly different for each channel
| |
04:12 | troy_s | It is a critical piece of code missing.
| |
04:12 | intracube | ?
| |
04:13 | troy_s | There is certainly a contingent that will wax lyrical until they are blue in the face on some forums somewhere
| |
04:14 | troy_s | But I will say beyond certainty that the percentage of overlap with actual shooters trying to finish projects are about 5%, and if that 5%, 0.05% attempting a project with any degree of complexity in the post pipe.
| |
04:14 | troy_s | Ask irieger - he is a TD on a small budget post pipe
| |
04:15 | intracube | troy_s: probably best I sit at the back and just listen for now :)
| |
04:16 | troy_s | intracube: Rubbish.
| |
04:16 | troy_s | intracube: You know more about colour than many.
| |
04:19 | troy_s | intracube: Which reminds me... You were supposed to shoot and produce a short.
| |
04:19 | troy_s | intracube: Also, wow... DJV is a lovely piece of work. Helluva impressed. Lovely code too.
| |
04:21 | intracube | a short?
| |
04:21 | intracube | news to me
| |
04:23 | intracube | I haven't heard about DJV
| |
04:25 | intracube | looks interesting
| |
04:26 | intracube | going to head off to bed for a bit o/
| |
05:24 | jucar | joined the channel | |
05:46 | jucar | left the channel | |
06:15 | alexML | troy_s: this is not missing data, this sensor is not clipping harshly to white; rather, it's nonlinear and noisy data
| |
06:16 | alexML | there are no guessed colors in my example, just 2 calibration frames (a dark frame and a bright frame), 4 LUTs and row noise reduction
| |
06:17 | alexML | you are talking about something else - highlight recovery by guessing the clipped channels from nearby pixels (which is, indeed, guessing)
| |
06:18 | alexML | (btw, I tried to replicate this trick on 5D3 - no way, that sensor really clips harshly)
| |
06:29 | mot | left the channel | |
06:55 | cbohnens|away | changed nick to: cbohnens
| |
06:56 | se6astian|away | changed nick to: se6astian
| |
06:59 | niemand | joined the channel | |
07:04 | mot | joined the channel | |
07:12 | niemand | left the channel | |
09:43 | kgugala | changed nick to: kgugala|away
| |
10:03 | pozitron | left the channel | |
10:50 | Bertl_zZ | changed nick to: Bertl
| |
10:50 | Bertl | morning folks!
| |
10:51 | jucar | joined the channel | |
11:15 | jucar | left the channel | |
13:45 | troy_s | alexML: We had a similar issue with the Alpha with irregular data. It was a long path and after looking at the profiling output, it was clear that the (seductively looking) result was non-data and ended up just chopping it off.
| |
13:52 | Bertl | that might have changed since then though, as we now have different register settings drastically affecting FPN and ADC
| |
14:01 | troy_s | Bertl: Yep
| |
14:02 | troy_s | Bertl: I would speculate that it reeled the data range in, and left a thinner margin of whacky.
| |
14:02 | troy_s | I am looking forward to seeing irieger's early PWL tests.
| |
14:02 | troy_s | (When he gets to them)
| |
14:07 | alexML | troy_s: by irregular you mean the repeatability wasn't good, or some other issue?
| |
14:08 | troy_s | alexML: I will let Bertl explain there. It became clear after profiling that it was effectively noise and, as a result, non-data.
| |
14:09 | troy_s | alexML: Seductively looked otherwise, but the delta Es didn't lie.
| |
14:13 | alexML | for this IT8 sample, I get: Profile check complete, errors: max. = 18.134073, avg. = 3.452643, RMS = 4.05414
| |
14:16 | alexML | for the 20ms (correctly exposed) it8, I get Profile check complete, errors: max. = 22.797085, avg. = 3.219586, RMS = 3.991097
| |
14:18 | alexML | in both cases, max error is in D08 and L15
| |
14:19 | alexML | indeed, pure junk :P
| |
14:26 | troy_s | alexML: Where is the max error ;)
| |
14:26 | troy_s | You know you can spit out a DE per swatch right?
| |
14:26 | troy_s | Which is what you need to do.
| |
14:27 | troy_s | Remember that a delta E is an average across all of them in that case, so by suggesting that you are closer
| |
14:27 | troy_s | Is like suggesting that the vector between A and B more closely lines to C by moving A out to a greater outlier position.
| |
14:28 | troy_s | Aka: even the dE is junk in that case.
| |
14:28 | troy_s | ;)
| |
14:28 | troy_s | You have to analyse each swatch against the value and the dE.
| |
14:29 | se6astian | new article released: https://www.apertus.org/project-elmyra-looking-back-looking-forward-article-january-2016
| |
14:29 | troy_s | TL;DR of _course_ you can get a lower average dE by more greatly mangling a few swatches of data.
| |
14:33 | troy_s | alexML: See colverify, profcheck (with buried CIE values in profile), etc.
| |
14:35 | alexML | here you go: https://dl.dropboxusercontent.com/u/4124919/bleeding-edge/apertus/highlights/it8-argyll.log
| |
14:39 | troy_s | alexML: Need dE per swatch
| |
14:39 | troy_s | alexML: That last slew of data is what is important, and that will reveal all.
| |
14:41 | alexML | isn't it in profcheck output? (starting at lines 96 and 506)
| |
14:41 | troy_s | Ah got em.
| |
14:44 | troy_s | alexML: So that looks like the before chart yes?
| |
14:44 | alexML | not sure I understood your question
| |
14:44 | troy_s | (Which I might add, is very telling if you look at the dEs with regard to where the numbers are acceptable versus where they are not.)
| |
14:45 | troy_s | That is pre massage. The post massage has a ∆e of 21
| |
14:45 | troy_s | Peak
| |
14:46 | troy_s | The bulk of those readings look junk.
| |
14:46 | alexML | peak is 18 in the 80ms (overexposed and recovered) and 23 in the 20ms (exposed to the right, data not altered, just a dark frame)
| |
14:46 | troy_s | Very, very bad.
| |
14:46 | troy_s | For the majority. ∆e in the >4 range is ass nasty
| |
14:47 | troy_s | Let alone >10 and >15
| |
14:47 | troy_s | I will look closer when I am home, but those readings are godawful.
| |
14:48 | troy_s | alexML: Do me a favor and dump a log from an untouched chart with synthetic versus your best massaged.
| |
14:48 | troy_s | alexML: I will have a peek as soon as I get home.
| |
14:49 | alexML | the second half is from *untouched* chart!
| |
14:49 | alexML | the second half of the log
| |
14:50 | alexML | again, the 80ms one is overexposed and recovered by curves, the 20ms is exposed to the right and not touched in any way other than subtracting a dark frame
| |
14:52 | pozitrono | joined the channel | |
14:55 | troy_s | alexML: Ideally we have two full logs.
| |
14:55 | troy_s | alexML: One from the constant base, then the second from massaged.
| |
14:56 | troy_s | alexML: the log is in descending descending ∆e
| |
14:56 | troy_s | alexML: So the top half is the worst and it would be good to compare against the previous worst.
| |
14:57 | alexML | yes, my log has two parts (second part starts at line 411)
| |
14:57 | alexML | first part is overexposed and massaged, second is plain data without trickery
| |
14:58 | alexML | so there are actually two logs, I just placed them in one file
| |
14:59 | troy_s | alexML: OK thanks. Almost home.
| |
15:10 | arpu | left the channel | |
15:12 | arpu | joined the channel | |
15:12 | se6astian | gotta go
| |
15:13 | se6astian | changed nick to: se6astian|away
| |
15:23 | troy_s | alexML: Where is the 00W swatch?
| |
15:23 | troy_s | alexML: You added a synthetic black but no synthetic white.
| |
15:23 | alexML | I removed it a while ago, because it was ending up with max delta E
| |
15:24 | alexML | (I guess it was because the light wasn't exactly D50)
| |
15:25 | troy_s | It will end up with max delta E because the matrix doesn't fit.
| |
15:25 | troy_s | That's why.
| |
15:25 | pozitrono | left the channel | |
15:25 | troy_s | But you need it for scaling otherwise the whole range will be autoscaled and make a mess of things.
| |
15:25 | troy_s | Ugh.
| |
15:26 | troy_s | You have to remember, there's no homebrew massaging going on here; Argyll looks at the swatch values registered and the CIE determined absolutely accurate values it should read then calculates the differences.
| |
15:27 | troy_s | In the case of the white swatch, it is an absolute baseline reference which is good in this case both as an indicator as to how out of whack the results are but also to keep things perfectly scaled. That is, the black and white swatches will help to anchor the chart absolutely.
| |
15:30 | troy_s | Anyways, glancing at a comparison in spreadsheet format, it is very clear that the combination of the G + R filter primaries are way out of whack.
| |
15:31 | troy_s | Because the highest delta Es currently are on the mustard D08 swatch and the fully saturated L15 swatch, which at least hints that the most out of junk is the Red and Green photosites
| |
15:31 | troy_s | Which actually get _worse_ in the massaged data.
| |
15:31 | troy_s | So without looking at the data or knowing what you did
| |
15:31 | troy_s | my gut says that the arbitrary R channel and the arbitrary G channel were the most tweaked.
| |
15:31 | troy_s | That's just going by the data.
| |
15:32 | troy_s | Further, the delta Es diverge after the top two, which isn't great.
| |
15:33 | troy_s | But the values are roughly equally crappy on all fronts.
| |
15:35 | alexML | what exactly is worse in the massaged data? (L15 and D08 are better)
| |
15:35 | alexML | lower is better, right?
| |
15:35 | troy_s | alexML: Lower delta e is theoretically better in terms of a singular match but it doesn't tell the whole story.
| |
15:36 | troy_s | alexML: Because in this case we are taking a constellation of 3D points and trying to fit them to a constellation of other points.
| |
15:36 | troy_s | alexML: Where _all_ points are critical.
| |
15:36 | troy_s | alexML: So to draw an analogy, if we have three points that should fit in a line, where the first point is A, B, and C, we can of course cheat C to make A and B much better
| |
15:36 | troy_s | alexML: But that isn't the goal because in this case, C is equally important.
| |
15:37 | troy_s | So what worries me is how ghastly out of whack L15 is.
| |
15:37 | troy_s | No amount of fudging and tweaking will fix that.
| |
15:37 | troy_s | That's a really not super duper good value.
| |
15:37 | troy_s | On a rather critical swatch. It is possible that it is out of gamut and that the matrix is trying to align it of course.
| |
15:38 | troy_s | But my gut says something more funky at work.
| |
15:38 | troy_s | Because the yellow hints that the R + G aren't behaving terribly well.
| |
15:40 | troy_s | Also what is worrying is D08
| |
15:40 | troy_s | Not luminous yellowish.
| |
15:41 | troy_s | alexML: C08 then diverges on your chart, which, as hard as it is to believe, gets colossally more worse from nineish to twelveish (which is roughly like suggesting that going from the Titanic to the water is worse)
| |
15:42 | troy_s | Again, in orange. So perhaps hinting that the red has been mangled more badly.
| |
15:42 | troy_s | But again... not worth reading too much in. The results are pretty unfortunate (although vastly better than the Alpha it seems), and the tweaking isn't doing anything.
| |
15:42 | troy_s | (or rather, the massaging of data.)
| |
15:42 | alexML | C08 is better in the massaged data, btw
| |
15:42 | alexML | 9 is massaged
| |
15:43 | troy_s | Uh no.
| |
15:43 | troy_s | C08 goes from 9.35
| |
15:43 | troy_s | to 12.73
| |
15:43 | alexML | 9.35 is massaged
| |
15:43 | alexML | 12.73 is plain data
| |
15:43 | troy_s | No. 22.xx is the massaged.
| |
15:43 | troy_s | Right?
| |
15:43 | alexML | no
| |
15:43 | troy_s | Peak error 22?
| |
15:44 | alexML | that's not massaged
| |
15:44 | alexML | (already told you this 10 times)
| |
15:44 | troy_s | Anyways... don't mind.
| |
15:44 | troy_s | It all looks the same.
| |
15:44 | troy_s | Not worth bothering.
| |
15:44 | troy_s | Peaks that far out of whack just stinks of junk.
| |
15:45 | troy_s | So until we make a little progress on the exposure side and other tweaks, they are all equally junky.
| |
15:45 | alexML | which means - that thing you called junk isn't really worse than the unmassaged data
| |
15:45 | troy_s | No.
| |
15:45 | troy_s | It means it is fricking bad in the unprocessed.
| |
15:45 | troy_s | Again, _all_ the points matter
| |
15:45 | troy_s | And if you want to draw dickle lines between a dE of 18 versus a dE of 22 go nuts. I won't stop you.
| |
15:46 | troy_s | Remember that a dE of 1.0 is a JND (Just Noticeable Difference) to a standard observer
| |
15:46 | troy_s | Which means values that high are are just whack.
| |
15:47 | troy_s | So if we dump the outliers
| |
15:47 | troy_s | and look at say, only values below 6 (caveats above)
| |
15:48 | troy_s | Have a look at the curve between the two chrats.
| |
15:48 | troy_s | charts even
| |
15:48 | arpu | left the channel | |
15:48 | troy_s | Just a random value.. I yanked H11
| |
15:49 | troy_s | We go from an actual lower than JND of 1.0 in one chart 0.7
| |
15:49 | troy_s | to a nasty ass 2.99
| |
15:49 | troy_s | Now whatever chart is whatever
| |
15:49 | troy_s | in the case of the former, it is an actual useful value
| |
15:49 | troy_s | so if that is your chart, congrats, you massaged it into a really good range
| |
15:50 | troy_s | let me look at another
| |
15:51 | troy_s | So dEs below 2, between chart A and chart B differ by about 15 or so rows, or 15 swatches.
| |
15:53 | troy_s | 26 swatches deviate below 3.0
| |
15:54 | troy_s | The one, whatever it is, with the values that are closer in the lower range, would hint that it is tighter.
| |
15:56 | troy_s | 145 swatches above dE 3.0 on one chart, versus 119
| |
15:57 | troy_s | Enough evidence to say that at best case, we could say the one with the 119 values above 3.0 is better. But even then, it isn't exactly a super terrific result.
| |
15:57 | troy_s | We can weight those dEs.
| |
16:09 | troy_s | irieger: Any chance the tweak you have on the blue channel could be off?
| |
16:14 | troy_s | irieger: G13 (Cyan) - dE 1.27, G14 (Magenta) - dE 5.36, G15 (Yellow) - dE 2.05, G16 (Key) - dE 0.57, G17 (Red) - dE 0.63, G18 (Green) - dE 3.07, G19 (Blue) - dE 5.57
| |
16:14 | troy_s | irieger: Interestingly, that G row isn't heavily saturated.
| |
16:15 | troy_s | (Granted I am sort of looking at the data blind in reference to the exposure etc.)
| |
16:15 | troy_s | But I find that row rather fascinating.
| |
16:15 | troy_s | Almost as though the B photosite is giving bad values, which of course could be due to the whacky lighting used for the chart.
| |
16:16 | se6astian|away | changed nick to: se6astian
| |
16:43 | pozitrono | joined the channel | |
16:43 | pozitrono | left the channel | |
16:58 | Bertl | off for a nap ... bbl
| |
16:58 | Bertl | changed nick to: Bertl_zZ
| |
17:11 | jucar | joined the channel | |
17:41 | jucar | left the channel | |
18:04 | jucar | joined the channel | |
18:50 | davidak | joined the channel | |
18:54 | niemand | joined the channel | |
19:08 | irieger | troy_s: what do you mean by tweak on the blue channel?
| |
19:14 | troy_s | irieger: I mean look at those dEs on that middle ish row.
| |
19:15 | troy_s | irieger: We agree that CMYK on glossy, no matter whatever inks and papers should pretty much make the gamut issue almost moot (almost)
| |
19:15 | troy_s | irieger: Do you, in your educated position, think those two swatches hitting five plus are reasonable?
| |
19:15 | troy_s | irieger: I see Yellow and Blue being standout
| |
19:16 | troy_s | irieger: With red being almost perfect (so whatever band crosses that combination of inks/paper/gloss and the Apertus RGB sensels, has no problem there.
| |
19:16 | troy_s | irieger: Green? Little skewy, but not nearly as bad as the Blue.
| |
19:16 | troy_s | So it seems to be having problems fitting green and blue.
| |
19:17 | troy_s | I'd like to dismiss it as the nasty Kino or whatever, but that simply seems too radical a shift for that row.
| |
19:17 | troy_s | irieger: See my point?
| |
19:18 | irieger | haven't looked at that data, sorry. Haven't had time.
| |
19:20 | troy_s | irieger: Look at my line above.
| |
19:20 | troy_s | irieger: Just so we are clear, that's the G row, rolling through _roughly_ a saturated C (whatever ink / paper combo in the IT8 design, and whatever that target is designed to be of course), M, Y, K, R, G, B
| |
19:21 | troy_s | irieger: At "middleish" perceptual values I'm guessing.
| |
19:21 | troy_s | irieger: But look at the dE for each... two of those values are rather telling.
| |
19:21 | troy_s | Well three...
| |
19:21 | troy_s | 2.0 ish we ignore
| |
19:21 | troy_s | (just because it seems not quite as obvious and glaring as the other three)
| |
19:22 | troy_s | I see two 5.5 ish values.
| |
19:22 | troy_s | Magenta, and Blue.
| |
19:22 | troy_s | irieger: What is interesting is that the red is _nailed_
| |
19:22 | troy_s | So now look at Magenta.
| |
19:22 | troy_s | If we nailed the red, we can say that we can represent that red purely saturated, but the magenta is going somewhat nuts.
| |
19:23 | troy_s | Is that the blue's photosite contribution that is driving it to a not quite super fit?
| |
19:23 | troy_s | irieger: Make sense?
| |
19:32 | troy_s | (I suppose optionally we could say that the B setting is fine and that G and R are out of whack progressively more as well.)
| |
20:20 | alexML | troy_s: from my tests, I don't think any of the channels is better or worse than the others (their response is pretty much similar, the difference between them is minor)
| |
20:20 | alexML | I've got some graphs btw
| |
20:20 | alexML | https://dl.dropboxusercontent.com/u/4124919/bleeding-edge/apertus/color-calibration/it8-20ms-argyll-am.png
| |
20:20 | alexML | https://dl.dropboxusercontent.com/u/4124919/bleeding-edge/apertus/color-calibration/it8-20ms-my-matrix.png
| |
20:20 | alexML | do they make any sense?
| |
20:23 | niemand | left the channel | |
20:23 | troy_s | alexML: Out of curiosity, are both logs output with shapers?
| |
20:24 | troy_s | alexML: And what are you using to generate the xyY map? colourscience's python library?
| |
20:26 | alexML | -am is without shaper, but it doesn't make much difference - I'll show you why in a moment
| |
20:26 | alexML | I used octave, and took the data from here: CIE 1931 2-deg chromaticity coordinates from http://cvrl.ioo.ucl.ac.uk/
| |
20:27 | troy_s | alexML: Also, you should plot your resultant values versus Argyll's... it would probably help visualize what the two matrices are doing.
| |
20:27 | alexML | (I plotted this in python as well, but for matrix stuff I prefer octave)
| |
20:27 | troy_s | You should just use colour science's Python library. Thomas is very solid on those matters.
| |
20:27 | troy_s | Lessens the chances of mistakes.
| |
20:28 | troy_s | Has easy XYZ to xyY conversion, with plotting, and a crapload of other useful tidbits.
| |
20:28 | alexML | second image shows both matrices in xyY
| |
20:28 | troy_s | It doesn't show both swatch positions.
| |
20:28 | troy_s | It only shows two.
| |
20:28 | alexML | yeah, the graph is cluttered anyway, so you can see that by doing alt+tab between the two images
| |
20:29 | troy_s | Would be interesting to see how shapers influence the dE on the brown gold and yellow, as well as the blue ramp.
| |
20:30 | troy_s | alexML: The swatch positions would be interesting... the high DE ones.
| |
20:31 | troy_s | Hrm. Interestingly on the axis of the green primary (fictional obviously) argyll nails most values except for some of those golden ones
| |
20:32 | alexML | https://dl.dropboxusercontent.com/u/4124919/bleeding-edge/apertus/color-calibration/it8-residuals-20ms-argyll-am.png
| |
20:32 | alexML | these are the residuals - in camera raw space - after going from xyz back to cam (with the inverted matrix)
| |
20:32 | troy_s | I really think Blue is funked.
| |
20:32 | alexML | well, the graph shows recorded raw values vs raw values computed from ref xyz via inverted matrix
| |
20:33 | alexML | from this you can see clearly that (1) no channel is more funked than other, and (2) no shaper is going to change it
| |
20:33 | troy_s | alexML: What do the two axes represent?
| |
20:34 | alexML | X: inv(M) * XYZ_reference
| |
20:34 | alexML | Y: recorded raw values
| |
20:34 | alexML | RGGB mapped as R G cyan B
| |
20:34 | alexML | both are log2 graphs
| |
20:34 | troy_s | If the xyY map is correct, shaper will probably influence blue.
| |
20:35 | troy_s | Sort of a RMSE chart then?
| |
20:35 | alexML | yeah
| |
20:35 | troy_s | So no relation to saturation or empty wells.
| |
20:35 | alexML | this is on a well-exposed chart
| |
20:36 | alexML | no trickery on this one
| |
20:36 | alexML | I'm just trying to find out why the fitting is bad
| |
20:36 | alexML | on the unmangled data
| |
20:36 | troy_s | Well exactly.
| |
20:36 | niemand | joined the channel | |
20:36 | troy_s | The secret sauce is the dEs
| |
20:36 | troy_s | Let Argyll do its best work with a shaper and a matrix
| |
20:37 | troy_s | and see if the nonlinearity helps out the matrix
| |
20:37 | troy_s | Then examine the dEs based on swatch positions.
| |
20:37 | troy_s | I'm going to speculate that 80% on the sensor is the upper end before batty things start happening, so if there is an exposure in there, it might fit better.
| |
20:37 | troy_s | (80% linear)
| |
20:38 | alexML | thing is, the residuals are pretty much random, so a shaper would help very little
| |
20:38 | troy_s | But I find it quite interesting that the pure blue ramp on the IT8 and the magenta (granted it is an ink based magenta, not a light based one of course) are quite whacky relative to the other values.
| |
20:39 | troy_s | Perhaps if you trace where the dE starts to really skew, we can track down if it is spectral related (seems high, but to be honest I have no idea) from the illuminant.
| |
20:39 | troy_s | Shaper _will_ help the blue.
| |
20:39 | troy_s | Try it.
| |
20:39 | troy_s | I assure you that you will see much better dEs.
| |
20:39 | troy_s | Beyond all shadows of all doubt.
| |
20:40 | alexML | in the big logs I sent you back then, shapers were enabled
| |
20:40 | troy_s | Also, the key point being that _with_ a shaper you should be able to spot exactly where the matrix is collapsing, which should give some hint as to what ranges of colour and / or illumination are breaking down for us.
| |
20:40 | troy_s | Ok. So that double log comparison is _with_ shaper?
| |
20:40 | alexML | yes, with shaper
| |
20:40 | alexML | you have the full commands listed
| |
20:41 | troy_s | Doesn't look like it. Scanning log. Needless, that log is busted because there is only a synthetic black.
| |
20:41 | troy_s | Oh god.
| |
20:42 | troy_s | I'd also skip all the dcraw crap which is _notoriously_ godawful at handling colour data.
| |
20:43 | troy_s | Also adds code for error. Bertl's skip command is probably much more safe on the whole.
| |
20:44 | troy_s | Wow those values are really, really bad on the outside end.
| |
20:44 | troy_s | Egads.
| |
20:45 | alexML | cat test.raw12 | convert \( -size 4096x3072 -depth 12 gray:- \) \( -clone 0 -crop -1-1 \) \( -clone 0 -crop -1+0 \) \( -clone 0 -crop +0-1 \) -sample 2048x1536 \( -clone 2,3 -average \) -delete 2,3 -swap 0,1 +swap -combine test_color.png
| |
20:45 | alexML | this?
| |
20:45 | troy_s | Hrm if those are RGB values on the left
| |
20:45 | troy_s | that chart looks way underexposed unless I am drunk.
| |
20:46 | troy_s | alexML: Yeah that is the super simple skip pixel debayer.
| |
20:46 | alexML | log2(rgb values)
| |
20:46 | troy_s | Has the added advantage of not adding any data via debayer.
| |
20:46 | troy_s | linearized RGB
| |
20:46 | alexML | okay, but I need to find out how do I subtract a dark frame with that first
| |
20:47 | troy_s | I mean white is coming in at 0.36ish right?
| |
20:47 | troy_s | Seems like a really, really, really, really not super value.
| |
20:47 | alexML | where are you reading the 0.36?
| |
20:47 | troy_s | The logs.
| |
20:47 | troy_s | Argyll dumps the RGB input values so you can immediately check for clips and such.
| |
20:48 | troy_s | I see GS00 (the grey scale 00 position)
| |
20:48 | troy_s | with very low exposure from what I can see there.
| |
20:48 | troy_s | (typically most charts are shot underexposed badly for exposure as a general rule of thumb.)
| |
20:49 | troy_s | (obviously what many folks who expose 'typical' shoot the chart to slap middle grey in the middle, when what we are really wanting is the data to all land in the most linear region of the chart, which is easiest to peg if we plop the diffuse white about 80% up the well fill zone roughly.)
| |
20:49 | troy_s | (somewhere in there - Canons are something like 80% if memory serves)
| |
20:50 | alexML | not sure what units are those, but the second chart is really exposed to the right
| |
20:50 | alexML | the one at 25ms is already clipping
| |
20:51 | troy_s | Hrm. Need to check the output log for the output there but I seem to recall that one of the tools dumps RGB
| |
20:51 | troy_s | then the resultant XYZ
| |
20:51 | troy_s | (or xyY, etc.)
| |
20:51 | troy_s | In the TI3 it lists the various coloumns.
| |
20:51 | troy_s | Columns even.
| |
20:51 | troy_s | Have a look.
| |
20:52 | troy_s | Look at the actual values in the Argyll output, and specifically GS00
| |
20:52 | alexML | GS00 77.17000 80.83000 64.71000 35.29887 46.12273 31.28839 0.748409 0.756335 0.735617
| |
20:52 | troy_s | Easiest method to tell where the ideal exposure is.
| |
20:52 | troy_s | So that's pretty good.
| |
20:52 | troy_s | If those are linear RGB
| |
20:52 | troy_s | I _think_ that is RGB and XYZ if memory serves. What does the tag line say?
| |
20:52 | troy_s | (Format tag)
| |
20:53 | alexML | SAMPLE_ID XYZ_X XYZ_Y XYZ_Z RGB_R RGB_G RGB_B STDEV_R STDEV_G STDEV_B
| |
20:53 | troy_s | Hrm. So I had it backwards.
| |
20:53 | troy_s | So we can again say it is well under.
| |
20:53 | troy_s | ;)
| |
20:53 | alexML | what's the maximum value here?
| |
20:53 | troy_s | 35.2, 46.12, 31.28
| |
20:54 | troy_s | 100
| |
20:54 | troy_s | The XYZ would be pretty darn close to ideal if they were the RGB values if memory serves (which it has done less and less so of late.)
| |
20:54 | troy_s | 80% is probably not a bad assumption off the top.
| |
20:54 | alexML | let me fill an image with white to check
| |
20:54 | troy_s | Look at the darks in that TI3
| |
20:54 | troy_s | I'm betting they are _damn_ dark in the sensor wells yes?
| |
20:55 | troy_s | Which would account for why our matrix work has stunk up the house so badly.
| |
20:55 | troy_s | Heavily in the nonlinear region.
| |
21:00 | troy_s | alexML: You will love this library now that you are getting into colour. http://colour-science.org/
| |
21:00 | troy_s | It's really lovely. Also has modern calculations for dE etc.
| |
21:00 | troy_s | All sorts of really useful tools.
| |
21:02 | alexML | yes, the darks are dark, but the highlights are right below the "clipping point" (where it starts being highly nonlinear)
| |
21:03 | alexML | this is not exactly a sensor with high dynamic range
| |
21:03 | troy_s | Uh what?
| |
21:03 | alexML | this was a 20ms exposure, and the 25ms one has the whites clipped
| |
21:03 | troy_s | The sensor starts clipping at 0.5?
| |
21:03 | troy_s | How are we knowing that the whites are clipped?
| |
21:03 | alexML | if you don't believe me, download the raw12 and look at them yourself
| |
21:03 | alexML | they turn pink...
| |
21:04 | troy_s | It's not that I don't believe you.
| |
21:04 | troy_s | I'm just asking what the raw values are on the RGB triplets.
| |
21:04 | troy_s | Link me to the IT8 in question?
| |
21:05 | alexML | http://files.apertus.org/AXIOM-Beta/snapshots/IT8%20Charts%20Nikon-08.01.2016/
| |
21:05 | troy_s | I cannot fathom how 20 gives us values at 0.4 and 25, which is 1/8th of a stop, blows out.
| |
21:05 | troy_s | That is baffling.
| |
21:05 | alexML | it8-gainx1-offset2047-20ms-02.raw12
| |
21:05 | troy_s | Oh these are new!
| |
21:05 | troy_s | alexML: Are these daylight?
| |
21:06 | jucar | left the channel | |
21:06 | alexML | GS00 is 2235/2908/1979 in raw
| |
21:06 | troy_s | No one pinged me. Hrm... interesting.
| |
21:06 | alexML | no
| |
21:06 | troy_s | No not daylight?
| |
21:06 | troy_s | FFfffffffffffffffffffffffffffffffffffffffffff
| |
21:06 | alexML | not daylight
| |
21:06 | troy_s | Sort of moots the whole thing.
| |
21:07 | troy_s | What are the offset gain etc settings based on?
| |
21:07 | troy_s | Is that irieger's work?
| |
21:09 | troy_s | FFFFfffffffsdfsdfsdfsdfsdfsdfsdfsdf PNG
| |
21:10 | alexML | you can see them in the file name
| |
21:10 | troy_s | I put the command in with a PNG on the end. Idiot.
| |
21:10 | troy_s | Ugh.
| |
21:10 | troy_s | So downloaded the 25
| |
21:10 | alexML | I guess it's irieger's work, not 100% sure
| |
21:10 | troy_s | Plenty of room there.
| |
21:11 | alexML | don't forget this sensor doesn't clip at 4095
| |
21:11 | troy_s | Irks me that it jumps from 25 to 80
| |
21:11 | troy_s | egads.
| |
21:11 | alexML | it starts being nonlinear around 2500
| |
21:11 | troy_s | We have to chat about exposure on these damn test charts
| |
21:11 | troy_s | Ugh.
| |
21:12 | niemand | left the channel | |
21:14 | arpu | joined the channel | |
21:15 | alexML | correction: the values on 20ms GS00 are 1541/1975/1963/1382 (RGGB), and black level is 143
| |
21:18 | alexML | on 25ms GS00: 1877/2392/2383/1697
| |
21:19 | alexML | so looks like this one clipped only on background, but chart data is usable
| |
21:19 | troy_s | Where's the spectral reference file?
| |
21:20 | troy_s | Got it.
| |
21:20 | troy_s | Why no Hutch??
| |
21:20 | troy_s | Odd.
| |
21:20 | troy_s | I'd have hoped that we used the best chart available, of which the Hutch is obviously the winner.
| |
21:23 | alexML | for me it wasn't that obvious, especially if you actually look at the samples
| |
21:25 | alexML | anyway, 25ms chart, with shaper enabled, gives: Profile check complete, errors: max. = 21.225459, avg. = 3.103384, RMS = 3.85962
| |
21:26 | alexML | if you expose just a little more to the right, you are going to get "non-data" in the white patches
| |
21:30 | alexML | trying HTC now
| |
21:30 | troy_s | alexML: It isn't obvious.
| |
21:30 | alexML | problem is, the HTC chart was not straight
| |
21:30 | alexML | it was curved
| |
21:31 | troy_s | alexML: Doesn't matter too much. Use the diag.tif output
| |
21:31 | troy_s | alexML: See how the boxes line up
| |
21:31 | alexML | they don't
| |
21:31 | Bertl_zZ | changed nick to: Bertl
| |
21:31 | Bertl | back now ...
| |
21:31 | troy_s | alexML: Simple blending perspectival should be fine.
| |
21:31 | troy_s | via imagemagick.
| |
21:32 | alexML | do me a favor and tell me the command for this particular file: http://files.apertus.org/AXIOM-Beta/snapshots/HCT%20Nikon-08.01.2106/HTC-gainx1-offset2047-20ms-02.raw12
| |
21:32 | troy_s | alexML: To fix it or to do the HerbDebayerâ„¢?
| |
21:33 | alexML | to fix that "perspective"
| |
21:33 | troy_s | alexML: Dump me a jpeg online so I can see.
| |
21:33 | alexML | https://dl.dropboxusercontent.com/u/4124919/bleeding-edge/apertus/highlights/HTC-gainx1-offset2047-20ms-02.jpg
| |
21:34 | troy_s | alexML: Really? The F points have boxes that exceed the subtle curve?
| |
21:34 | alexML | anyway, if argyll uses robust averaging, it should ignore these misalignment
| |
21:35 | alexML | (I used median in my tests)
| |
21:35 | troy_s | I'm surprised the boxes escape on that. It isn't that horrible.
| |
21:35 | alexML | assuming it did something similar, the results are: Profile check complete, errors: max. = 15.203720, avg. = 3.678191, RMS = 4.485412
| |
21:35 | troy_s | So 15
| |
21:35 | troy_s | With shapers?
| |
21:35 | alexML | yes
| |
21:35 | Bertl | the problem here is the bend on the left side
| |
21:35 | troy_s | Crack open GDocs and import the TI3 along with the profile check into pages.
| |
21:36 | troy_s | Bertl: What is the imagemagick command to undistortt lattice style? Should be a relatively easy fix... I seem to recall being able to drop a set of lines and have it undistort.
| |
21:36 | Bertl | kind of, but lines won't do in this case
| |
21:39 | se6astian | changed nick to: se6astian|away
| |
21:40 | Bertl | probably the best way to map it to a plan surface is a Shepard's distortion
| |
21:46 | alexML | indeed, that looks like the right tool (just need a ton of patience to write down the numbers, which I don't have at this time of the day)
| |
21:46 | Bertl | yup, you would need to map each cross point (or at least a fair number)
| |
21:46 | alexML | 5 points should be fine, I guess
| |
21:47 | troy_s | Ugh.
| |
21:47 | troy_s | Well that's a giveup then.
| |
21:47 | troy_s | Not worth it.
| |
21:47 | troy_s | alexML: What does dE2k give you?
| |
21:48 | troy_s | (dE2K is a more modernized dE calculation.)
| |
21:48 | Bertl | it would probably be way simpler to pin the chart on a flat surface next time
| |
21:48 | troy_s | Bertl: ya figure?
| |
21:48 | troy_s | LOL
| |
21:48 | alexML | how do I find that?
| |
21:48 | troy_s | alexML: And what are your top ten criminals on that dE list using profcheck?
| |
21:49 | troy_s | alexML: You can change dE output in profcheck. Let me find the switch.
| |
21:49 | Bertl | which, btw, also corrects for the difference in lighting due to the change in reflection angle
| |
21:49 | troy_s | dash k alexML
| |
21:49 | troy_s | Bertl: Indeed.
| |
21:49 | alexML | Q09,Q08,R08,H13,I16, lost patience
| |
21:49 | troy_s | Q???
| |
21:50 | troy_s | That's Hutch?
| |
21:50 | alexML | ya
| |
21:50 | troy_s | Sorry was referencing the IT8 values.
| |
21:50 | troy_s | (Just for apples to apples comparison)
| |
21:52 | troy_s | Damn. Magenta is peaking dE again.
| |
21:57 | alexML | looks like those residuals on IT8 appear correlated to the X coordinate
| |
21:57 | alexML | => nonuniform illumination?
| |
21:57 | troy_s | Wouldn't expect X with illumination.
| |
21:57 | alexML | X as in horizontal position on the chart
| |
21:57 | troy_s | Oh shit.
| |
21:58 | troy_s | Then yes.
| |
21:58 | troy_s | But still seems rather high.
| |
21:58 | troy_s | alexML: Also, if you look at your 20 and your 25, then look at your hutch, look at the magenta strips.
| |
21:58 | troy_s | alexML: Check the dEs on the hutch there too. They whack?
| |
21:59 | alexML | probably, I'll stop it for today
| |
22:01 | troy_s | Ditto.
| |
22:01 | alexML | I'll correct for the nonuniform illumination first
| |
22:01 | alexML | hopefully tomorrow
| |
22:01 | troy_s | alexML: Did you pop these shots????
| |
22:01 | alexML | pop?
| |
22:01 | troy_s | take
| |
22:02 | alexML | no, I don't have a beta yet
| |
22:02 | troy_s | Argyll will fit for that to a degree. No sense in trying to fudge it.
| |
22:02 | alexML | not sure how, since the ti3 doesn't contain position data
| |
22:02 | troy_s | It fits it.
| |
22:03 | troy_s | LMS
| |
22:03 | troy_s | But ultimately, the issue would be that fudging the data would be defeating the purpose.
| |
22:03 | alexML | it won't, IMO
| |
22:04 | troy_s | We kind of are doing the tests to see how the tests align with the known constants, at that particular illumination level because of all the nuances of the photosite's lenses etc.
| |
22:04 | troy_s | Really what we need is:
| |
22:04 | troy_s | 1) Square flat chart. No glare.
| |
22:04 | troy_s | 2) Daylight
| |
22:04 | troy_s | That will solve everything.
| |
22:05 | troy_s | And give us an actual idea of what is had.
| |
22:05 | troy_s | The rest is all junk.
| |
22:05 | alexML | noticed the HTC has white and black dots on all corners + middles of each side? I bet they are made to detect/fix nonuniform illumination
| |
22:05 | troy_s | We need that D50 full spectrum illuminant. It's pretty darn critical given that our reference data is there.
| |
22:05 | troy_s | It's more points.
| |
22:05 | troy_s | Helps the fitting.
| |
22:05 | troy_s | For certain.
| |
22:05 | alexML | they are distributed around the chart
| |
22:06 | troy_s | But really, D50
| |
22:06 | troy_s | Yep.
| |
22:06 | alexML | so it's not just for the fitting
| |
22:06 | alexML | their location does matter
| |
22:06 | troy_s | Of course it does.
| |
22:06 | troy_s | The fitting will have the same spectro values
| |
22:06 | troy_s | Anyway, vastly more important at this point is D50.
| |
22:06 | alexML | of course
| |
22:06 | troy_s | Daylight solves the illumination irregularities
| |
22:07 | troy_s | Pretty hard to unevenly light with the sun or several kilometers of sky
| |
22:08 | alexML | there is reflection from nearby stuff though
| |
22:08 | alexML | I doubt it's that easy
| |
22:08 | troy_s | Well you can get glare and radiosity of course.
| |
22:09 | troy_s | That said, by and large, the most important thing is that the CIE values from the spectro match the illumination entry point. Otherwise all bets are off.
| |
22:09 | alexML | correct
| |
22:10 | troy_s | And of course, having one's own spectro makes all of this much better.
| |
22:10 | troy_s | All of that said, the dEs seem high.
| |
22:10 | alexML | just for fun: http://www.brucelindbloom.com/index.html?ReferenceImages.html
| |
22:10 | troy_s | As well as irregular enough across the ranges of colours that I'm going to speculate that there are hardware twiddles to be done still.
| |
22:11 | alexML | for sure
| |
22:12 | troy_s | It might require a "session" where we do live shooting and tweaking
| |
22:12 | troy_s | after evaluations.
| |
22:12 | troy_s | I'm not sure but it might be interesting to see how twiddling a register here influences the range of data and dE
| |
22:13 | troy_s | But I guess the PWL is sort of the "next" thing needed really.
| |
22:13 | troy_s | Because even if there were 100% success, a whopping 9 stops of latitude isn't exactly a useful camera.
| |
22:14 | troy_s | So PWL, then daylight charts, then perhaps a twiddle session.
| |
22:15 | troy_s | Odd lindbloom used only 31 floats for spectral.
| |
22:15 | troy_s | I think most spectral renderers rely on 40 or so.
| |
22:17 | Bertl | I think 31 are fine, given that real world recordings gets away with 3 at most :)
| |
22:24 | troy_s | Bertl: Spectral renderers don't.
| |
22:24 | troy_s | Bertl: I seem to recall 40 being the threshold.
| |
22:25 | Bertl | you know any device/sensor which has more than let's say five filters per pixel?
| |
22:29 | troy_s | Those aren't spectrals
| |
22:29 | troy_s | Are they?
| |
22:29 | troy_s | ;)
| |
22:29 | troy_s | They are baked spectrals.
| |
22:29 | troy_s | When the technology enables it, you can bet bottom dollar that spectral rendering to capture a scene will go live.
| |
22:30 | Bertl | you could already do pretty good with interference filters today
| |
22:31 | Bertl | still there is not a single device in use which would use that
| |
22:31 | Bertl | (at least none I know of :)
| |
22:31 | troy_s | More than a few VFx houses would love a spectral camera
| |
22:31 | troy_s | Purely for textures and what not.
| |
22:31 | troy_s | Capturing chases the rendering tech.
| |
22:32 | troy_s | WETA's entire pipeline has been more or less replaced with spectral imaging rendering.
|