作者| 阿里文娱高级技术专家 伊耆
当5G来了,视频还是平面的影像吗,只能静静观看吗?一定不是!现在,你可以像玩游戏一样,参与到视频内容当中,还能体验新的播放形式,比如发AI弹幕、猜剧情、横竖屏随意旋转,立体的观看进球一瞬间,看到屏幕之外的更大画面等等。这背后的技术是如何实现的,未来有哪些新交互方向?
在GMIC智慧文娱技术专场上,阿里文娱高级技术专家伊耆分享了如何利用终端设备的交互特性,结合内容和算法,所实现的新观影模式的探索。同时结合5G网络和边缘计算所做的云渲染技术预研。主要分为四部分:
一是视频和游戏的共性和差异,如何看待两者?
二是视频场景结合内容、算法探索播放新交互模式
三是结合 5G、边缘计算和立体视觉的云渲染技术
四是未来的思考和总结
一、为什么做播放交互探索?视频和游戏的共性和差异
为什么要做新交互?其实用户在文娱消费体验上,尤其在视觉体验上,主要集中在两个领域,一是视频,一是游戏。我们在思考切入点时,更多是关注两者之间的共性和差异,寻找结合点。
首先回想一下,你在玩游戏是一种什么样的体验?网上有很多类型的游戏,休闲类、益智类、竞技类等等,我们可以发现游戏的特点是交互性越强,竞技属性越强;交互属性越弱,休闲体验越强。视频的本质相同,在一个纯被动观看的过程中,内容本身会带来感官刺激,但更多体现在休闲上。但随着交互属性的加入,比如当视频引入VR/AR等互动后,其形态也更趋于游戏化,更像是一种休闲类的游戏。也就是视频的“内容属性”与游戏的“交互属性”结合,最终它可能就变成一个像游戏化的视频了,用户会获得比较强的沉浸式的感觉。
二、视频场景结合内容、算法探索播放新交互模式
参考优酷在互动剧的尝试,我们在播放和交互领域的结合也做了非常多的探索。先看2个视频。视频1是常规的旋转,体验还算顺滑;视频2是加入算法后的策略,在旋转过程中,画面始终是平稳的,甚至用户在横移手机时,可以在屏幕中看到更多的画面,这也是初步尝试。
以旋转的视频为例,形式上看似简单,但它背后也有很多技术点:
1、旋转手机时,不丢失画面中心。我们看视频时,视线往往会聚焦在一个中心人物,或是一个场景中心。当手机旋转,自然也不希望丢失视觉的中心点。所以需要一套算法去识别观影中心点。在此基础上,通过服务链路去打通,将算法和视频画面联合下发到端侧,并将数据和画面进行绑定,同时在用户旋转手机时,通过对手势的监测选择对应的画面中心点,并进行画面的放大、缩小或平移。
2、基于原始的大量数据样本,做算法模型训练,得到对于视频画面区域热度算法的模型。由于视频是一个连续过程,我们需要对镜头的切换做平滑处理,结合算法生成一个原始的算法数据。
3、将算法数据和视频内容做关系绑定,并下发到端侧。这样在端侧就同时具备算法的数据和实际播放的视频数据。在播放进程中,我们需要获取旋转-陀螺仪传感器的输入,也会利用降噪算法过滤躁点,根据用户的旋转角度,结合当前视频画面,将算法数据和画面本身绑定,找到画面中心点,做相应处理,最终渲染到屏幕上。
以上是大致实现思路,在落地过程中,我们也面临不少挑战,最突出的是算法与传统图像处理算法不同。普通的图像处理多是基于单张图片,而视频本身是多帧的,而且每个视频帧间是连续性的。同时在识别过程中,尤其对于运动场景、切换镜头的场景,普通算法的识别焦点是存在偏差的,甚至识别不到,所以我们需要新的处理。
在算法设计上,采用镜头分割方式,区分不同的场景镜头,然后对于每个镜头,我们认为是画面是连续的。这部分,我们结合现有成熟算法,融入自己的技术探索。
首先,在看画面时,人眼睛会聚焦在人脸、人体,这些点的区域热度是比较高的,将些场景样本作为模型训练数据,同时视频本身还有部分字幕,也需要去除、识别和检测的处理。综合这一系列的检测内容,最终把一帧帧画面看成一个连续的轨迹,做聚类,形成一个角色或者是一个热度点的轨迹;集合多个镜头,形成一个视频区域热度算法的数据,然后下发到端侧。
其次,有了算法数据,在端侧更多是如何处理端上传感器,处理算法数据和视频之间的同步问题。
以上是我们现阶段的尝试,同步也在做其他尝试,在不远的未来也会逐步上线,大家很快就体验到。
三、基于 5G 的云渲染
在现有场景上,算法数据是基于原始视频进行识别,由于中间需要预生产过程,这就局限了它更多是在点播场景中。
如果不做预生产,而在端侧进行,则会产生识别的速度不够,效率底的问题,以及在不一样的交互时,处于实时性的诉求,本身对端侧算力是非常大挑战。结合5G的发展,我们设计出云渲染方案。首先看两个视频:
视频3在电脑上,可以认为它是一个云端主机,在云端是一个高清画质。而在手机端,用户真正看到画面,只是云端画面的一部分。为什么这样设计?
视频4是6DoF视频,用户可以通过手势旋转,从各角度看到不一样的视角。
6DoF视频的本质是,用户看到的某些角度的视频,其实是很多角度拼合的画面,用户在选择某一角度时,我们经过截取,提取其中两个画面,通过算法虚拟生成,一个用户观看角度的这么一个画面,然后下发到端侧。
6DoF视频的某一帧,真实画面本身是非常大的画面,8k甚至11k。用户端看到是其中一部分,720p或1080p,其对应的VR场景也类似。
挑战是什么?用户观看VR全景视频时,本质是4k甚至8k视频,但用户在每一个视角上看到的点,可能只有720p甚至更低。想看更高清的画质,就必须提升画面的大小。如果我们希望要看到4k画面,原始画面要达到8k,甚至更高。
8K画面下发到端侧是无法解决问题的。一是芯片的限制,其次还有电量、能耗等。所以我们将终端计算能力放到一个强算力中心上,将用户终端设备变成三部分:手势输入、屏幕输出,计算单元放到远端计算服务器上,它的算力要数倍甚至是几十倍于端上。
基于分布式的前提,输入、计算和输出的传输过程的耗时变短。考虑到未来5G网络、边缘计算的发展,在边缘节点和终端之间的传输速度,加上边缘计算节点的计算耗时,可能要比你在本机输入到本机芯片计算的耗时还要短。
所以,我们设计了一套分布式的云端渲染和实时计算方案。一方面解决交互的方式,大计算量的实时的数据场景。另一方面,借鉴在游戏领域(如云游戏)的思路,以下是设计模型:
1、对于用户的手机终端、VR设备或眼镜类各种设备,因为硬件在不断发展,它的算力会越来越强。但是个别设备算力还比较弱,所以我们希望有实时调度能力。算力强的设备,在端上做;算力弱的设备,在云上做。同时基于用户的手机电量等各方面场景,在边端体系上有一个调度能力。用户端的一个播放行为,其实是从媒资的存储到转码、CDN分发,CDN节点,通过分发服务到手机终端,当用户点击视频,通过对应的时间节点拉取对应的云端视频数据。
2、在云渲染链路上,我们希望用户是通过调度的操作,决定计算逻辑是在端上还是边缘节点上。如果在边缘节点,通过边缘节点去访问中心节点,拉取到数据。当用户再次操作时,通过边缘节点进行相应的交互处理,再下发到端侧。这样从边缘节点到播放终端,是点对点的实时传输的操作。
细化云渲染的整体设计,我将它分为五个部分:边缘服务框架、网络协议、端侧交互引擎、边端调度系统、应用开发工具链。其中边缘服务框架、网络协议、端侧交互引擎如下图所示,分别承担着边缘节点的框架服务能力、网络通信的协议处理、以及终端的交互、渲染引擎。而边端调度系统如上所说,主要是根据用户终端、边缘节点算力等情况合理调度用户的渲染服务是应该在终端处理还是到边缘节点处理。而基于此,我们可以看到,很大程度上服务程序是需要在多平台基础上运行的,所以相应的开发工具链(开发调试IDE、服务部署发布系统等)也是很重要的部分。
在边缘服务上,我们希望搭建一套基础框架,不仅承载现有的渲染服务,未来也可以部署游戏引擎来实现云游戏的服务。由于单个边缘服务节点需要服务多个终端设备,推拉流服务的用户session 管理很重要,并且低延时的推流处理、高性能的渲染服务等都是我们需要突破的重点。同时,由于我们定义的很多场景是基于实时计算和强交互的模式,更像是游戏,上行的数据以操作指令、文本等为主,下行则主要是流媒体数据、算法数据等,而且考虑到时延等问题,优选基于UDP构建的传输协议,同时考虑到网络穿透率的问题,基于TCP的方案会作为基础的兜底策略。而在端侧,重点是低延时的直播播放器,网络协议的客户端实现以及用户上行的指令处理等。
四、未来的思考和总结
始于播放新交互,结合5G和边缘计算,面向云渲染。基于这个链路,未来我们希望的播放新交互是什么样子?
首先,在交互能力上,我们已经将算法和内容做结合,视频内容本质上是导演、演员基于剧情,向用户传递信息。用户观影过程中,是不是可以跟导演、演员或内容之间有联动交互。
其次,如何将这两者之间的信息拉通?就是通过算法结合内容做识别,算法本身去识别内容,再将识别出的内容跟用户看到的内容,在信息上更贴合用户偏好,将更多主动权交给用户,给用户更沉浸式的观影体验。同时因为这种交互的模式,对算法对算力有更高要求,借由5G和边缘计算的发展,打造一个环形体系,实现播放新交互的体系化形态。
以上就是我们对于未来在播放和交互领域的思考。