If you’ve read my previous blog posts, you know what build-to-lossless is and in what scenarios it should be used. For those who haven’t, the premise is quite simple: aim to deliver the best overall performance by degrading moving image quality (for example, during rotation of a 3D model) and gradually build to pixel-perfect when things have settled.
We can do better.
Designed to be as lightweight as possible, build-to-lossless turns off all the clever Thinwire image analysis found in normal configurations. The downside? It employs a “fuzzy-first” approach, assuming a lossy codec will give better performance for moving images. Most of the time, this works well. But as you’ll see and hear in this video (it’s best to view full screen, at 1080p), it isn’t always the case.
The dynamic image classification is enabled by default in Citrix Virtual Apps and Desktops 7 2003. However, it is possible to revert the behavior to the “fuzzy-first” approach by adding the following registry value on the VDA:
Key: HKLM\Software\Citrix\Graphics
Value name: BTLLossyThreshold [REG_DWORD]
Value: 0
Incidentally, you can also use this value to toggle how sensitive the algorithm is to classifying image content as suitable for direct-to-lossless encoding. The range of values is 1 to 20, with the default being 4. The higher the number, the simpler the image needs to be for it to be considered as lossless.
Future Releases
The classification algorithm in Citrix Virtual Apps and Desktops 7 2003 has been superseded with a more robust and intelligent version. The same registry value will be used to control the feature, however, the values will have different meanings and should not carry forward from 2003. I’ll update this blog with more details once the release is scheduled. Stay tuned!