summaryrefslogtreecommitdiff
path: root/OpenIcc.mdwn
blob: 2e62ec8da6ca33895586573e5784d5c17680150b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189


# OpenICC project

OpenICC has two main goals. The first goal is to work out a common set of settings for color savvy applications to share profiles and settings. The second goal is to bring together those developers in areas like printing, display and desktop applications to work together to make color management end to end work for open source applications. 

A draft specification is planned at a later stage. 

[[!toc 3]] 


# Getting involved

If you are planning to add color management to your software project or you are hardware manufacturer who wishes to extend his clients base by dipping your toes into opensource water, we encourage you to join our mailing list. Subscription page is [[just round the corner|http://lists.freedesktop.org/mailman/listinfo/openicc]]. 

* Email: [[OpenICC email list at freedesktop.org|http://lists.freedesktop.org/mailman/listinfo/openicc]] 
* [[IRC|http://webchat.freenode.net?channels=openicc&uio=MT11bmRlZmluZWQb1]]: the channel is called [[#openicc @ irc.freenode.net|irc://irc.freenode.net/openicc]] 

# Who's taking part

Currently, OpenICC is an informal group of developers exchanging ideas and concepts on integrating ICC color management. Here is a mostly complete list of project developers involved in this discussion: 

* [[ArgyllCMS|http://www.argyllcms.com]], an experimental, open source, ICC compatible color management system. 
* [[CinePaint|http://cinepaint.sourceforge.net]], a 16-bit photo retouching application, best suited for video. 
* [[colord|http://colord.hughsie.com/index.html]], a system service to manage, install and generate color profiles 
* [[CUPS|http://cups.org]], printing software. 
* [[GraphicsMagick|http://www.graphicsmagick.org/]], is the swiss army knife of image processing. 
* [[GIMP|http://www.gimp.org]], popular pixel manipulation application 
* [[GhostScript|http://www.ghostscript.com/]], an interpreter for the [[PostScript|PostScript]] language and for PDF 
* [[Gutenprint|http://gutenprint.org]], a set of very high quality drivers for printers, with particular emphasis on inkjets. 
* [[ImageMagick|http://www.imagemagick.net]],  image editing collection. 
* [[Inkscape|http://www.inkscape.org]], a vector graphics editor. 
* [[Krita|http://www.krita.org]], and [[Karbon|http://www.calligra.org]], the raster and vector image manipulation applications of the Calligra suite. 
* [[LittleCMS|http://www.littlecms.com]], a widely used open source color management system. 
* [[Poppler|http://poppler.freedesktop.org/]], a PDF rendering library based on the xpdf-3.0 code base. 
* [[LPROF|http://lprof.sourceforge.net]], an open source profiler that uses LCMS. 
* [[Scribus|http://www.scribus.net]], an open source page layout application. 
* [[Oyranos|http://www.oyranos.org]], a colour management system for configuration, user interfaces and much more. 

# Profiles for standard print condition and their licenses

For the creation and exchange of images, vector graphics and documents (e.g. PDF) it makes sense, when applications can use a standard set of ICC-profiles which are preinstalled in an known directoty like eg. share/color/profile on every computer. Currently, different organisations, projects and vendors are offering such standard profile packages with different licenses. Not all licenses are compatible to integrate these profile packages into LINUX distributions.  

Furthermore in the graphic arts, there are so called "reference printing conditions" which represent color measurement-data (also called characterization-data) representing a printing standard. Such characterization-data are a basis for calculating ICC-profiles representing a printing standard.  

Several packages for standard ICC profiles are containing CMYK-profiles with different names and calculated with different profiling packages but representing the same reference printing condition. The International Color Consortium ICC hosts a [[registry|http://www.color.org/registry2.xalter]] for worldwide used reference printing conditions. 

Future new ICC profiles for OpenICC should use the same [[reviewed|http://www.crynwr.com/cgi-bin/ezmlm-cgi?3:mss:16756:201007:jgkgmfkbkeglodlhbmnc]] [[license as the ICC|http://www.color.org/registry/profileregistration.xalter]]. 

An overview about available packages is here [[OpenIcc/ProfilePackages|OpenIcc/ProfilePackages]] 


# ICC is going open source

The ICC itself has began an open source project: 

* [[http://sourceforge.net/projects/sampleicc/|http://sourceforge.net/projects/sampleicc/]] 
SampleICC provides an open source platform independent C++ library for reading, writing, manipulating, and applying ICC profiles along with applications that make use of this library. 


# Legal issues

In the middle of the 90's, there were some patent wars concerning color management. Specifically the company EFI sued a lot of other companies that had implemented an RGB to CMYK conversion in their applications. Actually, it is important to be aware of which color management features are part of the ICC specs, and which are going beyond the ICC specs. 

Implementing color management according to ICC specs is very safe. Implementing extended functions that are not part of the ICC specification could may be dangerous.  This concerns especially LittleCMS, which is the standard CMM for more or less all open source applications dealing with color management. (Of course, ArgyllCMS also contains a CMM...) 

Some of this extended functionality can be very helpful for some use cases. So from the point of view of the user, it makes a lot of sense to implement and use them. One example is enhanced options for CMYK to CMYK conversions. Such functions are useful for the colormanagement of documents for the graphic arts. 

It can be implemented as special function for the CMM, or it can be solved by precalculating a devicelink-profile, which is used with a ICC-conforming CMM. If it is, for example, implemented as special function in LittleCMS, a legal issue concerning littleCMS could touch all applications which make use of LittleCMS. 

If it is implemented in a standalone software, which generates and delivers a devicelink-profile, the legal issue covers only the standalone software. The use of devicelink-profiles in other software is a standard feature of the ICC specs. 


# Specifications

* [[Standards|http://www.oyranos.org/wiki/index.php?title=Standards]] overview on [[ColourWiki|http://www.oyranos.org/wiki/]] 
* [[ICC Profiles in X Specification|http://www.freedesktop.org/wiki/Specifications/icc_profiles_in_x_spec]] 
* [[ICC meta Tag for Monitor Profiles|http://www.freedesktop.org/wiki/Specifications/icc_meta_tag_for_monitor_profiles]] 
* [[Oyranos X11 Requirements|http://www.oyranos.org/wiki/index.php?title=Oyranos_X11_Requirements]] 

# Proposals


## White papers for enhancing the ICC-specs

Observing real world colormanagement-workflows with ICC-profiles, it is clear that some problems should be solved with better and more clear defined ICC-specs. Actually, some of such enhancements can be done through "white papers". Such a white paper could e.g. describe extended functions of the CMM. One example of such enhancement is the description of Blackpoint Compensation in Adobe Products at *[[http://www.color.org/Adobe1bpc.pdf|http://www.color.org/Adobe1bpc.pdf]] 

If developers or color management consultants think, that the ICC-specs need some enhancements, the OpenICC wiki could be used as collaborative platform to produce such whitepapers. 

Every proposal for an ICC Whitepaper should be a Subpage in the OpenICC wiki and should be structured as following: 

* Which real world use cases are addressed 
* which kind of applications are targeted 
* how should it be implemented technically 
* how should it be implemented in the user interface. 

### Actual proposals for ICC whitepapers


#### Better handling of ICC Grey Objects

[[IccGreyObjects|IccGreyObjects]] 


#### Device Settings in ICC

[[ICC meta data tag|http://www.color.org/ICCSpecRevision_25-02-10_dictType.pdf]] - the base specification to store a meta data key/value list in ICC profiles. 

[[ICC meta Tag for Monitor Profiles|http://www.freedesktop.org/wiki/Specifications/icc_meta_tag_for_monitor_profiles]] stores device infos from EDID 


#### HDR Rendering Description

The goal of the [[HdrRenderingDescription|HdrRenderingDescription]] is to provide a way of, how to render an LDR representation from a certain HDR image in different applications to appear similar. Such a description should be included into a ICC style colour profile. As one step a [[OpenIccForGoogleSoC2007|OpenIccForGoogleSoC2007]] project was underway. 


## General Topics


### Directory scheme for Colour Management

[[OpenICC Directory Proposal|http://www.oyranos.com/wiki/index.php?title=OpenIccDirectoryProposal]] 


### X Color Management spec

[[Version 0.4 Draft 1|http://oyranos.org/scm?p=xcolor.git;a=blob;f=docs/X_Color_Management.txt]] is public. The goal is to communicate ICC colour regions between server and clients. The implementation is available in libXcm-0.2.x. Some tools and plugin in the Oyranos examples directory support the draft by using libXcm. 


## Requirements of Applications and Services


### Link Collection

* [[Applications at ColourWiki|https://www.oyranos.org/wiki/index.php?title=Applications]] 
* [[Cairo|http://www.freedesktop.org/wiki/OpenIcc/Cairo]] 

### PPD colouring

End user applications want to assign ICC profiles to a combination of printer device, a driver and a set of colour related driver options. Thus for PPD to support this scheme, it is necessary to know, which PPD option is colour related. The proposal suggests a enumerated list of PPD key words named ColorKeyWords, containing a semicolon ';' separated list of PPD key words. The listed keys relate to colour and thus with their values to the ICC profile selection at application level. 


# LINUX color management a proposal for implementation

[[OpenIcc/LinuxCmProposal|OpenIcc/LinuxCmProposal]] describes a roadmap for color management under LINUX with the interaction of 

* A profile repository connecting devices, documents and profiles 
* Engine for ICC color transformations of Image maps 
* Cairo 
* Ghostscript 
* monitor output 
* printer driver (e.g. Gutenprint or Turboprint) 
* CUPS / PPDs 
* File export 
* application interface 
[[ColourWiki|http://www.oyranos.org/wiki]] contains [[schemes for colour managed printing|http://www.oyranos.org/wiki/index.php?title=Device_Settings#Printing]]. They are graphical and in some parts more technical. 


# Color managed Printing Path

[[OpenIcc/ColorMangedPrintingPath|OpenIcc/ColorMangedPrintingPath]] is a proposal for coordinating developments of Gutenprint, CPD and pdftoraster moduls like e.g. [[GhostScript|GhostScript]] to create a reliable color managed printing path both for standard users, color enthusiasts and color professionals. 


# Internet Printing Protocol

The page [[InternetPrintingProtocol|InternetPrintingProtocol]] collects informations about color managed printing according the Internet Printing Protocol IPP. 


# Google SoC

Suggestions for Googles Summer of Code 2012 are here [[OpenIcc/GoogleSoC2012|OpenIcc/GoogleSoC2012]].  Students will find our project goals and ideas, contact persons, requirements and other hints there. 

Students who successfully complete their projects will receive a significant stipend from Google for their work.  Not our application is not agreed upon. For the older projects and ideas see here [[OpenIcc/GoogleSoC2011|OpenIcc/GoogleSoC2011]], [[OpenIcc/GoogleSoC2010|OpenIcc/GoogleSoC2010]], [[OpenIcc/GoogleSoC2009|OpenIcc/GoogleSoC2009]], [[OpenIccForGoogleSoC2008|OpenIccForGoogleSoC2008]] and here [[OpenIccForGoogleSoC2007|OpenIccForGoogleSoC2007]]. 


# Events

[[Linux Color Management Hackfest Brno 9th till 12th November 2012|http://www.freedesktop.org/wiki/OpenIcc/Events/Hackfest/2012]] 

[[Elder OpenICC Events|OpenIcc/Events]] 



---

 
# Help for editors

Here is the editing manual [[http://www.freedesktop.org/wiki/HelpContents|http://www.freedesktop.org/wiki/HelpContents]]