不知从什么时候开始,人们的工作和生活都开始变得离不开手机,手机几乎握在每个人的手里。云+AI+5G 技术加持下的新时代,有没有可能让手机不仅可以握在手里,更可以放在云上呢?
华为云鲲鹏云手机,就是这样一个具有跨时代意义的创新产品。
在本次华为开发者大会 HDC.Cloud 开发者沙龙上,我们有幸邀请到华为云鲲鹏云手机解决方案架构师陈佳敦,为我们广大的开发者朋友们详细介绍了华为云鲲鹏云手机以及其背后独有的 Monbox 软件架构的前世今生。(延伸阅读:@全体开发者,复工后一个月的直播都为您安排好了)
(华为云鲲鹏云手机解决方案架构师陈佳敦)
既然手机已经如此优秀,为何还需要云手机?
首先,云手机并不是说取代我们正在使用的手机终端,而是一种延展和补充。更多的是使用它的智能运行、弹性发放和集群控制等能力,让移动应用从手机终端运行,进化到可以在云端智能运行。
面向如越来越多的如自动化仿真测试、数据采集分析和新媒体营销等场景,单台手机的处理效率非常有限,通过云手机的方式,可以颠覆式地提升处理效率,帮忙企业大幅降本增效。
此外,通过云手机技术,还可以为游戏,直播等行业提供全新的互动体验方式,开拓新的商业模式和市场。
以云手游场景为例,因为游戏的内容实际上是在云上虚拟手机上运行,所以游戏对于最终玩家来说,无需下载,即点即玩,大幅提高玩家转换率。
同样道理,以直播场景为例,传统直播为主播一人控制,观众仅限于观看和文字层面互动,基于云手机开发的直播应用,控制权可以在多人之间灵活切换转移,实现更深层次的互动体验。
为何华为云
可以做到公有云业界独家?
硬件层面,Powered By Kunpeng,端云同架构
目前,全球一共有 500 多万移动 APP,这些应用都是基于 ARM 指令集进行开发的,海量移动应用在向云上迁移的过程中,以前通常采用在通用 CPU 服务器上增加实时指令翻译来实现。但是这会带来两个问题:一是会有 40%的性能损失,二是还有大约 20%的代码库无法实时翻译。
鲲鹏处理器兼容 ARM 指令集,与移动 APP 天然同构,可支持移动 APP 无缝迁移到云上,性能零损失且无法二次开发工作量,为云手机奠定了硬件层面的基础。
软件层面,独有 Monbox 架构,打通云手机商用任督二脉
云手机想要实现商用,单有硬件层面的基础是远远不够的,Monbox 软件架构正是打通云手机商用任督二脉的重要一步。
挑战 1:单服务器云手机密度提升 100%
前面提到,我们选择兼容 ARM 的鲲鹏服务器来运行云手机,免去指令集的翻译性能损耗。但这只解决了 CPU 的部分,业界开源的虚拟化和容器方案,都没有解决 GPU 性能问题。
Android 应用,特别是游戏,都是使用 OpenGL ES 来做渲染加速。开源非直通方案,实现方式如图 1。软件传输和翻译等处理会带来 CPU、内存等资源额外的开销,导致性能、兼容性等问题。
华为云鲲鹏云手机将其彻头彻尾的进行调整改进,采用 GPU 直通方案,通过容器的方式,将 GPU 设备直接暴露给 Android,驱动直接对接到 Android 的渲染框架,大幅提升了渲染的性能。
同时结合相关的驱动优化、绑核调整、容器隔离优化等一系列调优手段,实现单服务器云手机并发规提升 100%。
图 1
挑战 2:媲美真机的端到端接入时延
何为端到端时延,我们这样举例,比如客户端接入到了一台云手机,打开了一个游戏。当这个用户,点击了游戏里面的一个按钮,比如攻击,那么从点击的这一瞬间,到用户看到游戏角色做出攻击动作的第一帧画面,就是端到端延时。
我们一般用高速摄像机来测量这个延时。目前真机是 100ms 级别的,业界做到的平均水平是 150ms。这个延时越低,用户的体验越顺畅。
华为云将端到端的延时,拆解成指令输入、上传、GPU 渲染、视频编码、回传图像、图像解码和显示到屏幕。这其中占了很大一部分延迟,消耗在将云手机渲染出来的每一帧图像,编码成视频流,传输并在对端进行解码。
虽然使用软件编码,编码帧率也能达到 60FPS,但非常耗 CPU 资源。多用一个,用来跑应用的 CPU 就少一个,服务器上云手机的并发数量就会下降。其实 x86 上的 GPU 编码其实很成熟了,但是 ARM 上的还不行,因此华为云引入编码芯片来减轻 CPU 的负载。
华为在编码和传输的技术上也做了很多优化,比如将要编码的图像,按照一定的规则做分层,当带宽高的时候,用更高清的编码方式,传更多的高清内容过去。带宽低的时候,就只传粗糙的画面,动态适配带宽。
此外,传统图像编码传输过程中,每帧画面传输是串行的,渲染的时候,编码就需要等待,编码的时候,传输同样需要等待。
通过 pipeline 技术,把单帧又做了拆分,拆成了一条一条,渲染出一条的时候,编码就把这一条拿过来开始编码,编完了就交给传输。这样,一帧画面渲染完,编码、传输和解码也都同步完成。客户端把这一条一条重新拼在一起,渲染到屏幕上即可。
这样预期最高可降低 40%编解码延时,且图像分辨率越高,降低越明显,整个过程对比如图 2。
不仅如此,有了这些技术,再叠加上华为的网络加速技术,比如 Link Turbo,复用 WIFI、4G 双通道,以及边缘云+5G 的方案,进一步降低网络传输延迟,最终达到媲美真机的使用体验。
图 2
挑战 3:大幅降低接入流量,为客户节省更多成本
除了性价比、端到端延时,还有很重要的一部分是接入的流量。某些场景下,流量的成本甚至占到八成。所以降低流量成本,可以说是很多业务商业能走通的很大的一个因素,而且需要大幅降低。
当前编码主流还是用 H.264,华为通过编码芯片加速向 H.265 演进,它的压缩比相比 H.264 高 50%,可直接省一半流量。此外我们还可以从内容压缩策略上做文章,核心思想就是不降低主观感知,尽量减少图像大小。
衡量图像质量的率失真数学模型是连续的,但其实人眼主观感知是一个阶梯性的(如图 3 红黑曲线),也就是说,图像的画质降到某一个临界点,我们才会看的出来明显的变化,如果看的还是一个视频,影响会更小。
基于主观感知的大原则,加上 SCC 算法,把图像中重复的元素做压缩,对 App 界面这种类型效果非常好,接近一半。
游戏这种动态的也有近 7%。以及基于 AI 的,用特定场景图像预先训练好编码的模型,来提升压缩率。
这些都是视频流的一些优化,但内容分辨率提升的时候,需要的算力和带宽也是成倍增长。因此我们也在研究指令流,这种方式是传输原始渲染指令和数据的,好处是画质不会有损失,传输的数据量跟分辨率也没有关系,在高分辨率的情况下,带宽节省优势会很明显。
图 3
生态层面,更懂 Andriod 和终端
华为本身也是业界领先的终端研发制造商,在基础硬件、摄像头、基础传感器、位置传感器以及网络制式方面都有深厚的技术积累,华为云和终端的结合,可以为客户提供更接近真实手机的云手机使用体验。
在 Android 手机系统方面,华为也投入了大量的研发资源,面对亿级规模代码量的系统,华为可根据业务需求变化提供系统级的优化和运维能力。同时严选应用可借助华为终端应用市场,实现商业快速变现。
本文转载自华为云产品与解决方案站公众号。
原文链接:https://mp.weixin.qq.com/s/_kkMmMNjz0OBH-3NG6w_1Q
评论