Simple demo of ARM Neon (SIMD) extensions, comparing a box filter (blur) between CPU and Neon.
By Laurent Ittiitti@usc.eduhttp://jevois.orgGPL v3
 Language: C++Supports mappings with USB output: YesSupports mappings with NO USB output: No 
 Video Mapping:   YUYV 960 240 30.0 YUYV 320 240 30.0 JeVois DemoNeon

Module Documentation

NEON are specialized ARM processor instructions that can handle several operations at once, for example, 8 additions of 8 bytes with 8 other bytes. NEON is the counterpart for ARM architectures of SSE for Intel architectures.

They are very useful for image processing. NEON instructions are supported both by the JeVois hardware platform and by the JeVois programming framework.

In fact, one can directly call NEON instructions using C-like function calls and specialized C data types to represent small vectors of numbers (like 8 bytes).

This demo uses a blur filter from the open-source NE10 library. It compares processing time to apply the same filter to the input video stream, either using conventional C code, or using NEON-accelerated code. The NEON-accelerated code is about 6x faster.

For more examples of use of NEON on JeVois, see modules DarknetSingle, DarknetYOLO, and DarknetSaliency which use NEON to accelerate the deep neural networks implemented in these modules.

ParameterTypeDescriptionDefaultValid Values
(DemoNeon) kernelwunsigned intKernel width (pixels)5-
(DemoNeon) kernelhunsigned intKernel height (pixels)5-
Detailed docs:DemoNeon
Copyright:Copyright (C) 2016 by Laurent Itti, iLab and the University of Southern California
License:GPL v3
Support URL:
Other URL:
Address:University of Southern California, HNB-07A, 3641 Watt Way, Los Angeles, CA 90089-2520, USA