Skip to main content

DeepEye / Content Aware Optimization (CAO)

LightFlow uses artificial intelligence to determine the optimal bitrate ladder and encoding configuration for every individual video. This can result in significant bitrate reductions and perceptual quality improvements. Preset CAO configurations are available in LightFlow to easily balance between the most common business requirements: reducing cost and increasing viewers' quality of experience.

Out of the hundreds of combinations of parameters that can be applied to our analysis engine, we defined 5 presets. If you don’t have the knowledge or time to fine tune all these parameters, you simply tell LightFlow with a slider which preset to use. Every preset defines (internally) all the parameter values for you. Preset #1 is going to give more weight to cost savings, while preset #5 is going to give full weight to visual quality. Internally LightFlow performs an initial pass on a video source to identify a subset of samples within the content as reference to characterize the complete video. Depending on the preset you have chosen, LightFlow will consider scenes of greater or lesser complexity. This preset approach is very effective, simplifying the configuration in many use cases. Let’s say you are an OTT operator with an ad-based business model where subscribers do not pay a fee. In this scenario, preset #3 is typically enough. However, if you are a broadcaster whose business depends on subscriber fees, then typically you will want the quality level of preset #5. 

Creating CAO Profiles

To create a new Content Aware Optimization profile, start by giving it a Name. In the DeepEye/PerTitleConfiguration section, select one or more Encoder output codecs, the corresponding Resolution(s), and set the associated Trade-off slider to choose a preset that targets your preferred balance between cost savings and visual quality:

  • Preset 1: LightFlow will prioritize cost savings over video quality. Variable footage will be averaged and the LightFlow Quality Index (LQI) will reflect the perceptual quality of low complexity scenes. Video output will produce the largest possible savings while complex scenes (e.g. high motion, varied textures) may suffer image degradation.
  • Preset 2: LightFlow will give more weight to cost savings than to video quality. Variable footage will be analyzed to factor in some complexity. The LQI will reflect the perceptual quality of mostly low complexity scenes. Video output will produce significant savings while very complex scenes, if they exist, may suffer some image degradation.
  • Preset 3: LightFlow will treat cost savings and video quality evenly. Variable footage will be analyzed to factor in average complexity. The LQI will will reflect the perceptual quality of different types of complex scenes. Video output will produce notable savings and only very complex scenes, if they exist, may suffer slight image degradation.
  • Preset 4: LightFlow will give more weight to video quality than to cost savings. Complex footage will have more influence on the video analysis, so that visual quality will be high for the scenes with the highest-motion and very high for the whole video, while cost savings may be slightly smaller.
  • Preset 5: LightFlow will prioritize video quality over cost savings. Video analysis will be focused on highly complex footage. The LQI will reflect the perceptual quality of complex scenes. Video output will have very high image quality while cost savings may be smaller.


In the Packaging section, choose one or more of the following output formats:

  • MP4, MP3, MPEG-DASH, HLS, MSS


In the optional Audio section you can specify any of the following parameters, which will override LightFlow's automatic settings:

  • Audio Bitrate (Kbps): Maximum value is 384 Kbps
  • Audio Channels: Passthrough, or up to 8 audio channels
  • Audio Sample Rate: Passthrough, or one of thirteen discrete options from 7350 to 96000 Hz
  • AAC Profile: AAC-LC, HE-AACv1, or HE-AAC v2

Save the profile to use this configuration for the content preparation phase of a Workflow.


Developer Mode

You can configure parameters in Developer Mode to adjust the output to specific requirements:


BASH
{
  "cao": {
    "h264": {
      "renditionsSelectionMode": "default",
      "maxBitrate": 8000,
      "minBitrate": 250,
      "minMaxBitrate": 0,
      "maxMinBitrate": 500,
      "maxResolution": 1080,
      "minResolution": 240,
      "maxRenditions": 0,
      "minSDRenditions": 0,
      "minMaxSDBitrate": 0,
      "complexityPeaksAwareness": 2,
      "maxFPS": "auto",
      "targetQuality": 97,
      "forceMaxBitrate": false,
      "minBitrateGranularity": 20,
      "maxBitrateGranularity": 90,
      "stepAlgorithm": "default",
      "profileBaselineLowest": false,
      "profileHigh": true,
      "profileMain": false,
      "useInputResolutionAsOutput": true
    },
    "packaging": {
      "mp4": true,
      "mpegdash": true,
      "hls": true,
      "mss": true,
      "mp3": null
    },
    "aac": {
      "bitrate": 128
    }
  },
  "filters": {
    "deinterlacer": false,
    "loudnorm": false
  }
}



ParameterDescription

minBitrate

Lower bitrate limit for the the lowest rendition.

maxMinBitrate

Upper bitrate limit for lowest rendition. The bitrate of the lowest rendition can be forced by setting minBitrate = maxMinBitrate.

targetQuality

Target LQI value from 0 (lowest quality) to 100 (highest quality). LQI is the LightFlow Quality Index, a measurement of perceptual video quality.

minMaxBitrate

Lower bitrate limit for the highest rendition.

maxBitrate

Upper bitrate limit for the highest rendition. The bitrate of the top rendition can be forced by setting maxBitrate = minMaxBitrate. LightFlow will consider renditions at higher bitrates until any of the following conditions are met:

  • maxBitrate is reached.
  • targetQuality is reached.
  • Next bitrate does not bring significant perceptual quality increase. The perceptual quality increase considered as worthy is configured in the minimumQualityIncrease parameter. The minimum quality increase condition can be disabled by setting minimumQualityIncrease to a low LQI value (e.g. 0.01)

maxResolution

720p or 1080p for SD/HD; 1440p or 2160p for 4K.

forceMaxResolution

The generation of a rendition with maxResolution in the output can be forced by setting forceMaxResolution to true.

minResolution

240p, 288p or 384p. This value has no effect if video input resolution is less.

complexityPeaksAwareness

For assets with highly variable complexity the complexityPeaksAwareness parameter instructs LightFlow to be more conservative in terms of cost, even if that negatively affects the quality of a few high complexity scenes (complexityPeaksAwareness = 0); or to ensure all scenes reach the target quality even when that implies using more bandwidth than required for average complexity scenes (complexityPeaksAwareness = 5). It has a value between 1 and 10.

maxFPS

Maximum frames per second to be used for the asset. Set to "auto" to pass through frames per second rate of the video source.

maxRenditions

Maximum number of renditions to generate. The default value is 0, which means LightFlow will select the max number of renditions on its own.

minSDRenditions

Minimum number of SD renditions (< 720) to generate. The default value is 0, which means LightFlow will choose the optimal value.

renditionsSelectionMode

If maxRenditions is set to 2, LightFlow will by default select the renditions with the highest and lowest bitrates in the ladder. With renditionsSelectionMode set to top, LightFlow will select the two renditions with the highest bitrate.

fixedResolutions

When selected, LightFlow will only consider renditions in any of the resolutions defined in the fixedResolutions array.

staticRenditions

A subset of the output renditions can be fixed by using the staticRenditions parameter, so that staticRenditions are included in the output bitrate ladder determined by LightFlow.


For more information on the configuration parameters see Create an asset in the API reference guide.




JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.