

#### 9.2 Color Space and Pixel Type (Key Frames-only)        {#h-09-02}


| Field  | Value
| ------ | ------------------------------- 
| `L(1)` | 1-bit color space type specification
| `L(1)` | 1-bit pixel value clamping specification


The color space type bit is encoded as the following:

  * `0` - YUV color space similar to the YCrCb color space defined in ITU-R BT.601
  * `1` - Reserved for future use

The pixel value clamping type bit is encoded as the following:

  * `0` - Decoders are required to clamp the reconstructed pixel values to between `0` and `255` (inclusive).
  * `1` - Reconstructed pixel values are guaranteed to be between `0` and `255`, no clamping is necessary.

Information in this subsection does not appear in interframes.

