Freigeben über


Grafikcodierung über das Remotedesktopprotokoll

Grafikdaten aus einer Remotesitzung werden über das Remotedesktopprotokoll (RDP) an ein lokales Gerät übertragen. Der Prozess umfasst die Codierung der Grafikdaten auf dem virtuellen Remotecomputer, bevor sie an das lokale Gerät gesendet werden. Jeder Frame wird basierend auf seinem Inhalt verarbeitet und über Bildprozessoren, einen Klassifizierer und einen Codec geleitet, bevor er mithilfe des Grafiktransports von RDP an das lokale Gerät übermittelt wird.

Das Ziel der Codierung und Übertragung von Grafikdaten besteht darin, eine optimale Leistung und Qualität mit einer Erfahrung bereitzustellen, die mit der verwendung eines Geräts lokal identisch ist. Dieser Prozess ist wichtig, wenn Sie Azure Virtual Desktop, Cloud-PCs in Windows 365 und Microsoft Dev Box verwenden, bei denen Benutzer eine qualitativ hochwertige Erfahrung erwarten, wenn sie remote arbeiten.

RDP verwendet eine Reihe von Features und Techniken, um Grafikdaten zu verarbeiten und zu übertragen, die sie für eine Vielzahl von Szenarien wie Büroproduktivität, Videowiedergabe und Spiele geeignet machen. Zu diesen Features und Techniken gehören:

  • Hardware- und softwarebasierte Codierung: Verwendet die CPU oder GPU zum Codieren von Grafikdaten.

    • Codierung mit Hardwarebeschleunigung: Überlädt die Verarbeitung der Grafikcodierung von der CPU auf die GPU auf einem virtuellen Remotecomputer mit einer diskreten GPU. Eine GPU bietet eine bessere Leistung für grafikintensive Anwendungen, z. B. 3D-Modellierung oder hochauflösende Videobearbeitung.

    • Softwarecodierung: Verwendet die CPU, um Grafikdaten kostengünstig zu codieren. Die Softwarecodierung ist das Standardcodierungsprofil, das auf einem virtuellen Remotecomputer ohne separate GPU verwendet wird.

  • Gemischter Modus: Trennt die Text- und Bildcodierung mithilfe verschiedener Codecs, um die beste Qualität und die niedrigsten Codierungskosten für jeden Inhaltstyp zu erzielen. Der gemischte Modus ist nur mit Softwarecodierung verfügbar.

  • Adaptive Grafiken: Passt die Codierungsqualität basierend auf der verfügbaren Bandbreite und dem Inhalt des Bildschirms an.

  • Vollbildvideocodierung: Bietet eine höhere Bildfrequenz und eine bessere Benutzererfahrung.

  • Deltaerkennung und -zwischenspeicherung: Reduziert die Menge an Daten, die übertragen werden müssen.

  • Unterstützung mehrerer Codecs: Verwendet Hardwaredecoder auf einem lokalen Gerät. Codecs umfassen den AVC-Videocodec (Advanced Video Coding), auch bekannt als H.264, und den HEVC-Videocodec (High Efficiency Video Coding), auch bekannt als H.265. Die HEVC/H.265-Unterstützung erfordert einen kompatiblen GPU-fähigen virtuellen Remotecomputer.

  • 4:2:0 und 4:4:4 Chroma Subsampling: Bietet ein Gleichgewicht zwischen Bildqualität und Bandbreitennutzung.

Sie können eine Kombination dieser Features und Techniken verwenden, abhängig von den verfügbaren Ressourcen der Remotesitzung, des lokalen Geräts und netzwerks und der Benutzererfahrung, die Sie bereitstellen möchten.

In diesem Artikel wird der Prozess der Codierung und Übermittlung von Grafikdaten über RDP unter Verwendung einiger dieser Features und Techniken beschrieben.

Tipp

Es wird empfohlen, nach Möglichkeit die Multimediaumleitung zu verwenden, wodurch die Videowiedergabe an das lokale Gerät umgeleitet wird. Die Multimediaumleitung bietet eine bessere Benutzererfahrung für die Videowiedergabe, indem der Bitstream der Videodaten an das lokale Gerät gesendet wird, wo das Video an der richtigen Stelle auf dem Bildschirm decodiert und gerendert wird. Diese Methode senkt auch die Verarbeitungskosten auf dem virtuellen Remotecomputer unabhängig von der Codierungskonfiguration. Weitere Informationen finden Sie unter Multimediaumleitung für die Videowiedergabe und Anrufe in einer Remotesitzung.

Gemischter Modus

Standardmäßig werden Grafikdaten abhängig von ihrem Inhalt getrennt. Text und Bilder werden mit einer Mischung aus Codecs codiert, um eine optimale Codierungsleistung für verschiedene Inhaltstypen zu erzielen, wenn nur Softwarecodierung verwendet wird. Dieser Prozess wird als gemischter Modus bezeichnet.

Im Durchschnitt sind etwa 80 % der Grafikdaten für eine Remotesitzung Text. Um die niedrigsten Codierungskosten und die beste Qualität für Text zu erzielen, verwendet RDP einen benutzerdefinierten Codec, der für Text optimiert ist. Da die effektive Codierung von Bildinhalten schwieriger ist, ist es wichtig, einen Codec zu verwenden, der sich gut an die verfügbare Bitrate anpasst.

Der rest des Inhalts wird in Bilder und Videos getrennt:

  • Bilder sind softwarecodiert mit AVC/H.264- oder RemoteFX-Grafiken, je nach den Funktionen des lokalen Geräts und ob die Multimediaumleitung aktiviert ist. Die AVC/H.264-Codierung von Bildern ist bei Verwendung der Multimediaumleitung nicht verfügbar.

  • Video ist softwarecodiert mit AVC/H.264.

AVC/H.264 ist ein weit verbreiteter Codec, der ein gutes Komprimierungsverhältnis für Bilder hat, progressive Codierungen ermöglicht und die Qualität basierend auf der Bitrate anpassen kann. Es basiert auf dem Hardwaredecoder auf dem lokalen Gerät, der auf modernen Geräten weitgehend unterstützt wird. Die Verwendung des Hardwaredecoders auf dem lokalen Gerät reduziert die CPU-Auslastung auf dem lokalen Gerät und bietet eine bessere Benutzererfahrung. Wenden Sie sich an den Gerätehersteller, um sicherzustellen, dass er die AVC/H.264-Hardwaredecodierung unterstützt.

Das folgende Diagramm zeigt den Prozess der Codierung und Übermittlung von Grafikdaten über RDP unter Verwendung des gemischten Modus in einem Softwarecodierungsszenario:

Diagramm, das den Prozess der Codierung und Übermittlung von Grafikdaten über RDP im gemischten Modus zeigt.

Dieser Prozess wird wie folgt beschrieben:

  1. Eine Framebitmap wird zuerst verarbeitet, indem erkannt wird, ob sie Video enthält. Wenn er Video enthält, wird der Frame an den Videocodec gesendet, der in einem softwarebasierten Szenario mit AVC/H.264 codiert wird, und dann wird der Frame an den Grafikkanal übergeben.

  2. Wenn der Frame kein Video enthält, bestimmen die Bildprozessoren, ob Deltaänderungen vorliegen, Bewegungen erkannt werden oder ob Inhalte im Cache verfügbar sind. Wenn der Inhalt bestimmten Kriterien entspricht, wird der Frame an den Grafikkanal übergeben.

  3. Wenn der Frame weiter verarbeitet werden muss, bestimmt der Bildklassifizierer, ob er Text oder Bilder enthält.

  4. Text und Bilder werden mit verschiedenen Codecs codiert, um die beste Qualität und die niedrigsten Codierungskosten für jeden Inhaltstyp zu erzielen. Nach der Codierung wird der Frame an den Grafikkanal übergeben.

Anstatt zwei separate Codecs für Text und Bilder im gemischten Modus zu verwenden, können Sie die Vollbildvideocodierung aktivieren, um alle Bildschirminhalte mit dem AVC/H.264-Videocodec zu verarbeiten.

Vollbildvideocodierung

Die Vollbildvideocodierung ist nützlich für Szenarien, in denen der Bildschirminhalt weitgehend bildbasiert ist und als Alternative zum gemischten Modus verwendet wird. Die Vollbildvideocodierung verarbeitet alle Grafikdaten entweder mit AVC/H.264 oder HEVC/H.265. Daher ist die Leistung schlechter als die Codierung im gemischten Modus, wenn der Bildschirminhalt größtenteils textbasiert ist.

Ein Vollbildvideoprofil bietet eine höhere Bildfrequenz und eine bessere Benutzererfahrung, verwendet jedoch mehr Netzwerkbandbreite und -ressourcen sowohl auf dem virtuellen Remotecomputer als auch auf dem lokalen Gerät. Es kommt Anwendungen wie 3D-Modellierung, CAD/CAM oder Videowiedergabe und -bearbeitung zugute.

Wenn Sie sowohl HEVC/H.265 als auch AVC/H.264 Hardwarebeschleunigung aktivieren, HEVC/H.265 jedoch nicht auf dem lokalen Gerät verfügbar ist, wird stattdessen AVC/H.264 verwendet. HEVC/H.265 ermöglicht eine Datenkomprimierung von 25 bis 50 % im Vergleich zu AVC/H.264 bei gleicher Videoqualität oder verbesserter Qualität bei gleicher Bitrate.

Sie können die Videocodierung im Vollbildmodus mit AVC/H.264 auch ohne GPU-Beschleunigung aktivieren, aber HEVC/H.265 erfordert einen kompatiblen gpufähigen virtuellen Remotecomputer.

Weitere Informationen finden Sie unter Aktivieren der GPU-Beschleunigung für Azure Virtual Desktop.

Hardware-GPU-Beschleunigung

Azure Virtual Desktop, Cloud-PCs in Windows 365 und Microsoft Dev Box unterstützen gpu-Beschleunigung (Graphics Processing Unit) beim Rendern und Codieren, um die App-Leistung und Skalierbarkeit mithilfe des Remotedesktopprotokolls (RDP) zu verbessern. Die GPU-Beschleunigung ist für grafikintensive Anwendungen von entscheidender Bedeutung, z. B. bei Anwendungen, die von Grafikdesignern, Video-Editoren, 3D-Modellierern, Datenanalysten oder Visualisierungsspezialisten verwendet werden.

Es gibt zwei Komponenten der GPU-Beschleunigung, die zusammenarbeiten, um die Benutzererfahrung zu verbessern:

  • GPU-beschleunigtes Anwendungsrendering: Verwenden Sie die GPU, um Grafiken in einer Remotesitzung zu rendern.

  • GPU-beschleunigte Framecodierung: RDP codiert alle Grafiken, die für die Übertragung an das lokale Gerät gerendert werden. Wenn ein Teil des Bildschirms häufig aktualisiert wird, wird er mit AVC/H.264 codiert.

Wenn der Bildschirminhalt in Ihren Workloads größtenteils bildbasiert ist, können Sie auch die Vollbildvideocodierung aktivieren, um alle Bildschirminhalte zu verarbeiten, um eine höhere Bildfrequenz und eine bessere Benutzererfahrung zu bieten.

Weitere Informationen finden Sie unter Aktivieren der GPU-Beschleunigung.

Chroma-Subsamplingunterstützung für 4:2:0 und 4:4:4

Der Chromawert bestimmt den Farbraum, der für die Codierung verwendet wird. Standardmäßig ist der Chroma-Wert auf 4:2:0 festgelegt, was ein gutes Gleichgewicht zwischen Bildqualität und Netzwerkbandbreite bietet. Wenn Sie AVC/H.264 verwenden, können Sie den Chromawert auf 4:4:4 erhöhen, um die Bildqualität zu verbessern, aber auch die Netzwerkbandbreite wird erhöht. Sie müssen die GPU-Beschleunigung nicht verwenden, um den Chromawert zu ändern.

Weitere Informationen finden Sie unter Erhöhen des Chromawerts auf 4:4:4 mithilfe des AVC-Videocodecs (Advanced Video Coding).