This chapter describes the application processing unit (APU) Linux software stack. The stack and vertical domains are shown in the following figure.
The stack is horizontally divided into the following layers:
Application layer (user-space)
Jupyter notebooks with a simple control and visualization interface
GStreamer multimedia framework with python bindings for video pipeline control
Middleware layer (user-space)
Implements and exposes domain-specific functionality by means of GStreamer plugins to interface with the application layer
Provides access to kernel frameworks
Operating system (OS) layer (kernel-space)
Provides a stable, well-defined API to user-space
Includes device drivers and kernel frameworks (subsystems)
Access to hardware IPs
Vertically, the software components are divided by domain:
Video capture
Codec
Accelerator
Display
Audio
The subsequent chapters describe the components of each vertical domain first and cover application layer components next.