What Makes FastX Fast?
FastX adds many features to its connection protocol which allow the users to maximize their performance on a LAN or over the net.
Server Side Rendering
Modern linux applications are highly complex. A single application may use thousands of drawing commands to render its image. Server side rendering allows your system to take advantage of the hardware on your high end servers to render the entire application locally. The result is sent over as a bitmap image and then rendered to the screen. This process completes faster than doing all the drawing on the client side.
Better Compression Algorithms
Data needs to be encoded and compressed to minimize its size when being sent across a network. Compressed data uses less bandwidth and thus allows for faster speeds. FastX uses a discreet wavelet transform and entropy encoding which allows for a higher compression level than a typical jpeg encoder. For maximum performance, users can turn on “lossy” compression which highly compresses the data by lowering the overall image quality.
Screen Change Detection
Computer Desktops are composed of many applications and in most of these applications do not change on their own. For example, your desktop background image is not going to change unless you edit it in your settings. FastX monitors the local changes to the screen and only sends the needed changes. FastX can also hook into the underlying X server itself and send specific drawing commands that will save bandwidth maximizing performance.
Adaptive Frame Rates
FastX adjusts the frame rate automatically according to the speed of the network. Users can also manually set the frame rate to save bandwidth. The adaptive frame rate allows the user to fine-tune his desktop experience for smoothness or performance.
Frame Windowing
Interactive applications need to run in real-time. Users want to see the immediate results and not wait for old data to be sent across the wire when new data is available. Frame windowing allows users to set a maximum number of buffered frames to be rendered at any given time. Combined with the adaptive frame rates, users can optimally balance smoothness with responsiveness. A higher frame window gives a smoother user experience while a lower window maximizes the responsiveness of the client reducing latency.