Grafische codering via het Extern bureaublad-protocol

Grafische gegevens van een externe sessie worden verzonden naar een lokaal apparaat via het Remote Desktop Protocol (RDP). Het proces omvat het coderen van de grafische gegevens op de externe virtuele machine voordat deze naar het lokale apparaat wordt verzonden. Elk frame wordt verwerkt op basis van de inhoud, waarbij de afbeeldingsprocessors, een classificatie en een codec worden doorgegeven, voordat ze worden 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, waar gebruikers een ervaring van hoge kwaliteit 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, videoproductie, ontwerp en video afspelen. Deze functies en technieken zijn onder andere:

  • Codering op basis van hardware en software: gebruikt de CPU of GPU om grafische gegevens te coderen.

    • Hardware-versnelde codering: offload de verwerking van grafische codering van de CPU naar de GPU op een externe virtuele machine die is uitgerust met een capabable GPU. Een GPU biedt betere prestaties voor grafisch intensieve toepassingen, zoals 3D-modellering of high-definition videobewerking. Compatibele GPU's bevatten ook gespecialiseerde videocoderingsengines die RDP kan gebruiken om sessie-inhoud te coderen.

    • Softwarecodering: maakt gebruik van de CPU om grafische gegevens tegen lage kosten te coderen. Softwarecodering is het standaardcoderingsprofiel dat wordt gebruikt op een externe virtuele machine zonder afzonderlijke GPU.

  • Gemengde modus: scheidt tekst-, afbeeldings- en videocodering met behulp van verschillende codecs om de beste kwaliteit en laagste coderingskosten te bieden voor elk type gedetecteerde inhoud. Gemengde modus is alleen beschikbaar met softwarecodering.

  • Adaptieve graphics: 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 in scenario's met hoge afbeeldings-/video-inhoud.

  • Deltadetectie en caching: vermindert de hoeveelheid gegevens die moet worden verzonden.

  • Ondersteuning voor meerdere codecs: maakt gebruik van hardwaredecoders op een lokaal apparaat. Codecs zijn onder andere de AVC-videocodec (Advanced Video Coding), ook wel bekend als H.264, en de HEVC-videocodec (High Efficiency Video Coding), ook wel bekend als H.265. VOOR HEVC/H.265-ondersteuning is een compatibele externe virtuele machine met GPU vereist.

  • 4:2:0 en 4:4:4 chroma subsampling: biedt een balans tussen beeldkwaliteit en bandbreedtegebruik.

U kunt een combinatie van deze functies en technieken gebruiken, afhankelijk van de beschikbare resources van de externe sessie, het lokale apparaat en het netwerk om de gebruikerservaring te bieden die u wilt bieden.

In dit artikel wordt het proces beschreven van het coderen en leveren van grafische gegevens via RDP met behulp van enkele van deze functies en technieken.

Tip

We raden u aan waar mogelijk multimediaomleiding te gebruiken, waardoor het afspelen van video's wordt omgeleid naar het lokale apparaat. Multimediaomleiding biedt een betere gebruikerservaring voor het afspelen van video door de bitstream met videogegevens naar het lokale apparaat te verzenden, waar de video op de juiste plaats op het scherm wordt gedecodereerd en weergegeven. Deze methode verlaagt ook de verwerkingskosten op de externe virtuele machine, ongeacht de coderingsconfiguratie. Zie Multimediaomleiding voor het afspelen van video's en gesprekken in een externe sessie voor meer informatie.

Gemengde modus

Grafische gegevens worden standaard gescheiden, afhankelijk van de inhoud. Tekst, afbeeldingen en video's worden gecodeerd met behulp van een combinatie van codecs om optimale coderingsprestaties te bereiken voor verschillende inhoudstypen wanneer alleen softwarecodering wordt gebruikt. Dit proces wordt de gemengde modus genoemd.

Gemiddeld bestaat ongeveer 80% van de grafische gegevens voor een externe sessie uit tekst. Om de laagste coderingskosten en de beste kwaliteit voor tekst te bieden, gebruikt RDP een aangepaste codec die is geoptimaliseerd voor tekst. Omdat afbeeldingsinhoud lastiger is om effectief te coderen, is het essentieel om een codec te gebruiken die zich goed aanpast aan de beschikbare bitsnelheid.

De rest van de inhoud wordt gescheiden door afbeeldingen en video:

  • Afbeeldingen zijn software gecodeerd met AVC/H.264- of RemoteFX-graphics, afhankelijk van de mogelijkheden van het lokale apparaat. De standaardcodering van gedetecteerde afbeeldingsinhoud maakt gebruik van AVC/H.264 wanneer dit wordt ondersteund door de configuratie van het sessie-eindpunt.

  • Video is software gecodeerd met AVC/H.264.

AVC/H.264 is een veelgebruikte codec die een goede compressieverhouding voor afbeeldingen heeft, progressieve codering kan gebruiken en de kwaliteit kan aanpassen op basis van de bitsnelheid. Het is afhankelijk van de hardwaredecoder op het lokale apparaat, die algemeen 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 te controleren of deze ondersteuning biedt voor AVC/H.264-hardwaredecodering.

In het volgende diagram ziet u het proces van het coderen en leveren van grafische gegevens via RDP met behulp van gemengde modus in een scenario voor softwarecodering:

Een diagram met het proces voor het coderen en leveren van grafische gegevens via RDP met behulp van de gemengde modus.

Dit proces wordt als volgt beschreven:

  1. Een frame bitmap wordt eerst verwerkt door te detecteren of deze 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.

  2. Als het frame geen video bevat, bepalen de afbeeldingsprocessors of er deltawijzigingen zijn, beweging wordt gedetecteerd of dat inhoud beschikbaar is in de cache. Als de inhoud voldoet aan bepaalde criteria, wordt het frame doorgegeven aan het grafische kanaal.

  3. Als het frame verder moet worden verwerkt, bepaalt de afbeeldingsclassificatie of het tekst of afbeeldingen bevat.

  4. Tekst en afbeeldingen worden gecodeerd met behulp van verschillende codecs om de beste kwaliteit en laagste coderingskosten te bieden voor elk type inhoud. Zodra het frame is gecodeerd, wordt het 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 AVC/H.264-videocodec.

Videocodering op volledig scherm

Videocodering op volledig scherm is handig voor scenario's waarin de scherminhoud grotendeels op afbeeldingen is gebaseerd 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 presteert het slechter dan codering in gemengde modus wanneer de scherminhoud grotendeels op tekst is gebaseerd.

Een videoprofiel op volledig scherm biedt een hogere framesnelheid en een betere gebruikerservaring, maar gebruikt meer netwerkbandbreedte en resources op zowel de externe virtuele machine als het lokale apparaat. Dit is een voordeel voor toepassingen zoals 3D-modellering, CAD/CAM of video afspelen en bewerken.

Als u zowel HEVC/H.265 als AVC/H.264 hardwareversnelling inschakelt, maar HEVC/H.265 niet beschikbaar is op het lokale apparaat, wordt in plaats daarvan AVC/H.264 gebruikt. HEVC/H.265 staat 25-50% gegevenscompressie toe in vergelijking met AVC/H.264, met dezelfde videokwaliteit of verbeterde kwaliteit, met dezelfde bitsnelheid.

U kunt videocodering op volledig scherm inschakelen met AVC/H.264, zelfs zonder GPU-versnelling, maar VOOR HEVC/H.265 is een compatibele externe virtuele machine met GPU-functionaliteit vereist.

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 app-prestaties en schaalbaarheid met behulp van het Remote Desktop Protocol (RDP). GPU-versnelling is van cruciaal belang voor grafisch intensieve toepassingen, zoals toepassingen die worden gebruikt door grafische ontwerpers, video-editors, 3D-modellers, gegevensanalisten of visualisatiespecialisten.

Er zijn twee onderdelen voor GPU-versnelling die samenwerken om de gebruikerservaring te verbeteren:

  • Gpu-versnelde toepassingsrendering: gebruik de GPU om afbeeldingen weer te geven in een externe sessie.

  • Framecodering met GPU-versnelling: RDP codeert alle grafische weergaven die worden weergegeven voor verzending naar het lokale apparaat. Wanneer een deel van het scherm regelmatig wordt bijgewerkt, wordt dit gecodeerd met AVC/H.264.

Als de scherminhoud in uw workloads grotendeels op afbeeldingen is gebaseerd, 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

De chromawaarde bepaalt de kleurruimte die wordt gebruikt voor codering. De chroma-waarde is standaard ingesteld op 4:2:0, wat een goede balans biedt tussen beeldkwaliteit en netwerkbandbreedte. Als u de beeldkwaliteit wilt verbeteren, kunt u de chromawaarde verhogen naar 4:4:4 door AVC/H.264-codering op volledig scherm in te schakelen en Beeldkwaliteit via groepsbeleid in te stellen op Hoog. U hoeft geen GPU-versnelling te gebruiken om de chromawaarde te wijzigen, maar een 4:4:4-chromawaarde gebruikt meer bandbreedte voor dezelfde frames met 4:2:0.

Zie De chromawaarde verhogen naar 4:4:4 met de AVC-videocodec (Advanced Video Coding) voor meer informatie.