Skip to content

Commit ed42442

Browse files
committed
Implement support for *Fujifilm* *F-Gamut C* RGB colourspace.
Closes #1315.
1 parent e34321e commit ed42442

File tree

7 files changed

+65
-5
lines changed

7 files changed

+65
-5
lines changed

README.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1373,6 +1373,7 @@ RGB Colourspaces
13731373
'ERIMM RGB',
13741374
'Ekta Space PS 5',
13751375
'F-Gamut',
1376+
'F-Gamut C',
13761377
'FilmLight E-Gamut',
13771378
'Gamma 1.8 Encoded Rec.709',
13781379
'Gamma 2.2 Encoded AP1',

colour/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,7 @@
848848
"RGB_COLOURSPACE_ERIMM_RGB",
849849
"RGB_COLOURSPACE_FILMLIGHT_E_GAMUT",
850850
"RGB_COLOURSPACE_F_GAMUT",
851+
"RGB_COLOURSPACE_F_GAMUT_C",
851852
"RGB_COLOURSPACE_G18_REC709_SCENE",
852853
"RGB_COLOURSPACE_G22_ADOBERGB_SCENE",
853854
"RGB_COLOURSPACE_G22_AP1_SCENE",

colour/models/rgb/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,7 @@
486486
"RGB_COLOURSPACE_ERIMM_RGB",
487487
"RGB_COLOURSPACE_FILMLIGHT_E_GAMUT",
488488
"RGB_COLOURSPACE_F_GAMUT",
489+
"RGB_COLOURSPACE_F_GAMUT_C",
489490
"RGB_COLOURSPACE_G18_REC709_SCENE",
490491
"RGB_COLOURSPACE_G22_ADOBERGB_SCENE",
491492
"RGB_COLOURSPACE_G22_AP1_SCENE",

colour/models/rgb/datasets/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
from .itur_bt_470 import RGB_COLOURSPACE_BT470_525, RGB_COLOURSPACE_BT470_625
3636
from .itur_bt_709 import RGB_COLOURSPACE_BT709
3737
from .itur_bt_2020 import RGB_COLOURSPACE_BT2020
38-
from .fujifilm_f_gamut import RGB_COLOURSPACE_F_GAMUT
38+
from .fujifilm import RGB_COLOURSPACE_F_GAMUT, RGB_COLOURSPACE_F_GAMUT_C
3939
from .itut_h_273 import (
4040
RGB_COLOURSPACE_H273_GENERIC_FILM,
4141
RGB_COLOURSPACE_H273_22_UNSPECIFIED,
@@ -139,6 +139,8 @@
139139
"RGB_COLOURSPACE_BT470_625",
140140
"RGB_COLOURSPACE_BT709",
141141
"RGB_COLOURSPACE_BT2020",
142+
"RGB_COLOURSPACE_F_GAMUT",
143+
"RGB_COLOURSPACE_F_GAMUT_C",
142144
"RGB_COLOURSPACE_H273_GENERIC_FILM",
143145
"RGB_COLOURSPACE_H273_22_UNSPECIFIED",
144146
"RGB_COLOURSPACE_CIE_RGB",
@@ -186,7 +188,6 @@
186188
"RGB_COLOURSPACE_sRGB",
187189
"RGB_COLOURSPACE_V_GAMUT",
188190
"RGB_COLOURSPACE_XTREME_RGB",
189-
"RGB_COLOURSPACE_F_GAMUT",
190191
]
191192
__all__ += [
192193
"RGB_COLOURSPACE_LIN_REC709_SCENE",

colour/models/rgb/datasets/fujifilm_f_gamut.py renamed to colour/models/rgb/datasets/fujifilm.py

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,34 @@
11
"""
2-
Fujifilm F-Gamut Colourspace
3-
============================
2+
Fujifilm Colourspaces
3+
=====================
44
5-
Define the *Fujifilm F-Gamut* colourspace:
5+
Define the *Fujifilm* colourspaces:
66
77
- :attr:`colour.models.RGB_COLOURSPACE_F_GAMUT`.
8+
- :attr:`colour.models.RGB_COLOURSPACE_F_GAMUT_C`.
89
910
References
1011
----------
1112
- :cite:`Fujifilm2022a` : Fujifilm. (2022). F-Log Data Sheet Ver.1.1 (pp.
1213
1-4). https://dl.fujifilm-x.com/support/lut/F-Log_DataSheet_E_Ver.1.1.pdf
14+
- :cite:`Fujifilm2024` : Fujifilm. (2024). F-Log2 C Data Sheet Ver.1.0.
15+
Retrieved December 8, 2024, from
16+
https://dl.fujifilm-x.com/support/lut/F-Log2C_DataSheet_E_Ver.1.0.pdf
1317
"""
1418

1519
from __future__ import annotations
1620

21+
import numpy as np
22+
23+
from colour.colorimetry import CCS_ILLUMINANTS
1724
from colour.hints import NDArrayFloat
1825
from colour.models.rgb import (
1926
RGB_Colourspace,
2027
log_decoding_FLog,
28+
log_decoding_FLog2,
2129
log_encoding_FLog,
30+
log_encoding_FLog2,
31+
normalised_primary_matrix,
2232
)
2333
from colour.models.rgb.datasets.itur_bt_2020 import (
2434
CCS_WHITEPOINT_BT2020,
@@ -76,3 +86,47 @@
7686
----------
7787
:cite:`Fujifilm2022a`
7888
"""
89+
90+
91+
PRIMARIES_F_GAMUT_C: NDArrayFloat = np.array(
92+
[
93+
[0.73470, 0.26530],
94+
[0.02630, 0.97370],
95+
[0.11730, -0.02240],
96+
]
97+
)
98+
"""*Fujifilm F-Gamut C* colourspace primaries."""
99+
100+
WHITEPOINT_NAME_F_GAMUT_C: str = "D65"
101+
"""*Fujifilm F-Gamut C* colourspace whitepoint name."""
102+
103+
CCS_WHITEPOINT_F_GAMUT_C: NDArrayFloat = CCS_ILLUMINANTS[
104+
"CIE 1931 2 Degree Standard Observer"
105+
][WHITEPOINT_NAME_F_GAMUT_C]
106+
"""*Fujifilm F-Gamut C* colourspace whitepoint chromaticity coordinates."""
107+
108+
MATRIX_F_GAMUT_C_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
109+
PRIMARIES_F_GAMUT_C, CCS_WHITEPOINT_F_GAMUT_C
110+
)
111+
"""*Fujifilm F-Gamut C* colourspace to *CIE XYZ* tristimulus values matrix."""
112+
113+
MATRIX_XYZ_TO_F_GAMUT_C: NDArrayFloat = np.linalg.inv(MATRIX_F_GAMUT_C_TO_XYZ)
114+
"""*CIE XYZ* tristimulus values to *Fujifilm F-Gamut C* colourspace matrix."""
115+
116+
RGB_COLOURSPACE_F_GAMUT_C: RGB_Colourspace = RGB_Colourspace(
117+
"F-Gamut C",
118+
PRIMARIES_F_GAMUT_C,
119+
CCS_WHITEPOINT_F_GAMUT_C,
120+
WHITEPOINT_NAME_F_GAMUT_C,
121+
MATRIX_F_GAMUT_C_TO_XYZ,
122+
MATRIX_XYZ_TO_F_GAMUT_C,
123+
log_encoding_FLog2,
124+
log_decoding_FLog2,
125+
)
126+
RGB_COLOURSPACE_F_GAMUT_C.__doc__ = """
127+
*Fujifilm F-Gamut C* colourspace.
128+
129+
References
130+
----------
131+
:cite:`Fujifilm2024`
132+
"""

docs/colour.models.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,7 @@ RGB Colourspaces
508508
RGB_COLOURSPACE_ERIMM_RGB
509509
RGB_COLOURSPACE_FILMLIGHT_E_GAMUT
510510
RGB_COLOURSPACE_F_GAMUT
511+
RGB_COLOURSPACE_F_GAMUT_C
511512
RGB_COLOURSPACE_G18_REC709_SCENE
512513
RGB_COLOURSPACE_G22_ADOBERGB_SCENE
513514
RGB_COLOURSPACE_G22_AP1_SCENE

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,7 @@ RGB Colourspaces
11081108
'ERIMM RGB',
11091109
'Ekta Space PS 5',
11101110
'F-Gamut',
1111+
'F-Gamut C',
11111112
'FilmLight E-Gamut',
11121113
'Gamma 1.8 Encoded Rec.709',
11131114
'Gamma 2.2 Encoded AP1',

0 commit comments

Comments
 (0)