Coverage for colour/models/rgb/datasets/blackmagic_design.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-11-15 19:01 +1300

1""" 

2Blackmagic Design Colourspaces 

3============================== 

4 

5Define the *Blackmagic Design* *RGB* colourspaces: 

6 

7- :attr:`colour.models.RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT`. 

8 

9References 

10---------- 

11- :cite:`BlackmagicDesign2021` : Blackmagic Design. (2021). Blackmagic 

12 Generation 5 Color Science. https://drive.google.com/file/d/\ 

131FF5WO2nvI9GEWb4_EntrBoV9ZIuFToZd/view 

14""" 

15 

16from __future__ import annotations 

17 

18import typing 

19 

20import numpy as np 

21 

22from colour.colorimetry import CCS_ILLUMINANTS 

23 

24if typing.TYPE_CHECKING: 

25 from colour.hints import NDArrayFloat 

26 

27from colour.models.rgb import ( 

28 RGB_Colourspace, 

29 oetf_BlackmagicFilmGeneration5, 

30 oetf_inverse_BlackmagicFilmGeneration5, 

31) 

32 

33__author__ = "Colour Developers" 

34__copyright__ = "Copyright 2013 Colour Developers" 

35__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause" 

36__maintainer__ = "Colour Developers" 

37__email__ = "colour-developers@colour-science.org" 

38__status__ = "Production" 

39 

40__all__ = [ 

41 "PRIMARIES_BLACKMAGIC_WIDE_GAMUT", 

42 "WHITEPOINT_NAME_BLACKMAGIC_WIDE_GAMUT", 

43 "CCS_WHITEPOINT_BLACKMAGIC_WIDE_GAMUT", 

44 "MATRIX_BLACKMAGIC_WIDE_GAMUT_TO_XYZ", 

45 "MATRIX_XYZ_TO_BLACKMAGIC_WIDE_GAMUT", 

46 "RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT", 

47] 

48 

49PRIMARIES_BLACKMAGIC_WIDE_GAMUT: NDArrayFloat = np.array( 

50 [ 

51 [0.7177215, 0.3171181], 

52 [0.2280410, 0.8615690], 

53 [0.1005841, -0.0820452], 

54 ] 

55) 

56"""*Blackmagic Wide Gamut* colourspace primaries.""" 

57 

58WHITEPOINT_NAME_BLACKMAGIC_WIDE_GAMUT: str = "Blackmagic Wide Gamut" 

59""" 

60*Blackmagic Wide Gamut* colourspace whitepoint name. 

61 

62Notes 

63----- 

64- *Blackmagic Wide Gamut* colourspace whitepoint is an uncommonly rounded 

65 *D65* variant at 7 decimals: [0.3127170, 0.3290312] 

66""" 

67 

68CCS_WHITEPOINT_BLACKMAGIC_WIDE_GAMUT: NDArrayFloat = CCS_ILLUMINANTS[ 

69 "CIE 1931 2 Degree Standard Observer" 

70][WHITEPOINT_NAME_BLACKMAGIC_WIDE_GAMUT] 

71"""*Blackmagic Wide Gamut* colourspace whitepoint chromaticity coordinates.""" 

72 

73MATRIX_BLACKMAGIC_WIDE_GAMUT_TO_XYZ: NDArrayFloat = np.array( 

74 [ 

75 [0.606530, 0.220408, 0.123479], 

76 [0.267989, 0.832731, -0.100720], 

77 [-0.029442, -0.086611, 1.204861], 

78 ] 

79) 

80"""*Blackmagic Wide Gamut* colourspace to *CIE XYZ* tristimulus values matrix.""" 

81 

82MATRIX_XYZ_TO_BLACKMAGIC_WIDE_GAMUT: NDArrayFloat = np.array( 

83 [ 

84 [1.866382, -0.518397, -0.234610], 

85 [-0.600342, 1.378149, 0.176732], 

86 [0.002452, 0.086400, 0.836943], 

87 ] 

88) 

89"""*CIE XYZ* tristimulus values to *Blackmagic Wide Gamut* colourspace matrix.""" 

90 

91RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT: RGB_Colourspace = RGB_Colourspace( 

92 "Blackmagic Wide Gamut", 

93 PRIMARIES_BLACKMAGIC_WIDE_GAMUT, 

94 CCS_WHITEPOINT_BLACKMAGIC_WIDE_GAMUT, 

95 WHITEPOINT_NAME_BLACKMAGIC_WIDE_GAMUT, 

96 MATRIX_BLACKMAGIC_WIDE_GAMUT_TO_XYZ, 

97 MATRIX_XYZ_TO_BLACKMAGIC_WIDE_GAMUT, 

98 oetf_BlackmagicFilmGeneration5, 

99 oetf_inverse_BlackmagicFilmGeneration5, 

100 use_derived_matrix_RGB_to_XYZ=True, 

101 use_derived_matrix_XYZ_to_RGB=True, 

102) 

103RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT.__doc__ = """ 

104*Blackmagic Wide Gamut* colourspace. 

105 

106References 

107---------- 

108:cite:`BlackmagicDesign2021` 

109"""