Package limn.video

Enum Class VideoColor.Transfer

java.lang.Object
java.lang.Enum<VideoColor.Transfer>
limn.video.VideoColor.Transfer
All Implemented Interfaces:
Serializable, Comparable<VideoColor.Transfer>, Constable
Enclosing class:
VideoColor

public static enum VideoColor.Transfer extends Enum<VideoColor.Transfer>
What the decoded values are, once the matrix has been undone: numbers a display can show, or a curve that has to be inverted before they mean light.

This is the distinction that decides which composite a picture belongs in, and it is not the same question as bit depth. A 10-bit BT.709 recording is ordinary display-referred video that happens to carry more codes; a BT.2020 PQ one holds absolute luminance behind a curve and is not viewable at all until that curve is inverted.

  • Enum Constant Details

    • SDR

      public static final VideoColor.Transfer SDR
      The conventional standard-dynamic-range display curve: BT.709's camera curve viewed on a BT.1886 display, and near enough sRGB that nothing here separates them. Values are display-referred: they are already encoded for a screen, and anything that tonemaps or re-encodes them applies a transform a second time.

      Every transfer characteristic a stream can signal that is not PQ or HLG lands here, including gamma 2.2, gamma 2.8, BT.601, sRGB and "unspecified". They differ from each other by less than the difference between two displays, and none of them changes what a consumer must do, which is nothing.

    • PQ

      public static final VideoColor.Transfer PQ
      SMPTE ST 2084, perceptual quantizer. The decoded value is a non-linear encoding of absolute luminance up to 10000 cd/m², so it is scene-referred after its inverse and belongs on a linear compositing path.
    • HLG

      public static final VideoColor.Transfer HLG
      ARIB STD-B67, hybrid log-gamma. Relative rather than absolute, and its inverse is the SDR curve over the bottom half of the range and logarithmic above it, which is why an HLG picture shown as if it were SDR looks nearly right in the shadows and washed out everywhere else, the hardest of these to spot by eye.
  • Method Details

    • values

      public static VideoColor.Transfer[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static VideoColor.Transfer valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null