Grafische codering via het Remote Desktop Protocol
Grafische gegevens van een externe sessie worden via RdP (Remote Desktop Protocol) naar een lokaal apparaat verzonden. Het proces omvat het coderen van de grafische gegevens op de externe virtuele machine voordat het naar het lokale apparaat wordt verzonden. Elk frame wordt verwerkt op basis van de inhoud, doorgegeven door afbeeldingsprocessors, een classificatie en een codec, voordat het wordt geleverd aan het lokale apparaat met behulp van het grafische transport van RDP.
Het doel van het coderen en verzenden van grafische gegevens is om optimale prestaties en kwaliteit te bieden, met een ervaring die hetzelfde is als het lokaal gebruiken van een apparaat. Dit proces is belangrijk bij het gebruik van Azure Virtual Desktop, Cloud-pc's in Windows 365 en Microsoft Dev Box, waarbij gebruikers een hoogwaardige ervaring verwachten wanneer ze op afstand werken.
RDP maakt gebruik van een reeks functies en technieken voor het verwerken en verzenden van grafische gegevens die geschikt zijn voor een breed scala aan scenario's, zoals kantoorproductiviteit, het afspelen van video's en gaming. Deze functies en technieken zijn onder andere:
Hardware- en softwaregebaseerde codering: gebruikt de CPU of GPU om grafische gegevens te coderen.
Codering van hardwareversnelling: offload de verwerking van grafische codering van de CPU naar de GPU op een externe virtuele machine met een discrete GPU. Een GPU biedt betere prestaties voor grafische intensieve toepassingen, zoals 3D-modellering of high-definition videobewerking.
Softwarecodering: gebruikt de CPU om grafische gegevens tegen lage kosten te coderen. Softwarecodering is het standaardcoderingsprofiel dat wordt gebruikt op een externe virtuele machine zonder een discrete GPU.
Gemengde modus: scheidt tekst- en afbeeldingscodering met behulp van verschillende codecs om de beste kwaliteit en laagste coderingskosten te bieden voor elk type inhoud. Gemengde modus is alleen beschikbaar met softwarecodering.
Adaptieve afbeeldingen: past de coderingskwaliteit aan op basis van de beschikbare bandbreedte en de inhoud van het scherm.
Videocodering op volledig scherm: biedt een hogere framesnelheid en een betere gebruikerservaring.
Deltadetectie en -caching: vermindert de hoeveelheid gegevens die moet worden verzonden.
Ondersteuning voor meerdere codecs: gebruikt hardware-decoders op een lokaal apparaat. Codecs bevatten de videocodec Advanced Video Coding (AVC), ook wel H.264 genoemd, en de HEVC-videocodec (High Efficiency Video Coding), ook wel H.265 genoemd. HEVC/H.265-ondersteuning is in preview en vereist een compatibele externe virtuele machine met GPU.
4:2:0 en 4:4:4 chroma-subsampling: biedt een balans tussen de beeldkwaliteit en het bandbreedtegebruik.
U kunt een combinatie van deze functies en technieken gebruiken, afhankelijk van de beschikbare bronnen van de externe sessie, het lokale apparaat en het netwerk en de gebruikerservaring die u wilt bieden.
In dit artikel wordt het proces van codering en het leveren van grafische gegevens via RDP beschreven met behulp van een aantal van deze functies en technieken.
Tip
We raden u aan om waar mogelijk multimediaomleiding te gebruiken, waardoor het afspelen van video's naar het lokale apparaat wordt omgeleid. Multimediaomleiding biedt een betere gebruikerservaring voor het afspelen van video's door de bitstream met videogegevens naar het lokale apparaat te verzenden, waar deze decodeert en de video op de juiste plaats op het scherm weergeeft. Deze methode verlaagt ook de verwerkingskosten op de externe virtuele machine, ongeacht de coderingsconfiguratie. Zie Multimediaomleiding voor het afspelen van video's en oproepen in een externe sessie voor meer informatie.
Gemengde modus
Grafische gegevens worden standaard gescheiden, afhankelijk van de inhoud ervan. Tekst en afbeeldingen worden gecodeerd met behulp van een combinatie van codecs om optimale coderingsprestaties voor verschillende inhoudstypen te realiseren wanneer alleen softwarecodering wordt gebruikt. Dit proces wordt gemengde modus genoemd.
Gemiddeld is ongeveer 80% van de grafische gegevens voor een externe sessie tekst. RdP maakt gebruik van een aangepaste codec die is geoptimaliseerd voor tekst om de laagste coderingskosten en de beste kwaliteit voor tekst te bieden. Omdat de inhoud van afbeeldingen lastiger is om effectief te coderen, is het essentieel om een codec te gebruiken die zich goed aanpast aan de beschikbare bitrate.
De rest van de inhoud wordt gescheiden door afbeeldingen en video:
Installatiekopieën zijn software gecodeerd met AVC/H.264- of RemoteFX-afbeeldingen, afhankelijk van de mogelijkheden van het lokale apparaat en of multimediaomleiding is ingeschakeld. AVC/H.264-codering van afbeeldingen is niet beschikbaar bij het gebruik van multimediaomleiding.
Video is software gecodeerd met AVC/H.264.
AVC/H.264 is een veelgebruikte codec met een goede compressieverhouding voor afbeeldingen, is geschikt voor progressieve codering en heeft de mogelijkheid om kwaliteit aan te passen op basis van bitrate. Het is afhankelijk van de hardwaredecoder op het lokale apparaat, dat op grote schaal wordt ondersteund op moderne apparaten. Het gebruik van de hardwaredecoder op het lokale apparaat vermindert het CPU-gebruik op het lokale apparaat en biedt een betere gebruikerservaring. Neem contact op met de fabrikant van het apparaat om ervoor te zorgen dat het AVC/H.264-hardwaredecodering ondersteunt.
In het volgende diagram ziet u het proces van codering en het leveren van grafische gegevens via RDP met behulp van mixed-mode in een softwarecoderingsscenario:
Dit proces wordt als volgt beschreven:
Een frame bitmap wordt eerst verwerkt door te detecteren of het video bevat. Als het wel video bevat, wordt het frame verzonden naar de videocodec, die in een op software gebaseerd scenario wordt gecodeerd met AVC/H.264 en vervolgens wordt het frame doorgegeven aan het grafische kanaal.
Als het frame geen video bevat, bepalen de afbeeldingsprocessors of er deltawijzigingen zijn, beweging wordt gedetecteerd of als inhoud beschikbaar is in de cache. Als de inhoud aan bepaalde criteria voldoet, wordt het frame doorgegeven aan het grafische kanaal.
Als het frame verder moet worden verwerkt, bepaalt de afbeeldingsclassificatie of het tekst of afbeeldingen bevat.
Tekst en afbeeldingen worden gecodeerd met behulp van verschillende codecs om de beste kwaliteit en laagste coderingskosten te bieden voor elk type inhoud. Nadat het frame is gecodeerd, wordt het frame doorgegeven aan het grafische kanaal.
In plaats van twee afzonderlijke codecs te gebruiken voor tekst en afbeeldingen met gemengde modus, kunt u videocodering op volledig scherm inschakelen om alle scherminhoud te verwerken met behulp van de videocodec AVC/H.264.
Videocodering op volledig scherm
Videocodering op volledig scherm is handig voor scenario's waarin de scherminhoud grotendeels op basis van afbeeldingen is en wordt gebruikt als alternatief voor de gemengde modus. Videocodering op volledig scherm verwerkt alle grafische gegevens met AVC/H.264 of HEVC/H.265. Als gevolg hiervan wordt de codering in de gemengde modus slechter uitgevoerd wanneer de inhoud van het scherm grotendeels op tekst is gebaseerd.
Een videoprofiel op volledig scherm biedt een hogere framesnelheid en betere gebruikerservaring, maar maakt gebruik van meer netwerkbandbreedte en bronnen op zowel de externe virtuele machine als het lokale apparaat. Het biedt voordelen voor toepassingen zoals 3D-modellering, CAD/CAM of het afspelen en bewerken van video's.
Als u zowel HEVC/H.265 als AVC/H.264 hardwareversnelling inschakelt, maar HEVC/H.265 niet beschikbaar is op het lokale apparaat, wordt AVC/H.264 gebruikt. HEVC/H.265 maakt 25-50% gegevenscompressie mogelijk in vergelijking met AVC/H.264, met dezelfde videokwaliteit of verbeterde kwaliteit, met dezelfde bitrate.
U kunt videocodering op volledig scherm inschakelen met AVC/H.264, zelfs zonder GPU-versnelling, maar HEVC/H.265 vereist een compatibele externe virtuele machine met GPU.
Zie GPU-versnelling inschakelen voor Azure Virtual Desktop voor meer informatie.
Hardware GPU-versnelling
Azure Virtual Desktop, cloud-pc's in Windows 365 en Microsoft Dev Box ondersteunen GPU-versnelling (Graphics Processing Unit) in rendering en codering voor verbeterde prestaties en schaalbaarheid van apps met behulp van remote desktop protocol (RDP). GPU-versnelling is cruciaal voor grafische intensieve toepassingen, zoals toepassingen die worden gebruikt door grafisch ontwerpers, video-editors, 3D-modelers, gegevensanalisten of visualisatiespecialisten.
Er zijn twee onderdelen voor GPU-versnelling die samenwerken om de gebruikerservaring te verbeteren:
Gpu-versnelde toepassingsweergave: gebruik de GPU om afbeeldingen in een externe sessie weer te geven.
GPU-versnelde framecodering: RDP codeert alle afbeeldingen die worden weergegeven voor verzending naar het lokale apparaat. Wanneer een deel van het scherm regelmatig wordt bijgewerkt, wordt het gecodeerd met AVC/H.264.
Als de scherminhoud in uw workloads grotendeels is gebaseerd op afbeeldingen, kunt u ook videocodering op volledig scherm inschakelen om alle scherminhoud te verwerken om een hogere framesnelheid en een betere gebruikerservaring te bieden.
Zie GPU-versnelling inschakelen voor meer informatie.
Ondersteuning voor Chroma-subsampling voor 4:2:0 en 4:4:4:4
De chroma-waarde bepaalt de kleurruimte die wordt gebruikt voor codering. De chroma-waarde is standaard ingesteld op 4:2:0, wat een goede balans biedt tussen de beeldkwaliteit en de netwerkbandbreedte. Wanneer u AVC/H.264 gebruikt, kunt u de chromawaarde verhogen naar 4:4:4 om de beeldkwaliteit te verbeteren, maar het verhoogt ook de netwerkbandbreedte. U hoeft GPU-versnelling niet te gebruiken om de chroma-waarde te wijzigen.
Zie De chroma-waarde verhogen naar 4:4:4 met behulp van de AVC-videocodec (Advanced Video Coding).