Performance


Performance is critical in multimedia applications, and it is especially critical in video management software, where data flows are big and tend to grow even more, annually. Viinex 2.0 addresses this issue.

We've made some tests on intentionally moderate hardware to give an idea of how many videochannels can be served with Viinex 2.0, on Intel x86 and ARM machines respectively. Some numbers are presented below. The numbers are given in assumption that average video channel bitrate is about 2 MBit/s, which is realistic for a ~2 MPx camera watching the scene with average motion to produce reasonable video quality after encoding.

Intel x86/x64

On a low-performance power-saving Intel CPU (like U-series Core i3, dual core, working at the frequency of 2GHz), Viinex 2.0 utilizes about 2% of time at one CPU core per one video channel being recorded. It also takes additional 1% of time on one CPU core to re-stream one video channel to a remote client, no matter whether it is a live stream or a video archive data. That is, with Viinex 2.0 you'll be able to write and re-stream video data from at least 50 video cameras with a PC having inside a CPU like mentioned above. With a quad-core i5 CPU this number should be doubled.

ARM

For ARM, let's take as an example a widely known Raspberry Pi platform, its 2nd generation (dated 2015). This is quad-core Cortex A7 at 900MHz, with Ethernet interface implemented via USB (which is important since Viinex 2.0 solves the task which involves much of network I/O). Running on this SBC, Viinex 2.0 utilizes 4% CPU time per each video channel being received and written, and additional 2% of CPU time per each video channel being re-streamed to a remote client. These percents relate to the whole device (not to a single core). So, above mentioned Raspberry Pi 2 is capable of serving (writing and re-streaming) about 12 video cameras with Viinex 2.0 software.