Feature Request Tracker item #3415112, was opened at 2011-09-28 15:47
Message generated for change (Settings changed) made by kriston
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126849&aid=3415112&group_id=254363

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
>Status: Closed
Resolution: None
Priority: 5
Private: No
Submitted By: Kriston Rehberg (kriston)
Assigned to: Nobody/Anonymous (nobody)
Summary: Use lossless encoding on text

Initial Comment:
Use lossless encoding on text so that fonts that have smoothing do not appear 
blurry.
Essentially, everything on the screen would have JPEG encoding applied to them 
except for text which would use a lossless encoding.
I'm creating this feature request now but I will update it since I am still 
searching for the remote desktop system that has this feature (I believe it is 
one of the VNCs).


----------------------------------------------------------------------

Comment By: D. R. Commander (dcommander)
Date: 2011-09-29 14:21

Message:
The only solution I know of at the moment is a lossless refresh feature. 
If you have other specific ideas regarding how to address this, then please
post them.  Otherwise, it doesn't make sense to leave open an issue that
has no resolution.


----------------------------------------------------------------------

Comment By: Kriston Rehberg (kriston)
Date: 2011-09-29 12:56

Message:
I concur with your assessment.  The Freetype/Cairo/etc. rendering chain I
believe does use RENDER on X11.  On Win32 more and more applications aren't
using GDI anymore (like Firefox 5+ and MSIE 9).
I can tell you that TurboVNC and the test build of TigerVNC are stellar
using Lossless Tight and very good with Perceptually Lossless as you
pointed out.
If you agree let's leave this bug open as a tracker for a "clarity of
fonts" issue.  Thanks!


----------------------------------------------------------------------

Comment By: D. R. Commander (dcommander)
Date: 2011-09-29 12:33

Message:
Note also that, even if Xvnc knows where the text regions are initially,
there would be significant complexity in tracking those regions as, for
instance, the window is moved.  Basically, what would happen is that the
text would only be guaranteed to be rendered losslessly the first time it
is drawn.  Subsequent updates containing the text region might not be
rendered losslessly, if they are triggered by a window move or a client
request.

Personally, I find the text to be quite readable even at JPEG Quality
Level 0 (which, in TigerVNC, is equivalent to JPEG Quality 15 with 4:2:0
subsampling.)


----------------------------------------------------------------------

Comment By: D. R. Commander (dcommander)
Date: 2011-09-29 12:26

Message:
In TigerVNC, framebuffer updates are typically triggered by X11 operations,
but they can also be triggered by a client request (for instance, if a
client window is obscured, it can request that the obscured pixels be
re-sent whenever the window becomes visible again.)  For each framebuffer
update, the Tight encoder analyzes it to determine if there are significant
subrectangles that contain only one color.  If so, it separates and sends
those rectangles first.  It then divides the remainder of the update into
subrectangles no more than 64 kpixels in size and sends each separately. 
For each subrectangle, JPEG encoding is only used if the rectangle contains
> 24 colors.  Otherwise, indexed color encoding (which is lossless) is
used.

We do hook into the text and glyph drawing functions, so assuming the text
is drawn using those functions, it may be possible to add an additional
property to the update that says "don't use JPEG".  However, my
understanding is that a lot of modern software uses the RENDER extension to
do anti-aliased font rendering (correct me if I'm wrong), and so by the
time Xvnc receives the image output from the RENDER extension, it really
has no idea that there is text enclosed in the image.

Personally, I think a better approach is lossless refresh and
auto-lossless refresh, whereby the VNC server can be asked to re-send the
lossy regions using either high-quality JPEG or mathematically lossless
encoding whenever the session is idle.  That is what TurboVNC currently
does, and I'm looking into implementing it in TigerVNC as well.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126849&aid=3415112&group_id=254363

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to