• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

OpenEXR_CTL/H03-May-2022-3,3631,833

cmake/modules/H03-Jun-2014-181154

config/H03-Jun-2014-6349

ctlrender/H03-May-2022-3,8012,429

doc/H03-May-2022-

lib/H03-May-2022-99,64882,930

unittest/H03-May-2022-10,5837,028

.gitignoreH A D03-Jun-201447 44

AUTHORSH A D03-Jun-2014576 5132

CHANGELOGH A D03-Jun-20144.9 KiB135118

LICENSEH A D03-Jun-20142.6 KiB4738

README.mdH A D03-Jun-20148.6 KiB246159

configure.cmakeH A D03-May-20222.1 KiB5953

README.md

1# The Color Transformation Language #
2
3The Color Transformation Language, or CTL, is a programming language for digital
4color management.
5
6Digital color management requires translating digital images between different
7representations or color spaces.  For example, the pixels in an image may encode
8the colors that should be seen when the image is displayed on a video monitor.
9Printing this image on paper, or recording it on motion picture film requires
10transforming the pixels to an appropriate representation: Video, inks on paper
11and film all have different color gamuts and dynamic ranges.  Color mixing is
12additive for video, but subtractive for inks and film.  Video and film typically
13use three color channels, while four or more inks are used for printing on
14paper. A color management system must transform each pixel in the original image
15to corresponding amounts of ink or film density values.
16
17The details of how each pixel is transformed can be fairly complex, and they are
18often subject to artistic decisions.  When images are exchanged between
19different parties, it is desirable to exchange exact descriptions of appropriate
20color transforms along with the digital image files.  Two people in different
21geographical locations may each have a copy of the same digital image file.
22When one of them prints the image on paper, he or she wants to be sure that the
23result is the same as as for the other person.  In order to achieve identical
24results, the two must agree on details of the printing process (for example,
25inks and paper), and they must agree on the transform that converts pixels in
26the file into amounts of ink on paper.  Of course, this requires a description
27of the transform.
28
29The Color Transformation Language, or CTL, is a small programming language that
30was designed to serve as a building block for digital color management systems.
31CTL allows users to describe color transforms in a concise and unambiguous way
32by expressing them as programs.  In order to apply a given transform to an
33image, the color management system instructs a CTL interpreter to load and run
34the CTL program that describes the transform.  The original and the transformed
35image constitute the CTL program's input and output.
36
37Color transforms can be shared by distributing CTL programs. Two parties with
38the same CTL program can apply the same transform to an image.
39
40
41## Package Contents ##
42The CTL source code contains the following:
43
44* `lib/` - CTL libraries and the CTL interpreter
45* `doc/` - CTL documentation
46* `OpenEXR_CTL/` - sample CTL applications utilizing IlmImfCtl
47* `ctlrender/` - an application that allows for application of CTL transforms to
48  an image using one or more CTL scripts, potentially converting the file format
49  in the process.
50* `config/` - CMake configuration files
51* `unittest/` - unit test files
52
53## Installation Prerequisites ##
54### Required ###
55
56__CMake__
57
58CMake can be downloaded directly from www.cmake.org or use one of the commands
59below.
60
61* Ubuntu
62
63        $ sudo apt-get install cmake
64
65* Redhat
66
67        $ yum install cmake
68
69* OS X
70
71    * Install homebrew if not already installed
72
73            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
74
75    * Install cmake
76
77            $ brew install cmake
78
79__IlmBase__
80
81The CTL interpreter depends on the IlmBase software package, which can be
82downloaded from http://www.openexr.com or use one of the commands below.
83
84* Ubuntu
85
86        $ sudo apt-get install libilmbase-dev
87
88* Redhat
89
90        $ yum install ilmbase-devel
91
92* OS X
93
94    * Install homebrew if not already installed
95
96            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
97
98    * Install ilmBase
99
100            $ brew install ilmBase
101
102
103### Suggested ###
104
105__OpenEXR__
106
107If you want to use CTL together with the OpenEXR image file format, you should
108download OpenEXR. The sample programs included with the CTL package (i.e.
109ctlrender, dpxexr, exr_ctl_exr, etc.) require that OpenEXR be installed. OpenEXR
110can be downloaded from http://www.openexr.com/downloads.html or using one of the
111commands below.
112
113* Ubuntu
114
115        $ sudo apt-get install libopenexr-dev
116
117* Redhat
118
119        $ yum install OpenEXR-devel
120
121* OS X
122
123    * Install homebrew if not already installed
124
125            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
126
127    * Install OpenEXR
128
129            $ brew install openexr
130
131__TIFF__
132
133If you want to use CTL together with the TIFF image file format, you should download libTiff. libTiff can be downloaded from http://www.remotesensing.org/libtiff/ or using one of the commands below.
134
135* Ubuntu
136
137        $ sudo apt-get install libtiff4
138
139* Redhat
140
141        $ yum install libtiff4
142
143* OS X
144
145    * Install homebrew if not already installed
146
147            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
148
149    * Install TIFF
150
151            $ brew install libtiff
152
153__ACES Container__
154
155ctlrender is able to write files compliant with SMPTE S2065-4. This
156functionality requires the aces_container library, the latest version of which
157can be downloaded from https://github.com/ampas/aces_container
158
159* OS X
160
161    * Install homebrew if not already installed
162
163            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
164
165    * Install ACES Container
166
167            $ brew install aces_container
168
169## Installation ##
170
171* OS X
172
173    * Install homebrew if not already installed
174
175            $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
176
177    * Install CTL
178
179        Homebrew will install all dependancies (cmake, ilmbase, opener, aces_container, libtiff) automatically by default.  No need to install each manually.
180
181            $ brew install ctl
182
183
184* Redhat, Ubuntu
185
186    from the root source directory:
187
188        $ mkdir build && cd build
189        $ cmake ..
190        $ make
191        $ sudo make install
192
193    to run the optional unit tests:
194
195        $ sudo make check
196
197## License ##
198
199Color Transformation Language is distributed under the following license:
200
201Copyright © 2013 Academy of Motion Picture Arts and Sciences ("A.M.P.A.S.").
202Portions contributed by others as indicated. All rights reserved.
203
204A worldwide, royalty-free, non-exclusive right to copy, modify, create
205derivatives, and use, in source and binary forms, is hereby granted, subject to
206acceptance of this license. Performance of any of the aforementioned acts
207indicates acceptance to be bound by the following terms and conditions:
208
209* Copies of source code, in whole or in part, must retain the above copyright
210notice, this list of conditions and the Disclaimer of Warranty.
211
212* Use in binary form must retain the above copyright notice, this list of
213conditions and the Disclaimer of Warranty in the documentation and/or other
214materials provided with the distribution.
215
216* Nothing in this license shall be deemed to grant any rights to trademarks,
217copyrights, patents, trade secrets or any other intellectual property of
218A.M.P.A.S. or any contributors, except as expressly stated herein.
219
220* Neither the name "A.M.P.A.S." nor the name of any other contributors to this
221software may be used to endorse or promote products derivative of or based on
222this software without express prior written permission of A.M.P.A.S. or the
223contributors, as appropriate.
224
225This license shall be construed pursuant to the laws of the State of California,
226and any disputes related thereto shall be subject to the jurisdiction of the
227courts therein.
228
229Disclaimer of Warranty: THIS SOFTWARE IS PROVIDED BY A.M.P.A.S. AND CONTRIBUTORS
230"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
231THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
232NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL A.M.P.A.S., OR ANY
233CONTRIBUTORS OR DISTRIBUTORS, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
234SPECIAL, EXEMPLARY, RESITUTIONARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
235LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
236PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
237LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
238OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
239ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
240
241WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, THE ACADEMY SPECIFICALLY
242DISCLAIMS ANY REPRESENTATIONS OR WARRANTIES WHATSOEVER RELATED TO PATENT OR
243OTHER INTELLECTUAL PROPERTY RIGHTS IN THE ACADEMY COLOR ENCODING SYSTEM, OR
244APPLICATIONS THEREOF, HELD BY PARTIES OTHER THAN A.M.P.A.S.,WHETHER DISCLOSED OR
245UNDISCLOSED.
246