Dela via


Grafikkodning över fjärrskrivbordsprotokollet

Grafikdata från en fjärrsession överförs till en lokal enhet via RDP (Remote Desktop Protocol). Processen innebär att koda grafikdata på den virtuella fjärrdatorn innan den skickas till den lokala enheten. Varje bildruta bearbetas baserat på dess innehåll, passerar genom bildprocessorer, en klassificerare och en codec innan den levereras till den lokala enheten med hjälp av RDP:s grafiktransport.

Syftet med att koda och överföra grafikdata är att ge optimal prestanda och kvalitet, med en upplevelse som är densamma som att använda en enhet lokalt. Den här processen är viktig när du använder Azure Virtual Desktop, molndatorer i Windows 365 och Microsoft Dev Box, där användarna förväntar sig en högkvalitativ upplevelse när de arbetar på distans.

RDP använder en rad funktioner och tekniker för att bearbeta och överföra grafikdata som gör dem lämpliga för en mängd olika scenarier, till exempel kontorsproduktivitet, videouppspelning och spel. Dessa funktioner och tekniker omfattar:

  • Maskinvaru- och programvarubaserad kodning: använder PROCESSOR eller GPU för att koda grafikdata.

    • Kodning av maskinvaruacceleration: avlastar bearbetningen av grafikkodning från processorn till GPU:n på en fjärransluten virtuell dator med en diskret GPU. En GPU ger bättre prestanda för grafikintensiva program, till exempel 3D-modellering eller hd-videoredigering.

    • Programvarukodning: använder processorn för att koda grafikdata till en låg kostnad. Programvarukodning är standardkodningsprofilen som används på en fjärransluten virtuell dator utan en diskret GPU.

  • Blandat läge: separerar text- och bildkodning med olika codecs för att ge bästa kvalitet och lägsta kodningskostnad för varje typ av innehåll. Blandat läge är endast tillgängligt med programvarukodning.

  • Anpassningsbar grafik: justerar kodningskvaliteten baserat på tillgänglig bandbredd och skärmens innehåll.

  • Helskärmsvideokodning: ger en högre bildfrekvens och bättre användarupplevelse.

  • Deltaidentifiering och cachelagring: minskar mängden data som måste överföras.

  • Stöd för flera codec: använder maskinvarudekodare på en lokal enhet. Codecs inkluderar videokodcen Advanced Video Coding (AVC), även känd som H.264, och videokodexen för hög effektivitetsvideokodning (HEVC), även känd som H.265. HEVC/H.265-stöd finns i förhandsversion och kräver en kompatibel GPU-aktiverad virtuell fjärrdator.

  • 4:2:0 och 4:4:4 kroma-delsampling: ger en balans mellan bildkvalitet och bandbreddsanvändning.

Du kan använda en kombination av dessa funktioner och tekniker beroende på tillgängliga resurser för fjärrsessionen, den lokala enheten och nätverket samt den användarupplevelse som du vill tillhandahålla.

Den här artikeln beskriver processen med att koda och leverera grafikdata via RDP med hjälp av några av dessa funktioner och tekniker.

Dricks

Vi rekommenderar att du använder multimedieomdirigering där det är möjligt, vilket omdirigerar videouppspelning till den lokala enheten. Multimedieomdirigering ger en bättre användarupplevelse för videouppspelning genom att skicka bitströmmen av videodata till den lokala enheten där den avkodar och renderar videon på rätt plats på skärmen. Den här metoden sänker även bearbetningskostnaden på den virtuella fjärrdatorn oavsett kodningskonfiguration. Mer information finns i Multimedieomdirigering för videouppspelning och anrop i en fjärrsession.

Blandat läge

Som standard avgränsas grafikdata beroende på dess innehåll. Text och bilder kodas med hjälp av en blandning av codecs för att uppnå optimal kodningsprestanda för olika innehållstyper när du endast använder programvarukodning. Den här processen kallas för blandat läge.

I genomsnitt är cirka 80 % av grafikdata för en fjärrsession text. För att tillhandahålla den lägsta kodningskostnaden och bästa kvalitet för text använder RDP en anpassad codec som är optimerad för text. Eftersom bildinnehåll är mer utmanande att koda effektivt är det viktigt att använda en codec som anpassar sig väl till tillgänglig bithastighet.

Resten av innehållet är separerat till bilder och video:

  • Bilder är programvarukodade med antingen AVC/H.264- eller RemoteFX-grafik, beroende på den lokala enhetens funktioner och om multimedieomdirigering är aktiverat. AVC/H.264-kodning av bilder är inte tillgängligt när du använder multimedieomdirigering.

  • Video är programvara som kodas med AVC/H.264.

AVC/H.264 är en kodc med brett stöd som har bra komprimeringsförhållande för bilder, kan progressiv kodning och har möjlighet att justera kvaliteten baserat på bithastighet. Den förlitar sig på maskinvarudekodaren på den lokala enheten, som stöds i stor utsträckning på moderna enheter. Om du använder maskinvarudekodaren på den lokala enheten minskar processoranvändningen på den lokala enheten och ger en bättre användarupplevelse. Kontakta enhetstillverkaren för att se till att den stöder AVC/H.264-maskinvarudekodning.

Följande diagram visar processen för att koda och leverera grafikdata via RDP med hjälp av blandat läge i ett programvarukodningsscenario:

Ett diagram som visar processen för att koda och leverera grafikdata via RDP med blandat läge.

Den här processen beskrivs på följande sätt:

  1. En rambitmapp bearbetas först genom att identifiera om den innehåller video. Om den innehåller video skickas ramen till video codec, som i ett programvarubaserat scenario kodas med AVC/H.264 och sedan skickas ramen till grafikkanalen.

  2. Om ramen inte innehåller video avgör bildprocessorerna om det finns deltaändringar, rörelse identifieras eller om innehåll är tillgängligt i cacheminnet. Om innehållet matchar vissa villkor skickas ramen till grafikkanalen.

  3. Om ramen behöver bearbetas ytterligare avgör bildklassificeraren om den innehåller text eller bilder.

  4. Text och bilder kodas med olika codecs för att ge bästa kvalitet och lägsta kodningskostnad för varje typ av innehåll. När den har kodats skickas ramen till grafikkanalen.

I stället för att använda två separata codecs för text och bilder med blandat läge kan du aktivera helskärmsvideokodning för att bearbeta allt skärminnehåll med hjälp av videokodcen AVC/H.264.

Helskärmsvideokodning

Helskärmsvideokodning är användbart för scenarier där skärminnehållet till stor del är bildbaserat och används som ett alternativ till blandat läge. Helskärmsvideokodning bearbetar alla grafikdata med antingen AVC/H.264 eller HEVC/H.265. Därför presterar den sämre än kodning i blandat läge när skärminnehållet till stor del är textbaserat.

En helskärmsvideoprofil ger en högre bildfrekvens och bättre användarupplevelse, men använder mer nätverksbandbredd och resurser på både den virtuella fjärrdatorn och den lokala enheten. Det gynnar program som 3D-modellering, CAD/CAM eller videouppspelning och redigering.

Om du aktiverar maskinvaruacceleration för både HEVC/H.265 och AVC/H.264, men HEVC/H.265 inte är tillgängligt på den lokala enheten, används AVC/H.264 i stället. HEVC/H.265 tillåter 25–50 % datakomprimering jämfört med AVC/H.264, med samma videokvalitet eller förbättrad kvalitet, med samma bithastighet.

Du kan aktivera helskärmsvideokodning med AVC/H.264 även utan GPU-acceleration, men HEVC/H.265 kräver en kompatibel GPU-aktiverad virtuell fjärrdator.

Mer information finns i Aktivera GPU-acceleration för Azure Virtual Desktop.

Maskinvaru-GPU-acceleration

Azure Virtual Desktop, molndatorer i Windows 365 och Microsoft Dev Box har stöd för GPU-acceleration (graphics processing unit) i rendering och kodning för bättre appprestanda och skalbarhet med hjälp av RDP (Remote Desktop Protocol). GPU-acceleration är avgörande för grafikintensiva program, till exempel de som används av grafiska designers, videoredigerare, 3D-modellerare, dataanalytiker eller visualiseringsspecialister.

Det finns två komponenter till GPU-acceleration som fungerar tillsammans för att förbättra användarupplevelsen:

  • GPU-accelererad programrendering: Använd GPU:n för att återge grafik i en fjärrsession.

  • GPU-accelererad ramkodning: RDP kodar all grafik som återges för överföring till den lokala enheten. När en del av skärmen uppdateras ofta kodas den med AVC/H.264.

Om skärminnehållet i dina arbetsbelastningar till stor del är bildbaserat kan du även aktivera helskärmsvideokodning för att bearbeta allt skärminnehåll för att ge en högre bildfrekvens och bättre användarupplevelse.

Mer information finns i Aktivera GPU-acceleration.

Stöd för undersampling av Chroma för 4:2:0 och 4:4:4

Kromvärdet avgör det färgutrymme som används för kodning. Som standard är kromvärdet inställt på 4:2:0, vilket ger en bra balans mellan bildkvalitet och nätverksbandbredd. När du använder AVC/H.264 kan du öka kromavärdet till 4:4:4 för att förbättra bildkvaliteten, men det ökar även nätverksbandbredden. Du behöver inte använda GPU-acceleration för att ändra kromavärdet.

Mer information finns i Öka värdet för krom till 4:4:4 med hjälp av videokodcen Avancerad videokodning (AVC).