TurboVNC is a high-speed version of VNC derived from TightVNC. It contains a variant of Tight encoding that is tuned to maximize performance for image- intensive applications (such as VirtualGL, video applications, and image editors) while still providing excellent performance for other types of applications.
TurboVNC, in combination with VirtualGL, provides a complete solution for remotely displaying 3D applications with interactive performance.
TurboVNC is the product of extensive research, in which many different permutations of the TightVNC encoder were benchmarked at the low level against a variety of captured RFB sessions that simulate real-world application workloads, both 2D and 3D. TurboVNC's encoding methods have been adopted by TigerVNC, libvncserver, and others.
Features
- Fine-grained control over the JPEG image quality and the level of chrominance subsampling
- Double buffering on the client side to reduce tearing artifacts in 3D and video applications
- Flexible and configurable full-screen/multi-screen support
- Full support for IPv6
- Advanced flow control and continuous updates. This allows clients to receive framebuffer updates without specifically requesting them, which can improve performance dramatically on high-latency connections.
- Authentication with one-time passwords or Unix login credentials. Access control lists can be used to share VNC sessions with only certain users.
- TurboVNC allows security/authentication policies to be set globally for a particular server machine.
- Multithreaded Tight encoding
- "Lossless refresh" allows a viewer to request a lossless copy of the current screen image. This is useful in situations in which image quality is critical but the network is too slow to support sending a high-quality image for every frame. Lossless refreshes can be performed manually when a certain hotkey is pressed, or the TurboVNC Server can be configured to send a lossless refresh automatically if the user stops interacting with the application for a certain period of time.
- A high-performance Java viewer, deployable using Java Web Start. This viewer is based on the TigerVNC Java viewer but has numerous additional features, the most notable of which is the ability to accelerate JPEG decompression by calling libjpeg-turbo through JNI. This gives the Java TurboVNC Viewer similar levels of performance to the native TurboVNC Viewer.
On "modern" hardware, TurboVNC is capable of streaming 50+ Megapixels/second over a 100 Megabit/second local area network with perceptually lossless image quality. TurboVNC can stream between 10 and 12 Megapixels/second over a 5 Megabit/second broadband connection at reduced (but usable) image quality.
TurboVNC is compatible with other VNC distributions, particularly with those that also support Tight encoding (such as TigerVNC, TightVNC, and UltraVNC.)
What's New
- Fixed a regression introduced by 3.0.3[7] that, under rare circumstances if automatic desktop resizing was enabled, caused the viewer to deadlock while resizing its window in response to a remote desktop size change.
- Fixed an issue whereby the TurboVNC Viewer threw an IllegalComponentStateException if "Remote desktop size" was changed to "Auto" in the TurboVNC Viewer Options dialog while the viewer was actively receiving framebuffer updates from a VNC server.
- Fixed an issue whereby the "Reset all options to defaults" button in the TurboVNC Viewer Options dialog did not take into account the values specified in ~/.vnc/default.turbovnc.
- The TurboVNC Viewer now works around an issue with recent versions of GNOME that caused erratic automatic desktop resizing behavior.
- The default X startup script (xstartup.turbovnc) now looks in both /usr/share/xsessions and /usr/share/wayland-sessions for a session desktop file corresponding to the specified window manager. This works around an issue whereby the GNOME Classic window manager could not be used with the TurboVNC Server on Fedora 40 and later.
- The default X startup script (xstartup.turbovnc) now attempts to launch MATE or Xfce (in that order) if no window manager is specified and a GNOME session desktop file cannot be found. This fixes a regression introduced by 3.2 beta1[4] whereby the default X startup script no longer launched the default window manager on Ubuntu MATE or Xubuntu if no window manager was specified.
- The "Clear the list of saved connections" button in the "Global" tab of the TurboVNC Viewer Options dialog now clears only the connection history. A separate button has been added for clearing saved per-host options.