通过远程桌面协议进行图形编码
来自远程会话的图形数据将通过远程桌面协议 (RDP) 传输到本地设备。 该过程涉及到在将图形数据发送到本地设备之前在远程虚拟机上对其进行编码。 每个帧根据其内容进行处理,通过图像处理器、分类器和编解码器,然后使用 RDP 的图形传输传送到本地设备。
编码和传输图形数据的目的是提供最佳性能和质量,并提供与在本地使用设备相同的体验。 使用 Azure 虚拟桌面、Windows 365 中的云电脑和 Microsoft Dev Box 时,此过程非常重要,因为用户希望在远程工作时获得高质量的体验。
RDP 使用一系列功能和技术来处理和传输图形数据,使其适用于办公效率、视频播放和游戏等广泛的方案。 这些功能和技术包括:
基于硬件和软件的编码:使用 CPU 或 GPU 对图形数据进行编码。
硬件加速编码:将图形编码处理从 CPU 转移到具有独立 GPU 的远程虚拟机上的 GPU。 GPU 为图形密集型应用程序(例如 3D 建模或高清视频编辑)提供更好的性能。
软件编码:使用 CPU 以低成本对图形数据进行编码。 软件编码是在没有独立 GPU 的远程虚拟机上使用的默认编码配置文件。
混合模式:使用不同的编解码器分离文本和图像编码,为每种类型的内容提供最佳质量和最低编码成本。 混合模式仅适用于软件编码。
自适应图形:根据可用带宽和屏幕内容调整编码质量。
全屏视频编码:提供更高的帧速率和更好的用户体验。
增量检测和缓存:减少需要传输的数据量。
多编解码器支持:在本地设备上使用硬件解码器。 编解码器包括高级视频编码 (AVC) 视频编解码器(也称为 H.264)和高效视频编码 (HEVC) 视频编解码器(也称为 H.265)。 HEVC/H.265 支持处于预览状态,需要兼容的支持 GPU 的远程虚拟机。
4:2:0 和 4:4:4 色度子采样:在图像质量和带宽用量之间实现平衡。
你可以根据远程会话、本地设备和网络的可用资源以及想要提供的用户体验结合使用这些功能和技术。
本文介绍了使用其中一些功能和技术通过 RDP 编码和传送图形数据的过程。
提示
我们建议尽可能使用多媒体重定向,将视频播放重定向到本地设备。 多媒体重定向通过将视频数据的比特流发送到本地设备,在本地设备中解码并在屏幕上的正确位置呈现视频,为视频播放提供更好的用户体验。 无论编码配置如何,此方法也可以降低远程虚拟机上的处理成本。 有关详细信息,请参阅远程会话中视频播放和通话的多媒体重定向。
混合模式
默认情况下,图形数据根据其内容进行分离。 文本和图像使用多种编解码器进行编码,以便在仅使用软件编码时实现跨不同内容类型的最佳编码性能。 此过程称为混合模式。
平均而言,远程会话的图形数据大约有 80% 是文本。 为了提供最低的编码成本和最佳的文本质量,RDP 使用针对文本进行优化的自定义编解码器。 由于图像内容的有效编码更具挑战性,因此必须使用能够很好地适应可用比特率的编解码器。
其余内容划分为图像和视频:
图像采用 AVC/H.264 或 RemoteFX 图形软件进行编码,具体取决于本地设备的功能以及是否启用了多媒体重定向。 使用多媒体重定向时,图像的 AVC/H.264 编码不可用。
视频采用 AVC/H.264 软件进行编码。
AVC/H.264 是一种被广泛支持的编解码器,它具有良好的图像压缩比、能够进行渐进式编码、并且能够根据比特率调整质量。 它依赖于本地设备上的硬件解码器,该解码器在新式设备上受到广泛支持。 在本地设备上使用硬件解码器可以降低本地设备的 CPU 使用率,并提供更好的用户体验。 请咨询设备制造商,确保其支持 AVC/H.264 硬件解码。
下图显示了在软件编码方案中使用混合模式通过 RDP 编码和传送图形数据的过程:
此过程如下所述:
首先通过检测帧位图是否包含视频来处理该位图。 如果它包含视频,则该帧将发送到视频编解码器,在基于软件的方案中,该编解码器使用 AVC/H.264 进行编码,然后该帧将传递到图形通道。
如果该帧不包含视频,图像处理器将确定是否存在增量更改、是否检测到运动或缓存中是否有可用的内容。 如果内容符合特定的条件,则该帧将传递到图形通道。
如果该帧需要进一步处理,图像分类器会确定它是否包含文本或图像。
使用不同的编解码器对文本和图像进行编码,为每种类型的内容提供最佳质量和最低编码成本。 编码后,该帧将传递到图形通道。
可以启用全屏视频编码,使用 AVC/H.264 视频编解码器处理所有屏幕内容,而不必在混合模式下对文本和图像使用两个不同的编解码器。
全屏视频编码
全屏视频编码对于屏幕内容主要基于图像的方案很有用,可用作混合模式的替代。 全屏视频编码使用 AVC/H.264 或 HEVC/H.265 处理所有图形数据。 因此,当屏幕内容主要是文本时,它的性能比混合模式编码差。
全屏视频配置文件提供更高的帧速率和更好的用户体验,但在远程虚拟机和本地设备上使用更多的网络带宽和资源。 它有利于 3D 建模、CAD/CAM 或视频播放和编辑等应用程序。
如果同时启用 HEVC/H.265 和 AVC/H.264 硬件加速,但本地设备上不提供 HEVC/H.265,则会改用 AVC/H.264。 与 AVC/H.264 相比,HEVC/H.265 在相同视频质量下可实现 25-50% 的数据压缩,或在相同比特率下实现更高的质量。
即使没有 GPU 加速,也可以使用 AVC/H.264 启用全屏视频编码,但 HEVC/H.265 需要兼容的支持 GPU 的远程虚拟机。
有关详细信息,请参阅为 Azure 虚拟桌面启用 GPU 加速。
硬件 GPU 加速
Azure 虚拟桌面、Windows 365 中的云电脑和 Microsoft Dev Box 支持使用远程桌面协议 (RDP) 在渲染和编码中使用图形处理单元 (GPU) 加速来提高应用程序的性能和可伸缩性。 GPU 加速对于图形密集型应用程序至关重要,例如图形设计师、视频编辑师、3D 建模师、数据分析师或可视化专家使用的应用程序。
GPU 加速有两个组件共同作用以改善用户体验:
GPU 加速的应用程序呈现:使用 GPU 在远程会话中呈现图形。
GPU 加速的帧编码:RDP 对呈现的所有图形进行编码,以便传输到本地设备。 当屏幕的一部分频繁更新时,它会使用 AVC/H.264 进行编码。
如果工作负载中的屏幕内容主要是图像,还可以启用全屏视频编码来处理所有屏幕内容,以提供更高的帧速率和更好的用户体验。
有关详细信息,请参阅启用 GPU 加速。
色度子采样支持 4:2:0 和 4:4:4
色度值决定了用于编码的颜色空间。 默认情况下,色度值设置为 4:2:0,这可以很好地平衡图像质量和网络带宽。 使用 AVC/H.264 时,可以将色度值增加到 4:4:4 来提高画质,但这也会增加网络带宽。 无需使用 GPU 加速来更改色度值。