[5 of 6] Mixed Codec (Adaptive Display)

After some pretty busy weeks the Christmas vacation has started so I have some spare time to continue the blog series.

In this blog I want to share some details on “mixed codecs” (Bitmap and Video). The general idea behind these mixed codecs is to provide a solution that combines the advantages from bitmap and video codec. What does this mean?

As we recently learned from the previous posts is the fact that bitmap codecs deliver the best visual quality and low bandwidth consumption for static content. Video codecs on the other hand are very useful for moving images and this is exactly what Citrix does:  bitmap for static content and video codec for moving images. Here the Citrix blog

For sure it is a bit more complex and there are a lot of things you need to understand and consider to really benefit from this codec option.
Let’s start with my overview slide:

How it works

Citrix uses the concept of a specific region to decide when a video codec should kick in. As already mentioned we are using a bitmap codec as the default for our desktop and whenever there are moving images (video) detected in a window or fullscreen, the codec for this “active region” is changed to H.264 or H.265 and also called “selective H.264/H.265”). As soon as the codec is changed to video codec for a specific region we can also benefit from hardware encoding (selective NVENC, introduced with XenDesktop 7.17).

I created a short video to best show how we can see the video codec kicks in:

Play here

In this video you will see that we are running bitmap codec as long as there is no video playback and when we start the video playback we can see selective NVENC to kick in which proves that we are now using H.264 for the given window size of the video. You can easily replicate this with just running “nvidia-smi encodersessions” as I did in this video. When we stop the video we will see that the codec now jumps back to bitmap and we don’t see NVENC any more. We should also see the same effect (Hardware Encode Enabled or Disabled) with RDA (Remote Display Analyzer) but it is sometimes not that stable and did not switch back and forth in my test.

Image Quality

As we are having bitmap codec by default we should also expect to see a very good image quality.

The heatmap from our SSIM confirms our expectation with a color accuracy of 99.99%.

Bandwidth consumption

We can also expect a slight saving in bandwidth in most scenarios compared to H.264/H.265 entire screen policy as we use the video codec only for the active region window. If we don’t use the video codec we have only little bandwidth consumption at all with bitmap remoting for the static content.

Latency

Currently one of the downsides with ACR (Active changing regions) policy is the latency as we cannot leverage hardware encoding for bitmap codecs.

Here we can see the great advantage we get with H.264 hardware encoding (NVENC) which is currently only working with entire screen. So even if we can use NVENC for selective H.264/H.265 we don’t benefit from the latency reduction with the ACR settings.

Citrix Policy Set

  • Use video codec for compression -> For active changing regions
  • Use hardware encoding ->Enabled
  • Visual Quality ->High



Use Case

ACR is a pretty good use case for Office VDI with multimedia content as it improves the video playback and reduces bandwidth. Especially the fact that we have almost pixel perfect quality for static content makes it the perfect choice for office users.

Restrictions/Good to know

A lot of customers are currently “stuck” with XenDesktop 7.15 LTSR where ACR is possible but you cannot leverage NVENC here as selective NVENC was introduced from Citrix with 7.17. Therefore you need to know that prior to 7.17 you will see heavily increased CPU load as soon as selective H.264 kicks in due to software encoding on the CPU.

If you would like to view the on demand recording of our GTC session on choosing the right protocol for your VDI environment , click here

Cheers,

Simon

About the Author

sschaber

GRID Solution Architect and owner of this Blog site.

Leave a Reply

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