Coverage for colour/models/rgb/datasets/itut_h_273.py: 100%
35 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"""
2Recommendation ITU-T H.273 Colour Primaries (and Colourspaces)
3==============================================================
5Define the *Recommendation ITU-T H.273* colourspaces that do not belong in
6another specification or standard, or have been modified for inclusion:
8- :attr:`colour.models.RGB_COLOURSPACE_H273_GENERIC_FILM`.
9- :attr:`colour.models.RGB_COLOURSPACE_H273_22_UNSPECIFIED`.
11References
12----------
13- :cite:`InternationalTelecommunicationUnion2021` : International
14 Telecommunication Union. (2021). Recommendation ITU-T H.273 -
15 Coding-independent code points for video signal type identification.
16 https://www.itu.int/rec/T-REC-H.273-202107-I/en
17"""
19from __future__ import annotations
21import typing
23import numpy as np
25if typing.TYPE_CHECKING:
26 from colour.hints import NDArrayFloat
28from colour.models.rgb import (
29 RGB_Colourspace,
30 linear_function,
31 normalised_primary_matrix,
32)
34__author__ = "Colour Developers"
35__copyright__ = "Copyright 2013 Colour Developers"
36__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
37__maintainer__ = "Colour Developers"
38__email__ = "colour-developers@colour-science.org"
39__status__ = "Production"
41__all__ = [
42 "PRIMARIES_H273_GENERIC_FILM",
43 "WHITEPOINT_NAME_H273_GENERIC_FILM",
44 "CCS_WHITEPOINT_H273_GENERIC_FILM",
45 "MATRIX_H273_GENERIC_FILM_RGB_TO_XYZ",
46 "MATRIX_XYZ_TO_H273_GENERIC_FILM_RGB",
47 "RGB_COLOURSPACE_H273_GENERIC_FILM",
48 "PRIMARIES_H273_22_UNSPECIFIED",
49 "WHITEPOINT_NAME_H273_22_UNSPECIFIED",
50 "CCS_WHITEPOINT_H273_22_UNSPECIFIED",
51 "MATRIX_H273_22_UNSPECIFIED_RGB_TO_XYZ",
52 "MATRIX_XYZ_TO_H273_22_UNSPECIFIED_RGB",
53 "RGB_COLOURSPACE_H273_22_UNSPECIFIED",
54]
56PRIMARIES_H273_GENERIC_FILM: NDArrayFloat = np.array(
57 [
58 [0.681, 0.319], # Wratten 25
59 [0.243, 0.692], # Wratten 58
60 [0.145, 0.049], # Wratten 47
61 ]
62)
63"""
64Colourspace primaries for *Generic Film* (colour filters using Illuminant C).
66References
67----------
68- :cite:`InternationalTelecommunicationUnion2021`
69"""
71WHITEPOINT_NAME_H273_GENERIC_FILM: str = "C"
72"""
73Whitepoint name for *Generic Film* (colour filters using Illuminant C).
75References
76----------
77- :cite:`InternationalTelecommunicationUnion2021`
78"""
80CCS_WHITEPOINT_H273_GENERIC_FILM: NDArrayFloat = np.array([0.310, 0.316])
81"""
82Whitepoint chromaticity coordinates for *Generic Film* (colour filters using
83Illuminant C).
85Notes
86-----
88- *Recommendation ITU-T H.273* defines whitepoint *C* as [0.310, 0.316],
89 while *Colour* has a slightly higher precision.
91References
92----------
93- :cite:`InternationalTelecommunicationUnion2021`
94"""
96MATRIX_H273_GENERIC_FILM_RGB_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
97 PRIMARIES_H273_GENERIC_FILM, CCS_WHITEPOINT_H273_GENERIC_FILM
98)
99"""
100*Generic Film* (colour filters using Illuminant C) colourspace to *CIE XYZ*
101tristimulus values matrix.
103References
104----------
105- :cite:`InternationalTelecommunicationUnion2021`
106"""
108MATRIX_XYZ_TO_H273_GENERIC_FILM_RGB: NDArrayFloat = np.linalg.inv(
109 MATRIX_H273_GENERIC_FILM_RGB_TO_XYZ
110)
111"""
112*CIE XYZ* tristimulus values to *Generic Film* (colour filters using
113Illuminant C) colourspace matrix.
115References
116----------
117- :cite:`InternationalTelecommunicationUnion2021`
118"""
120RGB_COLOURSPACE_H273_GENERIC_FILM: RGB_Colourspace = RGB_Colourspace(
121 "ITU-T H.273 - Generic Film",
122 PRIMARIES_H273_GENERIC_FILM,
123 CCS_WHITEPOINT_H273_GENERIC_FILM,
124 WHITEPOINT_NAME_H273_GENERIC_FILM,
125 MATRIX_H273_GENERIC_FILM_RGB_TO_XYZ,
126 MATRIX_XYZ_TO_H273_GENERIC_FILM_RGB,
127 linear_function,
128 linear_function,
129)
130RGB_COLOURSPACE_H273_GENERIC_FILM.__doc__ = """
131*Recommendation ITU-T H.273* *Generic Film* (colour filters using Illuminant C)
132colourspace.
134References
135----------
136:cite:`InternationalTelecommunicationUnion2021`
137"""
140PRIMARIES_H273_22_UNSPECIFIED: NDArrayFloat = np.array(
141 [
142 [0.630, 0.340],
143 [0.295, 0.605],
144 [0.155, 0.077],
145 ]
146)
147"""
148Colourspace primaries for row *22* as specified in
149*Table 2 - Interpretation of colour primaries (ColourPrimaries) value*.
151References
152----------
153- :cite:`InternationalTelecommunicationUnion2021`
154"""
156WHITEPOINT_NAME_H273_22_UNSPECIFIED: str = "D65"
157"""
158Whitepoint name for row *22* as specified in
159*Table 2 - Interpretation of colour primaries (ColourPrimaries) value*.
161References
162----------
163- :cite:`InternationalTelecommunicationUnion2021`
164"""
166CCS_WHITEPOINT_H273_22_UNSPECIFIED: NDArrayFloat = np.array([0.3127, 0.3290])
167"""
168Whitepoint chromaticity coordinates for row *22* as specified in
169*Table 2 - Interpretation of colour primaries (ColourPrimaries) value*.
171References
172----------
173- :cite:`InternationalTelecommunicationUnion2021`
174"""
176MATRIX_H273_22_UNSPECIFIED_RGB_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
177 PRIMARIES_H273_22_UNSPECIFIED, CCS_WHITEPOINT_H273_22_UNSPECIFIED
178)
179"""
180Row *22* colourspace as specified in
181*Table 2 - Interpretation of colour primaries (ColourPrimaries) value* to
182*CIE XYZ* tristimulus values matrix.
184References
185----------
186- :cite:`InternationalTelecommunicationUnion2021`
187"""
189MATRIX_XYZ_TO_H273_22_UNSPECIFIED_RGB: NDArrayFloat = np.linalg.inv(
190 MATRIX_H273_22_UNSPECIFIED_RGB_TO_XYZ
191)
192"""
193*CIE XYZ* tristimulus values to row *22* colourspace as specified in
194*Table 2 - Interpretation of colour primaries (ColourPrimaries) value* matrix.
196References
197----------
198- :cite:`InternationalTelecommunicationUnion2021`
199"""
201RGB_COLOURSPACE_H273_22_UNSPECIFIED: RGB_Colourspace = RGB_Colourspace(
202 "ITU-T H.273 - 22 Unspecified",
203 PRIMARIES_H273_22_UNSPECIFIED,
204 CCS_WHITEPOINT_H273_22_UNSPECIFIED,
205 WHITEPOINT_NAME_H273_22_UNSPECIFIED,
206 MATRIX_H273_22_UNSPECIFIED_RGB_TO_XYZ,
207 MATRIX_XYZ_TO_H273_22_UNSPECIFIED_RGB,
208 linear_function,
209 linear_function,
210)
211RGB_COLOURSPACE_H273_22_UNSPECIFIED.__doc__ = """
212*Recommendation ITU-T H.273* row *22* colourspace as specified in
213*Table 2 - Interpretation of colour primaries (ColourPrimaries) value*.
215References
216----------
217:cite:`InternationalTelecommunicationUnion2021`
218"""