The subsystem driver provides an easy-to-use, well-defined API to help integrate the subsystem in an application without having to understand the underlying complexity of configuring each and every subcore.
Subsystem driver consists of the following:
• Subsystem layer: Controls the data/control flow of AXI4-Stream through the processing cores. It uses support functions to examine the input and output stream properties and make appropriate decision to implement the determined use case.
• Subcore drivers: Every included subcore has a driver associated with it and provides 2 layers of abstraction
° Layer-1: Implements API's to peek/poke IP registers at HW level.
° Layer-2: Implements feature set to abstract core functionality.
For example, the color space conversion IP at the core level contains a 3 x 3 coefficient matrix which must be manipulated to do the required conversion, for example RGB to YUV.
• Layer-1 provides APIs to read/write these 3 x 3 coefficient registers. You are responsible for computing the required coefficient values and program the specific registers.
• Layer-2 implements the feature set that can be built upon layer-1 and is much easier to use:
° API to convert RGB to YUV or vice-versa.
° API to set/get brightness, contrast, saturation and gain.
° Auto translation between user setting of 0-100 to IP offered range.
This Figure shows the Video Processing Subsystem architecture.