Compartilhar via


Codificação de gráficos através do Protocolo de Ambiente de Trabalho Remoto

Os dados gráficos de uma sessão remota são transmitidos para um dispositivo local através do Protocolo RDP (Remote Desktop Protocol). O processo envolve codificar os dados gráficos na máquina virtual remota antes de os enviar para o dispositivo local. Cada frame é processada com base no respetivo conteúdo, passando por processadores de imagens, um classificador e um codec, antes de serem entregues no dispositivo local através do transporte gráfico de RDP.

O objetivo da codificação e transmissão de dados gráficos é proporcionar um desempenho e qualidade ideais, com uma experiência idêntica à utilização local de um dispositivo. Este processo é importante quando utiliza o Azure Virtual Desktop, os PCs na Cloud no Windows 365 e o Microsoft Dev Box, onde os utilizadores esperam uma experiência de alta qualidade quando trabalham remotamente.

O RDP utiliza uma variedade de funcionalidades e técnicas para processar e transmitir dados gráficos que os tornam adequados para uma vasta gama de cenários, como produtividade do escritório, reprodução de vídeo e jogos. Estas funcionalidades e técnicas incluem:

  • Codificação baseada em hardware e software: utiliza a CPU ou a GPU para codificar dados gráficos.

    • Codificação de aceleração de hardware: descarrega o processamento de codificação de gráficos da CPU para a GPU numa máquina virtual remota com uma GPU discreta. Uma GPU proporciona um melhor desempenho para aplicações com utilização intensiva de gráficos, como modelação 3D ou edição de vídeo de alta definição.

    • Codificação de software: utiliza a CPU para codificar dados gráficos a um custo baixo. A codificação de software é o perfil de codificação predefinido utilizado numa máquina virtual remota sem uma GPU discreta.

  • Modo misto: separa a codificação de texto e imagem através de codecs diferentes para proporcionar a melhor qualidade e o menor custo de codificação para cada tipo de conteúdo. O modo misto só está disponível com codificação de software.

  • Gráficos adaptáveis: ajusta a qualidade da codificação com base na largura de banda disponível e no conteúdo do ecrã.

  • Codificação de vídeo em ecrã inteiro: proporciona uma taxa de fotogramas mais elevada e uma melhor experiência de utilizador.

  • Deteção e colocação em cache delta: reduz a quantidade de dados que têm de ser transmitidos.

  • Suporte para vários codecs: utiliza descodificadores de hardware num dispositivo local. Os codecs incluem o codec de vídeo Advanced Video Coding (AVC), também conhecido como H.264, e o codec de vídeo HEVC (High Efficiency Video Coding), também conhecido como H.265. O suporte HEVC/H.265 requer uma máquina virtual remota compatível com GPU ativada.

  • 4:2:0 e 4:4:4 chroma subsampling: fornece um equilíbrio entre a qualidade da imagem e a utilização da largura de banda.

Pode utilizar uma combinação destas funcionalidades e técnicas consoante os recursos disponíveis da sessão remota, do dispositivo local e da rede e da experiência de utilizador que pretende fornecer.

Este artigo descreve o processo de codificação e entrega de dados gráficos através de RDP através de algumas destas funcionalidades e técnicas.

Dica

Recomendamos que utilize o redirecionamento multimédia sempre que possível, o que redireciona a reprodução de vídeo para o dispositivo local. O redirecionamento multimédia proporciona uma melhor experiência de utilizador para a reprodução de vídeo ao enviar a transmissão de dados de vídeo para o dispositivo local onde descodifica e compõe o vídeo no local correto no ecrã. Este método também reduz o custo de processamento na máquina virtual remota, independentemente da configuração da codificação. Para saber mais, veja Redirecionamento multimédia para reprodução de vídeo e chamadas numa sessão remota.

Modo misto

Por predefinição, os dados gráficos são separados consoante o respetivo conteúdo. O texto e as imagens são codificados através de uma combinação de codecs para obter um desempenho de codificação ideal em diferentes tipos de conteúdo ao utilizar apenas a codificação de software. Este processo é conhecido como modo misto.

Em média, aproximadamente 80% dos dados gráficos de uma sessão remota são texto. Para fornecer o custo de codificação mais baixo e a melhor qualidade para texto, o RDP utiliza um codec personalizado otimizado para texto. Devido ao facto de o conteúdo da imagem ser mais desafiante para codificar eficazmente, é fundamental utilizar um codec que se adapte bem à velocidade de transmissão disponível.

O resto do conteúdo é separado por imagens e vídeo:

  • As imagens são codificadas por software com gráficos AVC/H.264 ou RemoteFX, consoante as capacidades do dispositivo local e se o redirecionamento multimédia estiver ativado. A codificação AVC/H.264 de imagens não está disponível ao utilizar o redirecionamento multimédia.

  • O vídeo é um software codificado com AVC/H.264.

O AVC/H.264 é um codec amplamente suportado que tem uma boa proporção de compressão para imagens, é capaz de codificação progressiva e tem a capacidade de ajustar a qualidade com base na velocidade de transmissão. Baseia-se no descodificador de hardware no dispositivo local, que é amplamente suportado em dispositivos modernos. A utilização do descodificador de hardware no dispositivo local reduz a utilização da CPU no dispositivo local e proporciona uma melhor experiência de utilizador. Contacte o fabricante do dispositivo para garantir que suporta a descodificação de hardware AVC/H.264.

O diagrama seguinte mostra o processo de codificação e entrega de dados gráficos através de RDP com o modo misto num cenário de codificação de software:

Um diagrama que mostra o processo de codificação e entrega de dados gráficos através de RDP com o modo misto.

Este processo é descrito da seguinte forma:

  1. Um mapa de bits de moldura é processado pela primeira vez ao detetar se contém vídeo. Se contiver vídeo, a moldura é enviada para o codec de vídeo, que num cenário baseado em software é codificado com AVC/H.264 e, em seguida, a moldura passa para o canal gráfico.

  2. Se a moldura não contiver vídeo, os processadores de imagens determinam se existem alterações delta, se o movimento é detetado ou se o conteúdo está disponível na cache. Se o conteúdo corresponder a determinados critérios, a moldura passa para o canal gráfico.

  3. Se a moldura precisar de processamento adicional, o classificador de imagem determina se contém texto ou imagens.

  4. O texto e as imagens são codificados através de codecs diferentes para fornecer a melhor qualidade e o menor custo de codificação para cada tipo de conteúdo. Depois de codificada, a moldura passa para o canal gráfico.

Em vez de utilizar dois codecs separados para texto e imagens com modo misto, pode ativar a codificação de vídeo em ecrã inteiro para processar todo o conteúdo de ecrã com o codec de vídeo AVC/H.264.

Codificação de vídeo em ecrã inteiro

A codificação de vídeo em ecrã inteiro é útil para cenários em que o conteúdo do ecrã é em grande parte baseado em imagens e é utilizado como alternativa ao modo misto. A codificação de vídeo em ecrã inteiro processa todos os dados gráficos com AVC/H.264 ou HEVC/H.265. Como resultado, tem um desempenho pior do que a codificação de modo misto quando o conteúdo do ecrã é em grande parte baseado em texto.

Um perfil de vídeo em ecrã inteiro proporciona uma taxa de fotogramas mais elevada e uma melhor experiência de utilizador, mas utiliza mais largura de banda de rede e recursos na máquina virtual remota e no dispositivo local. Beneficia aplicações como modelação 3D, CAD/CAM ou reprodução e edição de vídeo.

Se ativar a aceleração de hardware HEVC/H.265 e AVC/H.264, mas o HEVC/H.265 não estiver disponível no dispositivo local, é utilizado o AVC/H.264. O HEVC/H.265 permite uma compressão de dados de 25 a 50% em comparação com o AVC/H.264, com a mesma qualidade de vídeo ou qualidade melhorada, com a mesma velocidade de transmissão.

Pode ativar a codificação de vídeo em ecrã inteiro com AVC/H.264 mesmo sem aceleração de GPU, mas o HEVC/H.265 requer uma máquina virtual remota compatível com GPU.

Para saber mais, veja Ativar a aceleração de GPU para o Azure Virtual Desktop.

Aceleração de GPU de hardware

O Azure Virtual Desktop, os PCs na Cloud no Windows 365 e o Microsoft Dev Box suportam aceleração da unidade de processamento gráfico (GPU) na composição e codificação para um melhor desempenho e escalabilidade da aplicação com o Protocolo RDP (Remote Desktop Protocol). A aceleração de GPU é crucial para aplicações com utilização intensiva de gráficos, como as utilizadas por designers gráficos, editores de vídeo, modeladores 3D, analistas de dados ou especialistas em visualização.

Existem dois componentes para a aceleração de GPU que funcionam em conjunto para melhorar a experiência do utilizador:

  • Composição de aplicações aceleradas por GPU: utilize a GPU para compor gráficos numa sessão remota.

  • Codificação de molduras acelerada por GPU: codifica todos os gráficos compostos para transmissão para o dispositivo local. Quando parte do ecrã é frequentemente atualizada, é codificada com AVC/H.264.

Se o conteúdo de ecrã nas suas cargas de trabalho for em grande parte baseado em imagens, também pode ativar a codificação de vídeo em ecrã inteiro para processar todo o conteúdo de ecrã para proporcionar uma taxa de fotogramas mais elevada e uma melhor experiência de utilizador.

Para saber mais, veja Ativar aceleração de GPU.

Chroma subsampling support for 4:2:0 and 4:4:4

O valor chroma determina o espaço de cores utilizado para codificação. Por predefinição, o valor chroma está definido como 4:2:0, o que proporciona um bom equilíbrio entre a qualidade da imagem e a largura de banda de rede. Quando utiliza AVC/H.264, pode aumentar o valor chroma para 4:4:4 para melhorar a qualidade da imagem, mas também aumenta a largura de banda de rede. Não precisa de utilizar a aceleração de GPU para alterar o valor chroma.

Para saber mais, veja Aumentar o valor chroma para 4:4:4 com o codec de vídeo Advanced Video Coding (AVC).