how openViBE deal with real time data

Come here to discuss about OpenViBE in general!
Post Reply
HA3
Posts: 21
Joined: Sun Nov 23, 2014 5:32 am

how openViBE deal with real time data

Post by HA3 »

lets assume the following
1. I have build a scenario which is takes 5 second to through output(process) for each data block
2. each data block contains data for 1 second .

from the above, each 1 second data /signal long takes 5 second to process, which means that when we process the first block, there are 5 data blocks are waiting.

Assume the openViBE are process the 10th block, which will be processed after 10*5= 50 second after it's original time , moreover Assume that we have run the scenario for 5 minutes or 300 second, then there will be 300 - 300/5 =240 blocks are waiting in memory, and assume each block contains 512 sample with 32 bit long, then we have ~480 KB in memory.

So how openViBE deal with this problem? does it replace the old data with the new data ?

jtlindgren
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: how openViBE deal with real time data

Post by jtlindgren »

Hello HA3,

I might be wrong, but based on a quick glance of the code, the data chunks will just pile up in the server, probably until you run out of memory.

The pipeline is practically [hardware]->[driver]->[server]->[designer].

As far as I know, only in the stage between the driver and the server it is checked that if too much or too little data comes from the driver, some action is taken ("drift correction").

If there is client side congestion, this is not addressed. If you want 'realtime' processing, then you need to make the processing chain fast enough to run realtime.
If you run data from a file in some batch processing operation (realtime doesn't matter), this does not matter: you just need to make sure the operations are solely based on timestamps in the chunks and current designer simulated time, and not use realtime hw clock calls.


Cheers,
Jussi

HA3
Posts: 21
Joined: Sun Nov 23, 2014 5:32 am

Re: how openViBE deal with real time data

Post by HA3 »

jtlindgren wrote: If you want 'realtime' processing, then you need to make the processing chain fast enough to run realtime.
So based on your words, openViBE does not really support real time application ? it may or may not support this based on the algoritm that I build.

jtlindgren
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: how openViBE deal with real time data

Post by jtlindgren »

We have no problems running OpenViBE in real time with the BCI pipelines we usually use on our desktop computers. To address speed issues, you can manually do signal decimation, reduce the amount of channels, change the used algorithms, etc, until you reach the desired quality/speed compromise. Its a bit like in games, not many of them automagically adjust level of rendering detail to give you that 30fps. Neither does OpenViBE. You'll have to change the settings yourself, and if you throw in too heavy components, the computer can't keep up. It doesn't know what to do to make it faster. Especially in EEG it would be quite difficult to guess what parts of the data to throw away without understanding what your processing is trying to do -- and this kind of intelligence the software doesn't have.


Cheers,
Jussi

Post Reply