xpra icon
Bug tracker and wiki

Opened 5 years ago

Closed 5 years ago

#615 closed enhancement (fixed)

100% picture quality everywhere

Reported by: Antoine Martin Owned by: alas
Priority: major Milestone: 0.15
Component: encodings Version: 0.12.x
Keywords: Cc:

Description (last modified by Antoine Martin)

At the moment, the default threshold which triggers a lossless refresh is set at 95%.
This means that an h264 frame from x264 at 95% will not cause a lossless refresh despite the fact that the pixel data may be lower than we expect.

Although it may be possible to normalize the quality values better (so that a jpeg at 95% is closer to a webp or NVENC encoded frame at the same quality setting), ultimately we may just need to have 100% quality everywhere:

  • to ensure that the visual quality is uniform across the window
  • to handle subpixel rendering (#559)

To achieve this, we may need:

  • a more dynamic refresh delay so we don't choke the encoding queue with lossless refreshes
  • stick with 100% quality more often (so we don't end up sending everything twice)
  • try harder to use lossless encodings before switching to video (maybe re-use some of the video regions code)

Change History (3)

comment:1 Changed 5 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

comment:2 Changed 5 years ago by Antoine Martin

Owner: changed from Antoine Martin to alas
Status: assignednew

A lot of improvements have been made in this area:

See also #620

TIL: we now refresh anything that is not lossless (was 95% previously): done in r8491 (+blooper fixed in r8492), backport in r8493.

Regions that are lossy and did not refresh should have been pretty rare because we tend to go to 100% quality when the quality is high (to avoid having to do the refresh), but can still happen with video encodings.

Note: this is a pretty significant change, hopefully without undesirable side effects... but maybe the heuristics will need to be tuned further now that we have more refresh needs when using high quality video.

@afarr: please close as an ack. Feel free to test and try to verify that it is impossible to get lossy regions to stick on screen for too long.

comment:3 Changed 5 years ago by alas

Resolution: fixed
Status: newclosed

Wasn't able to get any lossy regions to stick for anything more than a fraction of a second (but wasn't using 4K monitor...), whether there was any subregions painting with h264 or not.

I'll go ahead and close.

Note: See TracTickets for help on using tickets.