HW/OS/API recommendation for realtime waveforms on ARM proc?
I'm trying to create a device medical monitor that can display realtime waveforms like ECG, blood pressure, O2 levels, and such. Maybe 4-5 waveform graphs per screen, about 500 vertices per graph, 30 fps, and hopefully XVGA with antialiasing. Are there any ARM processors and BSP's that offer HW acceleration that can handle that kind of load? I've been playing with the Atmel 9263 and Adeneo WinCE 6.0, but right now that's only giving me about 1 fps at QVGA with no antialiasing in DirectX, and Open__ won't even load. Does anybody have experience successfully implementing graphics with this kind of performance on an ARM device? (Or is ARM the wrong architecture -- x86 is off the table because of power requirements, but others might be possible).
Actually, VG is something new to me -- given the application of drawing realtime waveforms and labels and menus, would OpenVG actually be even more applicable than a DirectX or OpenGL option?
Re: HW/OS/API recommendation for realtime waveforms on ARM proc?
With no hardware acceleration, 30 fps @ 1027x768 is going to be very difficult on an ARM.
Codewise, in general, you may improve your frame rate by:
- enabling EGL_SWAP_BEHAVIOR to EGL_BUFFER_PRESERVED to not redraw sections of the screen that do not change (if supported)
- make sure you are not creating/destroying paths in your render loop
- try to avoid calling vgAppendData() in the render loop. Try to initial as many things as possible outside of the render loop.
- switch off blending (VG_BLEND_SRC) whenever possible
- set the render quality to fastest.
Realistically though, I don't expect you to break about 7-12 fps with a software renderer on 1024x768 with an ARM. Querry which if any features of OpenVG are accelerated with vgHardwareQuery(). Using something with hardware acceleration like PowerVR may be the only way to achieve the desired frame rate on an ARM.