1/// `Bt709` works for sRGB images.
2#[derive(Debug, Copy, Clone, PartialEq, Eq)]
3#[non_exhaustive]
4pub enum ColorPrimaries {
5 /// Rec.709 and sRGB
6 Bt709 = 1,
7 Unspecified = 2,
8 /// ITU-R BT601-6 525
9 Bt601 = 6,
10 /// ITU-R BT2020
11 Bt2020 = 9,
12 /// SMPTE ST 431-2. NB: "P3" images use DisplayP3 instead.
13 DciP3 = 11,
14 /// SMPTE ST 432-1
15 DisplayP3 = 12,
16}
17
18/// This controls how color data is interpreted (gamma).
19///
20/// If you don't know what to do with these, pick `Srgb`.
21///
22/// Reasonable options include `Bt709` (HDTV), `Bt2020_10` (Wide Gamut), `Smpte2084`, `Hlg` (HDR).
23#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24#[non_exhaustive]
25pub enum TransferCharacteristics {
26 /// Rec.709. May be appropriate for conversions from video.
27 Bt709 = 1,
28 /// Don't use this for color channels.
29 Unspecified = 2,
30 /// Don't use this. Analog NTSC TV. BT.470 System M (historical)
31 #[deprecated(note = "This is obsolete. Please don't proliferate legacy baggage.")]
32 #[doc(hidden)]
33 Bt470M = 4,
34 /// Don't use this. Analog PAL TV. BT.470 System B, G (historical)
35 #[deprecated(note = "This is obsolete. Please don't proliferate legacy baggage.")]
36 #[doc(hidden)]
37 Bt470BG = 5,
38 /// ITU-R BT601-6 525. Not recommended, unless you're converting from unlabelled low-res video clips.
39 /// See `Bt709` and `Srgb`.
40 Bt601 = 6,
41 /// Don't use this. SMPTE 240 M. It's just a worse Rec.709.
42 Smpte240 = 7,
43 /// "Linear transfer characteristics"
44 Linear = 8,
45 /// "Logarithmic transfer characteristic (100:1 range)"
46 Log = 9,
47 /// "Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
48 LogSqrt = 10,
49 /// IEC 61966-2-4
50 Iec61966 = 11,
51 /// Don't use this. Obsoleted BT.1361 extended color gamut system (historical)
52 #[deprecated(note = "This is obsolete. Please don't proliferate legacy baggage.")]
53 #[doc(hidden)]
54 Bt1361 = 12,
55 /// sRGB. This is the safe choice for encoding "standard" RGB images, especially 8-bit inputs.
56 Srgb = 13,
57 /// ITU-R BT2020 for 10-bit system. Reasonable for encoding wide gamut.
58 Bt2020_10 = 14,
59 /// ITU-R BT2020 for 12-bit system
60 Bt2020_12 = 15,
61 /// SMPTE ST 2084, ITU BT.2100 PQ
62 Smpte2084 = 16,
63 /// SMPTE ST 428. Not recommended. Overkill for images. Use `Bt2020_10` instead.
64 Smpte428 = 17,
65 /// BT.2100 HLG (Hybrid Log Gamma), ARIB STD-B67
66 Hlg = 18,
67}
68
69/// This is the format of color channels.
70#[derive(Debug, Copy, Clone, PartialEq, Eq)]
71#[non_exhaustive]
72pub enum MatrixCoefficients {
73 /// GBR (sRGB). This isn't actually good for most RGB images. Use `Bt709` for lossy and `Ycgco` for lossless.
74 Rgb = 0,
75 /// ITU-R BT1361
76 Bt709 = 1,
77 Unspecified = 2,
78 /// ITU-R BT601-6 525. This matches luma in JPEG's YCbCr when used with sRGB transfer characteristics, but is a bit off for chroma.
79 Bt601 = 6,
80 Ycgco = 8,
81 /// ITU-R BT2020 non-constant luminance system
82 Bt2020Ncl = 9,
83 /// ITU-R BT2020 constant luminance system
84 Bt2020Cl = 10,
85}
86

Provided by KDAB

Privacy Policy