204 lines
4.9 KiB
Python
204 lines
4.9 KiB
Python
|
|
"""Enums from LibHeif that are used."""
|
||
|
|
|
||
|
|
from enum import IntEnum
|
||
|
|
|
||
|
|
|
||
|
|
class HeifChroma(IntEnum):
|
||
|
|
"""Chroma subsampling definitions."""
|
||
|
|
|
||
|
|
UNDEFINED = 99
|
||
|
|
"""Undefined chroma."""
|
||
|
|
MONOCHROME = 0
|
||
|
|
"""Mono chroma."""
|
||
|
|
CHROMA_420 = 1
|
||
|
|
"""``Cb`` and ``Cr`` are each subsampled at a factor of 2 both horizontally and vertically."""
|
||
|
|
CHROMA_422 = 2
|
||
|
|
"""The two chroma components are sampled at half the horizontal sample rate of luma."""
|
||
|
|
CHROMA_444 = 3
|
||
|
|
"""Each of the three Y'CbCr components has the same sample rate."""
|
||
|
|
INTERLEAVED_RGB = 10
|
||
|
|
"""Simple interleaved RGB."""
|
||
|
|
INTERLEAVED_RGBA = 11
|
||
|
|
"""Interleaved RGB with Alpha channel."""
|
||
|
|
INTERLEAVED_RRGGBB_BE = 12
|
||
|
|
"""10 bit RGB BE."""
|
||
|
|
INTERLEAVED_RRGGBBAA_BE = 13
|
||
|
|
"""10 bit RGB BE with Alpha channel."""
|
||
|
|
INTERLEAVED_RRGGBB_LE = 14
|
||
|
|
"""10 bit RGB LE."""
|
||
|
|
INTERLEAVED_RRGGBBAA_LE = 15
|
||
|
|
"""10 bit RGB LE with Alpha channel."""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifColorspace(IntEnum):
|
||
|
|
"""Colorspace format of the image."""
|
||
|
|
|
||
|
|
UNDEFINED = 99
|
||
|
|
"""Undefined colorspace."""
|
||
|
|
YCBCR = 0
|
||
|
|
"""https://en.wikipedia.org/wiki/YCbCr"""
|
||
|
|
RGB = 1
|
||
|
|
"""RGB colorspace."""
|
||
|
|
MONOCHROME = 2
|
||
|
|
"""Monochrome colorspace."""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifCompressionFormat(IntEnum):
|
||
|
|
"""Possible LibHeif compression formats."""
|
||
|
|
|
||
|
|
UNDEFINED = 0
|
||
|
|
"""The compression format is not defined."""
|
||
|
|
HEVC = 1
|
||
|
|
"""Equivalent to H.265."""
|
||
|
|
AVC = 2
|
||
|
|
"""Equivalent to H.264. Defined in ISO/IEC 14496-10."""
|
||
|
|
JPEG = 3
|
||
|
|
"""JPEG compression. Defined in ISO/IEC 10918-1."""
|
||
|
|
AV1 = 4
|
||
|
|
"""AV1 compression, used for AVIF images."""
|
||
|
|
VVC = 5
|
||
|
|
"""Equivalent to H.266. Defined in ISO/IEC 23090-3."""
|
||
|
|
EVC = 6
|
||
|
|
"""Equivalent to H.266. Defined in ISO/IEC 23094-1."""
|
||
|
|
JPEG2000 = 7
|
||
|
|
"""The compression format is JPEG200 ISO/IEC 15444-16:2021"""
|
||
|
|
UNCOMPRESSED = 8
|
||
|
|
"""Defined in ISO/IEC 23001-17:2023 (Final Draft International Standard)."""
|
||
|
|
MASK = 9
|
||
|
|
"""Mask image encoding. See ISO/IEC 23008-12:2022 Section 6.10.2"""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifColorPrimaries(IntEnum):
|
||
|
|
"""Possible NCLX color_primaries values."""
|
||
|
|
|
||
|
|
ITU_R_BT_709_5 = 1
|
||
|
|
"""g=0.3;0.6, b=0.15;0.06, r=0.64;0.33, w=0.3127,0.3290"""
|
||
|
|
UNSPECIFIED = 2
|
||
|
|
"""No color primaries"""
|
||
|
|
ITU_R_BT_470_6_SYSTEM_M = 4
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_470_6_SYSTEM_B_G = 5
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_601_6 = 6
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_240M = 7
|
||
|
|
"""Unknown"""
|
||
|
|
GENERIC_FILM = 8
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2020_2_AND_2100_0 = 9
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_ST_428_1 = 10
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_RP_431_2 = 11
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_EG_432_1 = 12
|
||
|
|
"""Unknown"""
|
||
|
|
EBU_TECH_3213_E = 22
|
||
|
|
"""Unknown"""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifTransferCharacteristics(IntEnum):
|
||
|
|
"""Possible NCLX transfer_characteristics values."""
|
||
|
|
|
||
|
|
ITU_R_BT_709_5 = 1
|
||
|
|
"""Unknown"""
|
||
|
|
UNSPECIFIED = 2
|
||
|
|
"""No transfer characteristics"""
|
||
|
|
ITU_R_BT_470_6_SYSTEM_M = 4
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_470_6_SYSTEM_B_G = 5
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_601_6 = 6
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_240M = 7
|
||
|
|
"""Unknown"""
|
||
|
|
LINEAR = 8
|
||
|
|
"""Unknown"""
|
||
|
|
LOGARITHMIC_100 = 9
|
||
|
|
"""Unknown"""
|
||
|
|
LOGARITHMIC_100_SQRT10 = 10
|
||
|
|
"""Unknown"""
|
||
|
|
IEC_61966_2_4 = 11
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_1361 = 12
|
||
|
|
"""Unknown"""
|
||
|
|
IEC_61966_2_1 = 13
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2020_2_10BIT = 14
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2020_2_12BIT = 15
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2100_0_PQ = 16
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_ST_428_1 = 17
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2100_0_HLG = 18
|
||
|
|
"""Unknown"""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifMatrixCoefficients(IntEnum):
|
||
|
|
"""Possible NCLX matrix_coefficients values."""
|
||
|
|
|
||
|
|
RGB_GBR = 0
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_709_5 = 1
|
||
|
|
"""Unknown"""
|
||
|
|
UNSPECIFIED = 2
|
||
|
|
"""Unknown"""
|
||
|
|
US_FCC_T47 = 4
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_470_6_SYSTEM_B_G = 5
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_601_6 = 6
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_240M = 7
|
||
|
|
"""Unknown"""
|
||
|
|
YCGCO = 8
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2020_2_NON_CONSTANT_LUMINANCE = 9
|
||
|
|
"""Unknown"""
|
||
|
|
ITU_R_BT_2020_2_CONSTANT_LUMINANCE = 10
|
||
|
|
"""Unknown"""
|
||
|
|
SMPTE_ST_2085 = 11
|
||
|
|
"""Unknown"""
|
||
|
|
CHROMATICITY_DERIVED_NON_CONSTANT_LUMINANCE = 12
|
||
|
|
"""Unknown"""
|
||
|
|
CHROMATICITY_DERIVED_CONSTANT_LUMINANCE = 13
|
||
|
|
"""Unknown"""
|
||
|
|
ICTCP = 14
|
||
|
|
"""Unknown"""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifDepthRepresentationType(IntEnum):
|
||
|
|
"""Possible values of the ``HeifDepthImage.info['metadata']['representation_type']``."""
|
||
|
|
|
||
|
|
UNIFORM_INVERSE_Z = 0
|
||
|
|
"""Unknown"""
|
||
|
|
UNIFORM_DISPARITY = 1
|
||
|
|
"""Unknown"""
|
||
|
|
UNIFORM_Z = 2
|
||
|
|
"""Unknown"""
|
||
|
|
NON_UNIFORM_DISPARITY = 3
|
||
|
|
"""Unknown"""
|
||
|
|
|
||
|
|
|
||
|
|
class HeifChannel(IntEnum):
|
||
|
|
"""Internal libheif values, used in ``CtxEncode``."""
|
||
|
|
|
||
|
|
CHANNEL_Y = 0
|
||
|
|
"""Monochrome or YCbCR"""
|
||
|
|
CHANNEL_CB = 1
|
||
|
|
"""Only for YCbCR"""
|
||
|
|
CHANNEL_CR = 2
|
||
|
|
"""Only for YCbCR"""
|
||
|
|
CHANNEL_R = 3
|
||
|
|
"""RGB or RGBA"""
|
||
|
|
CHANNEL_G = 4
|
||
|
|
"""RGB or RGBA"""
|
||
|
|
CHANNEL_B = 5
|
||
|
|
"""RGB or RGBA"""
|
||
|
|
CHANNEL_ALPHA = 6
|
||
|
|
"""Monochrome or RGBA"""
|
||
|
|
CHANNEL_INTERLEAVED = 10
|
||
|
|
"""RGB or RGBA"""
|