Why Nvidia NVENC Hardware H.264 encoder is important for Citrix XenDesktop and VMware Horizon

With Nvidia Grid there is a Hardware H.264 encoder and decoder built into the GPU. With VMware Horizon 7, and Citrix XenDesktop 7.11 you can leverage this to hardware encode h.264 protocol stream. Why is this so smart. To understand this you need to understand Click to Photon time, the time it takes from when you press mouse button to when screen is updated. This process takes time depending on your network speed but also many other factors. Have a look at this diagram to understand.

The click to photon time depends on all these factors in addition to delay in computer hardware. For instance computer display may have some milliseconds delay.

As a reference a local computer has about 65ms click to photon time, no network and encode/decode involved here. A PCoIP session has a click to photon time about 215ms, so a 150ms overhead on LAN network. On graphical applications, moving images, scrolling documents and webpages, this is noticeable to the human eye, they say down to 120ms grownups can notice the delay, young people about 100ms.

You can read more about click to photon here http://www.virtualexperience.no/2016/03/07/how-to-use-click-to-photon-to-measure-end-to-end-latency/

With NVEnc, this time will be reduced by about 50ms. This has been tested on VMWare Blast Extreme and is now also possible with Citrix XenDesktop 7.11. This means that users will get much better user experience or you can stretch your WAN connections 50ms longer without a reduction in the click to photon time. Why is hardware encoding faste then software decoding? Because it’s parallel processed in GPU vs serial processed in CPU. This myth buster video demonstrates it in a funny way.

Another benefit is that this will also reduce CPU time on server where H.264 protocol encoding is utilized.

I’ve also written this blogpost about how to reduce click to photon time with Autocad by enabling hardware decode of h.264 on the client side, plus increasing FPS speed and mouse polling to shorten down the click to photon time.


Why does increasing FPS speed on the protocol side reduce the click to photon time? Because a 16FPS stream has 1000ms/16=62,5ms between each frame, so this adds up to 62,5ms to the click to photon time. If you increase FPS to 60 you will have only 16,7ms between each frame (screen update) so just here you will reduce latency by almost 50ms. But increasing FPS requires more bandwidth so this is not recommended on WAN connections. It also increases the load on H.264 encoding and decoding, this is why using GPU hardware encode and decode will enable you to run more FPS without more load on server and client.

I’ve also been experimenting with Virtual VR, that is Virtual reality like HTC Vive and Oculus Rift applications running on a remote machine. In this scenario you need even better click to photon time or “motion to photon” time to avoid motion sickness. For this purpose, I hope remote protocols will support higher FPS speed in the future. You will also need extremely powerful GPU’s, low network latency and high bandwidth.

So my advice is if you want to build a VDI platform for the future, you will need good user experience on moving content, therefore also a GPU enabled VDI machine. If you select Nvidia GRID, you will not only get GPU accelerated video and graphics but also better scalability and click to photon time by leveraging NVEnc. Nvidia Grid M60 has 36 h.264 concurrent streams and M10 has 28 streams.

Leave a Reply

Your email address will not be published. Required fields are marked *