酷栈科技:VDI相关英文技术干货翻译系列之一

前言:

通过本系列译文希望能够为广大读者提供云桌面相关的科普知识,能够帮助读者在一定程度上了解云桌面背后的知识体系和国外一流厂商的技术和产品发展方向。由于中英文文化差异,翻译不当之处在所难免,请多谅解!

上海酷栈科技有限公司(简称“CStack”或“酷栈科技”),作为一家专注于高性能、智能化云桌面产品及方案提供商,从产品孵化阶段就不断学习和总结国外一流厂商优秀的产品设计理念和演进之路,而思杰(Citrix)是所有国内云桌面厂商必将面对的竞争对手,我们认为只有更好地了解对手,学习对手,做到知己知彼,方可百战不殆。通过本系列译文,您可以看到一流厂商优秀的技术点都已经在CStack xView产品中有所体现并超越。随着光纤网络和5G的普及,视频、3D和云游戏成为互联网流量消费大户,所以CStack成立之初就将其云桌面产品xView定位于中高端市场,可以很好地适用于2D/3D设计、视频播放、视频监控、云游戏和Win10等新兴云桌面使用场景,在技术路线上坚定不移地选择视频编解码技术(Video Codecs)作为核心桌面协议技术栈,引入H.264和H.265编码技术并配合专业GPU显卡加速桌面会话(session),提升用户使用体验;同时广泛支持多种GPU虚拟化和直通技术,提升产品核心竞争力;在产品不断落地商用和打磨的同时,近期我们又增加了智能混合编码技术,用于应对普通办公场景下的Office,OA,ERP等静态内容以及对于图像和画面有着极高要求的一些特殊使用场景。后续,我们会继续以匠心精神将CStack xView云桌面产品进行不断技术优化和产品升级,为用户提供焕然一新的云桌面使用体验!

位图(Bitmap)与视频编解码(Video Codecs)的对比

今天,我开始分享我的第一篇有关远程协议(remoting protocol)系列的博客文章。

在开始我们的VDI或者RDSH项目之前,我们考虑过有关客户使用场景中会涉及到vGPU解决方案的情况。在过去,我看到大量的项目中,客户抱怨说GPU的桌面会出现问题。但是大部分的情况并不是由于GPU引起的,而是远程协议(remoting protocol)在特定的场景下没有被合理的配置或者优化。

所以,我们首先需要了解位图(Bitmap)和视频编解码(Video Codecs)的区别,进而更好地针对特定的用户使用场景进行相关策略设定。

在本系列博客中,我们用Citrix作为实例,如果我有更多时间的话,我会对VMware Horizon做同样的分析。

让我们先全局性的看一下对比,随后我会对使用场景做更详细的描述:

Bitmap Remoting (位图远程控制)

Citrix Bitmap remoting 是基于JPG 压缩和RLE(Rung Length Encoding)技术,该技术(这里指RLE)是Citrix特别发明的。你可以查询这个网站(https://www.citrix.com/blogs/2016/09/28/lossless-compression-lowering-the-cost-of-pixel-perfection/)获得更多的关于RLE的细节。位图远程(Bitmap Remoting),也叫做“Thinwire”是一种针对静态内容“Static Content”可以高效利用带宽的远程控制协议。另外,其视觉质量“Visual Quality”非常接近原有图像,我们甚至可以通过无损“lossless”策略提升图像质量获得更加完美的质量“Pixel perfect”,用于某些必须的行业,例如医院影像处理。

所以,这对于Office相关的VDI或者XenApp使用场景是一个不错的选择。

[译者]:Citrix最早发明了远程桌面协议RDP并卖给了微软,其广泛用于Windows远程桌面连接,类似于Bitmap Remoting,但由于主要是针对文本等静态内容的会话交付,其无法适用于当前视频为王的新一代云桌面场景,包括3D CAD/CAE,云游戏。CStack xView产品也支持类似Bitmap的无损压缩技术,并可以进行智能动态切换。

为什么?

在大部分的时间里,用于Office或者ERP应用的用户并没有看到太多的屏幕变化,因此位图(bitmap)远程协议非常高效。但是这里有更多的细节需要考虑:

图像质量(Image Quality)

我们不打算仅仅用肉眼来区分不同的图片以便发现其图像质量与原有图片有多接近。因此我们将使用更加客观的方法用来进行测量:
结构化相近指数(Structural Similarity Index: SSIM)是一个用于量化由于数据压缩或者传输丢失所造成的的图像质量退化的指标。它是一个由两张相同图片不同来源:一个是参考图像,一个是处理过的图像所构成的全参考指标。

Reference Image (参考图像)

捕获的图片(VDI Session)

终端(Endpoint)

大部分的客户会为他们的用户采用瘦终端(ThinClient)而不是胖终端(FatClient)。这些瘦终端很多都已经很旧了,甚至一些还不支持硬件解码(hardware decoding)(我们后面会讨论这些)。位图远程控制(Bitmap Remoting)不需要特别的终端硬件配置,同时对资源消耗非常低,所以基本上可以用于全部的瘦终端上。

[译者]:CStack xView CSDP(CStack Desktop Protocol)中的无损压缩技术同样支持广泛的CStack已有或者在研终端类型,包括软终端,ARM A2000,A3000,X86 X1000等,最大限度的保护了用户现有投资。

使用CPU资源编码(Encoding CPU Load)

如前面所描述的终端情况,只需要适当的CPU资源就可以进行位图(Bitmap)压缩。但是它不能实现将编码(encoding)工作卸载到GPU上(NVENC:这里指的是NVIDIA Encoding)

Citrix 策略设置

我建议下列策略设置从而强行启用Bitmap Remoting:

Optimize for 3D graphics workload ->Disabled

这个策略在这里其实是不相关的,所以可以被禁用

Use video codec for compression ->Do not use video codec

为了强制使用位图(Bitmap Remoting),所以我们需要禁用视频编解码(Video Codec)

Visual Quality ->High

这个策略的配置需要根据你对图像质量的要求来定。高“High”是个好的选择,并且你可以选择“尝试无损”或者“总是无损” 用于我们前面提到过的需要完美图像质量的使用场景。

[译者]:CStack xView从两个维度提供了有关协议方面的控制:管理平台可以集中配置协议参数,并下发到各个终端上;终端侧可以独立配置协议控制,如果和管理平台配置参数冲突,那么优先选择本地,同时我们可以做到更为细颗粒的协议参数控制(请参考下图)。目前计划引入网络质量实时监测功能实现智能化、动态化的协议适配,简化用户配置。

管理平台中的协议配置

Android A2000 协议配置

视频编解码(Video Codecs)

Citrix目前支持H.264和H.265编解码。另外,这里有不同的H.264类型:YUV420和YUV444. 目前我们(Citrix)仅支持H.265 YUV420类型。这两之间更多的对比和差异会在后续的博客文章中进行讲解。这里我先聚焦在什么时候需要选择视频编解码(Video Codec)和…

[译者]:CStack xView是国内第一家也是目前唯一一家支持云桌面H.265编码传输的云桌面产品。

…为什么?

如我们前面所看到的,位图(Bitmap Remoting)对于静态图像支持的非常好,但是当涉及到移动图像和视频播放时,情况则有所不同了。当帧率越高(30fps,60fps),就有越多的图像需要被位图远程控制(Bitmap Remoting)所传输,这将严重影响带宽需求和总体的使用体验。所以,这种情况下视频编解码正好有所作用。

[译者]:所以微软后期对于RDP的发展也停滞不前了,推出了RemoteFX以便适应高帧率的视频等场景。国内一些低端厂商通过包装RDP实现所谓自研的云桌面产品,其技术能力和产品支持可想而知。

带宽

视频编解码(H.264,H.265)进行图像编码时,对于色彩信息(相对于亮度信息)会采用相对更低的分辨率,这是因为人类视觉系统对于色彩的敏锐度相对于亮度较低。这种技术使得可以在低带宽需求下进行视频播放或者3D建模,甚至是高帧率的使用场景。也使得用户可以在家或者远程带宽较低的WAN情况下进行办公和使用。

[译者]:根据CStack和某省电信公司天翼云合作开展的云桌面带宽对比测试结果可以看出,广域网环境下采用H.265在不降低甚至提升用户使用体验的同时,可以有效地降低带宽使用量,大约节省40%的带宽。请详见CStack文章。。。。。《链接》

图像质量(Image Quality)

视频编解码中YUV420(Citrix 缺省)由于采用了色彩二次采用效应“chroma subsampling effect”导致了图像模糊,尤其是在一些特殊布局的文本显示下。这种情况对于对象移动的视频播放来说不是问题,但是会对于Office应用的使用带来不便。我们会利用之前位图远程协议中所采用的相同参考图像和SSIM测量方法向你展示这种行为:

参考图片(Reference Image)

捕获的图片 H.264 YUV420

SSIM heatmap result H.264 YUV420

通过对比参考图片和捕获的图片,你应该通过肉眼已经看出了巨大的区别了。另外,在SSIM热图中先了83%的准确率。你现在应该能够更好地理解了,为什么用户会在YUV420的情况抱怨了。

[译者]:对于颜色非常敏感的设计师来说,刚开始使用云桌面时候一定会有所抱怨的,包括Citrix一流云桌面厂家同样会遇到此类问题,通过选择静态无损压缩或者YUV444可以解决此问题,但是同样会带来一定的负面影响,包括带宽消耗,延时增加,瘦终端适配等。所以,我们在实施此类项目时,一定需要先清楚地了解客户真实需求和原有环境配置,然后适当的进行调整。坦白地讲,并不是所有的设计场景都适合云桌面。CStack能够从创立之初就挑战设计类场景,也是基于多年来的技术积累和前瞻性投入。

延时(Latency)

一旦我们利用了诸如H.264编解码技术我们就需要在服务器端对捕获的图像进行编码,然后在终端上进行解码。这是一个非常耗时耗力的任务,如果不能使用硬件编码方式,那么H.264需要1个vCPU。好的情况是,Citrix利用Tesla GPU支持硬件编码方式,这样就可以将这些任务卸载到专用的GPU上的ASIC芯片上去完成。相对于基于CPU的编码方式,硬件编码总是要快的,并且可以很好的降低编码延时。举例来说,你可以认为GPU编码只需要4ms,而CPU编码则需要约30ms。

[译者]:国内大部分通过在Guest OS(虚拟机)里面安装agent进行云桌面交付的产品,由于能力有限无法利用硬件加速技术,使得其无法高效地支持高端云桌面场景,包括多路2K/4K超高清视频播放,云游戏,3D渲染等,某些厂家通过视频重定向技术将视频重定向到瘦终端上进行解码和playback,这样将带来视频文件格式兼容性,播放器兼容性,播放路数受限,终端要求等多种问题。CStack xView产品通过硬件加速技术,无需消耗云桌面vCPU资源,极大的提升了单机并发量和用户使用体验。

终端(Endpoint)

我们的终端需要具备解码的能力。所以,它需要是一个硬件的解码器或者装备有性能足够的CPU用于对视频流进行解码。同样延时也需要同样的硬件特性。硬件解码是优先选择的,因为它能够降低总体的延时。所以,如果我们用一个过时的瘦终端,它很可能会无法进行解码,最终导致用户使用体验的降级。

[译者]:CStack提供多种类型的终端,包括软终端,ARM终端和X86终端,可以最大限度地利用终端的有限资源进行视频解码

使用CPU资源编码(Encoding CPU Load)

Citrix 支持在硬件上使用NVENC(NVIDIA Encoding)进行编码。通过将任务卸载到GPU上,从而能够获得更多的好处,例如更低的CPU资源消耗,甚至为位图协议还要低

Citrix 策略设置

你应该按照以下内容进行策略设置

Optimize for 3D graphics workload ->Enabled

启用这个策略以便使用NVFBC(NVIDIA Direct FB Access)和NVENC(NVDIA Encoding)

Use video codec for compression ->For the entire screen

对于较老的XenDesktop版本(7.12 ~ 7.16),需要启用“全屏幕策略”以便使用NVENC功能

Visual Quality ->High

虽然这个选项无法避免色彩二次采用效应,但是设置为“高”依旧可以在很多场景下带来较高的图像质量。另外,因为“中等”和“高”对于带宽的消耗并没有太多差异,所以我建议设置为“高”作为一个好的开始

Use hardware encoding  Enabled (这是Citrix默认的配置,所以我没有为它单独创建一个截图)

[译者]:只要购买我们的一体机,或者软件+CSDP硬件加速套装,那么CStack xView对于硬件加速技术缺省就是启用的,无需用户进行配置和调整,也不存在版本兼容性问题。目前我们在增加更加完善的智能动态检测技术,针对屏幕热点图像的特性进行智能化地动态协议调整,以便应对不同的应用软件,诸如Office,视频播放,云游戏和3D设计等。

使用场景(Use Case)

同时,仅仅使用“H.264 YUV420 only”的场景在减少,这里有几个原因,最主要的是由于“色彩二次采用效应”以及有其他替代方案。从Citrix 7.17及以后版本,我们支持混合编码 “mixed codecs” (Bitmap和Video),这种技术可以将H.264全屏幕方式编码缩小到“3D VDI使用模式”,后者对于色彩的高准确度并不是必须的。我会在另外一篇博客文章中详细讲解混合编码模式“mixed codecs”

如果你想了解如何选择正确的VDI协议,可以观看我们在GTC大会上的视频录像。

关于作者

Simon Schaber: NVIDIA GRID 解决方案架构师

译文出处

上海酷栈科技有限公司(简称:“CStack”)是一家提供行业领先的云桌面产品及解决方案的高科技公司,其前身是上海思华科技股份有限公司云计算事业部,自2012年从事云计算及云桌面技术研究和标准化产品交付以来,已完成众多云桌面项目集成与实施。其产品和解决方案已广泛应用于运营商、公安、制造、教育、金融、医疗、保险等多个行业及领域。

公司愿景:成为全球领先的云桌面提供商

公司使命:以安全、极简的云桌面,实现人、设备和数据的智慧互联