When trying to display an MJPEG stream in Vision I’m encountering crazy CPU usage, much higher than when I view the stream in Chrome.
800 x 450 resolution
Chrome: ~5% CPU
Vision IP Camera Viewer: pegs CPU @ 100%
Vision Web Browser Component: ~35% CPU, but it gobbles up RAM
I’m not sure if there’s any GPU acceleration happening in Chrome, but it really is a massive difference. This is on an i7-6600u (nothing too crazy but definitely not a low power device).
There’s almost certainly hardware accelerated decoding happening in native Chrome. I wouldn’t be surprised if JxBrowser wasn’t taking advantage of that when using the Web Browser component (the performance might be better in 8.1, since we bumped the JxBrowser version).
As for the Vision component natively - Java Swing is completely CPU bound, and single threaded. I doubt you’re going to get any better than JxBrowser’s performance directly inside Swing.
I’ve been toying with an OpenCV-driven alternative to Vision’s IP Camera Viewer, now that I have OpenCV loading in client/designer scopes. Not terribly soon, but probably this year. (:
There actually is a noticeable difference, it’s using only 25% CPU in 8.1.0 instead of 35% in 8.0.15. Still need to test on low power clients to see if it’s feasible for production though.
Count me in as interested!