Condividi tramite


Codifica grafica su Remote Desktop Protocol

I dati grafici di una sessione remota vengono trasmessi a un dispositivo locale tramite Remote Desktop Protocol (RDP). Il processo prevede la codifica dei dati grafici nella macchina virtuale remota prima di inviarli al dispositivo locale. Ogni fotogramma viene elaborato in base al contenuto, passando attraverso processori di immagini, un classificatore e un codec, prima di essere recapitati al dispositivo locale usando il trasporto grafico RDP.

L'obiettivo della codifica e della trasmissione dei dati grafici è offrire prestazioni e qualità ottimali, con un'esperienza identica all'uso locale di un dispositivo. Questo processo è importante quando si usano Desktop virtuale Azure, PC cloud in Windows 365 e Microsoft Dev Box, in cui gli utenti si aspettano un'esperienza di alta qualità quando si lavora in remoto.

RDP usa una gamma di funzionalità e tecniche per elaborare e trasmettere dati grafici che lo rendono adatto a un'ampia gamma di scenari, ad esempio la produttività dell'ufficio, la riproduzione di video e i giochi. Queste funzionalità e tecniche includono:

  • Codifica hardware e basata su software: usa la CPU o la GPU per codificare i dati grafici.

    • Codifica dell'accelerazione hardware: esegue l'offload dell'elaborazione della codifica grafica dalla CPU alla GPU in una macchina virtuale remota con una GPU discreta. Una GPU offre prestazioni migliori per applicazioni a elevato utilizzo di grafica, ad esempio la modellazione 3D o la modifica video ad alta definizione.

    • Codifica software: usa la CPU per codificare i dati grafici a un costo basso. La codifica software è il profilo di codifica predefinito usato in una macchina virtuale remota senza una GPU discreta.

  • Modalità mista: separa la codifica di testo e immagine usando codec diversi per offrire la migliore qualità e il costo di codifica più basso per ogni tipo di contenuto. La modalità mista è disponibile solo con la codifica software.

  • Grafica adattiva: regola la qualità della codifica in base alla larghezza di banda disponibile e al contenuto dello schermo.

  • Codifica video a schermo intero: offre una frequenza dei fotogrammi superiore e un'esperienza utente migliore.

  • Rilevamento differenziale e memorizzazione nella cache: riduce la quantità di dati che devono essere trasmessi.

  • Supporto di più codec: usa decodificatori hardware in un dispositivo locale. I codec includono il codec video AVC (Advanced Video Coding), noto anche come H.264, e il codec video HEVC (High Efficiency Video Coding), noto anche come H.265. Il supporto HEVC/H.265 è disponibile in anteprima e richiede una macchina virtuale remota abilitata per GPU compatibile.

  • Sottocampionamento 4:2:0 e 4:4:4: offre un equilibrio tra la qualità dell'immagine e l'utilizzo della larghezza di banda.

È possibile usare una combinazione di queste funzionalità e tecniche a seconda delle risorse disponibili della sessione remota, del dispositivo locale e della rete e dell'esperienza utente che si vuole fornire.

Questo articolo descrive il processo di codifica e distribuzione di dati grafici tramite RDP usando alcune di queste funzionalità e tecniche.

Suggerimento

Ti consigliamo di usare il reindirizzamento multimediale laddove possibile, che reindirizza la riproduzione video al dispositivo locale. Il reindirizzamento multimediale offre un'esperienza utente migliore per la riproduzione video inviando il flusso di bit dei dati video al dispositivo locale in cui decodifica ed esegue il rendering del video nella posizione corretta sullo schermo. Questo metodo riduce anche i costi di elaborazione nella macchina virtuale remota indipendentemente dalla configurazione della codifica. Per altre informazioni, vedi Reindirizzamento multimediale per la riproduzione video e le chiamate in una sessione remota.

Modalità mista

Per impostazione predefinita, i dati grafici sono separati a seconda del relativo contenuto. Il testo e le immagini vengono codificati usando una combinazione di codec per ottenere prestazioni di codifica ottimali in tipi di contenuto diversi quando si usa solo la codifica software. Questo processo è noto come modalità mista.

In media, circa l'80% dei dati grafici per una sessione remota è testo. Per fornire il costo di codifica più basso e la migliore qualità per il testo, RDP usa un codec personalizzato ottimizzato per il testo. A causa del fatto che il contenuto delle immagini risulta più complesso da codificare in modo efficace, è fondamentale usare un codec che si adatta bene alla velocità in bit disponibile.

Il resto del contenuto è separato da immagini e video:

  • Le immagini sono codificate in software con grafica AVC/H.264 o RemoteFX, a seconda delle funzionalità del dispositivo locale e se è abilitato il reindirizzamento multimediale. La codifica AVC/H.264 delle immagini non è disponibile quando si usa il reindirizzamento multimediale.

  • Il video è codificato con AVC/H.264.

AVC/H.264 è un codec ampiamente supportato con un buon rapporto di compressione per le immagini, è in grado di codifica progressiva e ha la possibilità di regolare la qualità in base alla velocità in bit. Si basa sul decodificatore hardware sul dispositivo locale, che è ampiamente supportato nei dispositivi moderni. L'uso del decodificatore hardware nel dispositivo locale riduce l'utilizzo della CPU nel dispositivo locale e offre un'esperienza utente migliore. Rivolgersi al produttore del dispositivo per assicurarsi che supporti la decodifica hardware AVC/H.264.

Il diagramma seguente illustra il processo di codifica e distribuzione dei dati grafici tramite RDP usando la modalità mista in uno scenario di codifica software:

Diagramma che mostra il processo di codifica e distribuzione di dati grafici tramite RDP usando la modalità mista.

Questo processo è descritto come segue:

  1. Una bitmap di fotogramma viene prima elaborata rilevando se contiene video. Se contiene video, il fotogramma viene inviato al codec video, che in uno scenario basato su software viene codificato con AVC/H.264 e quindi il fotogramma passa al canale grafico.

  2. Se il fotogramma non contiene video, i processori di immagini determinano se sono presenti modifiche differenziali, viene rilevato un movimento o se il contenuto è disponibile nella cache. Se il contenuto corrisponde a determinati criteri, il frame passa al canale grafico.

  3. Se il fotogramma richiede un'ulteriore elaborazione, il classificatore di immagini determina se contiene testo o immagini.

  4. Il testo e le immagini vengono codificati usando codec diversi per offrire la migliore qualità e il costo di codifica più basso per ogni tipo di contenuto. Dopo la codifica, il frame passa al canale grafico.

Invece di usare due codec separati per testo e immagini con modalità mista, è possibile abilitare la codifica video a schermo intero per elaborare tutto il contenuto dello schermo usando il codec video AVC/H.264.

Codifica video a schermo intero

La codifica video a schermo intero è utile per scenari in cui il contenuto dello schermo è in gran parte basato su immagini e viene usato come alternativa alla modalità mista. La codifica video a schermo intero elabora tutti i dati grafici con AVC/H.264 o HEVC/H.265. Di conseguenza, si verifica un risultato peggiore della codifica in modalità mista quando il contenuto dello schermo è in gran parte basato su testo.

Un profilo video a schermo intero offre una frequenza dei fotogrammi superiore e un'esperienza utente migliore, ma usa più larghezza di banda di rete e risorse sia nella macchina virtuale remota che nel dispositivo locale. Offre vantaggi per applicazioni come la modellazione 3D, CAD/CAM o la riproduzione e la modifica di video.

Se si abilita l'accelerazione hardware sia HEVC/H.265 che AVC/H.264, ma HEVC/H.265 non è disponibile nel dispositivo locale, viene invece usato AVC/H.264. HEVC/H.265 consente la compressione dei dati del 25-50% rispetto a AVC/H.264, con la stessa qualità video o una qualità migliorata, allo stesso bitrate.

È possibile abilitare la codifica video a schermo intero con AVC/H.264 anche senza accelerazione GPU, ma HEVC/H.265 richiede una macchina virtuale remota compatibile abilitata per GPU.

Per altre informazioni, vedere Abilitare l'accelerazione GPU per Desktop virtuale Azure.

Accelerazione GPU hardware

Desktop virtuale Azure, PC cloud in Windows 365 e Microsoft Dev Box supportano l'accelerazione dell'unità di elaborazione grafica (GPU) nel rendering e nella codifica per migliorare le prestazioni e la scalabilità delle app tramite Remote Desktop Protocol (RDP). L'accelerazione GPU è fondamentale per le applicazioni a elevato utilizzo di grafica, ad esempio quelle usate da grafici, editor video, creatori di modelli 3D, analisti dei dati o specialisti della visualizzazione.

Esistono due componenti per l'accelerazione GPU che interagiscono per migliorare l'esperienza utente:

  • Rendering delle applicazioni con accelerazione GPU: usa la GPU per eseguire il rendering della grafica in una sessione remota.

  • Codifica dei fotogrammi con accelerazione GPU: RDP codifica tutta la grafica di cui viene eseguito il rendering per la trasmissione al dispositivo locale. Quando una parte dello schermo viene aggiornata di frequente, viene codificata con AVC/H.264.

Se il contenuto dello schermo nei carichi di lavoro è in gran parte basato su immagini, è anche possibile abilitare la codifica video a schermo intero per elaborare tutto il contenuto dello schermo per offrire una frequenza di fotogrammi superiore e un'esperienza utente migliore.

Per altre informazioni, vedere Abilitare l'accelerazione GPU.

Supporto del sottocampionamento Chroma per 4:2:0 e 4:4:4

Il valore cromatico determina lo spazio colore utilizzato per la codifica. Per impostazione predefinita, il valore cromatico è impostato su 4:2:0, per offrire un buon equilibrio tra qualità dell'immagine e larghezza di banda di rete. Quando si usa AVC/H.264, è possibile aumentare il valore di cromatica a 4:4:4 per migliorare la qualità dell'immagine, ma aumenta anche la larghezza di banda di rete. Non è necessario usare l'accelerazione GPU per modificare il valore cromatico.

Per altre informazioni, vedere Aumentare il valore di cromatica a 4:4:4 usando il codec video AVC (Advanced Video Coding).