23:45 | se6astian | left the channel | |
01:20 | yaufman | joined the channel | |
01:29 | yaufman | left the channel | |
01:55 | gcolburn | joined the channel | |
02:12 | gcolburn | left the channel | |
02:24 | gcolburn | joined the channel | |
02:24 | gcolburn | hello
| |
02:34 | Bertl | hey, how's going?
| |
02:36 | Bertl | anyway, off to bed now ... have a good one!
| |
02:36 | gcolburn | good
| |
02:36 | gcolburn | just made some progress
| |
02:36 | Bertl | ah, okay?
| |
02:37 | Bertl | btw, I finished the new deserializer/train/snap stuff tonight
| |
02:37 | gcolburn | I have c++ code performing demosaiqing with VNG, apply CameraToXYZ, and XYZtosRGB, and dumping as a TIFF
| |
02:37 | gcolburn | awesome!
| |
02:37 | gcolburn | good job!
| |
02:37 | Bertl | i.e. we can now reliably take pictures
| |
02:37 | gcolburn | right now I'm converting the code to a LUT
| |
02:37 | gcolburn | great! I'll be curious to see if that improved some of the artifacts we were seeing
| |
02:38 | Bertl | yes, I think the lines you stumbled upon should be gone now
| |
02:38 | gcolburn | so you'll have a fully working package with using the LUT and you can grab the parts out for what you need
| |
02:38 | gcolburn | awesome
| |
02:38 | Bertl | okay, sounds good, the proposed lut setup is sufficient for the conversions you do?
| |
02:39 | gcolburn | I think there is no reason I won't be able to do Camera to sRGB in 9 LUTs
| |
02:39 | gcolburn | I believe so
| |
02:39 | gcolburn | on paper mathematically it looks good
| |
02:39 | gcolburn | I'll write the code so we can try direct computation verse the LUT and compare the output images
| |
02:39 | Bertl | okay, we actually target 12 luts (i.e. 3x3 for the 'matrix' and 3 for gamma)
| |
02:39 | gcolburn | not numerically, just aesthetically
| |
02:39 | gcolburn | hmm
| |
02:40 | Bertl | but the 3 gamma can be identity as well
| |
02:40 | gcolburn | iif the goal is to go to sRGB I think it can all be in one step probably
| |
02:40 | Bertl | it's just an idea I had to simplify the tuning
| |
02:40 | gcolburn | yeah
| |
02:40 | gcolburn | the sRGB gamma requires if statements :)
| |
02:40 | gcolburn | but that doesn't matter with the LUT, as it will be pre-built obviously
| |
02:40 | Bertl | yup
| |
02:41 | gcolburn | the code doesn't take long to run, most of the time is spent in the VNG
| |
02:41 | gcolburn | it takes maybe 5 seconds to do it all
| |
02:41 | Bertl | okay, great
| |
02:41 | gcolburn | I'll have to play with the other demoaiqing algorithms and see how much faster they are
| |
02:41 | Bertl | I started to look at the noise/artefacts as well
| |
02:41 | gcolburn | oh yeah?
| |
02:42 | Bertl | and I think we can compensate for quite a number of them
| |
02:42 | gcolburn | great
| |
02:42 | Bertl | sebastian will do more test images later today, so we will know more in the new year :)
| |
02:42 | gcolburn | I have high hopes that we will be able to get great quality images out of the sensor
| |
02:42 | gcolburn | awesome
| |
02:42 | gcolburn | I'm going to try and get the LUT code down now. then I can upload to Github
| |
02:43 | gcolburn | at first i was working on a c++ version of the DNG writer, but got side tracked and worked on the demosaiqing/LUT
| |
02:43 | gcolburn | I'll upload all the code since it uses one Makefile
| |
02:43 | gcolburn | but the DNG part just reads tags right now is all
| |
02:43 | Bertl | excellent! drop me a note with details how to use it here, I'll read up on it after a sleep
| |
02:43 | gcolburn | ok sounds good
| |
02:43 | gcolburn | catch you later
| |
02:43 | Bertl | thanks, cya
| |
04:19 | gcolburn | left the channel | |
05:41 | jucar | joined the channel | |
05:49 | troy_s | Bertl: The transfer curve is a 1D LUT.
| |
05:50 | troy_s | Bertl: The XYZ to sRGB / 709 primaries is a 3D LUT.
| |
05:50 | troy_s | Bertl: Not sure how you handle the latter.
| |
05:50 | troy_s | Bertl: General order of events for any color transform is pretty simple and follows the following outline:
| |
05:50 | troy_s | 1) Invert any TRC (Tone Response Curve / Transfer Curve - the "intensity" of the values that controls the presentation on Low Dynamic Range outputs (Displays, etc.))
| |
05:51 | troy_s | 2) Conver the RGB values to XYZ of a given color temperature (your color temperatures must always be aligned for your transforms to XYZ or else all hell breaks loose)
| |
05:52 | troy_s | 3) Conver the XYZ values to the RGB values for the destination color space (in this case sRGB/ 709 primaries) which is done via a 3x3 matrix (as with step 2) or a 3D LUT.
| |
05:53 | troy_s | 4) Apply the TRC for the destination space. (For sRGB it is a two part formula with an if - a curve with a linear toe. Overall average is ~2.2. 709 has a different two part TRC, and rougly averages to ~1.9)
| |
06:30 | jucar | left the channel | |
09:30 | se6astian | joined the channel | |
09:33 | se6astian | good morning!
| |
10:13 | se6astian | left the channel | |
10:14 | se6astian | joined the channel | |
10:48 | philippej | joined the channel | |
10:56 | se6astian | left the channel | |
11:07 | se6astian | joined the channel | |
11:09 | [1]se6astian | joined the channel | |
11:12 | se6astian | left the channel | |
11:12 | [1]se6astian | changed nick to: se6astian
| |
11:26 | se6astian | left the channel | |
11:57 | philippej | left the channel | |
12:49 | jucar | joined the channel | |
13:17 | gcolburn | joined the channel | |
13:30 | gcolburn | left the channel | |
13:59 | jucar | left the channel | |
14:05 | Bertl | troy_s: we will do a nonlinear matrix multiplication with a 3x3 LUT (not a 3D lut) and post process with 3 gamma LUTs (which are probably unnecessary but simplify adjustments)
| |
14:48 | natalval | joined the channel | |
15:01 | natalval | left the channel | |
15:27 | se6astian | joined the channel | |
15:28 | se6astian | good evening
| |
16:22 | gcolburn | joined the channel | |
16:24 | jucar | joined the channel | |
16:31 | Bertl | se6astian: evening
| |
17:38 | gcolburn | hello
| |
17:42 | se6astian | hi there!
| |
17:43 | gcolburn | It looks like I have working LUT code :)
| |
17:43 | se6astian | hurray!
| |
17:43 | se6astian | I just made some straylight tests
| |
17:43 | gcolburn | oh nice
| |
17:45 | gcolburn | how did you do the test?
| |
17:48 | se6astian | first darkframe in surrounding darkness
| |
17:49 | se6astian | then 3 images with strong light shining on the prototype
| |
17:49 | gcolburn | I see
| |
17:49 | se6astian | now its time to start the cheese fondue before I capture more test images :)
| |
17:53 | gcolburn | :)
| |
17:54 | gcolburn | so there are some issues we're going to have to figure out with using the LUT
| |
17:54 | gcolburn | if the LUT is a float, the results are visually identical to doing the matrix transforms on the fly
| |
17:55 | gcolburn | with the current code if I switch to an int or long there is an overall change in tint in the image
| |
17:55 | gcolburn | I'm trying to remember if Herbert was going to implement the LUT in the FPGA or on the CPU
| |
17:56 | gcolburn | and the LUT has to have signed values, since the matrix can have negative values
| |
18:21 | gcolburn | never mind. looks like it was a casting issue
| |
18:21 | gcolburn | seems to work with int
| |
18:26 | se6astian | great
| |
18:26 | gcolburn | I can push the code to github
| |
18:26 | se6astian | please do
| |
18:26 | gcolburn | its part of my C++ port of the DNG writer
| |
18:26 | gcolburn | which isn't quite finished
| |
18:27 | gcolburn | but if you run the Makefile it will also make the code for the LUT
| |
18:27 | gcolburn | where would you prefer to place it within the respository?
| |
18:34 | se6astian | I started putting my tools into https://github.com/apertus-open-source-cinema/alpha-software/tree/master/misc_scripts_and_utilities
| |
18:34 | se6astian | maybe that would fit?
| |
18:36 | gcolburn | sure
| |
18:46 | gcolburn | done
| |
18:46 | gcolburn | https://github.com/apertus-open-source-cinema/alpha-software/tree/master/misc_scripts_and_utilities/dng
| |
18:53 | se6astian | thanks
| |
18:55 | troy_s | aaarrggh
| |
18:55 | gcolburn | let me know if you have any problems building it
| |
18:55 | troy_s | So I am struggling like mad to get OpenEXR 2.1 to compile so that I can get OIIO to compile.
| |
18:56 | gcolburn | oh yeah?
| |
18:57 | troy_s | Greets G.
| |
18:57 | troy_s | I can't get the blasted OEXR to link. sem_init missing.
| |
18:57 | troy_s | Which is -pthread but it is in there.
| |
18:57 | gcolburn | I just sent out an email with a link to the code to transform raw16 to sRGB
| |
18:58 | troy_s | Driving me nuts. I would love to even use system OEXR but OIIO insists on looking for an Ilm file in IlmBase that is only in 2.1 and giving fits.
| |
18:58 | gcolburn | I'll probably try and get OIIO installed tomorrow. if I have any luck I'll let you know but sounds like it'll be a challenge
| |
18:58 | gcolburn | what OS are you using?
| |
18:58 | troy_s | gcolburn: OCIO is what we need.
| |
18:58 | troy_s | gcolburn: I can't stress it enough.
| |
18:59 | troy_s | The reason is that it allows us to quickly change the matrix or 3D LUT transforms without recompiling.
| |
18:59 | troy_s | Just update the LUT configs (via GitHub or whatnot)
| |
18:59 | troy_s | Better for iteration, and better for forward looking (think many frames)
| |
19:00 | troy_s | OIIO has never been an issue for me.
| |
19:00 | gcolburn | so would a plugin be needed for OCIO?
| |
19:01 | troy_s | No.
| |
19:01 | troy_s | OCIO only needs the transform hooks integrated.
| |
19:01 | troy_s | OIIO isn't even needed.
| |
19:02 | troy_s | I just want to integrate it for post. EG: Going to EXR with the raw (untransformed RGB debayered) data.
| |
19:02 | troy_s | Irking me.
| |
19:02 | gcolburn | i see
| |
19:03 | gcolburn | what do you need to determine the gamut of the sensor?
| |
19:03 | troy_s | A proper profile.
| |
19:03 | gcolburn | I believe Herbert finished his new firmware update, and sebastian is taking new images
| |
19:04 | troy_s | Direct sun and tungsten ideally (no sky on sun to raise color temp)
| |
19:04 | gcolburn | just the ICC profile from argyll?
| |
19:04 | troy_s | If we can get to a low error ICC it should be enough for evaluation.
| |
19:07 | gcolburn | ok
| |
19:08 | troy_s | But any further work should go toward a reference viewer
| |
19:09 | troy_s | gcolburn: I can only see pain with the DNG path.
| |
19:10 | troy_s | Pretty sure I can whip the viewer up in a day assuming I can overcome my EXR woes. Sooner if I ignore OIIO but...
| |
19:12 | gcolburn | what type of viewer are you referring to?
| |
19:16 | gcolburn | out of curiosity I tried opening one of the generated ICC profiles in ColorSync and overlaid it with standard spaces… the profile looks quite bizarre with 20% errors!
| |
19:38 | troy_s | Well that is 20% errors and colorsync
| |
19:38 | troy_s | ColorSync isn't exactly the world's best reference.
| |
19:41 | gcolburn | yeah
| |
19:43 | gcolburn | well I'm going to head off
| |
19:43 | gcolburn | catch you guys later
| |
19:44 | gcolburn | left the channel | |
22:17 | se6astian | happy new year!
| |
22:25 | guesst | happy new year indeed!
| |
22:25 | guesst | got any fireworks picture? :)
| |
22:34 | se6astian | https://www.youtube.com/watch?v=GsKnPDeU9vI
| |
22:34 | jucar | left the channel | |
22:59 | se6astian | left the channel |