Graphics performance and bandwidth optimizations are always a key area for us. Over the past few years, we’ve introduced a number of optimizations and new features, including new video codecs in the recent releases of Citrix Virtual Apps and Desktops 2305 and Citrix Workspace App for Windows 2305. Why are these codecs important? Let’s explore.

What are video codecs?

Video codecs are used in our “For Actively Changing Regions” for encoding moving images, and in our HDX 3D Pro mode (“For the Entire Screen”) to encode the entire screen. Historically we started with H.264 (AVC) with the release of XenDesktop 7.0, which supported both software and hardware encoding and decoding.

H.264, one of the most commonly used codecs, has great hardware and software decoding support. However, as screen resolutions increased and technology like HDR was introduced, H.264’s limitations became apparent. As it was created in 2003, H.264 could not handle these changes well. This led to the introduction of a more modern codec, H.265 (HEVC), in 2013, which we added with our XenDesktop 7.16 release.

H.265 offers users the same quality at a lower bandwidth, improving user experience in bandwidth-restricted situations. However, H.265 requires a GPU for encoding and decoding. Performing this on a CPU is possible, but it influences overall performance and decreases scalability. H.265 is not enabled by default on our Citrix Workspace App for Windows and needs to be enabled via a client-side policy.

Introducing AV1

Fast forward to 2023. H.265 has been around for many years now and the industry is moving to even higher resolutions with the introduction of 8K screens. This means a significant increase in bandwidth utilization. Luckily, a newer codec, AV1, was introduced by Alliance for Open Media (AOMedia), a consortium that includes NVIDIA, Intel, and Netflix. AV1 is an open-source, royalty-free successor to VP9, which is used by YouTube.

As part of our ongoing effort to optimize our HDX stack to use less bandwidth, it was clear that we needed to add AV1 support. Since AV1 needs hardware offloading for real-time encoding and decoding, we had to wait for GPU vendors to add hardware capabilities to their products. That wait ended when NVIDIA sent us their latest Ada Lovelace generation GPUs: their first GPU architecture that supports AV1 encoding. This allowed us to introduce AV1 support as a Tech Preview with our CVAD 2305 release. Once the GPU was installed in our datacenter, Muhammad Dawood and I quickly began prototyping AV1 support to check the performance and bandwidth utilization. 

And I must say, we were impressed!

If we compare the bandwidth utilization on different quality levels against H.264 we can see that AV1 is the clear winner:

So, what is the benefit for you as a customer? Primarily, you’ll receive higher quality images at the same bandwidth utilization and higher FPS on lower bandwidths, as AV1 uses lower bandwidth per frame when compared to H.264 / H.265.

Requirements for AV1

If you’re curious about enabling AV1 and trying it for yourself, there are a few requirements.

VDA

  • CVAD 2305
  • NVIDIA Ada Lovelace or newer (for example L4 / L40)
  • Supported graphics modes: “For Actively Changing Regions” and “For the Entire Screen”


Client

  • Citrix Workspace App for Windows 2305
  • Client GPU that supports AV1 decoding:
    1. NVIDIA Ampere or newer
    2. Intel 11th Gen / Arc or newer
    3. AMD Radeon RX 6000 / Radeon Pro W6000 series (RDNA2) or newer

Enabling AV1

Once these requirements are met please contact the Citrix team to access the Tech Preview. We aim to simplify this process once we hit General Availability, so stay tuned for more information!

Improving lossless performance with H.265 4:4:4

AV1 isn’t the only enhancement we’ve made for our 2305 release; we also improved the performance of our “Visually Lossless” mode. 

Typically we use a video codec with YUV 4:2:0 compression to lower overall bandwidth consumption. This is fine for our “For Actively Changing Regions” mode, which encodes only moving images with a video codec and the rest with JPEG/RLE. However, in our HDX3D Pro mode “For the Entire Screen”, where the entire screen is encoded with a video codec, color compression can degrade high-contrast details like text, making them fuzzy and harder to read.

This behavior can easily be observed in the following graphic:

Fuzzy text is not the only reason to choose our lossless mode. Certain workloads may require “pixel perfect” quality or accurate color display.
In order to allow YUV 4:4:4 encoding, two policies need to be enabled:

  • Visual Quality: Set to Build-to-Lossless or Always Lossless
  • Allow Visually Lossless: Set to enabled


If Allow Visually Lossless is not enabled, we switch to our ThinWire lossless encoder.

In previous releases, we would use H.264 4:4:4 encoding in this mode, which is fine for the VDA side, but we couldn’t find a GPU capable of hardware decoding it on the client side. As a result, we relied on software decoding, which had a significant impact on CPU utilization.

With the release of Citrix Workspace App 2305, we introduced H.265 4:4:4 support, enabling us to offload the decoding to a capable Client GPU, thus lowering CPU utilization and significantly improving performance.

Our internal tests showed a 4X increase in Frames per Second (FPS) compared to H.264 4:4:4 and a 2.5X reduction in size per frame compared to H.264, due to H265’s superior efficiency. As a customer, this means you will get higher FPS at the same bandwidth utilization.

You might wonder, after the impressive AV1 results, why we are not adding AV1 4:4:4 support? AV1 4:4:4 support was not added because there is currently no hardware encoding and decoding support available.

In order to make use of H.265 4:4:4 there are a few requirements on both the VDA and Client:

VDA

  • CVAD 2209 or newer
  • NVIDIA Pascal GPU or newer
  • Policies:
    • Use video codec: “Use when Preferred” or “For the Entire Screen”
    • Optimize for 3D Graphics: “Enabled”
    • Visual Quality: “Build-to-Lossless” or “Always Lossless”
    • Allow Visually Lossless: “Enabled”
    • Hardware Encoding: “Enabled”

Client:

  • Citrix Workspace App for Windows 2305 or newer
  • Enable H.265 support
  • Client GPU that supports H.265 4:4:4 decoding:
    • NVIDIA Turing or newer
    • Intel 10th Gen or newer
    • AMD: At the moment of writing, AMD does not support H.265 4:4:4 decoding.

Conclusion

With our latest CWA and VDA releases, we’ve made significant strides in terms of video codec support. The addition of AV1 supports the latest generation of codecs to further reduce bandwidth utilization. Meanwhile, H.265 4:4:4 delivers higher performance, primarily due to hardware-accelerated decoding, and lower bandwidth usage for users requiring a pixel-perfect image.


Disclaimer: The development, release and timing of any features or functionality described for our products remains at our sole discretion and are subject to change without notice or consultation. The information provided is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making purchasing decisions or incorporated into any contract.