Light Level Filters

Light Level Analyzer

The light level analysis llan filter measures the content light levels according to CTA-861.3. The filter accepts an input RGB video stream using the PQ transfer function. The filter supports the following configuration properties:

PropertyValueDescription
LeftMarginintegerSpecifies the margin offset from the left edge of the frame in pixels. The margins indictate the active area over which light levels are measured.
RightMarginintegerSpecifies the margin offset from the right edge of the frame in pixels.
TopMarginintegerSpecifies the margin offset from the top of the frame in pixels.
BottomMarginintegerSpecifies the margin offset from the bottom of the frame in pixels.

The analyzer adds a light level analysis lght element to each video sample. The analysis element contains the following properties:

PropertyValueDescription
averagenumberAverage frame light level within the active area in candellas per square meter.
maximumnumberMaximum pixel light level within the active area in candellas per square meter.
xintegerHorizontal pixel location of the maximum light level.
yintegerVertical pixel location of the maximum light level.

Properties Writer

The properties prop container writer is used to write the analysis results to a JSON file. For example the following composition will measure the light levels of the mxf input:

---
input:
  container:
  - name: mxf
    video:
    - name: v1
output:
  container:
  - name: json
    type: prop
    properties:
      Kind: data
    video:
    - route:
        name: v1
      filter:
      - type: llan
        properties:
          TopMargin: 56
          BottomMargin: 56
{
   "input": {
      "container": [
         {
            "name": "mxf",
            "video": [
               {
                  "name": "v1"
               }
            ]
         }
      ]
   },
   "output": {
      "container": [
         {
            "name": "json",
            "type": "prop",
            "properties": {
               "Kind": "data"
            },
            "video": [
               {
                  "route": {
                     "name": "v1"
                  },
                  "filter": [
                     {
                        "type": "llan",
                        "properties": {
                           "TopMargin": 56,
                           "BottomMargin": 56
                        }
                     }
                  ]
               }
            ]
         }
      ]
   }
}

The properties writer will produce an output similar to the following (only the first sample is shown):

{
  "video": [
    {
      "format": "rgba",
      "width": 3840,
      "height": 2160,
      "sample_rate": {
        "numerator": 24000,
        "denominator": 1001
      },
      "sample": [
        {
          "duration": 1001,
          "analysis": [
            {
              "type": "lght",
              "average": 123.45,
              "maximum": 1245.67,
              "x": 2345,
              "y": 1234
            }
          ]
        }
      ]
    }
  ]
}

The CTA-861.3 metadata values are determined by locating the video sample containing the maximum average frame level (MaxFALL) and the sample with the maximum pixel level (MaxCLL).