Encoder Integration Layer (EIL)
Last updated
Was this helpful?
Last updated
Was this helpful?
This article serves as a reference to the V-Nova LCEVC Encoder Integration Layer and should be read in conjunction with the Encoder Integration Layer (EIL) header, where each function is well documented as to its behaviour, arguments and return conditions. This document outlines the design, flow of functionality, and the properties exposed through the Integration Layers configuration system.
The following figure illustrates the EIL software stack.
The EIL combines V-Nova LCEVC with the base codec, and wrappers for supported base codecs. V-Nova provides example source code below to show how to use the Integration Layer.
V-Nova LCEVC is a single-pass encoder and provides the same results as if it were included in a multi-pass implementation, as the codec always operates in a single pass.
Putting it all together, the following scripts can be tested as starting points for CBR and CRF. Assuming that the scripts would be used to encode short test sequences, we included commands to set the rate control window type to “rolling window” mode.
The EIL provides a simple yet powerful API, and is similar in usage to working with other video encoding libraries.
The steps for encoding streams using the V-Nova LCEVC EIL are as follows:
Initialise the Integration Layer
While there are frames to encode:
a. Obtain an input frame and pass ownership to the encoder.
b. Wait for the encoder to complete, then fetch the encoded frame.
c. Release ownership of the output frame back to the encoder.
Shut down the Integration Layer