We're developing a mobile robotic system that does a lot of processing in the data center (i.e. the device is pretty stupid, and most of the CV/navigation/AI stuff is done "in the cloud", if you excuse me).
For that purpose, we need to produce a fixed frame rate video stream from the forward camera even in fluctuating network conditions to maintain a predictable response timing. Fixed frame rate can be achieved by varying the load, so in poor network conditions we only send 50kB frames, and in better network conditions we may send 80kB frames.
Using a baseline JPEG is a poor option, since a partial image may not be useful for the computer vision software at all. So whatever the image format, we need to use some kind of interlacing to drop the quality but still allow the CV to mostly do its job. On a side note, the video stream must not use interframe predictions to make the system more resistant to frame corruption and losses.
As it is, we are down to MJPEG stream with progressively encoded frames, a JPEG2000 stream (I believe it does some wavelet magic and it should theoretically be possible to similarly cut off the latter part of the image to achieve a result similar to ProgressiveJPEG) and WebP (which afaik also supports progressive encoding). Since we aim for relatively high video feed frame rates (10-20fps), non-accelerated encoding can hardly be used: our software currently spends about 400-500msec on encoding each frame.
Do you have any suggestions? Thank you.