After hearing Peter Doyle, Colorist and Color Scientist responsible for the color scoring of many films including at least the last five Harry Potter movies describe typical color grading based on adjusting a 1D LUT, like an RGB curve or Lift Gamma Gain as being a ’1D Look Up Table Jockey’, I was intrigued by his approach described within the FXGuide interviews which included processing more akin to typical photo development and photography based manipulations rather than what could be considered more typical digital video manipulations.
And seeing discussions regarding Adobe Lightroom 4 ‘support’ for digital video formats in order to begin using Lightroom specific tools for video processing. Yes, Adobe Camera RAW is available in more video centric products for handling RAW video from such cameras as Blackmagic’s Cinema Camera but I think there are tools within a typical RAW editor that are equally ‘valid’ for LDR image formats and therefore typical 8bit video.
Considering the above, I contemplated the limited availability of such tools in the Open Source world, specifically on Linux. The future need for a Linux based solution for developing RAW video, or more specifically handling RAW image sequences from such camera’s as the BMCC including playback, setting in/out points, RAW development, creating, storing and applying ‘looks’ to image sequences and lossless export to an NLE. I thought I’d briefly investigate Linux RAW editors to see how close or far we are from this and Darktable appears to offer the most so far, due to what appears an extensive range of interesting tools and active development.
I first tested a straight forward 8bit png frame extracted from a h264 video in DT’s 32bit linear float OpenCL enabled processing pipe and found that even a simple curves manipulation gave same combed histogram 8bit output as using Blender’s OpenCL based nodal compositor. No surprise there. Basically what I wanted to establish was whether the 8 to 16bit conversion discussed in previous posts was beneficial for the Darktable test. Conclusion yes.
So I started with a quick edit of a few Canon MOV files in kdenlive and exported as a lossless ffv1 video in a matroska container, opened it in Avspmod, set bookmarks for ‘hero’ frames and piped 48bit RGB at bookmarks to Imagemagick resulting in 5, 16bit linear tif’s as output. I use the term ‘hero’ frames tongue in cheek, there far from heroic. :-)
The frames were then imported into Darktable to create a ‘Look’ for each scene or in DT’s terminology a ‘Style’. http://www.darktable.org/usermanual/ch02s02s10.html.php
Creating a ‘Style’ in DT.
Each style saved with a unique name will then be accessible from Darktable for future use. As you can see I didn’t spend much time or judgement applying the styles for this initial test. :-)
Styles applied to ‘Hero’ frames.
Back in AvsPmod, I created new named bookmarks at scene changes within the video and piped 48bit RGB to Imagemagick, the bookmarks this time used by vdcrim’s Pipe RGB To Imagemagick macro to split the frame sequences into named sub folders for each scene. Once export was complete I imported the 16bit image sequences contained within the folder’s into Darktable using the recursive search option. I’ll be making Darktable related comments regarding the whole process in a later blog post.
Image sequences in DT.
I then used Darktables ‘Grouping’ feature by selecting first and shift selecting the last frame for each scene sequence and ctrl + g, making a group to recreate the ‘folder’ principle. A ‘Folder to Group’ import option would really help in this situation. More comments to follow. :-)
Image Sequences ‘Grouped’
The result is five groups corresponding to five scenes ready to apply each of the previously created ‘Styles’ to each scene group. However applying a style to the contents of a group is not an option currently. Version 1.1.4 from the Darktable PPA for Ubuntu.
In order to apply a ‘Style’ to a groups contents the group has to be expanded, once again select the first and shift select the last frame in that group, which is tedious because the thumbnail regeneration process prevents selecting a frame unless it has a thumbnail image present. More on this in the following Darktable comments post.
Once all frames are selected, the ‘Style’ can be applied. Notice that we can choose to untick particular operations such as adding grain or sharpening. Both better applied with motion considered in a tool like Avisynth as part of final encode out to delivery codec. Certainly adding grain over frame sequences in DT results in a ‘screen door’ effect with static grain. Sharpening better suited to luma only. Repeat for each group being careful not to apply a style more than once because it’s very easy to apply the same named style repeatedly to a frame or frame sequence.
‘Styles’ applied to grouped image sequences.
Exporting image sequences for encoding presents the same problem with ‘Groups’, simply selecting a group and exporting to an image sequence isn’t possible, only the first frame is written out. Again a group has to be expanded, select first and shift select last frame, once again waiting for thumbnail regeneration, then export. More comments on this to come in later post.
Export options are templated which is very useful and there are numerous image format options. I’ll add a section on encoding via Blender Frameserver and Avisynth in a later post.
Darktable developers do not suggest that DT is great with image sequences, it’s a RAW editor that just happens to have a wealth of functionality not only for image processing but database functionality, tagging, metadata etc and there are great touches and attention to detail throughout.
More to follow.