Hi, Did anyone use the MJPG format? I mean grabbing the MJPG data, writing it to a file and than try to decompress and view it? The thing is that it would be very cheap to copy the mjpg data to a sensor_msgs/CompressedImage message and the transmit the image to a remote computer. What I found is that mjpg is not jpg. I had to patch libjpg in order to insert the missing DHT segment manually. Are there any other means of making use of the mjpg data? Regards Christian Am 06.01.2011 02:22, schrieb Homer Manalo: > Thanks for the info Patrick, that would be a likely candidate beside > the webcam pro 9000. Eric, that was a very informative post. Now we > have a better understanding on the hardware we will get. > > Thanks, > Homer > > On Thu, Jan 6, 2011 at 6:06 AM, Eric Perko > wrote: > > Homer, > > Some numbers on using a webcam with my uvc_cam driver (they are a > little fuzzy since it's been a while since I did the tests, but it > should be about right). No changes to the driver were made between > these tests, and all were running the same version of Ubuntu > (64-bit unless it wasn't supported, like on the Core Duo). We were > doing 640x480 @ 30fps and I believe had to do a YUYV to RGB > conversion in the driver because the cameras did not support > outputting RGB (though I can't recall if that is the Logitech > Webcam Pro 9000 or these other crappy, no brand cameras we were > using before the Webcam Pro 9000s). > > Anyways, the numbers: > > 1. Intel Core Duo, somewhere between 2.0 and 2.4 GHz (Mac Mini, > circa 2006-2007): somewhere around 40% CPU per camera. Basically, > what I remember was that we were gonna lose a whole CPU core to > just a pair of cameras and that was unacceptable. > 2. Intel Core 2 Duo, 2.0 GHz (IBM Thinkpad T61, circa 2007): about > 10-15% CPU per camera. > 3. Intel Core i7 920, 2.66GHz (Custom build, Summer 2009): very > low usage, sometimes even showing up at 0% in the System Monitor. > 5-8% tops when it does show up. > > As you can see, for whatever reason, the Core 2 kicks the crap out > of the Core Duo. 64-bits vs 32-bits, extra SSE voodoo, better USB > drivers on the T61 than the Mac Mini, who knows why? Anyways, > definitely something to think about. Also, any webcam that you can > use in an RGB mode as opposed to YUYV where the driver is going to > have to spend time converting from YUYV to RGB will be good. > > That said, we've been quite happy with the Webcam Pro 9000s. Let > me know if you have any other questions about it. I'm including > the console output of guvcview, which lists the different image > sizes and 1/FPS pairs that the camera clams to support in > different modes (MJPG or YUYV in this case), in case anyone > wonders about that and doesn't have a Webcam Pro 9000 on hand to > find out :) > > Hope that helps. > > - Eric > > guvcview console output: > > video device: /dev/video0 > /dev/video0 - device 1 > Init. UVC Camera (046d:0809) (location: usb-0000:00:1d.7-5) > { pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' } > { discrete: width = 640, height = 480 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 160, height = 120 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 176, height = 144 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 320, height = 240 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 352, height = 288 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 640, height = 360 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 640, height = 400 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 768, height = 480 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 456 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 504 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 600 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 864, height = 480 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 960, height = 720 } > Time interval between frame: 1/15, 1/10, 1/5, > { discrete: width = 1280, height = 720 } > Time interval between frame: 2/15, 1/5, > { discrete: width = 1280, height = 800 } > Time interval between frame: 2/15, 1/5, > { discrete: width = 1600, height = 904 } > Time interval between frame: 1/5, > { discrete: width = 1600, height = 1000 } > Time interval between frame: 1/5, > { discrete: width = 1600, height = 1200 } > Time interval between frame: 1/5, > { pixelformat = 'MJPG', description = 'MJPEG' } > { discrete: width = 640, height = 480 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 160, height = 120 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 176, height = 144 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 320, height = 240 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 352, height = 288 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 640, height = 360 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 640, height = 400 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 768, height = 480 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 456 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 504 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 800, height = 600 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 864, height = 480 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 960, height = 720 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 1280, height = 720 } > Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 1280, height = 800 } > Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, > { discrete: width = 1600, height = 904 } > Time interval between frame: 1/10, 1/5, > { discrete: width = 1600, height = 1000 } > Time interval between frame: 1/10, 1/5, > { discrete: width = 1600, height = 1200 } > Time interval between frame: 1/10, 1/5, > checking format: 1196444237 > VIDIOC_G_COMP:: Invalid argument > compression control not supported > vid:046d > pid:0809 > driver:uvcvideo > Adding control for Pan (relative) > Adding control for Tilt (relative) > Adding control for Pan Reset > Adding control for Tilt Reset > Adding control for Pan/tilt Reset > Adding control for Focus (absolute) > mapping control for Pan (relative) > mapping control for Tilt (relative) > mapping control for Pan Reset > mapping control for Tilt Reset > mapping control for Pan/tilt Reset > mapping control for Focus (absolute) > mapping control for LED1 Mode > mapping control for LED1 Frequency > mapping control for Disable video processing > mapping control for Raw bits per pixel > > > > On Wed, Jan 5, 2011 at 12:00 PM, Patrick Goebel > > > wrote: > > Hi Homer, > > I have had several years of good experience with the Philips > SPC1300NC > both under Windows using RoboRealm and now more recently under > Ubuntu+ROS using Eric Perko's uvc_cam package (git clone > https://github.com/ericperko/uvc_cam.git) and OpenCV. I > haven't done > any benchmarking under Linux but under Windows I was getting > as high as > 80 fps at 160x120 resolution and manual exposure. > > --patrick > > On 1/5/2011 6:53 AM, Homer Manalo wrote: > > Thanks! Anyone had used Philips SPC1300NC or a creative webcam? > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users