Coverage for colour/models/rgb/datasets/rimm_romm_rgb.py: 100%
60 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
1"""
2RIMM, ROMM and ERIMM Encodings
3==============================
5Define the *RIMM, ROMM and ERIMM* encodings:
7- :attr:`colour.models.RGB_COLOURSPACE_ROMM_RGB`.
8- :attr:`colour.models.RGB_COLOURSPACE_RIMM_RGB`.
9- :attr:`colour.models.RGB_COLOURSPACE_ERIMM_RGB`.
10- :attr:`colour.models.RGB_COLOURSPACE_PROPHOTO_RGB`.
12References
13----------
14- :cite:`ANSI2003a` : ANSI. (2003). Specification of ROMM RGB (pp. 1-2).
15 http://www.color.org/ROMMRGB.pdf
16- :cite:`Spaulding2000b` : Spaulding, K. E., Woolfe, G. J., & Giorgianni, E.
17 J. (2000). Reference Input/Output Medium Metric RGB Color Encodings
18 (RIMM/ROMM RGB) (pp. 1-8). http://www.photo-lovers.org/pdf/color/romm.pdf
19"""
21from __future__ import annotations
23import typing
25import numpy as np
27from colour.colorimetry import CCS_ILLUMINANTS
29if typing.TYPE_CHECKING:
30 from colour.hints import NDArrayFloat
32from colour.models.rgb import (
33 RGB_Colourspace,
34 cctf_decoding_RIMMRGB,
35 cctf_decoding_ROMMRGB,
36 cctf_encoding_RIMMRGB,
37 cctf_encoding_ROMMRGB,
38 log_decoding_ERIMMRGB,
39 log_encoding_ERIMMRGB,
40)
42__author__ = "Colour Developers"
43__copyright__ = "Copyright 2013 Colour Developers"
44__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
45__maintainer__ = "Colour Developers"
46__email__ = "colour-developers@colour-science.org"
47__status__ = "Production"
49__all__ = [
50 "PRIMARIES_ROMM_RGB",
51 "WHITEPOINT_NAME_ROMM_RGB",
52 "CCS_WHITEPOINT_ROMM_RGB",
53 "MATRIX_ROMM_RGB_TO_XYZ",
54 "MATRIX_XYZ_TO_ROMM_RGB",
55 "RGB_COLOURSPACE_ROMM_RGB",
56 "PRIMARIES_RIMM_RGB",
57 "WHITEPOINT_NAME_RIMM_RGB",
58 "CCS_WHITEPOINT_RIMM_RGB",
59 "MATRIX_RIMM_RGB_TO_XYZ",
60 "MATRIX_XYZ_TO_RIMM_RGB",
61 "RGB_COLOURSPACE_RIMM_RGB",
62 "PRIMARIES_ERIMM_RGB",
63 "WHITEPOINT_NAME_ERIMM_RGB",
64 "CCS_WHITEPOINT_ERIMM_RGB",
65 "MATRIX_ERIMM_RGB_TO_XYZ",
66 "MATRIX_XYZ_TO_ERIMM_RGB",
67 "RGB_COLOURSPACE_ERIMM_RGB",
68 "PRIMARIES_PROPHOTO_RGB",
69 "WHITEPOINT_NAME_PROPHOTO_RGB",
70 "CCS_WHITEPOINT_PROPHOTO_RGB",
71 "MATRIX_PROPHOTO_RGB_TO_XYZ",
72 "MATRIX_XYZ_TO_PROPHOTO_RGB",
73 "RGB_COLOURSPACE_PROPHOTO_RGB",
74]
76PRIMARIES_ROMM_RGB: NDArrayFloat = np.array(
77 [
78 [0.7347, 0.2653],
79 [0.1596, 0.8404],
80 [0.0366, 0.0001],
81 ]
82)
83"""*ROMM RGB* colourspace primaries."""
85WHITEPOINT_NAME_ROMM_RGB: str = "D50"
86"""*ROMM RGB* colourspace whitepoint name."""
88CCS_WHITEPOINT_ROMM_RGB: NDArrayFloat = CCS_ILLUMINANTS[
89 "CIE 1931 2 Degree Standard Observer"
90][WHITEPOINT_NAME_ROMM_RGB]
91"""*ROMM RGB* colourspace whitepoint chromaticity coordinates."""
93MATRIX_ROMM_RGB_TO_XYZ: NDArrayFloat = np.array(
94 [
95 [0.7977, 0.1352, 0.0313],
96 [0.2880, 0.7119, 0.0001],
97 [0.0000, 0.0000, 0.8249],
98 ]
99)
100"""*ROMM RGB* colourspace to *CIE XYZ* tristimulus values matrix."""
102MATRIX_XYZ_TO_ROMM_RGB: NDArrayFloat = np.array(
103 [
104 [1.3460, -0.2556, -0.0511],
105 [-0.5446, 1.5082, 0.0205],
106 [0.0000, 0.0000, 1.2123],
107 ]
108)
109"""*CIE XYZ* tristimulus values to *ROMM RGB* colourspace matrix."""
111RGB_COLOURSPACE_ROMM_RGB: RGB_Colourspace = RGB_Colourspace(
112 "ROMM RGB",
113 PRIMARIES_ROMM_RGB,
114 CCS_WHITEPOINT_ROMM_RGB,
115 WHITEPOINT_NAME_ROMM_RGB,
116 MATRIX_ROMM_RGB_TO_XYZ,
117 MATRIX_XYZ_TO_ROMM_RGB,
118 cctf_encoding_ROMMRGB,
119 cctf_decoding_ROMMRGB,
120)
121RGB_COLOURSPACE_ROMM_RGB.__doc__ = """
122*ROMM RGB* colourspace.
124References
125----------
126:cite:`ANSI2003a`, :cite:`Spaulding2000b`
127"""
129PRIMARIES_RIMM_RGB: NDArrayFloat = PRIMARIES_ROMM_RGB
130"""*RIMM RGB* colourspace primaries."""
132WHITEPOINT_NAME_RIMM_RGB: str = WHITEPOINT_NAME_ROMM_RGB
133"""*RIMM RGB* colourspace whitepoint name."""
135CCS_WHITEPOINT_RIMM_RGB: NDArrayFloat = CCS_WHITEPOINT_ROMM_RGB
136"""*RIMM RGB* colourspace whitepoint chromaticity coordinates."""
138MATRIX_RIMM_RGB_TO_XYZ: NDArrayFloat = MATRIX_ROMM_RGB_TO_XYZ
139"""*RIMM RGB* colourspace to *CIE XYZ* tristimulus values matrix."""
141MATRIX_XYZ_TO_RIMM_RGB: NDArrayFloat = MATRIX_XYZ_TO_ROMM_RGB
142"""*CIE XYZ* tristimulus values to *RIMM RGB* colourspace matrix."""
144RGB_COLOURSPACE_RIMM_RGB: RGB_Colourspace = RGB_Colourspace(
145 "RIMM RGB",
146 PRIMARIES_RIMM_RGB,
147 CCS_WHITEPOINT_RIMM_RGB,
148 WHITEPOINT_NAME_RIMM_RGB,
149 MATRIX_RIMM_RGB_TO_XYZ,
150 MATRIX_XYZ_TO_RIMM_RGB,
151 cctf_encoding_RIMMRGB,
152 cctf_decoding_RIMMRGB,
153)
154RGB_COLOURSPACE_RIMM_RGB.__doc__ = """
155*RIMM RGB* colourspace. In cases in which it is necessary to identify a
156specific precision level, the notation *RIMM8 RGB*, *RIMM12 RGB* and
157*RIMM16 RGB* is used.
159References
160----------
161:cite:`Spaulding2000b`
162"""
164PRIMARIES_ERIMM_RGB: NDArrayFloat = PRIMARIES_ROMM_RGB
165"""*ERIMM RGB* colourspace primaries."""
167WHITEPOINT_NAME_ERIMM_RGB: str = WHITEPOINT_NAME_ROMM_RGB
168"""*ERIMM RGB* colourspace whitepoint name."""
170CCS_WHITEPOINT_ERIMM_RGB: NDArrayFloat = CCS_WHITEPOINT_ROMM_RGB
171"""*ERIMM RGB* colourspace whitepoint chromaticity coordinates."""
173MATRIX_ERIMM_RGB_TO_XYZ: NDArrayFloat = MATRIX_ROMM_RGB_TO_XYZ
174"""*ERIMM RGB* colourspace to *CIE XYZ* tristimulus values matrix."""
176MATRIX_XYZ_TO_ERIMM_RGB: NDArrayFloat = MATRIX_XYZ_TO_ROMM_RGB
177"""*CIE XYZ* tristimulus values to *ERIMM RGB* colourspace matrix."""
179RGB_COLOURSPACE_ERIMM_RGB: RGB_Colourspace = RGB_Colourspace(
180 "ERIMM RGB",
181 PRIMARIES_ERIMM_RGB,
182 CCS_WHITEPOINT_ERIMM_RGB,
183 WHITEPOINT_NAME_ERIMM_RGB,
184 MATRIX_ERIMM_RGB_TO_XYZ,
185 MATRIX_XYZ_TO_ERIMM_RGB,
186 log_encoding_ERIMMRGB,
187 log_decoding_ERIMMRGB,
188)
189RGB_COLOURSPACE_ERIMM_RGB.__doc__ = """
190*ERIMM RGB* colourspace.
192References
193----------
194:cite:`Spaulding2000b`
195"""
197PRIMARIES_PROPHOTO_RGB: NDArrayFloat = PRIMARIES_ROMM_RGB
198"""*ProPhoto RGB* colourspace primaries."""
200WHITEPOINT_NAME_PROPHOTO_RGB: str = WHITEPOINT_NAME_ROMM_RGB
201"""*ProPhoto RGB* colourspace whitepoint name."""
203CCS_WHITEPOINT_PROPHOTO_RGB: NDArrayFloat = CCS_WHITEPOINT_ROMM_RGB
204"""*ProPhoto RGB* colourspace whitepoint chromaticity coordinates."""
206MATRIX_PROPHOTO_RGB_TO_XYZ: NDArrayFloat = MATRIX_ROMM_RGB_TO_XYZ
207"""*ProPhoto RGB* colourspace to *CIE XYZ* tristimulus values matrix."""
209MATRIX_XYZ_TO_PROPHOTO_RGB: NDArrayFloat = MATRIX_XYZ_TO_ROMM_RGB
210"""*CIE XYZ* tristimulus values to *ProPhoto RGB* colourspace matrix."""
212RGB_COLOURSPACE_PROPHOTO_RGB: RGB_Colourspace = RGB_Colourspace(
213 "ProPhoto RGB",
214 PRIMARIES_PROPHOTO_RGB,
215 CCS_WHITEPOINT_PROPHOTO_RGB,
216 WHITEPOINT_NAME_PROPHOTO_RGB,
217 MATRIX_PROPHOTO_RGB_TO_XYZ,
218 MATRIX_XYZ_TO_PROPHOTO_RGB,
219 # NOTE: The "colour.models.cctf_encoding_ProPhotoRGB" and
220 # "colour.models.cctf_decoding_ProPhotoRGB" definitions cannot be pickled
221 # properly within that class.
222 cctf_encoding_ROMMRGB,
223 cctf_decoding_ROMMRGB,
224)
225RGB_COLOURSPACE_PROPHOTO_RGB.__doc__ = """
226*ProPhoto RGB* colourspace, an alias colourspace for *ROMM RGB*.
228References
229----------
230:cite:`ANSI2003a`, :cite:`Spaulding2000b`
231"""