Wrong colors when using jpg compression

Public
DaveG
2010-04-21
2013-04-25
  • DaveG

    DaveG - 2010-04-21

    First, I'd like to say that Flashlight is great and I'm really excited about having a non-Java browser VNC client available. Thank you for making this project!

    But, I have a  problem.  I see blocks and stripes of tinted colors in Flashlight when using the jpeg compression option.  For example, areas of the screen that should be white show in yellow.   Red shows as a bright green.  The whole screen is never affected, usually about half the screen, in blocks and stripes. If I scroll up and down on a page for example, what's colored correctly and what's not changes.  It's like somehow the jpeg images are not unpacking correctly or the colors are not decoding as expected.

    Has anyone else seen this problem and/or found a solution to it?   I'd really like to use jpeg compression as the bandwidth savings are huge, so I'm hoping to find some kind of fix or work around.

    I've tried Flashlight V2.0.2 and V2.0.3 (unpacked from zip, i.e. Flashlight-VNC-bin-v2.0.3.zip).  Both do exactly the same thing.
    For the server, I'm running  tightvnc-1.3.9-110 (latest) under Suse 11.1.  I'm using 24 bit color and tight encoding.
    I see the problem on every case I've tested, and I've tried multiple computers running the VNC servers, and I've tried multiple computers running the client. I've tried it on Windows and Linux, both are the same.

    Connecting to the same server with the standard "vncviewer" VNC client works fine and shows no strange colors (although I don't know if vncviewer is using jpg compression)

     
  • Marco Fucci

    Marco Fucci - 2010-04-22

    Hi,

    Thank for the feedback.

    Is there by any chance a way I can connect to one of your server ? That will really help me to find the problem.
    If so, you can send me how to mfucci at gmail.com

    If this is really in the JPEG parts of the screen, I am not sure I can do something because Flashlight-VNC just uncompress the JPEG portion without touching the pixels.

    The problem you describe seems to be the classic mixup between little-endian, big-endian on a 32bit color depth:
    B G R _
    _ R G B

    -> As you can see, Red (R) become Green (G) and white (BGR) become yellow (RG).

    I can add a hack to change the color order in Flashlight, but the blue part will be lost …

    Marco

     
  • Marco Fucci

    Marco Fucci - 2010-04-25

    Hi Dave,

    Unfortunately, this bug is in the VNC server: the color are not correctly swapped between little-endian / big-endian before the Jpg compression.
    I cannot add a hack in the trunk of Flashlight-VNC to fix this bug.

    Sorry about that,
    Marco

     
  • Anonymous - 2010-06-18

    Hi Marco,

    Thanks for a great project! Unfortunately this is a bug. Here, it happens only in 24-bit Tight mode when the official tightvnc server is used for windows. As stated by Dave other vnc viewers do not show this bug when using this server. The color swapping only occurs in the NON- Jpeg areas. I'll add a screenshot.

    Cheers,

    Bas Horsting

     
  • Marco Fucci

    Marco Fucci - 2010-06-18

    Hi Bas,

    Thanks for the bug report and for the screen shot.
    I will investigate again.

    Which version of tight server are you using?

    Thanks,
    Marco

     
  • Marco Fucci

    Marco Fucci - 2010-06-27

    Hi Bas,

    Ok, it is definitively a bug of tightvnc (I ask for bigEndian color and it give me littleEndian), but I found a way to make it compatible.
    It is working and will be release soon.

    Thanks,
    Marco

     
  • Anonymous - 2010-07-20

    Hi Marco,

    I had the same problem with TightVNC server and with replacing colors. The demo works fine.
    When do you plan to put it to trunk?

    Thanks,
    Igor

     
  • Marco Fucci

    Marco Fucci - 2010-07-24

    Hi Igor,

    Soon. Someone just reported me a problem with sending Crt+key that I want to fix first.

    Thanks,
    Marco

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks