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:
{
"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
}
}
Parameter | Description |
---|---|
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 |
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
|
maxResolution | 720p or 1080p for SD/HD; 1440p or 2160p for 4K. |
forceMaxResolution | The generation of a rendition with |
minResolution | 240p, 288p or 384p. This value has no effect if video input resolution is less. |
complexityPeaksAwareness | For assets with highly variable complexity the |
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 |
fixedResolutions | When selected, LightFlow will only consider renditions in any of the resolutions defined in the |
staticRenditions | A subset of the output renditions can be fixed by using the |
For more information on the configuration parameters see Create an asset in the API reference guide.