数据空间

ADataSpace 描述了如何解释颜色。

摘要

枚举

ADataSpace{
  ADATASPACE_UNKNOWN = 0,
  ADATASPACE_STANDARD_MASK = 63 << 16,
  ADATASPACE_STANDARD_UNSPECIFIED = 0 << 16,
  ADATASPACE_STANDARD_BT709 = 1 << 16,
  ADATASPACE_STANDARD_BT601_625 = 2 << 16,
  ADATASPACE_STANDARD_BT601_625_UNADJUSTED = 3 << 16,
  ADATASPACE_STANDARD_BT601_525 = 4 << 16,
  ADATASPACE_STANDARD_BT601_525_UNADJUSTED = 5 << 16,
  ADATASPACE_STANDARD_BT2020 = 6 << 16,
  ADATASPACE_STANDARD_BT2020_CONSTANT_LUMINANCE = 7 << 16,
  ADATASPACE_STANDARD_BT470M = 8 << 16,
  ADATASPACE_STANDARD_FILM = 9 << 16,
  ADATASPACE_STANDARD_DCI_P3 = 10 << 16,
  ADATASPACE_STANDARD_ADOBE_RGB = 11 << 16,
  ADATASPACE_TRANSFER_MASK = 31 << 22,
  ADATASPACE_TRANSFER_UNSPECIFIED = 0 << 22,
  ADATASPACE_TRANSFER_LINEAR = 1 << 22,
  ADATASPACE_TRANSFER_SRGB = 2 << 22,
  ADATASPACE_TRANSFER_SMPTE_170M = 3 << 22,
  ADATASPACE_TRANSFER_GAMMA2_2 = 4 << 22,
  ADATASPACE_TRANSFER_GAMMA2_6 = 5 << 22,
  ADATASPACE_TRANSFER_GAMMA2_8 = 6 << 22,
  ADATASPACE_TRANSFER_ST2084 = 7 << 22,
  ADATASPACE_TRANSFER_HLG = 8 << 22,
  ADATASPACE_RANGE_MASK = 7 << 27,
  ADATASPACE_RANGE_UNSPECIFIED = 0 << 27,
  ADATASPACE_RANGE_FULL = 1 << 27,
  ADATASPACE_RANGE_LIMITED = 2 << 27,
  ADATASPACE_RANGE_EXTENDED = 3 << 27,
  ADATASPACE_SCRGB_LINEAR = 406913024,
  ADATASPACE_SRGB = 142671872,
  ADATASPACE_SCRGB = 411107328,
  ADATASPACE_DISPLAY_P3 = 143261696,
  ADATASPACE_BT2020_PQ = 163971072,
  ADATASPACE_BT2020_ITU_PQ = 298188800,
  ADATASPACE_ADOBE_RGB = 151715840,
  ADATASPACE_JFIF = 146931712,
  ADATASPACE_BT601_625 = 281149440,
  ADATASPACE_BT601_525 = 281280512,
  ADATASPACE_BT2020 = 147193856,
  ADATASPACE_BT709 = 281083904,
  ADATASPACE_DCI_P3 = 155844608,
  ADATASPACE_SRGB_LINEAR = 138477568,
  ADATASPACE_BT2020_HLG = 168165376,
  ADATASPACE_BT2020_ITU_HLG = 302383104,
  ADATASPACE_DEPTH = 4096,
  ADATASPACE_DYNAMIC_DEPTH = 4098,
  STANDARD_MASK = ADATASPACE_STANDARD_MASK,
  STANDARD_UNSPECIFIED = ADATASPACE_STANDARD_UNSPECIFIED,
  STANDARD_BT709 = ADATASPACE_STANDARD_BT709,
  STANDARD_BT601_625 = ADATASPACE_STANDARD_BT601_625,
  STANDARD_BT601_625_UNADJUSTED = ADATASPACE_STANDARD_BT601_625_UNADJUSTED,
  STANDARD_BT601_525 = ADATASPACE_STANDARD_BT601_525,
  STANDARD_BT601_525_UNADJUSTED = ADATASPACE_STANDARD_BT601_525_UNADJUSTED,
  STANDARD_BT470M = ADATASPACE_STANDARD_BT470M,
  STANDARD_BT2020 = ADATASPACE_STANDARD_BT2020,
  STANDARD_FILM = ADATASPACE_STANDARD_FILM,
  STANDARD_DCI_P3 = ADATASPACE_STANDARD_DCI_P3,
  STANDARD_ADOBE_RGB = ADATASPACE_STANDARD_ADOBE_RGB,
  TRANSFER_MASK = ADATASPACE_TRANSFER_MASK,
  TRANSFER_UNSPECIFIED = ADATASPACE_TRANSFER_UNSPECIFIED,
  TRANSFER_LINEAR = ADATASPACE_TRANSFER_LINEAR,
  TRANSFER_SMPTE_170M = ADATASPACE_TRANSFER_SMPTE_170M,
  TRANSFER_GAMMA2_2 = ADATASPACE_TRANSFER_GAMMA2_2,
  TRANSFER_GAMMA2_6 = ADATASPACE_TRANSFER_GAMMA2_6,
  TRANSFER_GAMMA2_8 = ADATASPACE_TRANSFER_GAMMA2_8,
  TRANSFER_SRGB = ADATASPACE_TRANSFER_SRGB,
  TRANSFER_ST2084 = ADATASPACE_TRANSFER_ST2084,
  TRANSFER_HLG = ADATASPACE_TRANSFER_HLG,
  RANGE_MASK = ADATASPACE_RANGE_MASK,
  RANGE_UNSPECIFIED = ADATASPACE_RANGE_UNSPECIFIED,
  RANGE_FULL = ADATASPACE_RANGE_FULL,
  RANGE_LIMITED = ADATASPACE_RANGE_LIMITED,
  RANGE_EXTENDED = ADATASPACE_RANGE_EXTENDED
}
enum
ADataSpace。

枚举

ADataSpace

声明位于 android/data_space.h
 ADataSpace

ADataSpace。

属性
ADATASPACE_ADOBE_RGB

Adobe RGB。

使用全范围、伽马 2.2 传输和 Adobe RGB 标准。

注意:应用负责对数据进行伽马编码,因为硬件不支持 2.2 伽马编码。

ADATASPACE_BT2020

ITU-R 建议 2020 (BT.2020)

超高清电视

使用全范围、SMPTE 170M 传输和 BT2020 标准。

ADATASPACE_BT2020_HLG

混合对数伽马编码。

使用全范围、混合对数伽马传输和 BT2020 标准。

ADATASPACE_BT2020_ITU_HLG

ITU 混合对数伽马编码。

使用有限范围、混合对数伽马传输和 BT2020 标准。

ADATASPACE_BT2020_ITU_PQ

ITU-R 建议 2020 (BT.2020)

超高清电视

使用有限范围、SMPTE 2084 (PQ) 传输和 BT2020 标准。

ADATASPACE_BT2020_PQ

ITU-R 建议 2020 (BT.2020)

超高清电视

使用全范围、SMPTE 2084 (PQ) 传输和 BT2020 标准。

ADATASPACE_BT601_525

ITU-R 建议 601 (BT.601) - 525 线。

标清电视,525 线 (NTSC)

使用有限范围、SMPTE 170M 传输和 BT.601_525 标准。

ADATASPACE_BT601_625

ITU-R 建议 601 (BT.601) - 625 线。

标清电视,625 线 (PAL)

使用有限范围、SMPTE 170M 传输和 BT.601_625 标准。

ADATASPACE_BT709

ITU-R 建议 709 (BT.709)

高清电视

使用有限范围、SMPTE 170M 传输和 BT.709 标准。

ADATASPACE_DCI_P3

SMPTE EG 432-1 和 SMPTE RP 431-2。

数字影院 DCI-P3

使用全范围、伽马 2.6 传输和 D65 DCI-P3 标准。

注意:应用负责对数据进行伽马编码,因为硬件不支持 2.6 伽马编码。

ADATASPACE_DEPTH

深度。

此值对于格式 HAL_PIXEL_FORMAT_Y16 和 HAL_PIXEL_FORMAT_BLOB 有效。

ADATASPACE_DISPLAY_P3

Display P3。

使用全范围、sRGB 传输和 D65 DCI-P3 标准。

ADATASPACE_DYNAMIC_DEPTH

ISO 16684-1:2011(E) 动态深度。

遵循动态深度规范的嵌入式深度元数据。

ADATASPACE_JFIF

JPEG 文件交换格式 (JFIF)

与 BT.601-625 相同模型,但所有值 (Y, Cb, Cr) 范围为 0 到 255。

使用全范围、SMPTE 170M 传输和 BT.601_625 标准。

ADATASPACE_RANGE_EXTENDED

扩展范围用于 scRGB。

旨在与浮点像素格式一起使用。[0.0 - 1.0] 是标准的 sRGB 空间。超出 0.0 - 1.0 范围的值可以编码 sRGB 色域之外的颜色。用于在单个显示器上混合/合并多个数据空间。

ADATASPACE_RANGE_FULL

全范围使用 Y、Cb 和 Cr 的所有值,范围从 0 到 2^b-1,其中 b 是颜色格式的位深。

ADATASPACE_RANGE_LIMITED

有限范围对 Y 使用值 16/256*2^b 到 235/256*2^b,对 Cb、Cr、R、G 和 B 使用值 1/16*2^b 到 15/16*2^b,其中 b 是颜色格式的位深。

例如,对于 8 位深格式:亮度 (Y) 样本范围应为 16 到 235(含)色度 (Cb, Cr) 样本范围应为 16 到 240(含)

对于 10 位深格式:亮度 (Y) 样本范围应为 64 到 940(含)色度 (Cb, Cr) 样本范围应为 64 到 960(含)

ADATASPACE_RANGE_MASK

范围方面。

定义对应于单位范围 0-1 的值范围。这仅为 YCbCr 定义,但可扩展到 RGB 空间。

ADATASPACE_RANGE_UNSPECIFIED

范围未知或由应用确定。

实现应使用以下建议范围

所有 YCbCr 格式:有限范围。所有 RGB 或 RGBA 格式(包括 RAW 和 Bayer):全范围。所有 Y 格式:全范围

对于所有其他格式,范围未定义,实现应使用适合所表示数据的范围。

ADATASPACE_SCRGB

scRGB

红色、绿色和蓝色分量存储在扩展的 sRGB 空间中,并使用 SRGB 传输函数进行伽马编码。

这些值是浮点数。像素值 1.0, 1.0, 1.0 对应于 80 尼特的 sRGB 白色 (D65)。超出 [0.0 - 1.0] 范围的值将对应于其他颜色空间和/或 HDR 内容。

使用扩展范围、sRGB 传输和 BT.709 标准。

ADATASPACE_SCRGB_LINEAR

scRGB 线性编码

红色、绿色和蓝色分量存储在扩展的 sRGB 空间中,但它们是线性的,而不是伽马编码的。

这些值是浮点数。像素值 1.0, 1.0, 1.0 对应于 80 尼特的 sRGB 白色 (D65)。超出 [0.0 - 1.0] 范围的值将对应于其他颜色空间和/或 HDR 内容。

使用扩展范围、线性传输和 BT.709 标准。

ADATASPACE_SRGB

sRGB 伽马编码

红色、绿色和蓝色分量存储在 sRGB 空间中,并在读取时使用 SRGB 传输函数将 R、G 和 B 的每个分量转换为线性空间。写入时,执行逆变换。

如果存在 Alpha 分量,它总是存储在线性空间中,并且在读取或写入时保持不变。

使用全范围、sRGB 传输和 BT.709 标准。

ADATASPACE_SRGB_LINEAR

sRGB 线性编码

红色、绿色和蓝色分量存储在 sRGB 空间中,但它们是线性的,而不是伽马编码的。RGB 原色和白点与 BT.709 相同。

所有分量的值均使用全范围编码(8 位为 [0,255])。

使用全范围、线性传输和 BT.709 标准。

ADATASPACE_STANDARD_ADOBE_RGB

Adobe RGB。

Primaries:       x       y
 green           0.210   0.710
 blue            0.150   0.060
 red             0.640   0.330
 white (D65)     0.3127  0.3290

ADATASPACE_STANDARD_BT2020

Primaries:       x       y
 green           0.170   0.797
 blue            0.131   0.046
 red             0.708   0.292
 white (D65)     0.3127  0.3290

使用未调整的 KR = 0.2627, KB = 0.0593 亮度解释进行 RGB 转换。

ADATASPACE_STANDARD_BT2020_CONSTANT_LUMINANCE

Primaries:       x       y
 green           0.170   0.797
 blue            0.131   0.046
 red             0.708   0.292
 white (D65)     0.3127  0.3290

使用未调整的 KR = 0.2627, KB = 0.0593 亮度解释,在线性域中使用线性域进行 RGB 转换。

ADATASPACE_STANDARD_BT470M

Primaries:       x      y
 green           0.21   0.71
 blue            0.14   0.08
 red             0.67   0.33
 white (C)       0.310  0.316

使用未调整的 KR = 0.30, KB = 0.11 亮度解释进行 RGB 转换。

ADATASPACE_STANDARD_BT601_525

Primaries:       x       y
 green           0.310   0.595
 blue            0.155   0.070
 red             0.630   0.340
 white (D65)     0.3127  0.3290

KR = 0.299, KB = 0.114。这将调整 RGB 转换的亮度解释,使其不再完全由原色决定,从而最大限度地减少颜色向使用 BT.709 原色的 RGB 空间的偏移。

ADATASPACE_STANDARD_BT601_525_UNADJUSTED

Primaries:       x       y
 green           0.310   0.595
 blue            0.155   0.070
 red             0.630   0.340
 white (D65)     0.3127  0.3290

使用未调整的 KR = 0.212, KB = 0.087 亮度解释进行 RGB 转换(如 SMPTE 240M)。

ADATASPACE_STANDARD_BT601_625

Primaries:       x       y
 green           0.290   0.600
 blue            0.150   0.060
 red             0.640   0.330
 white (D65)     0.3127  0.3290

KR = 0.299, KB = 0.114。这将调整 RGB 转换的亮度解释,使其不再完全由原色决定,从而最大限度地减少颜色向使用 BT.709 原色的 RGB 空间的偏移。

ADATASPACE_STANDARD_BT601_625_UNADJUSTED

Primaries:       x       y
 green           0.290   0.600
 blue            0.150   0.060
 red             0.640   0.330
 white (D65)     0.3127  0.3290

使用未调整的 KR = 0.222, KB = 0.071 亮度解释进行 RGB 转换。

ADATASPACE_STANDARD_BT709

Primaries:       x       y
 green           0.300   0.600
 blue            0.150   0.060
 red             0.640   0.330
 white (D65)     0.3127  0.3290

使用未调整的 KR = 0.2126, KB = 0.0722 亮度解释进行 RGB 转换。

ADATASPACE_STANDARD_DCI_P3

SMPTE EG 432-1 和 SMPTE RP 431-2。

(DCI-P3)

Primaries:       x       y
 green           0.265   0.690
 blue            0.150   0.060
 red             0.680   0.320
 white (D65)     0.3127  0.3290

ADATASPACE_STANDARD_FILM

Primaries:       x       y
 green           0.243   0.692
 blue            0.145   0.049
 red             0.681   0.319
 white (C)       0.310   0.316

使用未调整的 KR = 0.254, KB = 0.068 亮度解释进行 RGB 转换。

ADATASPACE_STANDARD_MASK

颜色描述方面。

以下方面定义了颜色规范的各种特征。它们表示位字段,因此数据空间值可以独立指定每个方面。标准方面

根据 ISO 11664-1 中指定的 x 和 y 的 CIE 1931 定义,定义源原色的色度坐标。

ADATASPACE_STANDARD_UNSPECIFIED

色度坐标未知或由应用确定。

实现应使用以下建议标准

所有 YCbCr 格式:如果大小为 720p 或更大(因为大多数视频内容都有黑边,这意味着宽度大于等于 1280 或高度大于等于 720),则使用 BT709。如果大小小于 720p 或为 JPEG,则使用 BT601_625。所有 RGB 格式:BT709。

对于所有其他格式,标准未定义,实现应使用适合所表示数据的标准。

ADATASPACE_TRANSFER_GAMMA2_2

显示伽马 2.2。

Transfer characteristic curve:
E = L ^ (1/2.2)
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_GAMMA2_6

显示伽马 2.6。

Transfer characteristic curve:
E = L ^ (1/2.6)
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_GAMMA2_8

显示伽马 2.8。

Transfer characteristic curve:
E = L ^ (1/2.8)
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_HLG

ARIB STD-B67 混合对数伽马。

Transfer characteristic curve:
 E = r * L^0.5                 for 0 <= L <= 1
   = a * ln(L - b) + c         for 1 < L
 a = 0.17883277
 b = 0.28466892
 c = 0.55991073
 r = 0.5
     L - luminance of image 0 <= L for HDR colorimetry. L = 1 corresponds
         to reference white level of 100 cd/m2
     E - corresponding electrical signal

ADATASPACE_TRANSFER_LINEAR

线性传输。

Transfer characteristic curve:
E = L
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_MASK

传输方面。

传输特性是源处的电光传输特性,它是线性光强度(亮度)的函数。

对于数字信号,E 对应于记录值。通常,传输函数在 RGB 空间中独立应用于 R、G 和 B 的每个分量。这可能导致颜色偏移,可以通过仅在 Lab 空间中对 L 分量应用传输函数来最小化。如果需要,实现可以在 RGB 空间中对所有像素格式应用传输函数。

ADATASPACE_TRANSFER_SMPTE_170M

SMPTE 170M 传输。

Transfer characteristic curve:
E = 1.099 * L ^ 0.45 - 0.099  for 0.018 <= L <= 1
  = 4.500 * L                 for 0 <= L < 0.018
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_SRGB

sRGB 传输。

Transfer characteristic curve:
E = 1.055 * L^(1/2.4) - 0.055  for 0.0031308 <= L <= 1
  = 12.92 * L                  for 0 <= L < 0.0031308
    L - luminance of image 0 <= L <= 1 for conventional colorimetry
    E - corresponding electrical signal

ADATASPACE_TRANSFER_ST2084

SMPTE ST 2084(杜比感知量化器)。

Transfer characteristic curve:
E = ((c1 + c2 * L^n) / (1 + c3 * L^n)) ^ m
c1 = c3 - c2 + 1 = 3424 / 4096 = 0.8359375
c2 = 32 * 2413 / 4096 = 18.8515625
c3 = 32 * 2392 / 4096 = 18.6875
m = 128 * 2523 / 4096 = 78.84375
n = 0.25 * 2610 / 4096 = 0.1593017578125
    L - luminance of image 0 <= L <= 1 for HDR colorimetry.
        L = 1 corresponds to 10000 cd/m2
    E - corresponding electrical signal

ADATASPACE_TRANSFER_UNSPECIFIED

传输特性未知或由应用确定。

实现应使用以下传输函数

对于 YCbCr 格式:使用 ADATASPACE_TRANSFER_SMPTE_170M 对于 RGB 格式:使用 ADATASPACE_TRANSFER_SRGB

对于所有其他格式,传输函数未定义,实现应使用适合所表示数据的标准。

ADATASPACE_UNKNOWN

未明确指定时的默认假设数据空间。

最安全的做法是假定缓冲区是具有 sRGB 原色和编码范围的图像,但数据的消费者和/或生产者可能只是使用默认值。除绘制到屏幕时可能的显示伽马变换外,不应期望任何自动伽马变换。

RANGE_EXTENDED
RANGE_FULL
RANGE_LIMITED
RANGE_MASK
RANGE_UNSPECIFIED
STANDARD_ADOBE_RGB
ADATASPACE_STANDARD_BT2020
STANDARD_BT470M
STANDARD_BT601_525
STANDARD_BT601_525_UNADJUSTED
STANDARD_BT601_625
STANDARD_BT601_625_UNADJUSTED
STANDARD_BT709
STANDARD_DCI_P3
STANDARD_FILM
STANDARD_MASK
STANDARD_UNSPECIFIED
TRANSFER_GAMMA2_2
TRANSFER_GAMMA2_6
TRANSFER_GAMMA2_8
TRANSFER_HLG
TRANSFER_LINEAR
TRANSFER_MASK
TRANSFER_SMPTE_170M
TRANSFER_SRGB
TRANSFER_ST2084
TRANSFER_UNSPECIFIED