0
据悉,大朋DPVR将在8月8日开启预售最新产品 - 巨幕影院:
因为工作原因,笔者有幸提前拿到了大朋的工程样机做研究。同为一体机产品,自然而然地就想到把它与今年5月发布Oculus Go对比作一番技术分析。近日大朋DPVR发布了巨幕影院新品的技术创新思路和参数,此时对照Oculus Go的产品参数并配合实际上手体验,笔者得到了如下结论:大朋在看似孱弱的国产芯片基础上,做出了能媲美,甚至在观影上更胜Oculus Go一筹的体验。 笔者相信数年之内,这款产品都会是国内VR头显研究的经典产品。接下来文章将会从VR产品的趋势,技术创新和算法优化等方面,从事实和证据出发,客观地为大家解析大朋DPVR新品 - 全景声巨幕影院。
今年以来,VR界的焦点再次从PC VR转到了一体机VR。今年业界领先的Oculus推出了Oculus Go; HTC Vive也推出了Vive Focus高端一体机。换个角度来看,这种变化愈发明显,原因很简单:这两个品牌自从2016年推出Rift和Vive之后并没有推出真正意义上的第二代PC VR。 (HTC高达1万多售价的Vive Pro曲高和寡,并没有什么革命性的参数升级或者突破,也没有什么销量,并不能称为第二代的PCVR) 。
转型的原因是显而易见的,其中Oculus转向VR一体机的原因在去年和今年的Facebook 8甚至Google I/O大会上都有提到:不管Oculus 平台还是DayDream平台,用户把几乎80%的时间用在了观影上。
图一 来自2018 Facebook8
高达83%的观影时间占比,真实地代表了消费者对VR产品的核心诉求。而近两年来甚嚣尘上的VR游戏,从日活及游戏本身内容体验来看,很可能只是一个较小圈子里硬核玩家的自嗨。因为在现有阶段,VR整个产业链和技术储备还不足以满足这帮挑剔的硬核玩家, 而游戏公司也不能从VR游戏的制作中挣到钱(SteamVR平台上2600款PC VR游戏,即使是排名前10的头部游戏,也不见得能赚到钱),因此基本上形成了VR游戏开发商看用户数决定开发,用户看游戏体验再买游戏的“鸡生蛋,蛋生鸡“ 恶性循环。
基于上述背景,国内的VR一体机厂商迅速意识到了这一问题,并且竞争也迅速转入白热化的状态。为赶时间,小米选择贴牌了美国顶级技术公司Oculus GO产品,正在这时,VR界老兵大朋VR也携新品 “全景声巨幕影院”杀入战局。在这需要一提的是,大朋VR不管是最高端的支持360°Room-Scale范围的基于红外激光定位的定位系统Polaris,还是2年前就销往国内外的一体机M2,全都基于大朋的自有技术:从算法理论,硬件制造,头盔固件,FPGA,到Mobile VR SDK,再到开发工具,都是大朋“攻城狮”们用一行行代码垒出来的,因此可以说是代表了中国VR水平的厂商之一。
现有市场上VR一体机多基于美国高通或韩国三星的芯片,大朋最早的一体机M2也不例外,使用的也是三星芯片。但是这次有点不一样。在今天“声援”国产芯片的大背景下,早在几年前,大朋就非常大胆地提前选定了国内的全志VR9芯片。 大朋曾向全志建议把ATW等VR算法操作从GPU中释放出来,打造专有硬件模块提高效率。4年磨一剑,现在全志终于为全球VR市场发布了第一款专用芯片VR9,定位非常犀利,算是当前VR专用芯片中唯一拥有全格式硬解码能力,且支持6K全景硬解码的全志 VR9芯片,能在超高性价比芯片成本的基础上,最大程度的发挥巨幕影院的观影能力,为的就是给用户提供极致的VR影音体验。尺有所短寸有所长,VR9的影音解码是强项,但以此就牺牲了游戏GPU能力。鱼与熊掌不可兼得,谁说不是呢。
图二 VR9框架图
在VR9国产的芯片设计的基础上,大朋开始底到高对产品进行优化。下面的核心技术分析摘自大朋DPVR官方解释,我引用过来分享给大家,看完也许不保证大家对VR的认识产生质的变化,但是满满干货,起码对大家挑选自己的VR产品,会有重要的参考意义,以下为摘录部分。
要想真正了解VR技术的本质,得先从VR世界中一个物体如何被渲染并最终进入人眼的过程讲起。
图三: VR物体进入用户眼中的历程(流水线)
VR系统本质上是一个异构计算系统,内部的CPU, GPU,Display等硬件模块一直协同并行工作。VR世界中的每一个物体从第一个模块开始,在整个流水线上一步步推进,最终进入用户眼中,如何提高流水线的每一步的效率和并行度是VR系统高效运转的关键。
设计时受到功耗和芯片面积的限制,移动端GPU性能参数,不管是FLOP还是内存带宽都大大低于同级别的PC GPU,比如Nvidia的PC端GPU GTX 650和移动端GPU Tegra K1,虽然都来自于Kepler 架构,出现的时间几乎相同,但前者的内存带宽是80G/s,后者的只有18G/s。对于用户来说,这个差别意味着移动端的VR应用和实现不可能采用和PC系统一样的方法,而对于VR SDK的提供商来说,只能发挥“螺丝肚里做道场”的精神,想办法提升移动平台上GPU的利用率。在这个背景下,能够挤掉CPU和GPU之间泡沫,提高两者运行并行度的Adaptive Queue Ahead技术应运而生。
以前的VR世界中,CPU总是在VSync(垂直同步)到来才开始下达渲染命令给GPU(如下图),对于较重的GPU任务,很可能无法在当前VSync剩余时间中完成,后果就是应用的FPS(Frame Per Second,帧率)下降,最终用户体验到应用或者游戏卡顿,显示“鬼影”以及眩晕。
图四 :不带Queue Ahead的渲染
Oculus最早在PC端的Rift上提出所谓的Adaptive Queue Ahead技术,CPU不用傻傻的等待Vsync的到来,而是通过预测,在VSync到来之前几毫秒内开始下达渲染指令给GPU,让GPU有更多的时间执行任务,有效提高VR应用的FPS,产生更好的用户体验。
图五:带Queue Ahead之后的渲染
大朋第一次把来自PC VR端的技术引入到VR一体机的世界,让以前运行卡顿的应用流畅起来,还给用户一个平滑,沉浸和画面精致的VR世界。不过,考虑到PC平台和一体机平台之间的计算能力差异,但这一个优化还远远不够,于是大朋又通过叫“Hidden Mesh”的技术进一步提高GPU的渲染效率。
在VR 头盔的光学视场中,由于镜杯结构和人眼特点,图像中某些区域人眼是无法看到的,在VR图像渲染中被称为Hidden Area(如下图中红色三角覆盖的地方,人眼其实无法看到)。
图六: Hidden Mesh技术
大朋巨幕影院的图形渲染中巧妙的利用了这点,通过利用特殊绘制的Hidden Mesh(隐藏网格),能有效降低GPU的渲染工作量。CPU,GPU并行度提高了,GPU渲染效率也提高了,又进了了一步。怀着好奇心,笔者进一步分析了Oculus Go的系统,也许出于其他的考虑,发现它并没有采用Hidden Mesh。下图红框是Oculus Go Home中用户能够看到的部分,红框之外圆圈之内的内容用户通过透镜和镜杯并不能看到。
接下来要做的,还需要有效减少用户佩戴时的眩晕感。人类的身体并非是天生为适应VR而设计的。通过VR设备对感官进行人工刺激,我们正在破坏生物机制的运作,这些机制经历了数亿年时间在自然环境中演变而来。我们也向大脑提供与现实体验不完全一致的信息。在某些情况下,我们的身体可能会适应新的刺激。但在一些情况下,我们的身体会产生眩晕和恶心等症状,部分原因是大脑比平常更高速地运转,以理解这类刺激。已知的产生眩晕的原因除了显示分辨率/刷新率不足,前庭和视觉系统冲突,虚拟世界中比例失真等,Motion-To- Photons延时过大也是其中的元凶。
Motion-To-Photons延时指的是在运行VR场景的情况下,从用户的头部移动开始,一直到这一信号通过VR头盔输出的光学信号映射到人眼所需的时间。一般认为,这一延时大于20毫秒会导致用户体验到较为明显的眩晕。
图七:Motion-To-Phontons
而现有市面上的VR一体机无一例外都是基于Android系统。为了提高手机和平板电脑上显示的平滑性,传统的Android系统都是采用了双显示缓冲或者三显示缓冲。但是,这个机制让VR应用无法知道指定的图像什么时候能够显示在头盔屏幕上,加大了VR一体机的Motion-To-Phonton延时,让用户体验到更多的眩晕。大朋做了独有的硬件结构和算法优化,让Front Buffer Rendering(前屏渲染)成为可能:流水线中只采用了一个显示缓冲,最大程度上减少了Motion-To-Phonton延时,提供给用户更好的视觉体验。
图八:Front Buffer Rendering
除了渲染性能,显示清晰度一直是判断VR头盔优劣的另外一个重要指标,不过,没有所谓显示优化的“银弹”能一招制敌,清晰度的提升来自于各个模块的综合效果,而大朋在每一个部分都做了不断的迭代和改进,从而带来了出色的效果。
首先,GPU渲染出来的画面得清晰。但是,计算机渲染的场景从三维空间的角度看是连续的,经过光栅化之后最终显示在屏幕上的二维的图像本身却是离散的,这导致非完全垂直或者非完全水平的边上出现锯齿。
图九:SSAA/MSAA减轻锯齿
抗锯齿最直接的方法是SSAA(Super Sampling Anti Alias)和MSAA。具体的思想都是先把物体渲染到比屏幕分辨率大(比如4倍)的缓冲区中,然后再降采样到和屏幕分辨率一样的显示缓冲区中最后输出显示,这样更多的信息被保留,而图像物体边缘的颜色也因为混合了不同颜色采样点而消除或者减轻了锯齿。在大朋巨幕影院的图形渲染实现中,采用了SSAA和MSAA来抗锯齿。
不过,事情好像还没有完,VR用户常常会抱怨图片或者文字闪烁。为什么我们在PC或者手机上看不到闪烁而在VR头盔中容易看到?这主要是用户改变了VR世界中离物体的距离,图像或者文字本身缩放造成的,再加上透镜本身的放大作用,用户就会观察到闪烁。
大朋采用了MipMap技术来防止文字和图片的闪烁。MipMap是指根据距观看者远近距离的不同,以不同的分辨率将单一的材质贴图以多重图像的形式表现出来:尺寸最大的图像放在前面显著的位置,而相对较小的图像则后退到背景区域。每一个不同的尺寸等级定义成一个Mipmap水平。
图十: Mipmap防止闪烁
这样,每次渲染的时候系统会找出相对当前场景最适合的图像,做最小的缩放操作或者根本无需缩放,让图像信息最大程度的保真。
和Oculus Go一样,大朋采用了快速响应fast-LCD 屏幕,区别在于,Oculus Go缺省的刷新率是60HZ(某些特殊情况可以到72HZ),而大朋的刷新率则一直是70HZ。
Fast-LCD屏幕上的像素点在每个Vsync过程中并不是完全点亮,屏幕的余辉(Persistence)大概在1-2ms。假设屏幕的余晖是1ms,对于60HZ来说,就是6.25%的时间屏幕上像素点是亮的,而对于70hz刷新率来说,就有7%的时间是亮的,大朋巨幕影院用户会感觉VR世界更亮。同时,人眼工作在一个更高刷新率的模式,较低刷新率的VR头盔会让用户感到闪烁。
在一个清晰,高刷新率的平稳世界中,常见的VR眩晕依然还有吗?有可能。带上头盔的用户使用过程中不停的转动,图像渲染时采用的姿态信息和图像上屏显示时的姿态可能完全不一样,用户一样会晕。
怎么办?解决之道是在图像帧扫描到显示器之前进行再一次的调整:根据最新的预测姿态更新图像,这被称为Time Warping(时间扭曲)或者Reprojection(再投影)。如果在实现中渲染的线程和做扭曲的线程是不同线程的话,又被称为Asynchronous Time Warping(异步时间扭曲)。
一般而言,VR计算过程中重要的环节,异步时间扭曲(包括畸变矫正和色散矫正)在GPU中完成。
图十一: 传统的ATW
但是,由于VR游戏或者应用会在渲染环节占用大量的GPU资源和计算能力,会造成GPU不能及时完成以上任务,带来较差的用户体验,这在移动平台上尤甚。大朋巨幕影院中第一次创造性的把时间扭曲/畸变矫正/色散等处理放在了独立的显示芯片中完成,减少了GPU负载,释放了GPU资源,有效提高了系统性能,也降低了系统功耗。别小看这一步优化,凭借这个,大朋能够在系统功耗上一下子拉开和同类产品的差距,这将在后面进行进一步解释。
图十二: 显示芯片中的ATW
在手机的世界中,同样拍摄的照片,加上不同的滤镜,马上凤姐变凤凰,老太变少女,在VR的世界中更是如此。而所谓的滤镜,说白了就是图像后处理。大朋巨幕影院系统中的图像后处理系统被称为SmartColor,能够带来更鲜艳的色彩和更好的色温控制,包括如下的功能:
(1) 自适应的细节和边缘增强;
(2) 自适应的颜色增强;
(3) 自适应的对比度增强和色调矫正。
体验一下Oculus Go上和大朋上实拍同一张图片,大朋的色彩要更加的自然,脸部层次更丰富,头发处的细节显示更加细腻。Oculus Go有明显光晕。
图十三: 图像后处理比较(右为大朋巨幕影院)
VR头盔上的透镜本质上是一个放大镜,也是VR中很多光学缺陷比如纱窗效应,杂散光等的“元凶”或者 “ 帮凶 ”。在显示屏幕分辨率大致相同的情况下,VR镜片看点有两个:透镜中心到透镜边缘的清晰度下降快慢,菲涅尔杂散光和拖影。
比如,下图被美国军方用来检测镜片各区域的清晰度。把图放入头盔中,你能清晰看到图像中间水平和垂直红线的最大刻度是多少?
图十四:清晰度比较基准图
答案揭晓,通过把以上图片导入大朋工程样机和Oculus Go,左右两侧能看到的最大清晰刻度分别是11.2(大朋),11.2 (Oculus Go)。从清晰度的下降程度看,通过头显看以上图片, 大朋巨幕影院和Oculus Go达到同样的边缘清晰度。
和Oculus Go一样,大朋巨幕影院采用了菲涅尔镜片。和非球面镜片相比,菲涅尔镜片更轻,视场角也能做的更大,长时间试用更保护用户的眼睛,但是由于其特殊的工艺和形状,齿间的光漫反射,会造成杂散光和特殊的光晕。
图十五:菲涅尔透镜外观
利用菲涅尔镜片的优点,补足其缺点,大朋的光学镜片做了专门的设计优化,有效消除了杂散光和光晕。这种优化效果,在黑暗背景下由亮光形成的图案中,能够有效的观察到。
从Oculus Go头盔中抓取画面并放在大朋巨幕影院头显内显示,仔细观察视野内左下角“未安装应用”、“环境”白色字体的拖影情况,与Oculus Go头盔的显示拖影别无二致。
图十六:拖影测试图
另外,在大朋巨幕影院中打开“3D影视”-> “三少爷的剑”,在影院场景中选择第7排,然后“关灯”,时间轴定格到00:01:02暂停,画面显示下图内容,仔细观察虚拟银幕以外区域的杂光光晕,几乎难以觉察。
作为对比,Oculus Go也要显示相似的内容。在 SKYBOX,找到宣传视频,时间轴定格到00:00:11暂停,观影场景选择“太空”,同样仔细观察虚拟银幕以外区域的杂光光晕会略微差些。
图十七:光晕测试
为强化沉浸感,大朋巨幕影院中加入了独有的全景声模拟算法,让用户观看视频时能体验到全景声效果。
图十八: 全景声示意图(图片来源于网络)
同时,为了降低周围环境对用户的影响,还实现了定向声场传播,使用者本人和周围的旁观者听到完全不同的效果。
根据CPU自身的状态,大朋巨幕影院系统能够进入到3个不同的功耗等级:正常,待机和深度睡眠,实测观影续航能到4小时。
结合相应的用户操作和接近开关,大朋巨幕影院系统能够自动在不同的模式之间切换,达到节电的目的。同时,根据当前CPU、GPU等硬件模块的负载,大朋巨幕影院能动态调节CPU、GPU的频点,以满足不同使用场景的性能需求。比如当CPU使用率大于某一阈值时,会将CPU运行在更高的频点,以满足更大的性能需求;当CPU使用率小于某一阈值时,系统会将CPU运行在更低的频点,以满足更低功耗的需求。
Oculus Go也有类似的电源管理机制,叫做Dynamic Clock Throttling(动态时钟调节中文翻译),不过实测下来观影时间只有大朋的一半,2小时左右。
以上就是大朋巨幕影院技术创新分享的主要内容。笔者期待着像大朋这样从底到高真正国产的硬科技公司,越来越多,毕竟中国科技的发展,需要越来越多的技术人员坚守冷板凳,解决一个又一个技术问题,扎扎实实的啃下去。
雷峰网版权文章,未经授权禁止转载。详情见转载须知。