xyz2rgbwide

Convert CIE 1931 XYZ color values to wide-gamut RGB color values

Syntax

``RGB = xyz2rgbwide(XYZ,BPS)``
``RGB = xyz2rgbwide(XYZ,BPS,Name,Value)``

Description

example

````RGB = xyz2rgbwide(XYZ,BPS)` converts the specified CIE 1931 XYZ color values to wide-gamut RGB values in the BT.2020 or BT.2100 color space. `BPS` specifies the number of bits required to represent each channel of the output RGB values.```
````RGB = xyz2rgbwide(XYZ,BPS,Name,Value)` specifies options using one or more name-value pair arguments.```

Examples

collapse all

Convert XYZ color values into 10-bit or 12-bit wide-gamut RGB values in the BT.2020/BT.2100 color space.

Convert XYZ Color into 10-bit BT.2020 RGB Value

Create an XYZ value.

`xyzvalue = [0.25 0.40 0.10];`

Convert the XYZ value to a 10-bit BT.2020 RGB value.

`rgbvalue = xyz2rgbwide(xyzvalue,10)`
```rgbvalue = 1x3 uint16 row vector 504 670 289 ```

Convert XYZ Color into 12-bit BT.2100 RGB Value

Create an XYZ value.

`xyzvalue = [0.25 0.40 0.10];`

Convert the XYZ value to a 12-bit BT.2100 RGB value.

`rgbvalue = xyz2rgbwide(xyzvalue,12,'Colorspace','BT.2100')`
```rgbvalue = 1x3 uint16 row vector 2015 2681 1155 ```

Convert XYZ Color into 10-bit BT.2100 RGB Value Using HLG

Create an XYZ value.

`xyzvalue = [0.25 0.40 0.10];`

Convert the XYZ value to a 10-bit BT.2100 RGB value using the Hybrid Log Gamma (HLG) transfer function.

`rgbvalue = xyz2rgbwide(xyzvalue,12,'Colorspace','BT.2100','LinearizationFcn','HLG')`
```rgbvalue = 1x3 uint16 row vector 2875 3285 1989 ```

Input Arguments

collapse all

Color values in the CIE 1931 XYZ color space, specified as one of the following:

• p-by-3 numeric matrix of color values (one color per row)

• m-by-n-by-3 numeric array representing an image

• m-by-n-by-3-by-f numeric array representing a stack of images

Data Types: `single` | `double`

Bits per sample for each channel of the output wide-gamut RGB image, specified as `10` or `12`.

Name-Value Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: ```rgb = xyz2rgbwide([0.25 0.40 0.10],12,'ColorSpace','BT.2100')```

Color space of the output RGB values, specified as the comma-separated pair consisting of `'ColorSpace'` and the value `'BT.2020'` or `'BT.2100'`.

Data Types: `char` | `string`

Reference white point, specified as the comma-separated pair consisting of `'WhitePoint'` and a 1-by-3 vector or one of the CIE standard illuminants, listed in the table.

ValueWhite Point
`'a'`

CIE standard illuminant A, `[1.0985, 1.0000, 0.3558]`. Simulates typical, domestic, tungsten-filament lighting with correlated color temperature of 2856 K.

`'c'`CIE standard illuminant C, `[0.9807, 1.0000, 1.1822]`. Simulates average or north sky daylight with correlated color temperature of 6774 K. Deprecated by CIE.
`'e'`Equal-energy radiator, `[1.000, 1.000, 1.000]`. Useful as a theoretical reference.
`'d50'`CIE standard illuminant D50, `[0.9642, 1.0000, 0.8251]`. Simulates warm daylight at sunrise or sunset with correlated color temperature of 5003 K. Also known as horizon light.

`'d55'`

CIE standard illuminant D55, `[0.9568, 1.0000, 0.9214]`. Simulates mid-morning or mid-afternoon daylight with correlated color temperature of 5500 K.

`'d65'`CIE standard illuminant D65, `[0.9504, 1.0000, 1.0888]`. Simulates noon daylight with correlated color temperature of 6504 K.
`'icc'`Profile Connection Space (PCS) illuminant used in ICC profiles. Approximation of `[0.9642, 1.000, 0.8249]` using fixed-point, signed, 32-bit numbers with 16 fractional bits. Actual value: ```[31595,32768, 27030]/32768```.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `char` | `string`

Transfer function for transformation, specified as the text string `'LinearizationFcn'` and either of the following values:

ValueDescription
`'PQ'`Perceptual Quantization
`'HLG'`Hybrid Log Gamma

Data Types: `char` | `string`

Output Arguments

collapse all

Output RGB color values, returned as a numeric array of the same size as the `XYZ` input value. The table shows the data range for the wide-gamut color values for 10- and 12-bit data. The minimum value in each range maps to black, and the maximum value in each range maps to white.

Data TypeFull Data RangeData Range for Wide-Gamut RGB
10-bit[0, 1023][64, 940]
12-bit [0, 4095][256, 3760]

Data Types: `uint16`

References

[1] Rec. ITU-R BT.2020-2 (10/2015). "Parameter values for ultra-high definition television systems for production and international programme exchange." International Telecommunication Union; Broadcasting service (television). https://www.itu.int/rec/R-REC-BT.2020.

[2] Rec. ITU-R BT.2100-2 (07/2018). "Image parameter values for dynamic range television for use in production and international programme exchange." International Telecommunication Union; Broadcasting service (television). https://www.itu.int/rec/R-REC-BT.2100.

[3] Rec. ITU-R BT.2390-7 (07/2019). "High dynamic range television for production and international programme exchange." International Telecommunication Union; Broadcasting service (television). https://www.itu.int/pub/R-REP-BT.2390.