Screen color space types

The color space types that are supported by window and pixmap objects

Synopsis:

#include <screen/screen.h>
enum {
    SCREEN_COLOR_SPACE_UNCORRECTED = 0x0,
    SCREEN_COLOR_SPACE_SRGB = 0x1,
    SCREEN_COLOR_SPACE_LRGB = 0x2,
    SCREEN_COLOR_SPACE_BT601 = 0x3,
    SCREEN_COLOR_SPACE_BT601_FULL = 0x4,
    SCREEN_COLOR_SPACE_BT709 = 0x5,
    SCREEN_COLOR_SPACE_BT709_FULL = 0x6,
    SCREEN_COLOR_SPACE_BT2020 = 0x7,
    SCREEN_COLOR_SPACE_BT2020_FULL = 0x8
};

Data:

SCREEN_COLOR_SPACE_UNCORRECTED
Only historically called "uncorrected"; this does not reflect the true behavior of this mode.

This color space mode means no transformations are applied to the RGB data and that some unspecified transfer function is applied to the YUV data. Most drivers assume BT.601 color space in this mode for YUV.

SCREEN_COLOR_SPACE_SRGB
The raw RGB data is in sRGB color space as defined by IEC 61966-2-1:1999.
SCREEN_COLOR_SPACE_LRGB
The raw RGB data is in linear RGB color space.
SCREEN_COLOR_SPACE_BT601
The raw YUV data is in the BT.601 color space defined by the BT.601 standard found at https://www.itu.int/rec/R-REC-BT.601 .

In this color space, the luminance signal is occupying 220 (8-bit) or 877 (10-bit) levels and the colour-difference signals are occupying 225 (8-bit) or 897 (10-bit) levels. For 8-bit: Y is in the range 16..235, U and V are in the range 16..240. For 10-bit: Y is in the range 64..940, U and V are in the range 64..960.

SCREEN_COLOR_SPACE_BT601_FULL
The raw YUV data is in the color space described by the ITU-T T.871; which is based on the BT.601 color space defined by the BT.601 standard.

Sometimes it is called JPEG color space. In this color space, the luminance signal is occupying all 256 (8-bit) or 1024 (10-bit) levels. For 8-bit: Y is in the range 0..255, U and V are in the range 0.255. For 10-bit: Y is in range 0..1023, U and V are in the range 0..1023.

SCREEN_COLOR_SPACE_BT709
The raw YUV data is in the BT.709 color space defined by the BT.709 standard found here https://www.itu.int/rec/R-REC-BT.709 .

In this color space, the luminance signal is occupying 220 (8-bit) or 877 (10-bit) levels and the colour-difference signals are occupying 225 (8-bit) or 897 (10-bit) levels. For 8-bit: Y is in the range 16..235, U and V are in the range 16..240. For 10-bit: Y is in the range 64..940, U and V are in the range 64..960.

SCREEN_COLOR_SPACE_BT709_FULL
There is no dedicated standard for this color space.

It is based on the BT.709 color space defined by the BT.709 standard. In this color space the luminance signal is occupying all 256 (8-bit) or 1024 (10-bit) levels. For 8-bit: Y is in the range 0..255, U and V are in the range 0.255. For 10-bit: Y is in range 0..1023, U and V are in the range 0..1023. Refer to the BT.709 standards.

SCREEN_COLOR_SPACE_BT2020
The raw YUV data is in the BT.2020 color space defined by the BT.2020 standard https://www.itu.int/rec/R-REC-BT.2020 .

This color space doesn't standardize 8 bit data, only 10 and 12 bits. For 10-bit: Y is in the range 64..940, U and V are in the range 64..960. For 12-bit: Y is in the range 256..3760, U and V are in the range 256..3840. Refer to the BT.2020 standards.

SCREEN_COLOR_SPACE_BT2020_FULL
There is no dedicated standard for this color space.

It is based on the BT.2020 color space defined by the BT.2020 standard. This color space doesn't standardize 8 bit data, only 10 and 12 bits. For 10-bit: Y is in the range 0..1023, U and V are in the range 0..1023. For 12-bit: Y is in the range 0..4095, U and V are in the range 0..4095. Refer to the BT.2020 standards.

Library:

libscreen
Page updated: