Firefox-19.0 Colour Management

Firefox detects since version 17.0 the Linux system profile, which is a great improvement for the operating system. While colour conversions on all platforms still default to on for ICC tagged content, they can be enabled for all other colours. Untagged colours will then default to sRGB instead of omitting monitor compensation for them. To do so go to the famous about:config URL and change gfx.color_management.mode from “2″ to “1″. Then use the installed CMS, e.g. on  KDE KolorManager, to set a system monitor profile, and it will be detected after restarting Firefox.

For Android there is no CMS available. That means the ICC monitor profile must be set manually or sRGB will be assumed instead. The settings name in about:config is gfx.color_management.display_profile. Enter into this string the file name with full path, if you are on Android. That procedure is somewhat inconvenient compared to desktops. However the OpenICC group has published some specifications for implementation. This might be even possible for students inside the rewarding Google Summer of Code 2013 program.

For comparison, the Chrome web browser does support colour management on some desktop versions but unfortunately not on Android.

The below false colour test image should look correctly with ICC profile enabled browsers. Look at the colour gradients and then at the colour names and compare.

False colour test imageEnjoy cross platform colour management.

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.

Firefox-8.0 Colour Management

As I wrote in my recent post, Firefox has many colour management bugs and one is of special concern toward the Oyranos Colour Management LiveCD III. This bug is now reported upstream and I proposed a patch to fix. It is double color correction with X Color Management, which is in close relation to Hal V. Engels report about Firefox color management does not honor _ICC_PROFILE X11 atoms. It affects all X11 builds and inhibits automatic selection of the system ICC monitor profile. A properly detected system monitor profile in Firefox will show default sRGB colours as well as images with ICC profiles much more in line with other colour managed applications. Getting this bug fixed is a major improvement for presenting colours on the web for Linux.

But why is this bug of so strong concern especially for the Oyranos LiveCD? The CompICC desktop colour server, which is part of the CD, uses sRGB as the assumed document colour space of all non colour managed content on screen. It needs to fool all non X Color Management spec aware applications to think the monitor is exactly in sRGB as long as they do not register with the colour server. In the sense of the X Color Management spec only that content, which is registered through specific per window colour regions is honoured to be colour managed and can use the monitors device ICC profile. This way applications like Inkscape, Krita or eog stay upward compatible and continue to work. However Firefox is not able to fetch the sRGB profile due to the above mentioned bug and falls back to a otherwise clever ICC from EDID generated profile. But Firefox colour corrects under Xorg to the from EDID profile and after that already done compensation assumes CompICC the Firefox window to be in sRGB and colour corrects to the actual setup monitor profile, which might be a from EDID generated profile as well, which leads to double colour correction. The fix of this bug lets Firefox detect the correct system profile. Double colour correction can happen as well if the monitor profile is explicitly set in the client application. So use always the system profile. Setting the system profile is really the job of a CMS like Oyranos.

As I read the code, Firefox honors embedded ICC profiles in JPEGs and PNGs. Great. These bitmaps works even in bitmaps inside SVGs, which is wonderful.

In recent changes Firefox can even handle v4 ICC profiles. These profiles are created by newer ICC profilers and became in recent years pretty widespread. But v4 profiles are not supported by default in Firefox. You need to enable them manually in Firefox´ configuration tab.

The situation for pure vectors graphics in Firefox is not in the same level as with bitmaps. The HTML/CSS color_profile element is completely ignored.

Conclusion, Firefox has after the proposed patch the ability to show with its internal colour management comparable colours of bitmaps like most other colour managed applications.

How to deploy the ICC capabilities of Firefox beyond the WWW´s sRGB as a web artist? You can place JPEG and PNG bitmap images with embedded ICC profiles inside web pages. An other way is to place such images inside SVG. While the freely available SVG editor Inkscape will not show a colour corrected preview of these images, it will not touch the JPEG and PNG images, so Firefox can render them correctly by the SVG standard.

Oyranos Colour Management LiveCD III

The third version of the Oyranos Colour Management LiveCD is based on openSUSE-12.1 and will run on x86_64 compatible PC´s. I placed the ISO image yesterday after some preparations on the better accessible SourceForge site for download. The CD project starts into a instantly colour managed desktop, which is unique under Linux.

The ICC desktop colour correction is done by the CompICC colour server. The LiveCD contains the usual mixture of colour managed graphics applications. Among them is the colour management system Oyranos, the KDE Color Management panel, a profiler based on Argyll CMS and many colour management aware applications for drawing, colour analysis and desktop publishing. Due to package size changes not even all programs from the last release are covered. I am very sorry for that. Nevertheless I decided to include Firefox, as a very wide spread every days application. After fixing a bug in Firefox, the web browser is usable under CompICC and has generally improved regarding colour management. But still it has many colour management related issues.

The desktop widget contains some test images to help you verifying, your desktop is setup correctly and works inside all colour managed applications. Covered are some JPEG, PNG, TIFF and SVG images with wide gamut and swapped channel test profiles. You will surely spot problems, as not everything in Linux desktops is really polished regarding colour management. But these test data can help you in getting a sense of, what can be relied on and what not. You can easily include other applications into your test by installing from openSUSE. And please help the projects and report bugs to the according project bug trackers. This will show interest in the issues seen with colour management and helps developers spot current weaknesses, which are otherwise overseen.

The CD uses the stable version of the Compiz compositing window manager, which is the only one being able to run under KDE. While the Oyranos CMS is packaged in openSUSE, a full screen desktop colour correction is currently not possible with KDE´s KWin or any window manager other than Compiz with the CompICC plugin. One difference to the previous LiveCD is a better useable nouveau driver, which since greatly improved and can now launch into Compiz with GPU acceleration.

Taxi @ rwx³

Sebastian Oliva presented today at the openSUSE conference the results of his ICC Device Profile Repository project to his mentoring organisation as participant of the Google Summer of Code 2011 program. As profile creation is expensive to most users, he emphasised the importance to easily share ICC profiles among these users. During the summer project, which is called now taxi, he developed a generic API to store and obtain ICC profiles through JSON requests.