Current Server Time: 00:59 (Central Europe)

#apertus IRC Channel Logs

2017/01/15

Timezone: UTC


00:31
dimaursu16
left the channel
00:40
illwieckz
joined the channel
00:40
illwieckz
left the channel
00:40
illwieckz
joined the channel
03:46
Bertl_oO
off to bed now ... have a good one everyone!
03:46
Bertl_oO
changed nick to: Bertl_zZ
04:34
dimaursu16
joined the channel
04:34
dimaursu16
left the channel
04:34
dimaursu16
joined the channel
04:45
jucar
joined the channel
06:05
jucar
left the channel
08:05
Spirit532
joined the channel
08:26
dimaursu16
left the channel
08:31
ItsMeLenny
joined the channel
08:58
se6astian|away
changed nick to: se6astian
10:44
Bertl_zZ
changed nick to: Bertl
10:45
Bertl
morning folks!
11:12
RexO
joined the channel
11:47
danieel
left the channel
11:48
danieel
joined the channel
12:16
tezburma
joined the channel
12:20
illwieckz_
joined the channel
12:22
illwieckz
left the channel
12:39
ItsMeLenny
left the channel
12:40
ItsMeLenny
joined the channel
13:39
ItsMeLenny
left the channel
14:05
dimaursu16
joined the channel
14:11
Bertl
off for now ... bbl
14:11
Bertl
changed nick to: Bertl_oO
14:24
pusle
left the channel
14:25
niemand
joined the channel
14:27
pusle
joined the channel
14:30
dimaursu16
left the channel
14:44
jucar
joined the channel
15:06
niemand
left the channel
15:07
niemand
joined the channel
15:11
jucar
left the channel
16:11
niemand
left the channel
16:11
niemand
joined the channel
16:16
RexO
left the channel
16:44
niemand
left the channel
17:05
jucar
joined the channel
17:06
illwieckz_
left the channel
17:19
illwieckz_
joined the channel
17:24
jucar
left the channel
18:21
illwieckz_
left the channel
18:22
illwieckz
joined the channel
18:27
arpu
left the channel
18:42
arpu
joined the channel
20:21
illwieckz
left the channel
20:25
dimaursu16
joined the channel
20:25
dimaursu16
left the channel
20:25
dimaursu16
joined the channel
20:33
troy_s
joined the channel
20:34
troy_s
@Bertl_oO Ping.
20:34
troy_s
@Bertl_oO Been on a long adventure. Have some interesting colorimetry stuffs to report.
20:37
dimaursu16
left the channel
21:02
illwieckz
joined the channel
21:21
se6astian
troy_s: welcome back!
21:21
se6astian
share your adventure stories with us soon!
21:21
se6astian
and the colorful treasures you found on the path
21:21
troy_s
se6astian: Not really "back" per se. Just have been on a long deep dive into desaturation explorations.
21:21
troy_s
se6astian: Has there been any progress on the colorimetry front at all?
21:22
se6astian
not much happened on that front in recent times
21:23
tezburma
left the channel
21:27
troy_s
That's depressing.
21:38
jucar
joined the channel
21:54
se6astian
off to bed now
21:54
se6astian
lets chat again soon
22:03
se6astian
changed nick to: se6astian|away
22:12
Bertl_oO
hey troy_s! how's going?
22:12
Bertl_oO
changed nick to: Bertl
22:13
troy_s
Bertl: Good thanks. You?
22:14
Bertl
relatively fine ... the water cooling on my work system failed on saturday (as usual) and I have to wait till tomorrow to fix it
22:15
Bertl
what was your adventure and what is the interesting stuff?
22:18
troy_s
Bertl: It has to do with some interesting compression along the saturation domain in some higher end cameras.
22:19
troy_s
Bertl: I was invited to some private discussion forums with some very top tier colourimetry folks and learned a little about what some of the higher end cameras are doing at the hardware level.
22:21
troy_s
Bertl: Here's a consumer grade DSLR demonstration that shows the issue largely: http://pasteall.org/pic/show.php?id=111281
22:22
troy_s
Bertl: Notice anything there?
22:22
troy_s
Bertl: That is a simple two stop differential of exposure.
22:23
Spirit532
I see weird.
22:23
Spirit532
And all the colors areway off
22:23
troy_s
Spirit532: Correct.
22:24
Spirit532
Sucks to be them, I shoot B&W! https://www.youtube.com/watch?v=ewjZmd1AcZo
22:24
Spirit532
cries because he wants a color HS camera
22:24
Spirit532
Surprisingly, the curves on B&W are still extremely complex in some cases.
22:25
Spirit532
What's the cause of the problem in the comparison above?
22:25
Spirit532
Surely that wouldn't be there in a raw image.
22:28
troy_s
Spirit532: You realize that B&W is anchored in colorimetry right? You can't avoid the issue.
22:29
Spirit532
B&W is not very anchored
22:29
troy_s
Spirit532: The root cause of the problem is in handling device referred encodings.
22:29
Spirit532
Ah.
22:29
Spirit532
pretends to understand
22:29
troy_s
Spirit532: The camera has a limited range from minimum to maximum of sensitivity (aka output / device / display referred)
22:29
troy_s
Spirit532: The scene has an unlimited range of encoding (aka scene referred)
22:29
troy_s
Spirit532: with me?
22:29
Spirit532
What does unlimited range mean?
22:30
Spirit532
It's still n bits per channel, be it RGB or just brightness
22:30
troy_s
Meaning that if you look out your window with a spot meter and measure values, you'd have anything from "Error" (we can call this some infinitely low value for the sake of argument)
22:30
troy_s
Spirit532: To an infinitely large value (there might be a maximum in your scene, including the sun, but if we imagine, we can visualize that there are forever larger and more intense potential realities, so our upper end is infinite)
22:31
Spirit532
sure
22:31
troy_s
Spirit532: So when attempts to encode the scene into a device referred context, transforms have to take place that anchor those values.
22:32
Spirit532
so, setting the absolute min & max values for the frame?
22:32
troy_s
Spirit532: In the case of a colour camera, we have issues at the higher end of the values. That is, if we consider each photosite is gathering up an arbitrary bunch of wavelengths that end up being the "green" filter, the "red" filter, and the "blue" filter, we define our colours based on ratios of those accumulator wells.
22:32
Spirit532
which is 1:2:1
22:32
Spirit532
for simplicity's sake
22:33
Spirit532
ignoring QE & filter curves
22:33
troy_s
Spirit532: But at high intensities, our wells fill up and can't record any further information. That data becomes "non data" because we are no longer recording the scene.
22:33
Spirit532
saturation, yes
22:33
troy_s
Spirit532: But the lower well totals continue to accumulate. Hence the wrong ratios. Hence the wrong colours.
22:33
Spirit532
I see.
22:34
troy_s
Spirit532: The more correct approach would be for the hardware to implement a carefully designed 3D LUT transform that would, at a certain point, begin to compress the values such that the colorimetry of the scene is preserved in terms of the correct "hue" of the scene's object.
22:34
troy_s
Spirit532: Albeit migrating towards the achromatic axis.
22:34
troy_s
Spirit532: That way, while the actual chromaticity cannot be preserved (the xy position of the colour of the object at a lower exposure), we can preserve the axis that the colour lives on if you will.
22:35
Spirit532
But what can you compress if the pixel is saturated?
22:35
Spirit532
you can't apply different gains to pixels
22:35
troy_s
Spirit532: You would know that the sensel is full or nearing full, and transform the other values upwards synthetically filling the wells.
22:35
Spirit532
oh.
22:36
troy_s
Spirit532: This would result in a more precise bit of colourimetry at the higher end.
22:36
Spirit532
That makes sense.
22:36
troy_s
So the colour ends up precise along the achromatic to original colour axis, at reduced chroma.
22:36
Spirit532
And where is that implemented?
22:36
Spirit532
VLSI?
22:36
troy_s
At the hardware level in the labyrinthine chain somewhere.
22:37
Spirit532
Is this implemented in any codecs on PCs?
22:37
troy_s
Pardon?
22:38
Spirit532
I'm picking up a raw CMV2000-based camera(basically LVDS to USB converter, lol)
22:38
troy_s
It's somewhat impossible to implement at a codec level as the horses have already left the barn.
22:38
troy_s
It would be theoretically plausible to implement for something like that.
22:38
Spirit532
So I'm going to have access to absolute raw data and all sensor controls
22:38
Spirit532
At a few hundred frames per second
22:39
troy_s
Assuming that some work has been done to stabilize the raw data and get a good solid photosite filter to XYZ transform.
22:39
troy_s
(Which is a *large* assumption of course, given that there was epic failure on that front previously)
22:39
Spirit532
Probably. Think of it as if it's the Axiom. Except it's not, and it's USB3.
22:40
Spirit532
I'm looking forward to shooting fully raw, but I'm also not looking forward to shooting raw.
22:41
Spirit532
The problem you've explained to me(which I didn't know the name for) is one of my main concerns. That, and having to grade everything.
22:45
troy_s
Grading is pretty typical. Technically speaking, if you just want to point and shoot, there's a trivial transform for that as well.
22:46
Spirit532
The biggest scare for me at the moment is that it *only* shoots raw. Compression has to be done on the (thankfully beefy) PC.
22:47
Spirit532
Granted, I'm not going to be shooting at 170 fps all the time, but it's still >100MB/s of data to crunch
22:48
troy_s
Once proper profiling is done, to transform the sensor data to "aesthetic" bits, it is a very simple transform.
22:48
Bertl
troy_s: I don't see how a LUT could help with compensating an overflow
22:49
troy_s
Bertl: In terms of ratios, the chromaticity coordinates of a given colour are a byproduct of the native "primaries" (albeit artificial) of the photosites expressed as a ratio.
22:49
Spirit532
Or, as I understand it, putin simple terms: if it's blown the hell out, bump the others a bit too.
22:50
Spirit532
put in*
22:50
troy_s
Bertl: At a given fill level, you'd synthetically ramp the other channels (3D LUT) to have the resultant triplet hold chromaticity correctly.
22:50
troy_s
Bertl: It's sort of "well duh" obvious, but something that has been elusive for a few years to me.
22:50
troy_s
Bertl: And, to no surprise, the two leading cameras in terms of preferential work for grading, Sony's F65 / F55 and Arri's Alexa, both perform this. :)
22:51
Bertl
well, maybe I don't see it ... let's do an example with sensel values
22:51
troy_s
Bertl: Have a look at the sample GIF I posted.
22:51
Bertl
let's assume raw linear values in 8 bit
22:51
troy_s
Bertl: It doesn't take a rocket surgeon to realize that the orange of the bowl is *gravely* broken in the overexposed version.
22:51
troy_s
Sure.
22:52
Bertl
let's assume we get RGB (64 128 32)
22:52
troy_s
Right.
22:52
Bertl
now let's double the amount of light
22:52
Spirit532
128, 255, 64
22:52
Bertl
we will end up with (128 255 64)
22:53
Spirit532
255 can't go higher
22:53
Bertl
that is almost correct, except it goes to magenta
22:53
troy_s
Right. So in this case you'd set a well total value at say 90%.
22:53
troy_s
So as a value creeps up to the G channel say, 240 or 230 or whatever
22:53
Bertl
what is a well total value?
22:53
troy_s
Fully saturated.
22:53
troy_s
(assuming you've unbotched all of the bits and we are dealing with proper information and not non-data)
22:54
Bertl
okay, so 240 is assumed to be fully exposed
22:54
troy_s
Fully exposed at 8 bit let's assume is correctly mapped to full saturation.
22:54
troy_s
255
22:54
troy_s
(Again, for the sake of discussion to keep things clear)
22:54
troy_s
So at 230 say, or 220, you have the transform begin.
22:55
Bertl
I have no idea what you are talking about to be honest
22:55
troy_s
You have a colour recorded in the camera.
22:56
troy_s
Let's call it in terms of chromaticity coordinates.
22:56
Bertl
the raw linear data will be correct up to a point where one primary gets overexposed
22:56
Bertl
at this point, nothing will help you
22:56
troy_s
That is, you've properly profiled the camera and we know that RGB combination = colourA.xy
22:56
Spirit532
the data is not linear unless you've fully built the QE & bayer curves into the hardware
22:56
troy_s
OMFG please.
22:57
Spirit532
just kidding
22:57
troy_s
RGB combination for a given colour, say our bowl gif, is ColourA.xy (it's the orange colour) based on the Camera.RGB triplet (via XYZ transform)
22:57
troy_s
Now as that exposure goes up, you'd take your max() and realize that you are nearing saturation.
22:58
troy_s
Which means transforming the other two channels such that the peaking channel remains, but the other two are adjusted such that you raise the values so that you end up with ColourA.xy moving *directly* along the axis towards the achromatic white point.
22:58
troy_s
Instead of recording the other two channels.)
22:59
Spirit532
In simple words: if one channel is coming closer to saturation, bump the other two
22:59
Spirit532
right?
22:59
troy_s
In simple terms yes.
22:59
Bertl
doesn't make sense to me