Compartir vía


Codificación de gráficos a través del Protocolo de escritorio remoto

Los datos gráficos de una sesión remota se transmiten a un dispositivo local a través del Protocolo de escritorio remoto (RDP). El proceso implica codificar los datos gráficos en la máquina virtual remota antes de enviarlos al dispositivo local. Cada fotograma se procesa en función de su contenido, pasando por procesadores de imágenes, un clasificador y un códec, antes de entregarse al dispositivo local mediante el transporte de gráficos de RDP.

El objetivo de codificar y transmitir datos gráficos es proporcionar un rendimiento y una calidad óptimos, con una experiencia que sea la misma que al usar un dispositivo localmente. Este proceso es importante al usar Azure Virtual Desktop, PC en la nube en Windows 365 y Microsoft Dev Box, donde los usuarios esperan una experiencia de alta calidad al trabajar de forma remota.

RDP usa una amplia gama de características y técnicas para procesar y transmitir datos gráficos que lo hacen adecuado para una amplia gama de escenarios, como la productividad en la oficina, la reproducción de vídeo y los juegos. Estas características y técnicas incluyen:

  • Codificación basada en hardware y software: se usa la CPU o la GPU para codificar datos gráficos.

    • Codificación de aceleración de hardware: se descarga el procesamiento de la codificación de gráficos de la CPU a la GPU en una máquina virtual remota con una GPU discreta. Una GPU proporciona un mejor rendimiento para aplicaciones que consuman muchos gráficos, como el modelado 3D o la edición de vídeo de alta definición.

    • Codificación por software: se usa la CPU para codificar datos gráficos a un bajo coste. La codificación por software es el perfil de codificación predeterminado que se usa en máquinas virtuales remotas sin GPU discreta.

  • Modo mixto: se separa la codificación de texto e imagen mediante diferentes códecs para proporcionar la mejor calidad y el coste de codificación más bajo para cada tipo de contenido. El modo mixto solo está disponible con la codificación por software.

  • Gráficos adaptables: se ajusta la calidad de codificación en función del ancho de banda disponible y del contenido de la pantalla.

  • Codificación de vídeo de pantalla completa: proporciona una velocidad de fotogramas más alta y una mejor experiencia del usuario.

  • Almacenamiento en caché y detección delta: se reduce la cantidad de datos que se deben transmitir.

  • Compatibilidad con varios códecs: se usan descodificadores de hardware en un dispositivo local. Los códecs incluyen el códec de vídeo Codificación de vídeo avanzada (AVC), también conocido como H.264, y el códec de vídeo Codificación de vídeo de alta eficiencia (HEVC), también conocido como H.265. La compatibilidad con HEVC/H.265 está en versión preliminar y requiere una máquina virtual remota habilitada para GPU compatible.

  • Submuestreo de intensidad de color 4:2:0 y 4:4:4: proporciona un equilibrio entre la calidad de la imagen y la utilización de ancho de banda.

Use una combinación de estas características y técnicas en función de los recursos disponibles de la sesión remota, el dispositivo local y la red, así como la experiencia del usuario que quiera proporcionar.

En este artículo se describe el proceso de codificación y entrega de datos gráficos a través de RDP mediante algunas de estas características y técnicas.

Sugerencia

Se recomienda usar el redireccionamiento multimedia siempre que sea posible, que redirige la reproducción de vídeo al dispositivo local. El redireccionamiento multimedia proporciona una mejor experiencia del usuario para la reproducción de vídeo mediante el envío de la secuencia de bits de los datos de vídeo al dispositivo local, donde se descodifica y representa el vídeo en el lugar correcto en la pantalla. Este método también reduce el coste de procesamiento en la máquina virtual remota, independientemente de la configuración de codificación. Para obtener más información, consulte Redirección multimedia para la reproducción de vídeo y las llamadas en una sesión remota.

Modo mixto

De forma predeterminada, los datos gráficos se separan en función del contenido. El texto y las imágenes se codifican mediante una combinación de códecs para lograr un rendimiento óptimo de codificación en diferentes tipos de contenido al usar solo la codificación por software. Este proceso se conoce como modo mixto.

En promedio, aproximadamente el 80 % de los datos gráficos de una sesión remota son texto. Para proporcionar el coste de codificación más bajo y la mejor calidad de texto, RDP usa un códec personalizado optimizado para texto. Como el contenido de la imagen es más difícil de codificar de forma eficaz, es fundamental usar un códec que se adapte bien a la velocidad de bits disponible.

El resto del contenido se separa por imágenes y vídeos:

  • Las imágenes se codifican por software con gráficos AVC/H.264 o RemoteFX, en función de las funcionalidades del dispositivo local y de si se encuentra habilitada la redirección multimedia. La codificación AVC/H.264 de imágenes no está disponible al usar el redireccionamiento multimedia.

  • El vídeo está codificado por software con AVC/H.264.

AVC/H.264 es un códec ampliamente compatible que tiene una buena razón de compresión de imágenes, es capaz de codificar progresivamente y tiene la capacidad de ajustar la calidad en función de la velocidad de bits. Se basa en el descodificador de hardware en el dispositivo local, que es ampliamente compatible con dispositivos modernos. El uso del descodificador de hardware en el dispositivo local reduce el uso de la CPU en este y proporciona una mejor experiencia de usuario. Consulte con el fabricante del dispositivo para asegurarse de que se admita la descodificación de hardware AVC/H.264.

En el diagrama siguiente, se muestra el proceso de codificación y entrega de datos gráficos a través de RDP mediante el modo mixto en un escenario de codificación por software:

Diagrama que muestra el proceso de codificación y entrega de datos gráficos a través de RDP mediante el modo mixto.

Este proceso se describe de la manera siguiente:

  1. Un mapa de bits de fotograma se procesa primero detectando si contiene vídeo. En caso afirmativo, el fotograma se enviará al códec de vídeo, que en un escenario basado en software se codificará con AVC/H.264 y, a continuación, el fotograma pasará al canal de gráficos.

  2. Si el fotograma no contuviera vídeo, los procesadores de imágenes determinarán si hay cambios diferenciales, se detecta movimiento o si el contenido estuviera disponible en la memoria caché. Si el contenido coincidiera con determinados criterios, el marco pasará al canal de gráficos.

  3. Si el fotograma necesitase un procesamiento adicional, el clasificador de imágenes determinará que haya texto o imágenes.

  4. El texto y las imágenes se codifican mediante diferentes códecs para proporcionar la mejor calidad y el coste de codificación más bajo para cada tipo de contenido. Una vez codificado, el marco pasa al canal de gráficos.

En lugar de usar dos códecs independientes para texto e imágenes con modo mixto, es posible habilitar la codificación de vídeo de pantalla completa procesar todo el contenido de pantalla con el códec de vídeo AVC/H.264.

Codificación de vídeo en pantalla completa

La codificación de vídeo de pantalla completa resulta útil para escenarios en los que el contenido de la pantalla se base en gran medida en imágenes, y se usa como alternativa al modo mixto. La codificación de vídeo de pantalla completa procesa todos los datos gráficos con AVC/H.264 o HEVC/H.265. Como resultado, funcionará peor que la codificación en modo mixto cuando el contenido de la pantalla se base en gran medida en texto.

Un perfil de vídeo de pantalla completa proporciona una velocidad de fotogramas más alta y una mejor experiencia del usuario, pero usa más ancho de banda de red y recursos, tanto en la máquina virtual remota como en el dispositivo local. Ofrece aplicaciones como modelado 3D, CAD/CAM o reproducción y edición de vídeo.

Si habilita la aceleración de hardware HEVC/H.265 y AVC/H.264, pero HEVC/H.265 no está disponible en el dispositivo local, se usa AVC/H.264 en su lugar. HEVC/H.265 permite la compresión de datos del 25 al 50 % en comparación con AVC/H.264, con la misma calidad de vídeo o calidad mejorada con la misma velocidad de bits.

Es posible habilitar la codificación de vídeo de pantalla completa con AVC/H.264, incluso sin aceleración de GPU, pero HEVC/H.265 requiere una máquina virtual remota habilitada para GPU compatible.

Para obtener más información, consulte Habilitación de la aceleración de GPU para Azure Virtual Desktop.

Aceleración de GPU por hardware

Azure Virtual Desktop, PC en la nube en Windows 365 y Microsoft Dev Box admiten la aceleración de la unidad de procesamiento de gráficos (GPU) en la representación y codificación para mejorar el rendimiento y la escalabilidad de las aplicaciones mediante el Protocolo de escritorio remoto (RDP). La aceleración de GPU es fundamental para aplicaciones que consumen muchos gráficos, como las usadas por diseñadores gráficos, editores de vídeo, modeladores 3D, analistas de datos o especialistas de visualización.

Hay dos componentes para la aceleración de GPU que funcionan conjuntamente para mejorar la experiencia del usuario:

  • representación de aplicaciones aceleradas por GPU: use la GPU para representar gráficos en una sesión remota.

  • Codificación de fotogramas acelerados por GPU: RDP codifica todos los gráficos representados para la transmisión al dispositivo local. Cuando parte de la pantalla se actualiza con frecuencia, se codifica con AVC/H.264.

Si el contenido de la pantalla de las cargas de trabajo se basa en gran medida en imágenes, también es posible habilitar la codificación de vídeo de pantalla completa para procesar todo el contenido de la pantalla para proporcionar una mayor velocidad de fotogramas y una mejor experiencia del usuario.

Para obtener más información, consulte Habilitación de la aceleración de GPU.

Soporte de submuestreo de intensidad de color para 4:2:0 y 4:4:4

El valor cromático determina el espacio de color utilizado para la codificación. De manera predeterminada, el valor cromático se establece en 4:2:0, lo que proporciona un buen equilibrio entre la calidad de la imagen y el ancho de banda de red. Al usar AVC/H.264, es posible aumentar el valor de la intensidad de color a 4:4:4 para mejorar la calidad de la imagen, pero también se incrementará el ancho de banda de la red. No es necesario usar la aceleración de GPU para cambiar el valor de cromático.

Para obtener más información, consulte Aumentar el valor de la intensidad de color a 4:4:4 mediante el códec de vídeo Codificación de vídeo avanzada (AVC).