LOCAL Video JPEG compression is too high using Logitech Quickcam Pro9000

Bug #182411 reported by Will
6
Affects Status Importance Assigned to Milestone
ekiga (Ubuntu)
Invalid
Low
Ubuntu Desktop Bugs

Bug Description

Binary package hint: ekiga

Hi,

I am now using a Logitech Quickcam Pro 9000 web cam on my Ubuntu Feisty PC.
I used to use a Quickcam Pro 5000. The problem I have is that for the Pro9000, Ekiga shows severe JPEG artefacts in the LOCAL video whereas the old Pro5000 does not.

I am looking at the local video (i.e. looking at myself) and the picture is not as good as is used to be. I am not in a call, I'm simply viewing the captured video images from the webcam in Ekiga. With the Quickcam Pro 9000 the JPEG compression artefacts (squiggley lines around edges) are very noticeable! This was not the case with the Pro 5000.

This strong JPEG compression on the local video makes it look quite poor on the remote end as by then it is squiggly and blocky (the tranmission adds the usual blocking artefacts in the image.) The combination of squiggles and blockyness makes the remote image too poor in my opinion, but it is the local squiggle artefacts that are the most disturbing to the viewer.

I am not sure what is happening or whether it is with Ekiga or the UVC driver or both, but if if I run lucview on my webcam the JPEG artefacts are much less and are hardly noticeable at all. (e.g. with lucview -f jpg, the default)

So, for some reason Ekiga appears to be telling the uvc driver to use a much higher JPEG compression (i.e. lower quality) than lucview does for the Quickcam Pro9000.
But when using Ekiga on my old Quickcam Pro 5000 webcam, the JPEG compression is less severe, and is a higher quality. (Perhaps Ekiga compresses the Pro9000 images more because they are of higher spatial resolution???)

I have also tried this on Ubuntu Gutsy and the same strong JPEG artefacts occur in that version of Ubuntu too.

It would be good to be able to have a configurable setting in Ekiga for the JPEG quality for use with the UVC driver video streaming facility. (I am NOT talking about the video transmission quality versus frame rate, I am referring to the local video capture stage.)

Can we have this new feature? i.e. the ability to configure the amount of JPEG compression on the local video capture in Ekiga? i.e. to be able to set the JPEG compression quality on the local video (from uvc driver) from within Ekiga?
(I assume Ekiga would have to interact with the uvc driver somehow to set the JPEG quality.)

Thanks in advance.

ProblemType: Bug
Architecture: i386
Date: Sat Jan 12 21:58:45 2008
DistroRelease: Ubuntu 7.04
ExecutablePath: /usr/bin/ekiga
Package: ekiga 2.0.3-0ubuntu8
PackageArchitecture: i386
ProcCmdline: ekiga
ProcCwd: /home/will
ProcEnviron:
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SourcePackage: ekiga
Uname: Linux box 2.6.20-16-generic #2 SMP Tue Dec 18 05:45:12 UTC 2007 i686 GNU/Linux

Revision history for this message
Will (will-berriss) wrote :
Revision history for this message
Will (will-berriss) wrote :

Hi again,

I should have made myself a bit clearer. The squiggle artefacts on the edges are on the edges of the object in the image, such as the edge of my face, or the rims of my spectacles, or any other straight lines in the image such as my shirt collar or the edge of a table etc etc

I am pretty sure this is an Ekiga/uvc driver issue since when using luvcview on the webcam the compression artefacts are NOT noticeable, i.e. it does NOT show the same problem.

will@box:~$ luvcview
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0

will@box:~$ luvcview -L
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0
/dev/video0 does not support read i/o
{ pixelformat = 'MJPG', description = 'MJPEG' }
{ 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 = 480 }
        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 = 960, height = 720 }
        Time interval between frame: 1/15, 1/10, 1/5,
{ pixelformat = 'YUYV', description = 'Uncompressed' }
{ 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 = 480 }
        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/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 960, height = 720 }
        Time interval between frame: 1/10, 1/5,
{ discrete: width = 1600, height = 1200 }
        Time interval between frame: 1/5,
will@box:~$

I'm not sure which width x height resolution Ekiga is using, it would be nice to know what is was and to have the width by height resolution displayed in Ekiga.
And to be able to configure the spatial resolution from within Ekiga would be fantastic. :)

Thanks

Revision history for this message
Will (will-berriss) wrote :

The attached PNG image (captured with Ekiga's Save Current Image feature) shows the squiggles I am referring too.

Revision history for this message
Yannick Defais (sevmek) wrote :

Hi,

Ekiga 2.0.x use by default a video resolution width = 176, height = 144. The picture you attached is taken from this resolution with a zoom factor x2.

To compare it, you should do the same with luvcview; require a 176x144 output and zoom it by 2.

There is an hidden trick to get a higher resolution in Ekiga:
open gconf-editor and turn the key "/apps/ekiga/devices/video/size" to "1" which will give you a 352x288 resolution.

The reason why this key is hidden is the codec compression used by ekiga 2.x is not good for compression (H.261); it will use a lot more bandwidth.

The upcoming next release (Ekiga 3.0) will add several more video codecs, including the great H.264 from the x264 project, and allow higher resolutions in Ekiga (at least up to 640x480). The team expect a release before the end of march 2008. This mean it will not be in the next Ubuntu release 8.04, probably in the 8.10.

Here is the roadmap: http://wiki.ekiga.org/index.php/Roadmap_to_3.00

Regards,
Yannick

Revision history for this message
Will (will-berriss) wrote :

Thanks Yannick.
You are quite right, when I run luvcview -s 176x144 I see the exact same amount of JPEG compression as I do in Ekiga (and zooming in x2 makes it more noticeable still,
just like in Ekiga.)
So, it's just a UVC thing then, or rather, I assume that it's just the level of JPEG compression that is being applied by the web camera's hardware and out of my control. Fair enough.

So, I assume that the Quickcam Pro900 does indeed apply stronger JPEG compression than the Quickcam Pro5000. Is that correct? (I guess it must be as Ekiga always uses a resolution of 176x144, and the Pro5000 image looks fines for that.)

Finally, thank you very much indeed for the tip about the hidden setting in gconf-editor. That's made the local image look MUCH better! Thanks :)
(Ironically I did look in gconf-editor before, but I did not notice that the size referred to QCIF and CIF, I stupidly assumed it referred to the ZOOM setting Ekiga. Doh!)

Finally, when I make a call to someone else, the CIF image viewed reverts to a QCIF image for the duration of the call. This was for both local and remote images. I guess Ekiga drops down to the lower resolution if the remote user is on the lower resolution.

I assume if we both use CIF resolution then Ekiga will remain at CIF resolution during the call too. Is that correct?

Thanks again.

Revision history for this message
Yannick Defais (sevmek) wrote :

Hi,

Thanks for reporting.

I don't know if the pro9000 apply stronger compression. This is something to ask the UVC driver developers...

I've no clue why Ekiga reverts to QCIF while in a call, you have to try.

Regards,
Yannick

Revision history for this message
Will (will-berriss) wrote :

Thanks for the prompt reply.

I might be wrong about Ekiga reverting to QCIF in a call. The image does look better now than it did yesterday. Both myself and the remote party have set the image size to CIF and I _think_ it is staying at CIF after all, though I'm sure something changes when I go into a call.

I'm looking forward to Ekiga v.3.0 :)

Thanks and kind regards.

Will
--

Revision history for this message
Will (will-berriss) wrote :

Hi

I am using CIF sized images now, so the compression level is bearable.

As discussed, I guess the compression level is the realm of the uvc webcam driver code and that team.
Perhaps also the compression level is FIXED in the camera hardware anyway.

Looking forward to increase spatial resolution images in the future in Ekiga.

Will
--

Revision history for this message
ma30002000 (ma30002000) wrote :

Hi WIll,
the JPEG compression level may be set via a V4L2 command. RIght now it is not set by ptlib, so it will switch to the cams default I suppose. Unfortunately I do not have a JPEG cam... Do you think you could comile a patched version of ptlib, opal and ekiga? On
wiki.ekiga.net
you should find all the info you need...

About switching to QCIf, this is mostly due to connecting to some other peer not supporting anything better...
Matthias

Daniel T Chen (crimsun)
Changed in ekiga:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Andreas Moog (ampelbein) wrote :

Thanks for reporting. Is this still an issue with current ekiga version 3.2.0?

Changed in ekiga (Ubuntu):
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
status: Confirmed → Incomplete
Revision history for this message
Sebastien Bacher (seb128) wrote :

We are closing this bug report as it lacks the information, described in the previous comments, we need to investigate the problem further. However, please reopen it if you can give us the missing information and don't hesitate to submit bug reports in the future.

Changed in ekiga (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.