CN117615117A - 头戴设备的三维显示方法和头戴设备 - Google Patents

头戴设备的三维显示方法和头戴设备 Download PDF

Info

Publication number
CN117615117A
CN117615117A CN202311581629.5A CN202311581629A CN117615117A CN 117615117 A CN117615117 A CN 117615117A CN 202311581629 A CN202311581629 A CN 202311581629A CN 117615117 A CN117615117 A CN 117615117A
Authority
CN
China
Prior art keywords
display
eye image
displayed
image data
display unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311581629.5A
Other languages
English (en)
Inventor
刘男
黄学峰
王伟
颜敏睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hubei Xingji Meizu Group Co ltd
Original Assignee
Hubei Xingji Meizu Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hubei Xingji Meizu Group Co ltd filed Critical Hubei Xingji Meizu Group Co ltd
Priority to CN202311581629.5A priority Critical patent/CN117615117A/zh
Publication of CN117615117A publication Critical patent/CN117615117A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • H04N13/279Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

提出了一种头戴设备的三维显示方法以及使用该方法的头戴设备。该方法包括:拦截图层数据置于3D场景中;基于左虚拟相机和右虚拟相机,分别对所述图层数据进行取像得到存在视差的左眼图像数据和右眼图像数据,其中,所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置是根据所述头戴设备的硬件参数确定的;以及分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示。本公开通过对常规图层数据的拦截并将其置于3D场景中进行修改,能够在系统侧实现对2D应用的三维化显示,由此实现对现有2D应用的VR化支持,拓宽头戴设备的使用场景。

Description

头戴设备的三维显示方法和头戴设备
技术领域
本公开涉及图像处理领域,尤其一种头戴设备的三维显示方法和使用该方法的头戴设备。
背景技术
头戴设备通常具有眼镜、眼罩或头盔等的外形。通过以左右镜片(或同一镜片的左右显示区域)的形式把显示屏贴近用户的眼睛并调整焦距,头戴设备能够在近距离以比普通显示器小的多的体积生成广角画面。进一步地,通过在左右镜片/显示区域内显示具有视差但大体相似的图像,头戴设备能够实现3D效果。特定对象的3D与透过镜片看到的现实场景结合,就能够实现头戴设备的增强现实显示。
现有技术中,常规的2D应用想要具有3D效果,需要对相关的2D应用进行大量的适配和修改。
公开内容
本公开提出了一种头戴设备的三维显示方法以及使用该方法的头戴设备。
根据本公开的第一方面,提出了一种头戴设备的三维显示方法,包括:拦截图层数据置于3D场景中;基于左虚拟相机和右虚拟相机,分别对所述图层数据进行取像得到存在视差的左眼图像数据和右眼图像数据,其中,所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置是根据所述头戴设备的硬件参数确定的;以及分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示。
可选地,分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示,包括:合成所述左眼图像数据和所述右眼图像数据得到一帧合成后图像;将所述合成后图像发送至硬件抽象层合成器生成第一待显示图像帧;基于可编程逻辑器件对所述待显示图像帧进行图像分割得到第二待显示图像帧和第三待显示图像帧;以及分别将所述第二待显示图像帧和所述第三待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。
可选地,分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示,包括:将所述左眼图像数据和所述右眼图像数据发送至硬件抽象层合成器生成第四待显示图像帧和第五待显示图像帧;分别将所述第四待显示图像帧和所述第五待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。
可选地,所述3D场景是在画面合成器中使用3D渲染引擎构造的,拦截图层数据置于3D场景中,包括:在所述画面合成器向硬件抽象层合成器发送所述图层数据时,拦截所述图层数据置于所述3D场景中。
可选地,所述方法还包括:修改所述画面合成器中的编译文件,使得所述编译文件被执行能够调用所述3D渲染引擎。
可选地,所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置是根据所述头戴设备的硬件参数确定的,包括:基于所述第一显示单元和所述第二显示单元的距离确定所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置,以及基于所述3D场景确定所述左虚拟相机和所述右虚拟相机的朝向。
可选地,所述3D渲染引擎使用跨平台图形API在操作系统中实现。
可选地,拦截的所述图层数据是用于显示的2D应用数据。
可选地,所述方法还包括:使得所述第一显示单元和第二显示单元分别实现基于所述左眼图像数据和所述右眼图像数据生成的左右眼待显示图像帧的显示,以实现所述3D显示。
根据本公开的第二方面,提出了一种头戴设备,包括:处理单元,用于执行如第一方面所述的三维显示方法;以及
第一显示单元和第二显示单元,用于分别基于所述左眼图像数据和所述右眼图像数据的左右眼待显示图像帧的显示,以实现3D显示。
可选地,所述处理单元还用于:将所述左眼图像数据和所述右眼图像数据得到一帧合成后图像,所述头戴设备还包括:可编程逻辑器件,用于对一帧合成后图像进分割得到第二待显示图像帧和第三待显示图像帧,其中,所述第二待显示图像帧对应于左眼待显示图像帧,所述第三待显示图像帧对应于右眼待显示图像帧,并且所述第一显示单元和所述第二显示单元用于:分别对所述第二待显示图像帧和所述第三待显示图像帧进行显示以实现所述3D显示。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了VR和AR近眼显示原理的示意图。
图2示出了智能眼镜结构的一个例子。
图3示出了可在头戴设备中使用的光机的组成示意图。
图4示出了存在视差的两张图片及其叠加后图片的一个例子。
图5示出了根据本公开一个实施例的头戴设备的三维显示方法的示意性流程图。
图6示出了基于左右虚拟相机构造3D场景的一个例子。
图7示出了根据本公开一个实施例的头戴设备的三维显示方法的示意性流程图。
图8示出了将左右眼图像数据合并成1帧的例子。
图9示出了对拼接图像的分割处理和最终显示流程。
图10示出了根据本公开一个实施例的头戴设备的组成示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施方式。虽然附图中显示了本公开的实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。另外,应该理解的是,本公开中的“第一”、“第二”和“第三”或类似表述仅用于描述与区分目的,而不能理解为指示或暗示相应的对象的出现前后次序或是重要性。
使用头戴设备实现虚拟现实(Virtual Reality,VR)与增强现实(AugmentedReality,AR)体验在近年来倍受关注。无论是VR还是AR显示,都需要头戴设备的近眼显示(Near-eye display,NED)系统将显示器上的像素,通过一系列光学成像元件形成远处的虚像并投射到人眼中。
图1示出了VR和AR近眼显示原理的示意图。图1左侧(a)部分示出了VR近眼显示原理,即,显示器上的像素单元通过头戴设备的驱动电路驱动点亮后发射光线,光线由棱镜调整传播方向后投射进入人眼,并在人眼中形成虚拟图像,由此使人获得虚拟现实体验。相应地,图1右侧(b)部分示出的AR近眼显示原理。与VR显示不同的,能够进行AR显示的头戴设备需要具有透视(see-through)功能,既要看到真实的外部世界,也要看到虚拟信息。因此,成像系统不能挡在视线前方,需要一个或一组光学合成器(optical combiner)通过“层叠”的形式,将虚拟信息和真实场景融为一体,使得虚拟信息能够对现实场景进行“增强”。
进一步地,头戴设备可以通过左右镜片或同一块大镜片的左右显示区域实现对左右眼的区别显示。通过在左右镜片/显示区域内显示具有视差但大体相似的图像,头戴设备能够实现3D效果。特定对象的3D与透过镜片看到的现实场景结合,能够实现更为逼真的AR显示效果。
头戴设备通常具有眼镜、眼罩或头盔等的外形。智能眼镜是一种可透光式头戴设备,即,佩戴者既能够透过镜片看到外部现实世界,也可以通过眼镜上配备的光学显示系统看到叠加显示的虚拟内容。通过左右眼图像帧的视差显示,虚拟对象还可以呈现3D的形态。相比于眼罩或头盔式头戴设备,智能眼镜更为轻便且具有类似常规眼镜的外形,更容易在日常生活中长期佩戴并为佩戴者提供各种功能。
图2示出了智能眼镜结构的一个例子。如图所示,智能眼镜200具有类似于常规眼镜的结构,包括镜片210、镜框220和镜腿230。进一步地,智能眼镜200还需提供常规眼镜无法提供的各类“智能化”的功能,例如影音播放、应用显示、语音交互、实时翻译以及等。因此,智能眼镜200集成有实现智能功能的计算设备所需的相关部件。具体地,智能眼镜200的处理单元可以布置在镜腿230内,例如布置在图示231的位置。处理单元可以根据获取的指令进行各种操作,例如使用第一显示单元(也可称为“左眼显示单元”)和第二显示单元(也可称为“右眼显示单元”)分别将左右眼的待显示图像帧投射在左右镜片210上显示。
在一个实施例中,每个显示单元可以包括各自的光机和光波导片。即,第一显示单元包括第一光机(也可称为“左光机”)和第一光波导片(也可称为“左光波导片”),用于向左眼显示图像;第二显示单元包括第二光机(也可称为“右光机”)和第二光波导片(也可称为“右光波导片”),用于向右眼显示图像。在此,光机用于成像,光波导用于成像的传播。光机在完成成像过程后,波导将光耦合进自己的玻璃基底中,通过“全反射”原理将光传输到眼睛前方再释放出来。这个过程中光波导片只负责传输图像,通常不对图像本身进行任何额外处理(比如放大缩小等),可以理解为“平行光进,平行光出”。由于有了光波导这一传输途径,可将显示屏和成像系统远离眼镜移到镜框或是镜架上,从而极大地降低了光学系统对外界视线的阻挡,并且使得智能眼镜的重量分布更符合人体工程学,从而改善了设备的佩戴体验。
要将光机产生的虚像被光波导传递到人眼,需要有一个光耦入(couple-in)和耦出(couple-out)光波导片的过程。图2中示出了左眼图像耦入和耦出的一个例子。如图所示,第一光机可以位于左侧光耦入区的附近,例如,布置在镜框左侧,在生成了图像之后,可由光耦入区送入在左侧镜片中实现的第一光波导片,光在光波导片中全反射传播之后,在特定的光耦出区出射,从而被左眼看见。虽然图中未示出,右眼图像的耦入和耦出可以与左眼的情况相对应。在其他实施例中,也可以使用光机和光波导片之外的其他显示系统,例如由各种微型显示屏与棱镜或是自由曲面组合得到的显示系统。
图3示出了可在头戴设备中使用的光机的组成示意图。在一个实施例中,如图3所示,光机可以包括显示面板310、显示面板320、显示面板330以及棱镜组340,显示面板310包括多个像素单元组成的LED阵列并被配置为发出绿光,显示面板320包括多个像素单元组成的LED阵列并被配置为发出红光,显示面板330包括多个像素单元组成的LED阵列并被配置为发出蓝光,像素单元可以是微型发光二极管Micro-LED、有机发光二极管(OLED)或量子点发光二极管(QLED)中的任一种,使得显示面板310、显示面板320以显示面板330发出的光线经过棱镜组340组合后形成全色图像。
在一个实施例中,上述显示面板还可以包括:驱动背板(图中未示出)。以显示单元由微型发光二极管Micro-LED阵列构成为例,显示单元内的像素单元阵列制备生成后,将上述像素单元阵列从衬底上进行剥离,上述衬底可以是蓝宝石、砷化镓和硅等,通过转移技术,将Micro-LED阵列与驱动背板进行键合,使得Micro-LED阵列中每一个像素单元均与驱动背板中一个驱动电路键合,该驱动背板中每个驱动电路用于驱动一个像素单元,像素单元和驱动电路存在一一对应关系,驱动背板可以是互补金属氧化物半导体(ComplementaryMetal Oxide Semiconductor,CMOS)驱动背板或薄膜场效应晶体管(Thin FilmTransistor,TFT)驱动背板。
可以理解,光机可以包括更少或者更多的显示面板,例如包括一个显示面板(用于形成单色图像)、两个显示面板等,这可以由本领域普通技术人员自由组合得到,不成为本公开的限定。
人的左右眼接收到的景象略有不同,大脑将两个景象结合在一起才能看到立体的形象。图4示出了存在视差的两张图片及其叠加后图片的一个例子。图4上部的两张图片的存在视差的,下部的叠加图片说明了这一点。由于智能眼镜通常配有左右两个光机,因此具有分别给左右眼呈现视差图像的能力。如果智能眼镜分别将图4上部的两张图片通过左右镜片显示给左右眼,则大脑会将左右眼各自看到的图像合成,从而得到一幅立体的图像。
为了实现语音交互,智能眼镜200还可以配有麦克风,例如图示的麦克风232和221。麦克风232可以设置在镜腿230上,以便能够从易于获取佩戴者清晰话音的位置接收佩戴者的口头指令。麦克风221可以设置在镜框上,主要用于获取佩戴者交谈对象的语音输入。麦克风232和221可被视为麦克风阵列,用于对采集到的语音信号进行定向增强。智能眼镜200还可以包括扬声器233,用于向佩戴者播放语音反馈或是佩戴者指定的声音内容,例如,播放音乐。为了向佩戴者提供更好地声音效果,可以如图所示在左右镜腿靠近耳部的位置处均设有扬声器233。
作为计算设备,除了包括图中所示的处理单元231之外,智能眼镜200还应包括存储单元和通信单元(图中未示出)。
处理单元231可以是一个处理器,也可以包含多个处理器。在一些实施例中,处理单元231可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理单元231的至少部分可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific IntegratedCircuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays,其后也称为“可编程逻辑器件”)。
存储单元可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理单元或者计算设备的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算设备断电后也不会失去存储的指令和数据的非易失性存储设备。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理单元在运行时需要的指令和数据。存储单元上存储有可执行代码,当可执行代码被处理单元处理时,可以使处理单元执行实现智能眼镜相关功能所需的各种方法。
通信单元可以用于与外界进行无线通信。例如,智能眼镜可以通过通信单元与布置在服务器上的语音模型进行基于无线通信的交互来获取语音识别的结果。
应该理解的是,虽然图2示出了特定的框架眼镜造型,但是其他实施例中,智能眼镜也可以具有无框设计。此时,原本布置在镜框中元件可以改为布置在眼镜的其他位置。在另一些实施例中,智能眼镜也可以包括眼镜主体结构之外的其他部件,例如附在镜片外侧的显示单元,可拆卸位于镜片内侧的带近视/远视度数的附加镜片,或是可拆卸的入耳式耳塞等。本公开在此对智能眼镜的具体实现形式不做限制。
智能眼镜为了实现特定功能,其上需要安装有特定的操作系统,例如安卓(Android)系统。在现有技术中,也已开发了用于Android平台的3D应用。这些应用都是在应用程序内部实现3D效果。但如果现有的常规2D应用想要具有3D显示效果,则需要对相关的2D应用进行大量的适配和修改。尤其在支持随陀螺仪进行画面转动的情况下,这些修改将会是繁琐且低效的。
为此,本公开提出了一种头戴设备的三维显示方法以及使用该方法的头戴设备。该方法通过对常规图层数据的拦截并将其置于3D场景中进行修改,能够在系统侧实现对2D应用的三维化显示,由此实现对现有2D应用的VR化支持。由于本案是在系统层面进行的处理,能够影响所有应用而无需上层应用做任何的修改适配,且不会影响架构下的应用界面和堆栈结构、生命周期,因此使得使用该方案的头戴设备能够实现更广泛的3D使用场景。
图5示出了根据本公开一个实施例的头戴设备的三维显示方法的示意性流程图。该方法通过对操作系统平台,尤其是系统的修改,实现头戴设备,尤其是智能眼镜对常规2D应用图像的3D显示,而无需2D应用本身的任何修改。
在步骤S510,拦截图层数据置于3D场景中。在此,本公开三维显示方法所对应的流程可以对Android系统的显示流程(例如,原生显示流程)进行拦截,并获取系统显示流程中的图层数据。拦截的图层数据是用于显示的2D应用数据。具体地,操作系统为了显示特定应用的数据,会使用其系统显示流程获取该应用所提供的显示数据,并将这些数据整合在一起得到图层(layer)数据。这些图层数据在常规的系统显示流程中会被后续提供给硬件显示器进行逐帧显示,然而在本公开中,这些图层数据会被拦截并在后续的步骤中被修改。
在此,2D应用指代应用本身仅提供二维显示效果的应用。例如,常规的一切非3D应用,都可以归为2D应用。应该理解的是,2D应用并不知晓在操作系统底层进行的如上拦截操作,2D应用本身仅需将待显示数据提供给系统显示流程用于实现硬件显示器上的显示。因此本公开的三维显示方法的当前和后续步骤对于2D应用都是不可见的。由此,头戴设备能够在无需对2D应用进行任何改动的情况下实现其画面的3D显示。
进一步地,本公开三维显示方法所对应的流程在拦截到图层数据之后,并将该图层数据置于3D场景中。在此,可以将3D场景(Scence)理解为虚拟的三维场景,用来模拟生活中真实的三维场景,或者说三维世界。对于真实世界,眼睛所处的位置不同,同一物体显示出的样态也不同。因此,在现有技术中,如果需要把三维场景渲染到web页面上,还需要定义一个虚拟相机(Camera),例如透视投影相机(PerspectiveCamera)。透视投影相机本质上就是在模拟人眼观察这个世界的规律。而在本公开的头戴设备使用场景中,则需要虚拟出左右两个相机,来模仿左右人眼观察真实世界的3D景深效果。可以根据头戴设备的硬件参数确定左虚拟相机和右虚拟相机在3D场景中的位置。具体地,可以根据例如图2所示光耦出区的位置来计算人眼的位置,从而确定左右虚拟相机在3D场景中的正确位置,并由此构造3D场景。图6示出了基于左右虚拟相机构造3D场景的一个例子。图中的相机距离与头戴设备两镜片上显示区域间的距离相关,因此,可以基于第一显示单元和第二显示单元的距离确定左虚拟相机和右虚拟相机在3D场景中的位置。进一步地,可以基于3D场景确定左虚拟相机和右虚拟相机的朝向,以使得两个虚拟相机的视场角能够覆盖3D场景,例如,刚好覆盖3D场景。由此,3D场景中显示的对象(例如,图中的长方体)可以根据例如佩戴者头部的运动而在不同的景深或是朝向下呈现不同的样态。
随后,在步骤S520,可以基于左虚拟相机和右虚拟相机,分别对图层数据进行取像得到存在视差的左眼图像数据和右眼图像数据。例如,图层数据可以包括与图4所示相似的桌面绿植图像,由于在3D场景中左虚拟相机和右虚拟相机的位置的已知的,因此可以对图层数据中的桌面绿植图像进行修改,得到存在视差的左眼图像数据和右眼图像数据,例如,图4上部所示的左右两张图像。
在得到了在左眼图像数据和右眼图像数据之后,则可在步骤S530,分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示。在此,第一显示单元对应于左眼显示单元,包括左光机和左光波导片。类似地,第二显示单元对应于右眼显示单元,包括右光机和右光波导片。左眼图像数据可由左光机显示并经由左光波导片传播至左镜片的光耦出区,右眼图像数据可由右光机显示并经由右光波导片传播至右镜片的光耦出区。这样,佩戴者能够同时用左眼看到左眼图像数据,用右眼看到右眼图像数据。由于左右眼图像数据是在3D场景中基于左虚拟相机和右虚拟相机而进行重新取像的、彼此之间存在视差的图层数据,因此经由佩戴者左右眼看见并经大脑处理后,显示对象可呈现出三维效果。
由此,本公开的三维显示方法通过对常规图层数据的拦截并将其置于3D场景中进行修改,能够在系统侧实现对2D应用的三维化显示,由此实现对现有2D应用的VR化支持,拓宽头戴设备的使用场景。
在3D场景中取像得到的左右眼图像数据通常并非直接提供给硬件设备进行显示,而是由操作系统的系统显示流程基于左右眼图像数据生成左右眼待显示图像帧,这些图像帧会被提供给第一显示设备和第二显示设备各自的光机用于显示。具体地,在Android平台中,会使用硬件抽象层合成器(即,HwComposer)源源不断地将图层数据合成为用于硬件显示的待显示图像帧(例如,以60帧/秒的帧率进行逐帧合成),并且硬件抽象层合成器生成的每一帧对应于硬件显示器上的一帧显示。例如,在硬件抽象层合成器生成一帧图像后,在可编程逻辑器件(FPGA)中进行图像复制得到相同的两帧合成图像后分别发送至第一显示单元和第二显示单元进行显示,这是由于画面合成器往硬件抽象层合成器发送合成的窗口数据时是一帧一帧发送的。但在3D显示的场景中,由于需要同时为左右眼分别提供有视差的显示,因此需要对图像帧生成到硬件显示的过程进行相应的修改。
在一个实施例中,可以将3D场景中取像得到的左右眼图像数据合并为一幅图像提供给硬件抽象层合成器,再对硬件抽象层合成器渲染得到的一帧图像进行硬件分割,以分别用于左右光机的显示。为此,步骤S530可以包括:合成所述左眼图像数据和所述右眼图像数据得到一帧合成后图像;将所述合成后图像发送至硬件抽象层合成器生成第一待显示图像帧;基于可编程逻辑器件(FPGA)对所述待显示图像帧进行图像分割得到第二待显示图像帧和第三待显示图像帧;分别将所述第二待显示图像帧和所述第三待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。由此,通过送入硬件抽象层合成器之前的合并以及图像帧生成后的硬件分割,能够避免对Android系统底层操作的大幅改动。
作为替换,在另一个实施例中,可以直接将左右眼图像数据发送给硬件抽象层合成器,由硬件抽象层合成器分别对左右眼图像数据进行渲染并生成对应的图像帧,再分别用于左右光机的显示。此时,步骤S530可以包括:将所述左眼图像数据和所述右眼图像数据发送至硬件抽象层合成器生成第四待显示图像帧和第五待显示图像帧;以及分别将所述第四待显示图像帧和所述第五待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。这种做法相当于要求硬件抽象层合成器以两倍于设定显示帧率的速率生成图像帧,因此需要修改Android系统的原生显示逻辑。
如上的3D场景可以在Android平台的画面合成器(即,Surfaceflinger)中使用3D渲染引擎构造而成。在一个实施例中,该3D渲染引擎使用跨平台图形API(例如,OpenGL)在操作系统中实现。并且本公开的三维显示方法还包括修改画面合成器中的编译文件,使得所述编译文件被执行能够调用所述3D渲染引擎。由此,可以在头戴设备开机时,或是在头戴设备开启了2D应用的三维显示功能时,调用该3D渲染引擎,并在画面合成器中使用3D渲染引擎构造3D场景。在Android系统的原生显示逻辑中,由画面合成器向硬件抽象层合成器发送图层数据用于图像帧的渲染。由此,本公开的步骤S510可以包括:在所述画面合成器向硬件抽象层合成器发送所述图层数据时,拦截所述图层数据置于所述3D场景中。
在一个实施例中,本公开的头戴设备三维显示方法尤其可以实现为一种通过对AR头戴设备(尤其是具备AR功能的智能眼镜)的Android系统平台的原生显示逻辑(也可称为原生显示流程)进行修改,从而能够在不对上层应用进行改动的情况下实现这些应用的三维显示效果(例如,VR效果)的一种方法。
该方法首先可以包括使用openGL API在Android平台中实现轻量级3D渲染引擎。openGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。在此,可以通过对OpenGL进行封装,隐藏底层细节,提供更为高级的图形渲染功能给Android平台的显示系统来进行调用来实现轻量级3D渲染引擎,由此方便地进行3D场景的创建、图像的3D变化等。具体地,该轻量级3D渲染引擎的实现过程可以包括:
(1)代码编写并生成动态库
使用openGL提供的API来编写3D引擎代码,主要提供创建3D引擎、图像3D变换、相机位置调整、光源调整、视差图像生成等接口。后续的左右眼图像数据的生成需要使用该引擎提供的能力来实现。
(2)在Android平台中集成动态库
由于图像变化需要在Android的显示系统中处理,因此需要在Android平台上集成该动态库。在一个实施例中,可以通过修改Surfaceflinger的编译文件,来引用该生成的动态库。
在Android平台中实现了3D渲染引擎之后,就可以利用该3D渲染引擎的功能来实现2D应用的三维显示。图7示出了根据本公开一个实施例的头戴设备的三维显示方法的示意性流程图。与图5不同的是,图7主要从本公开的显示方法与系统原生流程的交互角度着手进行阐述。图中以红色箭头和红色框示出了针对原生流程的交互和修改。
本公开的三维显示方法主要进行图像处理,将图形数据放到3D场景中进行变换得到3D场景下的图像,以生成用于硬件显示的图像。该方法在图7中以红框示出,与Android平台的原生显示流程并行执行,或者可以看作是对原生显示流程的修改。应该理解的是,此处的“原生显示流程”指的是Android平台自带的显示逻辑,也可以经过各自适应性修改的用于显示的逻辑。无论哪种情况下,都需要由Surfaceflinger将Layer数据传递给HwComposer,由HwComposer进行合成。而在本公开中,在从Surfaceflinger拦截到Layer数据后,调用3D引擎的动态库方法将Layer数据放置于3D场景中进行变换,并将变换得到的图像返回给HwComposer进行渲染以生成用于硬件显示的图像帧。
在步骤S710,创建3D场景。在Android系统启动后(例如,头戴设备开机后),在Surfaceflinger中使用3D引擎动态库创建3D场景,之后仅需将画面置于3D场景下,引擎便能够转换出3D场景下对应的图像。由于需要实现3D景深效果,因此需要在3D场景中虚拟出两个相机,分别对应眼镜的左右两个光机(以模拟佩戴者的左右眼视角)。可以根据眼镜硬件参数计算出左右眼虚拟相机在3D场景中的正确位置,并由此构造3D场景。
在步骤S720,拦截Layer数据并用于在3D场景中进行变换。在此,可以利用3D引擎将Layer数据送入3D场景中。随后,在步骤S730,利用左右虚拟相机对Layer数据进行变换取向,由此得到左右眼图像数据,并将其合并为一帧。
在Android平台的常规流程下,会传输一帧图像给HwComposer用于后者渲染一帧用于硬件显示的图像。例如,在60帧/秒的帧率下,Surfaceflinger需要每秒向HwComposer传输60个图像数据,用于HwComposer渲染出60帧。而在本公开中,由于3D显示需要针对左右眼显示不同的图像(相似但有视差的图像,本质上仍然是不同的图像),因此在60帧/秒的帧率下,实际需要每秒向硬件显示单元提供120帧的图像帧。虽然可以修改HwComposer使其在60帧/秒的帧率下实际每秒渲染120帧图像帧,但需要对Android平台的底层进行大幅修改。为此,在图7所示的例子中,可以将左右眼图像数据合并为1帧图像,并将这一帧图像提供给HwComposer用于渲染。图8示出了将左右眼图像数据合并成1帧的例子。如图所示,可以将两张分辨率为640*480的图像直接进行宽度方向上的拼接,以得到分辨率为1280*480的一帧图像。在其他例子中,也可以进行高度方向上的拼接,例如得到一帧640*960的图像。合成得到的拼接图像可以放入图像缓存(buffer)。HwComposer可以从图像buffer中逐帧取走拼接图像,用于渲染。
在HwComposer对拼接图像进行逐帧渲染后,可以进入硬件显示流程。由于HwComposer直接对拼接图像进行渲染,因此需要在常规的硬件显示流程中加入额外的图像分割操作。图9示出了对拼接图像的分割处理和最终显示流程。如图所示,HwComposer在对拼接图像进行逐帧渲染,将渲染后的图像放入图像缓存(buffer)。该图像buffer是用于缓存3D处理后合成图像的缓存。随后,可由FPGA逐帧取出图像帧并进行分割。例如,在如图8所示对进行宽度方向上拼接得到合成图像的情况下,FPGA可以对图像帧进行宽度方向上的分割。例如合成的1280*480的图像经过分割后变为2张640*480存在视差的图像,即分割得到的左眼图像帧和右眼图像帧。左眼图像帧和右眼图像帧被分别提供给左右光机显示,再经由左右光波导片传播至显示区域,从而完成向佩戴者左右眼的显示。此时,左眼图像帧对应于前述的第二待显示图像帧,右眼图像帧对应于前述的第三待显示图像帧。左眼图像帧基于3D渲染引擎取像的左眼图像数据渲染得到,右眼图像帧则基于3D渲染引擎取像的右眼图像数据渲染得到。此时,本公开的显示方法还包括:使得所述第一显示单元和第二显示单元分别实现基于所述左眼图像数据和所述右眼图像数据生成的左右眼待显示图像帧的显示,以实现所述3D显示。
在一个实施例中,本公开还可以实现为一种头戴设备,图10示出了根据本发明一个实施例的头戴设备的组成示意图。该头戴设备1000例如可以实现为图2所示的智能眼镜。该头戴设备1000包括处理器1010,用于执行如前所述的三维显示方法。该处理器1010例如可以对应于图2所示的处理单元231。该头戴设备还包括第一显示单元1020和第二显示单元1030,用于分别基于所述左眼图像数据和所述右眼图像数据的左右眼待显示图像帧的显示,以实现3D显示。在一个实施例中,第一显示单元可以是左眼显示单元,包括左光机和左光波导片,第二显示单元可以是右眼显示单元,包括右光机和右光波导片。
在一个实施例中,处理器1010还用于:将所述左眼图像数据和所述右眼图像数据得到一帧合成后图像。此时,头戴设备还可以包括:可编程逻辑器件1040,用于对一帧合成后图像进分割得到第二待显示图像帧和第三待显示图像帧,其中,所述第二待显示图像帧对应于左眼待显示图像帧,所述第三待显示图像帧对应于右眼待显示图像帧。相应地,所述第一显示单元1020和所述第二显示单元1030用于:分别对所述第二待显示图像帧和所述第三待显示图像帧进行显示以实现所述3D显示。
上文中已经参考附图详细描述了根据本公开的头戴设备的三维显示方法和使用该方法的头戴设备。本公开的三维显示方法通过在操作系统侧,尤其是操作系统的在画面合成器中统一处理图像的3D场景化,实现对现有2D应用的三维显示,由此不需要应用进行任何适配,就可实现对现有2D应用的VR化支持,从而拓宽头戴设备的使用场景。
此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (11)

1.一种头戴设备的三维显示方法,包括:
拦截图层数据置于3D场景中;
基于左虚拟相机和右虚拟相机,分别对所述图层数据进行取像得到存在视差的左眼图像数据和右眼图像数据,其中,所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置是根据所述头戴设备的硬件参数确定的;以及
分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示。
2.如权利要求1所述的方法,其中,分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示,包括:
合成所述左眼图像数据和所述右眼图像数据得到一帧合成后图像;
将所述合成后图像发送至硬件抽象层合成器生成第一待显示图像帧;
基于可编程逻辑器件对所述待显示图像帧进行图像分割得到第二待显示图像帧和第三待显示图像帧;以及
分别将所述第二待显示图像帧和所述第三待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。
3.如权利要求1所述的方法,其中,分别将所述左眼图像数据和所述右眼图像数据发送至所述头戴设备的第一显示单元和第二显示单元以实现3D显示,包括:
将所述左眼图像数据和所述右眼图像数据发送至硬件抽象层合成器生成第四待显示图像帧和第五待显示图像帧;以及
分别将所述第四待显示图像帧和所述第五待显示图像帧发送至所述第一显示单元和所述第二显示单元以实现3D显示。
4.如权利要求1所述的方法,其中,所述3D场景是在画面合成器中使用3D渲染引擎构造的,拦截图层数据置于3D场景中,包括:
在所述画面合成器向硬件抽象层合成器发送所述图层数据时,拦截所述图层数据置于所述3D场景中。
5.如权利要求4所述的方法,还包括:
修改所述画面合成器中的编译文件,使得所述编译文件被执行能够调用所述3D渲染引擎。
6.如权利要求1所述的方法,其中,所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置是根据所述头戴设备的硬件参数确定的,包括:
基于所述第一显示单元和所述第二显示单元的距离确定所述左虚拟相机和所述右虚拟相机在所述3D场景中的位置,以及基于所述3D场景确定所述左虚拟相机和所述右虚拟相机的朝向。
7.如权利要求4所述的方法,其中,所述3D渲染引擎使用跨平台图形API在操作系统中实现。
8.如权利要求1所述的方法,其中,拦截的所述图层数据是用于显示的2D应用数据。
9.如权利要求8所述的方法,还包括:
使得所述第一显示单元和第二显示单元分别实现基于所述左眼图像数据和所述右眼图像数据生成的左右眼待显示图像帧的显示,以实现所述3D显示。
10.一种头戴设备,包括:
处理器,用于执行如权利要求1-9中任一项所述的三维显示方法;
第一显示单元和第二显示单元,用于分别基于所述左眼图像数据和所述右眼图像数据的左右眼待显示图像帧的显示,以实现3D显示。
11.如权利要求10所述的头戴设备,其中,所述处理器还用于:
将所述左眼图像数据和所述右眼图像数据得到一帧合成后图像,
所述头戴设备还包括:
可编程逻辑器件,用于对一帧合成后图像进分割得到第二待显示图像帧和第三待显示图像帧,其中,所述第二待显示图像帧对应于左眼待显示图像帧,所述第三待显示图像帧对应于右眼待显示图像帧,并且
所述第一显示单元和所述第二显示单元用于:
分别对所述第二待显示图像帧和所述第三待显示图像帧进行显示以实现所述3D显示。
CN202311581629.5A 2023-11-23 2023-11-23 头戴设备的三维显示方法和头戴设备 Pending CN117615117A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311581629.5A CN117615117A (zh) 2023-11-23 2023-11-23 头戴设备的三维显示方法和头戴设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311581629.5A CN117615117A (zh) 2023-11-23 2023-11-23 头戴设备的三维显示方法和头戴设备

Publications (1)

Publication Number Publication Date
CN117615117A true CN117615117A (zh) 2024-02-27

Family

ID=89949209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311581629.5A Pending CN117615117A (zh) 2023-11-23 2023-11-23 头戴设备的三维显示方法和头戴设备

Country Status (1)

Country Link
CN (1) CN117615117A (zh)

Similar Documents

Publication Publication Date Title
US11928784B2 (en) Systems and methods for presenting perspective views of augmented reality virtual object
CN107924589B (zh) 通信系统
KR20230048457A (ko) 증강 현실 데이터를 레코딩하기 위한 기술
WO2018170482A1 (en) Mixed reality system with color virtual content warping and method of generating virtual content using same
US11961194B2 (en) Non-uniform stereo rendering
US20240169489A1 (en) Virtual, augmented, and mixed reality systems and methods
US11818325B2 (en) Blended mode three dimensional display systems and methods
JP2004198971A (ja) 立体視用表示装置及び立体視用表示方法
CN113272710A (zh) 通过分色扩展视场
US20230251710A1 (en) Virtual, augmented, and mixed reality systems and methods
CN117615117A (zh) 头戴设备的三维显示方法和头戴设备
WO2018142418A1 (en) An apparatus, method, and system for augmented and mixed reality viewing
Ebisu et al. Realization of electronic 3D display combining multiview and volumetric solutions
US11231589B2 (en) Ultralight wearable display device
TWI771969B (zh) 適應眼睛位置的立體影像數據的產生方法與顯示系統
US20230239456A1 (en) Display system with machine learning (ml) based stereoscopic view synthesis over a wide field of view
JP2011061330A (ja) 画像生成装置、画像生成方法およびプログラム
US20220232201A1 (en) Image generation system and method
CN114675418A (zh) 超轻巧的穿戴显示装置和用于显示装置的方法
JP2004214763A (ja) 3次元映像システム
TW202332267A (zh) 具有基於機器學習的寬視野立體視圖合成的顯示系統
CN117981296A (zh) 使用多个相机的扩展视场

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination