These message types are for sending fairly different types of messages between nodes:
- compressed_image - standard color images
- 3-channel (RGB), 8-bit
- compressed using either JPG or PNG formats, with user-specified settings
- compressed_depth_image - depth image (e.g. from kinect or stereo cameras)
- 1-channel, either 32-bit float or 16-bit integer
- compressed using PNG format
Your application sounds like it involves standard (not "3D") video data, so I would choose the compressed_image format. See this tutorial for examples of how to adjust the compression "quality" to achieve your desired performance.
As far as I know, though, the image_transport package hides the details of the specific transports from your application. You shouldn't have to interface with a compressed_image directly. The image_transport exposes images on both sides as standard Image messages. See the examples at these tutorials. You can toggle between different methods by setting the ~image_transport
parameter to see the effect on performance. In particular, you may want to look into the theora streaming-video method.