virtu-desk (virtu, IA & cyber...) VIRTU-DESK - Technologies de virtualisation et sécurisation de l'environnement utilisateurs.

Protocole RDP 10 & Windows Server 2016 - Les améliorations graphiques...

Par Le dimanche, 11 juin 2017 0

Dans Divers

Les services de bureaux à distance (RDS) de Microsoft, composés d’un ensemble de rôles dans Windows Server, permettent aux utilisateurs d'accéder à des bureaux partagés, des applications publiées ou encore à des postes de travail virtuels.

Ils n’ont jamais été optimisés pour prendre efficacement en charge les applications graphiques, entrainant directement un impact non satisfaisant du rendu utilisateurs dans ce type d’environnement. C’est encore plus vrai aujourd’hui car les résolutions supérieures à 1440p ou encore 4K ne sont plus marginales, les définitions d’affichage s’accroissent considérablement et les traitements des données graphiques augmentent sans cesse. Le défi pour les protocoles de déport d’affichage est donc de traiter encore plus efficacement les flux graphiques sachant que les pixels à encoder sur les serveurs seront plus nombreux et consommeront encore plus de bande passante sur le réseau lorsqu’ils seront transférés aux clients distants.

Bref, comme le nombre d'applications graphiques à publier va devenir de plus en plus important, le constat est quasi sans appel : Les limites sont atteintes !

Fort heureusement, Windows Server 2016 va apporter son lot d’améliorations au niveau des performances graphiques. Dans ses nouvelles versions, l’objectif de Microsoft vise à améliorer le support des écrans haute définition et des applications à forte densité graphique. Il convient tout de même de noter que plusieurs des nouvelles fonctionnalités nécessitent pour l’instant des postes clients distants en Windows 10 Enterprise et des serveurs Windows 2016 implémentés de GPU compatibles RemoteFX.

Accélération GPU dans Windows Server 2016

Microsoft Windows Server 2016 propose deux options pour gérer l’accélération GPU dans les machines virtuelles :

  • RemoteFX : Mode vGPU (GPU virtuel) qui permet à une VM hébergée sur un hyperviseur de partager au travers d’une API un GPU physique de ce même hyperviseur.
  • Discrete Device Assignment (DDA) : Mode Passthrough qui permet de présenter un GPU physique d'un hyperviseur directement dans une VM hébergée sur ce même hyperviseur.

RemoteFX, introduit dans Windows Server 2008 R2 SP1, a été la première solution de Microsoft à fournir une accélération vGPU pour les environnements VDI. Dans Windows Server 2012, Microsoft a rajouté un support RemoteFX pour les environnements Host Session.

Dans Windows Server 2016, RemoteFX a été considérablement amélioré :

  1. RemoteFX supporte Windows Server 2016 en tant que machine « invitée », ce qui signifie qu’il est possible de faire un poste virtuel (VDI) avec un serveur Windows 2016 (Personal Session Desktop)
  2. Avec Windows Server 2012 R2, RemoteFX ne supportait que DirectX 11.0 et OpenGL 1.1. Avec Windows Server 2016, RemoteFX prend désormais en charge OpenGL 4.4 et OpenCL 1.1, indispensables pour les applications graphiques modernes.
  3. Dans Windows Server 2012 R2, la carte vidéo RemoteFX est limitée à 256 MB de vRAM dédiée. Les cartes vidéo RemoteFX des machines virtuelles dans Windows Server 2016 peuvent désormais supporter jusqu'à 1 GB de VRAM dédié et 1 GB de VRAM partagée (fonction de la quantité de mémoire système affectée à la VM, il est donc possible de fournir jusqu'à 2 GB de RAM vidéo). De plus, la vRAM peut être configurée par un administrateur, indépendamment du nombre de moniteurs ou de la résolution utilisée par la machine virtuelle.

Plus concrètement, la nouvelle mouture Windows Server 2016 va pouvoir offrir des solutions VDI flexibles en mettant à disposition des environnements :

  • Des GPU physiques partagés entre plusieurs VMs (RemoteFX). Ce mode est intéressant pour des besoins VDI « haute densité » avec la possibilité d’associer jusqu’à 2 GB de vRAM à chaque VM. Il peut couvrir les besoins pour des applications comme Photoshop, AutoCAD, Solidworks ou encore des solutions semblables avec un besoin moyen en terme de charge GPU.  
  • Des GPU physiques dédiés à chaque VM (DDA). Ce mode est intéressant pour des besoins plus lourd en charges graphiques ou les capacités de RemoteFX ne sont pas suffisantes, pour des applications comme CATIA, NX, Maya, etc… DDA permet d'installer des pilotes graphiques dans la VM et d'exploiter les technologies propriétaires GPU (par ex. CUDA).

RDP 10 – AVC/H.264 avec le mode AVC 444

Le protocole RDP 10 utilise le codec H.264/AVC 444 pour offrir une expérience graphique enrichissante (4K, 60fps) même au travers de connexions réseau non fiables sur un environnement bureau à distance.

RDP et AVC/H.264

La norme de compression graphique (codec) qui a été choisie et utilisée par RDP est le codec ITU-T H.264, également connu sous le nom de MPEG-4 AVC (Advanced Video Coding). Pour RDP, le bénéfice de ce codec est qu’on le retrouve fréquemment implémenté dans les encodeurs/décodeurs matériels, ce qui va permettre de délester les traitements processeurs intensifs d'encodage et de décodage à des blocs matériels distincts. Le protocole RDP en version 8 a introduit la fonctionnalité « StreamFX Media Streaming » qui utilise AVC/H.264 pour les contenus vidéos distants détectés sur le serveur. « RemoteFX Media Streaming » a quant à lui remplacé la redirection multimédia (MMR) car il fonctionne pour tous les types de contenu vidéo, alors que MMR ne fonctionnait que pour certains. La version 8.1 a elle introduit le mode mixte AVC/H.264 qui, en plus d'utiliser « RemoteFX Media Streaming », a également pris en charge les images AVC/H.264 (le texte est quant à lui compressé à l'aide d'un Codec propriétaire).

Le nouveau protocole RDP en version 10 étend le support existant d’AVC/H.264 en ajoutant le mode AVC 444. Il va permettre l'utilisation du format 4:4:4 afin d’éviter les flous au niveau du texte avec des encodeurs/décodeurs matériels AVC/H.264 qui ne supporteraient pas directement AVC 444.

Présentation du mode AVC 444

Jusqu’à présent, AVC/H.264 était le seul codec pour RDP dans les environnements de bureau à distance. Le problème avec ce codec, principalement lié au processus de conversion des couleurs lors de la compression ayant pour effet la perte de certaines informations de chrominance (partie du signal vidéo correspondant à l'information de couleur), est d’afficher des flous au niveau du texte. Le visuel de l’image ci-dessous est plus parlant en ce qui concerne le format 4:2:0. Avec le codec H.264/AVC 444 (utilisation du format 4:4:4), on ne perd pas d’information de chrominance lors de la conversion (La plupart des encodeurs/décodeurs matériels AVC/H.264 n’implémentent malheureusement pas ce format). Avec ce mode AVC 444 implémenté dans RDP 10, Microsoft a résolu le défi d'obtenir un texte de qualité 4:4:4 avec des encodeurs/décodeurs matériels 4:2:0. La différence est facilement perceptible sur l’image ci-dessous.

AVC 444 et les encodeurs/décodeurs matériels AVC/H.264  

Avec le client Windows Remote Desktop (MSTSC.EXE), le mode AVC 444 utilise automatiquement le décodeur matériel AVC/H.264, s’il est disponible, au travers de l'API Windows « DirectX Video Acceleration » (DXVA). Il faut que le GPU soit compatible DirectX 11.0 et que le décodeur matériel H.264 supporte le niveau 4.1 et BT. 709 full range color conversion. Si la résolution de la session distante dépasse la capacité du décodeur matériel, le décodage logiciel sera utilisé en remplacement.

Le serveur RDP est compatible avec n’importe quel encodeur/décodeur matériel AVC/H.264 implémenté dans Windows via « Media Foundation Transform » et ne dépend donc pas d’un fournisseur de matériel en particulier.

Compatibilité RDP10 et AVC 444

Aujourd'hui, le mode AVC 444 est activé par défaut pour tous les scénarios vGPU RemoteFX qui utilisent RDP 10 sur Windows Server 2016. Le client intégré de Windows 10 Remote Desktop (MSTSC.EXE) est actuellement le seul client à prendre en charge AVC 444. Microsoft prévoit d’étendre son support aux applications Mac OS X, Android, iOS, Windows Mobile et Universal Windows Platform (UWP).

Pour les environnements RDSH (Remote Desktop Session Host), seules les sessions de bureaux partagés sont prises en charge avec H.264/AVC 444. Les sessions RemoteApp utilisent encore les codecs propriétaires pour l'instant.

Nota : Prérequis pour utiliser le mode AVC 444

  • Le GPU doit être compatible DirectX 11.0
  • Le décodeur matériel AVC/H.264 doit supporter les niveaux 4.1 et BT. 709 full range color conversion.

Amélioration de la saisie de stylet à distance

Le support de stylet est disponible depuis RDP 8.1, mais Windows Server 2016 améliore encore le support en permettant aux stylos d'être utilisés comme si l'application distante était exécutée localement. Par exemple, si l'écran est sensible à la pression, RDP 10 peut utiliser cette information pour modifier l'épaisseur de la ligne dessinée sur l'écran.

  • 19 votes. Moyenne 5 sur 5.
Vous devez être connecté pour poster un commentaire