如何成就更高远控帧率和流畅度?向日葵 SADDC 算法浅析
经过几轮疫情影响以及远程办公的不断成熟普及,远程桌面/远程控制软件逐渐成为了我们日常必备的软件之一。
远程控制技术实现的核心原理,在于图像的传输以及远程指令的控制。其中图像传输我们可以将其理解为类似视频,这一部分的数据传输以及对应的编解码是整个远程控制的核心技术,也是影响远程控制体验的关键之一。
在诸多远程控制品牌中,向日葵远程控制是国内较为普及和常用的一个,并且于“向日葵 11”这一版本中其开发团队首度推出了“SADDC”算法,是业内为数不多针对远程控制场景的自研算法。以该算法自研为基础,向日葵逐渐在远程控制的编解码方向上占据了一定的技术优势,反馈在体验上就是向日葵 11 以来的版本在流畅度、帧率、清晰度等方面均站上了一个新的台阶。
如今,向日葵的“SADDC”算法已经成熟,结合相关资料,我们可以简单勾勒出 SADDC 算法的全貌,接下来我们就尝试对这一算法进行一个简单的解析。
什么是 SADDC?
SADDC 算法的全称是“Sunlogin Advanced Desktop Dynamic Codec”,翻译软件直译的结果是“向日葵高级桌面动态编解码器”,该算法针对不同远程控制场景采取不同的编码策略,显著提升画面压缩率,降低传输数据量,并实现画面极低延迟编码、高帧率传输。
个人认为这一算法是包含了多种解码策略的合集,可以说 SADDC 是向日葵在图像层的“总算法”。
目前来看,SADDC 算法的核心策略有下面三条:
● 基于焦点应用和视觉显著性理论(visual saliency)对远控画面进行实时的识别区分。
● 对于画面进行智能切片分区、实现分区块解码运算。
● 更高效的利用主机的配置,主机配置足够时配合硬件加速进一步提升远控质量。
下面我们来逐一介绍这三条核心策略。
核心策略一:焦点应用区与基于视觉显著性理论区分远控画面的视觉显著区
根据远程控制的键鼠动作以及光标位置,确定画面的焦点区域是相对基础的,向焦点区域倾斜比特资源是 SADDC 算法策略中的一环。更进一步的是,向日葵还引入了视觉显著性理论(visual saliency),与焦点应用区的策略互为补充,实现整体画质提升的同时降低比特资源占用。
人类的视觉是具有明显的选择性的,能真正能处理的视觉信息非常有限。1998 年,南加州大学的 Itti 提出基于颜色,亮度,方向三种视觉特征的显著值计算,模拟生物对图像的注视点的选择性注意模型,即视觉显著性理论(visual saliency)。2012 年,这一理论进一步完善,形成了四项计算准则:
●以局部低特征为起点,考虑对比度,颜色等因素
●在全局抑制重复特征,保持特异性特征
●根据 Gestalt laws,视觉组织形式通常有一个或多个显著中心
●人脸、规则物、认知物优化性
向日葵的 SADDC 算法根据这一理论对高显著性的区域倾斜比特资源,使得重点区域呈现出更加流畅且清晰的画面,避免将过多的资源投入到非显著区与非焦点区域中,提升整体的编码效率空间。
核心策略二:智能切片分区
向日葵的 SADDC 算法的智能切片分区策略实际上与上文的视觉显著性策略是相辅相成的。
SADDC 算法会对远控画面进行智能的切片分区,画面足够复杂的情况下分区会细化至 1000-2000 个区块,然后将画面有变化的区块进行重新计算、压缩、传输,没有变化的区块则保留画面。
显然,越是精细划分的区块,越能发挥前文视觉显著性算法的优势,两者结合之后,得到效果就是向日葵 SADDC 算法可以智能判断画面的变化幅度,这类似于一些手机屏幕所采取的节能策略。如果画面中不存在大幅运动物体自动降低帧率,最低可无感调节至 1 帧或是暂停画面刷新。
这样一来,即保证了不同场景下远控对于流畅度的不同需求,也进一步降低了传输的数据量,避免对上一层的带宽造成过大压力。
核心策略三:硬件加速充分利用主机性能
如果说 SADDC 的前两个核心策略保证了广泛的远控可用性和稳定性,那么第三个策略则是大大提升了远程控制的性能上线。
如果主机的配置足够强大,那么向日葵可以通过硬件加速的方式进一步获得性能飞跃:通过利用 GPU 的算力,在 GPU“内部”完成远控画面的运算和压缩,这一策略将会极大的降低延迟,让画面的帧率上线大大提升,向日葵 SADDC 算法通过这一策略可将远控画面的帧率提升至最高 144 帧,可以满足很多高端的远控需求。
总结:
向日葵 SADDC 算法的大致轮廓就由上述三个核心策略组成,相信各位已经对这一国产自主的算法有了一个初步的认知,此前贝锐 CTO 张小峰在采访中透露,研发这一算法的原因在于当时远控领域的技术空白,同时也出于对技术的极致追求。
就在今年 6 月,向日葵携 SADDC 算法参与了首届广州·琶洲算法应用国际大赛,斩获赛道第一名,SADDC 算法的成功受到了评委会和业界的一致认可。
在成功的算法背后,向日葵团队付出了巨大的努力。早期远程控制市场方兴未艾,市面上几乎没有同类产品,对于视频的通用算法也不想现在那样完善,甚至当时的 CPU 也不具备足够的算力,无法实时编码 H.264、H.265 这样的视频编解码算法。因此对于远程控制的技术突破是一个艰巨的任务,但最终在克服无数难题之后,贝锐完成了从零开发 SADDC 算法的壮举,成为了远程控制领域的一个重要的标杆事件。
技术最终会回馈到体验中,向日葵越来越优秀的远控体验正是例证。未来,我们有理由相信向日葵还能进一步寻求技术突破,推动远程控制这一有潜力的领域持续发展。
评论