Xpra: Ticket #245: 0.8.1: text flickery with x264 and min-quality<70

With 0.8.0 and 0.8.1 I experience text "flickery" (visual distortion) in kate with "x264" encoding and min-quality < 70.

With several paragraphs of text in kate all text is flashing in the rhythm of cursor flashing. Setting min-quality to 70 is enough to fix the problem.

Mon, 04 Feb 2013 04:09:10 GMT - Antoine Martin: status changed; owner set

70 is the minimum quality level for YUV422, below that you would be using YUV420 colour subsampling.

What is strange is that you get a full window refresh with just a cursor change. I guess that kate is updating the whole line or something, so we end up with a full window refresh rather than a small lossless (png/rgb24) region. Will test.

Wed, 06 Feb 2013 17:12:44 GMT - Antoine Martin:

Just tested and I managed to reproduce the flickering issue in Kate. That's because the Kate application re-paints the whole line (or more?) every time the cursor blinks - so xpra does a full window refresh using x264. Then shortly after the auto-refresh kicks in and does a lossless refresh at high quality. The flickering is due to the difference in quality between regular frames and almost-lossless frames.

I'm trying to find out why the quality isn't higher on "auto" when Kate is idle (just the cursor blinking), "xpra info" reports a quality of about ~80% when it looks like it should go much higher (and therefore avoid all flickering by virtue of already being lossless).

PS: The problem manifests even more wildly if kate has spellchecking enabled and some words are underlined.

Wed, 20 Mar 2013 13:51:45 GMT - Antoine Martin: status changed; resolution set

I don't think there is much we can do about this at all, when using YUV422 or YUV420, the colour subsampling will do this - the only way to avoid it is to not use it: setting a quality high enough so that YUV444 is used (by default the threshold is at 90%).

The quality and min-quality options can be set:

Sat, 23 Jan 2021 04:49:29 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/245