Movie LUT’s inside ICC Profiles

Krita, a painting application with high dynamic range (HDR) support, is in the planning phase for the next release cycle. One hot topic is currently the discussion about what can be done to make movie makers even more happy. A good candidate is the marriage of film industry colour management with Krita’s inbuilt ICC style colour management. But Krita maintainer Boudewijn Rempt expressed surprise about movie style colour management in other apps.

This post tries to compare how both colour management worlds work and how they can better fit for the advantage of each other.

The ICC format standard is for its most popular flavors designed as a characterisation of one colour space conversion in reference to the standard observer colour space or in ICC terms the PCS. That allows a very flexible combining of ICC profiles from many different devices into colour transformations and is one of the basic principles of the ICC standard. The advantage of using existing ICC workflows is, that tools for on the fly monitor colour correction are almost all ICC based and well understood.

So, how does the movie industry currently define colour spaces in their workflows?

In short, film colour spaces are characterised by standards and not by ICC profiles. On a technically level the involved file formats use pretty much the same basics. That is, curves and 3D tables, which are available inside the ICC foraremat as well.

However colour tables of movie makers, called LUT’s, are very closely related to the intended usage during film production. These LUT’s can combine a colour space conversion from a source colour space: typically a linear gamma floating point encoding toward a final display.

A simple colour conversion with just two ICC profiles would not adequately represent how a good movie picture should look like. So adding of scaling curves is needed, to obtain a tonal representation of  brighter than white parts of a scene. That part can include logarithmic scaling or other methods. An S shaped gamma is sometimes used to get a closer to film look of the footage output and possibly more tricks are used to create a pleasing colour output. And last but not least, the simulation of the intended output device, as in a typical cinema, is most often baked into film production LUT’s.

So a LUT contains the original source colour space and many additional ingredients. Movie makers have searched for ways to use their LUTs inside traditional ICC colour managed software: in one approach, they simply placed the LUT inside a ICC profile and could use the LUT’s in more software, typical as a proofing profile. A proofing profile is a normal ICC output profile describing the colour behaviour of a single devices. For film makers that is pretty much the way they use LUT’s anyway: as colour conversions in their workflows.

The approach of LUT baking into ICC output profiles is semantically not a good fit. However, there exist two other not so well known ICC format flavors, which could be far better deployed in order to support film LUT’s style colour conversions.

The one which comes technically closest to a film LUT is the “device link profile class”. A device link profile represents a combination of a complete colour transformation over a arbitrary number of colour spaces and manipulations into one final colour profile. As input and output colour spaces are included, a device link profile is pretty much a fixed thing like a LUT. But that means, it completely misses the flexibility of normal ICC profiles: that is the ability to get combined with different devices in an almost automatic fashion, with little user interaction if at all.

Another ICC profile type candidate is the abstract or effect style” ICC profile. These profiles can be used to simulate a device, do a colour manipulation or a combination of different conversions. The big advantage of the “abstract or effect profile” class is the very common PCS reference for the input and output side. So these profiles can easily be chained between a input colour space and a monitor device profile.

Baking movie LUT’s inside abstract profiles instead of device profiles would work more nicely inside ICC style workflows. Then, applications which support effect profiles can simply select the right effect LUT without touching a source colour space or even the monitor profiles, which would, among most people familiar with ICC style colour management, be considered a hack, and with reason.

The idea of using abstract profiles inside a painting application is not new. It was demonstrated around 2004 inside the CinePaint open source application. The abstract profiles were, for convenience, called “look profiles” inside the UI. CinePaint allowed users to chain “look profiles” and comfortably enable and disable them in order to see their effect.

The “look profiles” where used on the fly, without touching the image colour space. It was also possible to apply “look profiles” irreversibly and persistently to a image. The decision for CinePaint’s “look profile” workflow was directly inspired by movie studio needs.

At the time the underlying lcms library supported only 8 and 16-bit per channel. With the upcoming half floating point support in lcms, the “look profile” workflow starts soon to make sense as well for OpenEXR images. Lcms implemented further support of floating point elements inside ICC profiles to meet higher precision needs of the film industry. It will be interesting to see how this can be utilised.

Linux Color Management Hackfest idea

Sirko brought up the idea to organise a hackfest together with developers of applications for Linux desktops and experts interested in colour management. The idea behind that event was to bring interested developers together, support them in implementing color management in their software and move forward that topic across desktops and distributions.

During the recent LGM we found a chance to involve Richard Hughes and planed together about what we like to do during the hackfest. We spotted three main areas of interest: desktop applications including window managers, web browsers and printing. These topics are already worked on, but in a scattered way.

As example, Gwenview is a really great application for managing pictures. But it has no color management implemented yet. Color management in KWin is worked on during the GSoC this year, but in the opposite color management in the compositing manager mutter on the GNOME side is far away as can be read here. Not many web browsers support color management and if they who do, it is often incomplete. The SVG v2 standard will for example introduce additional color management features compared to SVG v1. So it is now the right time to get these implemented in order to be well prepared. For the KDE printing stack there is also a GSoC project this year, but also the Linux Foundation has a working group for this topic.

So, by meeting in person in one place, we want to get something done and build a good understanding of the role of each participating group for a working end to end colour management.

The hackfest will very likely happen in Brno in the Czech Republic at the Red Hat offices. A good time appears later this year 16th till 19th November. Now we like to collect more ideas, speak to people and sort financial issues.

Colour Management Talk @ LinuxTag 2012

Logo LinuxTagEuropes biggest event arround Linux and Open Source – LinuxTag, is’nt far away anymore and Oyranos will participate on it. LinuxTag take its place in Berlin from 23.-26. May on the exhibition area arround the Funkturm. On saturday the 26th of May I will present together with Sirko an talk about colour management – “Bring Color To The Game“. The talk will not introduce Oyranos as CMS, it will more explain what color management is and about the actual status on free desktops. We want as well to talk about what a user needs to get colour management running. During LinuxTag I will be reachable on the openSUSE booth for questions and introduction into profiling and bring some colorimeters.

LGM 2012 Impressions

The Technikum Wien provided a nice place and great support for the LibreGraphicsMeeting. Many thanks to them. LGM happened together with the Linuxwochen Wien and developers and users could talk about graphics and arts themes. Additionally to the one presentation track over all days, we had BoF’s and workshops. Some of us took the chance to present to a non LGM audience and meet people there too.

The LGM talks covered lots of OpenCL projects. That means modern GPU computing power is available to open source graphics components in a much broader way. As the use of OpenCL is supported by the Mesa software implementation, there is some kind of guarantee, that OpenCL programs will run on elder hardware. That means OpenCL can be used without the need for developers to provide a fallback mechanism, which simplifies adoption.

The colour management talks provided lively discussions around many topics like printing, displaying and open hardware. We discussed as well the impact of introducing colour management in frameworks like GEGL. As mizmo showed interest, I explained the most basic terms of ICC rendering intents in a small BoF using ICC Examin. Animtim compiled and installed Oyranos from sources and wrote already a small tutorial on how to build Oyranos on kubuntu-12.04.

Markus Raab with Elektra on LGM 2012 Vienna

Markus Raab presenting Elektra on LGM 2012 Vienna

The presentation of Markus Raab about the Elektra configuration gave to me some impressive insights into the concepts and flexibility of that small framework. The really cool thing about this library is it can abstract a lot of details and provide additional features, which can be added on run time like DBus support. He announced a new release of Elektra as version 0.8.0 during the event.

The metalab was for most people from countries without a similar open hardware/open source collaboration zone a impressive visit. We all enjoyed to could stay there for some hours and felt, this place is much in the spirit of most LGM contributors.

Nathan Willis @ LGM 2012 Vienna

During Nathan Willis workshop about the Create wiki, we discussed to start a email list for create users. That list is supposed to provide help and talk about experiences with graphics applications and help from users for users.

Sirko (alias gnokii) and Tobias (alias houz) played diplomat and managed to channel information in a way that Richard Hughes and I could finally meet in a productive atmosphere and continued talking about technical issues. At the end we found a mod to work again together on standards inside the OpenICC collaboration project. I am pretty happy with that change. So, thanks to all parties who helped with that.

Café Hawelka Vienna

Tatica, Pete, Sirko and I walked around on the last day in Vienna and relaxed in the café above.

ArgyllCMS V1.4.0 Released

The new version of the cross platform Colour Management System comes with new features and bug fixes.

  • ccxxmake can create correction matrixes using a reference colorimeter
  • support JPEG in cctiff, tiffgamut and extracticc
  • support display calibration and profiling on display without VideoLUT
  • support directing colour patches to a web browser for measurements and profiling

The ChangeLog contains the full list of modifications.

About: ArgyllCMS is the primary tool set in the open source world to access colour measurement devices and to create ICC profiles. Together with it’s colour conversion and analysis capabilities it is located in the tool box of many colour management professionals. Several freely distributed graphical front ends exist for ease of handling.

OpenICC Google Summer of Code 2012 projects

OpenICC obtained three project slots for the Google Summer of Code 2012
stipends. That means three students can work again this year full time over
three summer months on colour management projects. Thanks to Google for
organising and sponsoring the program.

Here are in short the projects:

Joseph Simon will continue to work on PDF colour management for the
KDE/Linux printing stack. To have a real world project he choose to implement
Colour Management for Krita Printing.

Casian Andrej will work on ICC KWin colour correction using the X Color
Management spec. That way KWin gets a clear path toward consistent colour
output on the desktop.

Nitin Chada will work on different toolkit dependent renderers for a
XForms subset inside the Simple Toolkit Abstraction project. That standalone project shall enable modules to present
options inside dialogs or embedded in host applications.

Lets have a successful coding summer and deserve the trust Google putted in
the OpenICC organisation and with that in the participating students.

Talks: Libre Graphics Meeting 2012

As it was mentioned in a blogpost before, Oyranos will participate in the 7th edition of Libre Graphics Meeting, which is held in Vienna from 2nd until 5th of May at UAS Technikum Vienna. The schedule is published since a few days and so I can tell that the talks I submitted are accepted.

Most of the talks about color management topics will be held on the first day. The first talk of this day will be held from Richard Hughes and introduces the ColorHug. Then my first talk “Evolving Concepts for Colour Management” will follow. Chris Lilley from W3C will inform after my talk about the status of color managment in SVG2. Then the “competiting” color managment will present there developments since the last LGM, Oyranos will start with “Colour Management a la Greek” followed by Richard Hughes “colord – Linux Color Management Framework, One Year On“. Last talk of the color management talks will be “Taxi DB – Call A Cab To Bring The Colors” which will be delivered from Sirko.
The rest of the talks of the first day are mostly topics like: “Re-lab project. Formats reverse engineering: tools and results” or “Import filters for vector graphic formats in LibreOffice: the reverse- and straight engineering fun“.
The rest of the week will be filled with a lot of talks, workshops and project meetings/hacking sessions. I will also give an workshop about Hughins eye on thursday 1pm.

Many great people already announced their presence and probably many other will come too. If you are into Free software and doing anything graphic related, this is the place where you should go. And the best thing is, Linuxwochen Vienna will be held at the same time and place, so there will not be only talks and workshops about graphic topics.

But the Libre Graphics Meeting needs still some support raising the money for the travel costs for speakers, there is a  pledgie where you can donate.

PDFassociation conference in Basel/Switzerland

PDF Association - The future of PDF

The PDF Technical Conference was organised by the independent PDFassociation and held this week March 27-28, 2012 in Basel, Switzerland in the rooms of Adobe. PDF experts from around the world meet there to talk about hot new stuff and to discuss technical details in a friendly atmosphere. In the following text I will highlight some of the talks.

Andreas Kraushaar from Fogra gave a talk about spectral imaging and why it is a good thing to support that inside PDF spot colours for packaging. Most of the time the number and kind of inks used for packaging is rapidly changing. So colour profiling the ICC way means a waste of too many time and material as it is not flexible enough for that. Embedded spectral data based recipes for rendering spot colours in supporting applications can improve speed and handling considerably.

Two talks elaborated on transparency in PDF. I found it amusing that the concept of a blending colour space is as well in the PDF community still a hot topic. But of course rendering to offscreen bitmaps instead of traditionally one final output buffer is quite different and developers agreed to find implementation sometimes not easy. And yes, there are many PDF viewers around, which blend Cmyk and RgbA together in one go ignoring any blending space requirement.

Florian Süßl from zipcon presented the well known ECI Altona Test Suite 2 now covering PDF/X-4 including transparencies. He elaborated on the work involved on how to create all the tests following the PDF-1.7 spec. He gave some examples where the various PDF renderers failed certain test. This is again a very valuable tool for developers of PDF software. It would be cool if such a test suite becomes part of the specification itself as is usual with other standards to help verifying implementations.

Following the topic of quality testing, David van Driessche explained the GWG test suite. I would find it really cool to embed GWG tests into a dedicated PDF document page for checking reproduction capabilities by layout applications like Scribus. That feature would be helpful for critical viewing and to easily test proofing software.

Bill McCoy from idpf presented a comparison of PDF and the HTML5/ePUB publication format. The later one is based on W3C standards like SVG and TTS with few modifications and has together with these a great potential depending on the involved people and organisations to further develop these technologies. ePUB was created to provide a independent platform for electronic publishers. And as the ePUB format comes out of open source technologies, it can as well be supported in the open source world by e.g. Mozilla and
Calibre logo.png.

The conference was beside sometimes very full rooms a well organised and interesting event.

Colour Management GSoC projects

Google Summer of Code

There is already much written about Google Summer of Code. I just want to point you to a bunch of cool colour management (CM) project ideas.

OpenICC lists some ideas, which are interesting for cross desktop CM, especially for start in bringing CM to toolkits. Interested students are basically free to select one toolkit, which fits them most.

The CMM’s for Oyranos idea shall ease access to the upcoming spectral imaging capabilities inside the ICC architecture and to use smart CMM’s like ArgyllCMS was demoed doing stand alone and within ColorSync. Smart CMMs allow to optimise colour conversions for a images and devices, which will show up in more lively photographs.

The OpenGTL/OpenCL meta backend for the Oyranos CMM framework will enable us to write CMM’s, which run on the GPU instead of the CPU. That would potentially bring a big speed improvement for deploying applications through a simple CMS API.

One student proposed to work on characterisation based ICC colour correction inside KWin, which will fly over any of the old style per single channel gamma calibration. If you like to get ride of each monitor showing you a different saturated red, green or blue desktop background, then go ahead and propose a similar project for one of your favorite compositing window managers to the openSUSE or OpenICC orgs.

And of course there are printing related CM project ideas. One for CM printing with Krita and one project for general CM print queue setup in KolorManager.