Skip to content

Move Data Processing as Close to the Sensor as Possible

magnupet edited this page Nov 23, 2018 · 7 revisions

Guideline Information

Item Value
Guideline Number 4
Guideline Responsible (Name, Affiliation) Lester Kalms, TUD
Guideline Reviewer (Name, Affiliation) Magnus Peterson, Synective Labs
Guideline Audience (Category) System architects, Application developers
Guideline Expertise (Category) Toolchain designers
Guideline Keywords (Category) Energy efficiency, Sensor data

Guideline advice

Move data processing as close to the sensor as possible. (Pre-) Processing a video stream with an embedded CPU consumes too much processing power, time and energy. KPIs in your real-time enabled low-power image processing platform will not be met.

Insights that led to the guideline

In the TULIPP reference platform, sensor data can be connected to the processing system or to the FPGA part directly. (Pre-) Processing the sensor data in the FPGA, reduces latency and increases throughput, due to the parallel nature of FPGAs.

Recommended implementation method of the guideline along with a solid motivation for the recommendation

If available, use on-board methods provided by the hardware manufacturer. For example, for the TULIPP starter kit, connect the sensor to the FPGA part directly. Consider the following examples of a Full HD video processing system with a simple pass-through and an HDMI output.

Instantiation of the recommended implementation method in the reference platform

  1. A USB camera connected directly to the ARM processor of the Zynq SoC as input source.
  2. Using an HDMI input connected to the FPGA of the Zynq SoC the pass-through design.
  3. With optimizations of the part of the data processing responsible for handling the sensor input the frame rate (e.g. using VDMA instead of DMA).

Evaluation of the guideline in reference applications

  1. This achieved 2 frames per second or even less. The Linux operating system uses OpenCV to read the input and writes it directly to the HDMI output.
  2. This achieved 32 frames per second. The Linux operating system only monitors the processing of the video stream. Here, the sensor is moved close to the data processing executed on the FPGA only.
  3. This achieved up to 60 frames per second.

This shows that moving the data processing as close as possible to the sensor – combined with simple optimizations – can improve your system.

References

Review

Related guidelines

none

Clone this wiki locally