Encodage des graphismes sur le protocole Bureau à distance
Les données des graphismes d’une session distante sont transmises à un appareil local via le protocole RDP (Remote Desktop Protocol). Le processus implique l’encodage des données des graphismes sur la machine virtuelle distante avant de les envoyer à l’appareil local. Chaque trame est traitée en fonction de son contenu, en passant par des processeurs d’images, un classifieur et un codec, avant d’être délivrée à l’appareil local en utilisant le transport de graphismes de RDP.
L’objectif de l’encodage et de la transmission de données de graphismes est de fournir des performances et une qualité optimales, avec une expérience identique à celle de l’utilisation locale d’un appareil. Ce processus est important en cas d’utilisation d’Azure Virtual Desktop, de PC cloud dans Windows 365 et de Microsoft Dev Box, où les utilisateurs s’attendent à une expérience de haute qualité quand ils travaillent à distance.
RDP utilise une gamme de fonctionnalités et de techniques pour traiter et transmettre des données de graphismes qui le rendent adapté à un large éventail de scénarios, comme la productivité au bureau, la lecture vidéo et les jeux. Ces fonctionnalités et ces techniques sont notamment :
Encodage matériel et logiciel : utilise le processeur ou le GPU pour encoder des données de graphismes.
Encodage avec accélération matérielle : décharge le traitement de l’encodage des graphismes du processeur vers le GPU sur une machine virtuelle distante avec un GPU discret. Un GPU offre de meilleures performances pour les applications utilisant des graphismes de façon intensive, comme la modélisation 3D ou le montage vidéo haute définition.
Encodage logiciel : utilise le processeur pour encoder des données de graphismes à faible coût. L’encodage logiciel est le profil d’encodage par défaut utilisé sur une machine virtuelle distante sans GPU discret.
Mode mixte : sépare l’encodage du texte et des images en utilisant des codecs différents afin de fournir la meilleure qualité et le coût d’encodage le plus faible pour chaque type de contenu. Le mode mixte est disponible seulement avec l’encodage logiciel.
Graphismes adaptatifs : ajuste la qualité d’encodage en fonction de la bande passante disponible et du contenu de l’écran.
Encodage vidéo plein écran : offre une fréquence d’images plus élevée et une meilleure expérience utilisateur.
Détection et mise en cache delta : réduit la quantité de données qui doivent être transmises.
Prise en charge de plusieurs codecs : utilise des décodeurs matériels sur un appareil local. Les codecs incluent le codec vidéo AVC (Advanced Video Coding), également appelé H.264, et le codec vidéo HEVC (High Efficiency Video Coding), également appelé H.265. La prise en charge de HEVC/H.265 est en préversion et nécessite une machine virtuelle distante avec une compatibilité GPU.
Sous-échantillonnage de la chrominance 4:2:0 et 4:4:4 : fournit un équilibre entre la qualité de l’image et l’utilisation de la bande passante.
Vous pouvez utiliser une combinaison de ces fonctionnalités et techniques en fonction des ressources disponibles de la session distante, de l’appareil local et du réseau, ainsi que de l’expérience utilisateur que vous voulez fournir.
Cet article décrit le processus d’encodage et de distribution de données de graphismes sur RDP en utilisant certaines de ces fonctionnalités et techniques.
Conseil
Nous vous recommandons d’utiliser si possible la redirection multimédia, qui redirige la lecture vidéo vers l’appareil local. La redirection multimédia offre une meilleure expérience utilisateur pour la lecture vidéo en envoyant le flux binaire de données vidéo à l’appareil local, où celui-ci décode et affiche la vidéo à l’emplacement approprié sur l’écran. Cette méthode réduit également le coût du traitement sur la machine virtuelle distante, quelle que soit la configuration de l’encodage. Pour plus d’informations, consultez Redirection multimédia pour la lecture de vidéos et les appels dans une session à distance.
Mode mixte
Par défaut, les données des graphismes sont séparées en fonction de leur contenu. Le texte et les images sont encodés en utilisant une combinaison de codecs afin d’obtenir des performances d’encodage optimales pour les différents types de contenu quand seul l’encodage logiciel est utilisé. Ce processus est appelé « mode mixte ».
En moyenne, environ 80 % des données des graphismes d’une session à distance sont constituées de texte. Pour fournir le coût d’encodage le plus faible et la meilleure qualité pour le texte, RDP utilise un codec personnalisé qui est optimisé pour le texte. Le contenu de type image étant plus difficile à encoder efficacement, il est essentiel d’utiliser un codec qui s’adapte bien au débit binaire disponible.
Le reste du contenu est divisé en images et en vidéos :
Les images sont encodées avec des graphismes AVC/H.264 ou RemoteFX, selon les fonctionnalités de l’appareil local et si la redirection multimédia est activée. L’encodage AVC/H.264 des images n’est pas disponible quand la redirection multimédia est utilisée.
La vidéo est encodée avec AVC/H.264.
AVC/H.264 est un codec largement pris en charge qui a un bon rapport de compression pour les images, est capable d’effectuer un encodage progressif et a la possibilité d’ajuster la qualité en fonction du débit binaire. Il s’appuie sur le décodeur matériel de l’appareil local, qui est largement pris en charge sur les appareils modernes. L’utilisation du décodeur matériel sur l’appareil local réduit l’utilisation du processeur sur cet appareil et offre une meilleure expérience utilisateur. Vérifiez auprès du fabricant de l’appareil pour vous assurer qu’il prend en charge le décodage matériel AVC/H.264.
Le diagramme suivant montre le processus d’encodage et de distribution de données de graphismes sur RDP en utilisant le mode mixte dans un scénario d’encodage logiciel :
Ce processus est décrit comme suit :
Une bitmap de trame est d’abord traitée pour détecter si elle contient de la vidéo. Si elle contient de la vidéo, la trame est envoyée au codec vidéo qui, dans un scénario basé sur du logiciel, est encodée avec AVC/H.264, puis la trame passe au canal de graphismes.
Si la trame ne contient pas de vidéo, les processeurs d’images déterminent s’il y a des modifications différentielles, détectent le mouvement ou si le contenu est disponible dans le cache. Si le contenu correspond à certains critères, la trame passe au canal de graphismes.
Si la trame a besoin de traitements supplémentaires, le classifieur d’image détermine si elle contient du texte ou des images.
Le texte et les images sont encodés en utilisant des codecs différents afin de fournir la meilleure qualité et le coût d’encodage le plus faible pour chaque type de contenu. Une fois encodée, la trame passe au canal de graphismes.
Au lieu d’utiliser deux codecs distincts pour le texte et les images avec le mode mixte, vous pouvez activer l’encodage vidéo plein écran pour traiter tout le contenu de l’écran en utilisant le codec vidéo AVC/H.264.
Encodage vidéo plein écran
L’encodage vidéo plein écran est utile pour les scénarios où le contenu de l’écran est largement basé sur une image et il est utilisé comme alternative au mode mixte. L’encodage vidéo plein écran traite toutes les données des graphismes avec AVC/H.264 ou HEVC/H.265. Par conséquent, il s’avère moins performant que l’encodage en mode mixte quand le contenu de l’écran est en grande partie basé sur du texte.
Un profil vidéo plein écran fournit une fréquence d’images supérieure et une meilleure expérience utilisateur, mais il utilise davantage de bande passante réseau et de ressources à la fois sur la machine virtuelle distante et sur l’appareil local. Il favorise les applications telles que la modélisation 3D, CAD/CAM ou la lecture et la modification de vidéos.
Si vous activez l’accélération matérielle HEVC/H.265 et AVC/H.264, mais que HEVC/H.265 n’est pas disponible sur l’appareil local, AVC/H.264 est utilisé à la place. HEVC/H.265 permet une compression des données de 25 à 50 % par rapport à AVC/H.264, pour une qualité vidéo équivalente ou améliorée, avec le même débit binaire.
Vous pouvez activer l’encodage vidéo plein écran avec AVC/H.264 même sans accélération GPU, mais HEVC/H.265 nécessite une machine virtuelle distante avec GPU compatible.
Pour plus d’informations, consultez Activer l’accélération GPU pour Azure Virtual Desktop.
Accélération GPU matérielle
Azure Virtual Desktop, les PC cloud dans Windows 365 et Microsoft Dev Box prennent en charge l’accélération GPU dans le rendu et l’encodage pour améliorer les performances et la scalabilité des applications en utilisant le protocole RDP (Remote Desktop Protocol). L’accélération par GPU est essentielle pour les applications gourmandes en ressources graphiques, telles que celles utilisées par les infographistes, les éditeurs de vidéos, les créateurs de modèles 3D, les analystes de données ou les spécialistes de la visualisation.
Deux composants de l’accélération GPU fonctionnent ensemble pour améliorer l’expérience utilisateur :
Rendu d’application accéléré par GPU : utilisez le GPU pour rendre des graphismes dans une session à distance.
Encodage d’images accéléré par GPU : le protocole RDP encode tous les graphismes rendus pour les transmettre à l’appareil local. Quand une partie de l’écran est fréquemment mise à jour, elle est encodée avec AVC/H.264.
Si le contenu de l’écran dans vos charges de travail est en grande partie basé sur des images, vous pouvez aussi activer l’encodage vidéo plein écran pour traiter tout le contenu de l’écran afin de fournir un débit d’images plus élevé et une meilleure expérience utilisateur.
Pour plus d’informations, consultez Activer l’accélération GPU.
Prise en charge du sous-échantillonnage de la chrominance pour 4:2:0 et 4:4:4
La valeur chromatique détermine l’espace de couleurs utilisé pour l’encodage. Par défaut, la valeur chromatique est définie sur 4:2:0, ce qui offre un bon équilibre entre la qualité de l’image et la bande passante du réseau. Quand vous utilisez AVC/H.264, vous pouvez augmenter la valeur de la chrominance à 4:4:4 pour améliorer la qualité de l’image, mais ceci augmente également la bande passante réseau. Vous n’avez pas besoin d’utiliser l’accélération GPU pour modifier la valeur chromatique.
Pour plus d’informations, consultez Augmenter la valeur de la chrominance à 4:4:4 en utilisant le codec vidéo AVC (Advanced Video Coding).