SDK INTRODUCTION
1. Keywords¶
Abbr | Full name | Introduction |
---|---|---|
AI | Audio Input Interface | I2S audio input acquisition unit, support 16 channels x16bitx8k audio signal input |
AO | Audio Output Interface | Support 1 channel 16bit steroaudio output |
DISP | Display Engine | Two implementations of DISP: 1. DISP0/DISP1 does hardware picture splicing on the images output by the DIVP processing unit, and encodes them together with the AO output audio signal into a unit of HDMI/VGA/CVBS output signals 2. Virtual DISP : Perform software picture splicing on the images output by DIVP, and then output the spliced image, it is mainly used to support zero-channel encoding |
DIVP | De-interlace & VideoPost Process Engine | DIVP Engine main functions: 1. DeInterlace the Interlace signal output by VIF (*only available for individual chips) 2. Do video post-processing on the video frame image output by VDEC |
FB | FrameBuffer | UI display |
GFX | Graphics Engine | Graphic Engine provides basic hardware acceleration support for 2D drawing, reducing CPU load |
HDMI | High Definition Multimedia Interface | HDMI/VGA standard output |
SYS | System | MI system initialization, memory management, data flow management between various modules |
VDEC | Video Decoder | H264/H265/JPEG video decoder |
VENC | Video Encoder | H264/H265/MotionJpeg encoder, the input original image sequence comes from VPE |
VDISP | Vitrual Display | Vitrual Display |
WLAN | Wireless Local Area Network | Scanning and connection of wifi |
2. Software Architecture¶
-
The function realization function is divided into MI API layer, MI implement layer, Hal hardware abstraction layer, Driver layer and chip hardware layer from top to bottom.
-
The SDK function code is implemented in the Kernel mode, which reduces the scheduling from kernel to User mode and improves the efficiency of logic function implementation.
-
For the User Mode interface of the MI API provided by the upper-level client, the user-level APP directly calls the MI interface to call the corresponding MI function.
3. SDK directory structure¶
catalog | module | function |
---|---|---|
project | board | PCB board information storage path |
project | configs | Pre-configuration file storage path |
project | image | The storage path of image file and library that generate image file |
project | kbuild | Kernel compilation environmentkernel |
project | release | Target pool, storing external header files, library files, kernel modules and third-party libraries |
SDK | Verify/feature | Verification folder, which stores module unit test and feature test files |
SDK | Verify/demo | Overall function test demo |
4. Basic Concepts¶
-
Data Stream
Each mi module can be regarded as a data processing unit, and the data flow is uniformly scheduled by MI SYS. The input data stream represents the data received by the unit, and the output data stream represents the data processed by the unit.
-
Control Stream
APP controls the parameters of each mi module data processing process, such as setting MI_VENC encoding parameters, starting and stopping MI_VPE channel, setting MI_VPE channel output port resolution and format, etc.
-
Channel
-
For an mi module that needs to process or output a stream, a channel represents the time-multiplexed context and related control flow settings that it processes or outputs a stream.
-
The time-multiplexed module can support multiple channels, such as MI_VDEC, MI_DIVP, MI_DISP.
-
-
Port
-
Port is divided into two types, input port and output port. The input port is the location of the channel's input data stream, and the output port is the location of the channel's output data stream.
-
A channel can have multiple input ports and output ports.
-
5. API¶
Please refer to SDK Module API for details.
6. DEBUG method¶
Please refer to the corresponding chapter PROCFS INTRODUCTION of each module API in SDK Module API for details.