CN115494946A - 一种投屏方法、装置、设备及可读存储介质 - Google Patents

一种投屏方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN115494946A
CN115494946A CN202211190719.7A CN202211190719A CN115494946A CN 115494946 A CN115494946 A CN 115494946A CN 202211190719 A CN202211190719 A CN 202211190719A CN 115494946 A CN115494946 A CN 115494946A
Authority
CN
China
Prior art keywords
screen
memory
pcie
data
ion
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
CN202211190719.7A
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.)
Goertek Techology Co Ltd
Original Assignee
Goertek Techology 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 Goertek Techology Co Ltd filed Critical Goertek Techology Co Ltd
Priority to CN202211190719.7A priority Critical patent/CN115494946A/zh
Publication of CN115494946A publication Critical patent/CN115494946A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请公开了一种投屏方法、装置、设备及可读存储介质,该方法,包括:获取窗口图层数据,并分配ION显示内存;在ION显示内存与设置于头戴显示设备内部,或设置于头戴显示设备外部的PCIe EP端显示设备的DMA间建立映射关系;对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存;利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。相对于投屏的消费者和生产者各自占用一份内存空间,且需求在两个不同的内存空间进行拷贝来进行数据传输的方案而言,本申请仅需占用一份ION显示内存即可提供了投屏的生产者和消费者使用,从而可减少内存占用,也省去了内存拷贝时间,可以缩短投屏画面的时延,可以有效提升头戴显示设备的用户体验。

Description

一种投屏方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种投屏方法、装置、设备及可读存储介质。
背景技术
投屏,即将设备A的屏幕画面显示到另一个设备B的屏幕上。在Android操作系统(安卓系统)中,可基于显示适配器架构用来为系统显示,收集并发现物理显示设备服务,进而实现投屏。
目前,Android系统通常使用无线连接和虚拟显示适配器来进行屏幕扩展,即投屏。但是,无论是虚拟屏,还是无线连接的方式进行投屏,都存在额外占用内存资源,且投屏画面的时延大等问题。当安卓系统向头戴显示设备进行投屏时,投屏方案导致额外占用内存资源,且投屏画面的时延大,最终导致头戴显示设备的用户体检差。
综上所述,如何有效地解决Android设备的投屏以提升头戴显示设备的用户体验等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种投屏方法、装置、设备及可读存储介质,以减少占用内存资源,缩短投屏画面的时延,可以有效提升头戴显示设备的用户体验。
为解决上述技术问题,本申请提供如下技术方案:
一种投屏方法,应用于安卓系统,包括:
获取窗口图层数据,并分配ION显示内存;
在所述ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIeEP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;
对所述窗口图层数据进行硬件合成后,将所得屏幕数据存入所述ION显示内存;
利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备。
优选地,利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备,包括:
利用所述映射关系,从所述ION显示内存中读取所述屏幕数据;
通过所述PCIe总线,将所述屏幕数据发送给所述PCIe EP端显示设备。
优选地,所述获取窗口图层数据,包括:
利用安卓应用绘制各个窗口的图层,得到所述窗口图层数据。
优选地,所述分配ION显示内存,包括:
将所述窗口图层数据传递给显示管理进程;
利用所述显示管理进程,分配所述ION显示内存给所述窗口图层数据。
优选地,对所述窗口图层数据进行硬件合成,包括:
利用硬件合成器对所述窗口图层数据进行合成,得到所述屏幕数据;
合成完成后,向内核发送刷新屏幕通知。
优选地,利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备,包括:
在所述内核收到所述刷新屏幕通知后,利用所述DMA将所述屏幕数据通过所述PCIe总线发送至所述PCIe EP端显示设备。
优选地,在所述ION显示内存与PCIe EP端显示设备的DMA间建立映射关系,包括:
将所述ION显示内存对应的文件描述符传给内核;
所述内核利用所述文件描述符,建立所述映射关系。
一种投屏装置,应用于安卓系统,包括:
内存分配模块,用于获取窗口图层数据,并分配ION显示内存;
映射建立模块,用于在所述ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIe EP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;
硬件合成模块,用于对所述窗口图层数据进行硬件合成后,将所得屏幕数据存入所述ION显示内存;
数据发送模块,用于利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述投屏方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述投屏方法的步骤。
在安卓系统中应用本申请实施例所提供的方法,包括:获取窗口图层数据,并分配ION显示内存;在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIeEP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存;利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
在本申请中,在分配内存时,分配ION显示内存,分配了ION显示内存后,将该ION显示内存与PCIe EP端显示设备的DMA间建立映射关系。由于ION可以被用户空间的进程之间或者内核空间的模块之间进行内存共享,而且这种共享可以是零拷贝的,因而,在完成硬件合成之后,可以直接利用映射关系,将该屏幕数据通过PCIe总线发送给位于头戴显示设备内部或外部的PCIe EP端显示设备。由此可见,在本申请所提供的投屏方案,相对于投屏的消费者和生产者各自占用一份内存空间,且需求在两个不同的内存空间进行拷贝来进行数据传输的方案而言,本申请仅需占用一份ION显示内存即可提供了投屏的生产者和消费者使用,从而可减少内存占用,也省去了内存拷贝时间,可以缩短投屏画面的时延,可以有效提升头戴显示设备的用户体验。
相应地,本申请实施例还提供了与上述投屏方法相对应的投屏装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种投屏方法的实施流程图;
图2为本申请实施例中一种投屏装置的结构示意图;
图3为本申请实施例中一种电子设备的结构示意图;
图4为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种投屏方法的流程图,该方法可应用于安卓系统中,该方法包括以下步骤:
S101、获取窗口图层数据,并分配ION显示内存。
其中,窗口图层数据即各个窗口的图层对应的数据。具体的,可以通过绘制窗口的形式来获取到窗口图层数据,也可直接读取已绘制好的窗口图层数据的形式来获得该窗口图层数据。在本申请实施例中,对于窗口图层数据具体对应何种内容并不限定。
在本申请中的一种具体实施方式中,获取窗口图层数据,具体包括:利用安卓应用绘制各个窗口的图层,得到窗口图层数据。其中,安卓应用可以具体为具备窗口图层绘制能力的应用。即,安卓应用对各个窗口的图层进行绘制,即可得到窗口图层数据。在本申请实施例中,对安卓应用本身并不做限定,且安卓应用的数量也可以为1或多个。
其中,ION为Android的一种内存分配管理机制,通过在硬件设备和用户空间之间分配和共享内存,可实现设备之间零拷贝共享内存。即,ION可以被用户空间的进程之间或者内核空间的模块之间进行内存共享,而且这种共享可以是零拷贝的。
在获取到窗口图层数据后,可利用ION分配对应的内存。为区别于其他内存分配器所分配的内存,在本申请中,将利用ION为窗口图层数据分配的内存,称之为ION显示内存。
在本申请中的一种具体实施方式中,分配ION显示内存,包括:
步骤一、将窗口图层数据传递给显示管理进程;
步骤二、利用显示管理进程,分配ION显示内存给窗口图层数据。
为便于描述,下面将上述两个步骤结合起来进行说明。
安卓应用在绘制好了窗口图层数据之后,可将该窗口图层数据传递给显示管理进程(如SurfaceFlinger进程,SurfaceFlinger为ION中的一种具体服务),然后,显示管理进程可为窗口图层数据分配ION显示内存。具体的,对于显示管理进程具有如何为窗口图层数据分配ION显示内存,可以具体参照ION内存管理与内存共享的具体定义与实现,在此不再一一赘述。
S102、在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系。
一些实施例中,PCIe EP端显示设备设置于头戴显示设备内部。例如,头戴显示设备具体为VR设备,该PCIe EP端显示设备即佩戴后,位于用户眼睛前侧的显示屏。
一些实施例中,PCIe EP端显示设备可以是独立于头戴显示设备设置,例如设置于头戴显示设备外部,或者,PCIe EP端显示设备可以外挂于头戴显示设备,例如固定连接或者可拆卸连接于头戴显示设备正前方或侧边。
在PCIe中,EP(EndPoint),传输终点。即在本申请实施例中,PCIe EP端显示设备即PCIe传输过程中对应的EP设备,EP设备表示一个串行或I/O设备。EP模式下,PCIE配置头中的类型值为0;EP模式下,PCIE控制器接收针对本地内存空间的读写操作。
其中,DMA(Direct Memory Access),即存储器直接访问。也就是说,DMA指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为DMA控制器的控制下进行。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中还可以进行其他的工作。
在本申请中,PCIe EP端显示设备与具备安卓系统的设备之间通过PCIe总线进行连接。PCIe,PCI-Express对应一种高速串行计算机扩展总线标准,其属于高速串行点对点双通道高带宽传输。
在分配了ION显示内存中,为了减少占用内存,避免数据拷贝操作,在本实施例中,将ION显示内存进行共享,使得ION显示内存可以被屏幕数据的生产者和屏幕数据的消费者共享。因而,在本实施例中,需为ION显示内存与PCIe EP端显示设备的DMA间建立映射关系。从而使得DMA可以基于该映射关系,访问ION显示内存。
也就是说,为了减少占用内存,在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系,如此,便可使得PCIe EP端显示设备的DMA使用ION显示内存。即,ION显示内存不仅为投屏的生产者(安卓系统,具体指生成屏幕数据的安卓应用以及硬件合成器)使用,还共享给投屏的消费者(外接的PCIe EP端显示设备,具体指向PCIe EP端显示设备发送屏幕数据的DMA)使用。如此,屏幕数据的生产者与屏幕数据的消费者可以共享同一ION显示内存,从而减少内存占用,也不会产生额外的内存中数据拷贝过程。
举例说明:在相关方案中,为屏幕数据的生产者分配内存空间A,为欧姆数据的消费者分配内存空间B,且内存空间A与内存空间B不同,当屏幕数据产生后,首先存入内存空间A中,在需要进行传输时,先将屏幕数据从内存空间A中读取中,进而拷贝至内存空间B中,可见,在此类方案中,会占用两份内存,且存在内存拷贝过程。而在本申请实施例所提供的方案中,屏幕数据的生产者与屏幕数据的消费中共享ION显示内存,因而不会占用额外的一个内存空间,且在同一个内存空间中,也无需进行数据拷贝。
在本申请中的一种具体实施方式中,步骤S102在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系,包括:
步骤一、将ION显示内存对应的文件描述符传给内核;
步骤二、内核利用文件描述符,建立映射关系。
为便于描述,下面将上述两个步骤结合起来进行说明。
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符为非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
将ION显示内存对应的文件描述符传递给内核。内核得到该文件描述符之后,便可基于该文件描述符,建立DMA对应的映射。
S103、对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存。
其中,硬件合成,即对应利用硬件对窗口图层数据中的图像数据进行组合,得到能够进行显示的屏幕数据。得到屏幕数据之后,将其存入到ION显示内存中。
在本申请中的一种具体实施方式中,对窗口图层数据进行硬件合成,包括:
步骤一、利用硬件合成器对窗口图层数据进行合成,得到屏幕数据;
步骤二、合成完成后,向内核发送刷新屏幕通知。
为便于描述,下面将上述两个步骤结合起来进行说明。
即可以采用硬件合成器,对窗口图层数据进行合成,从而得到屏幕数据。在合成完成后,同时向内核发送刷新屏幕通知,以便内核进行屏幕刷新。
具体的,在实际应用中,该硬件合成器可以具体采用HWC(Hardware Composer,一种硬件合成器),来对窗口图层数据进行合成,从而得到屏幕数据。
S104、利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
由于该映射关系,对应ION显示内存与PCIe EP端显示设备的DMA的映射。因而,利用映射关系,可以将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
在本申请中的一种具体实施方式中,步骤S104利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备,包括:
步骤一、利用映射关系,从ION显示内存中读取屏幕数据;
步骤二、通过PCIe总线,将屏幕数据发送给PCIe EP端显示设备。
为便于描述,下面将上述两个步骤结合起来进行说明。
当需要向PCIe EP端显示设备更新屏幕时,则直接利用映射关系,从ION显示内存中读取屏幕数据。然后,再通过PCIe总线,将屏幕数据发送给PCIe EP端显示设备。可见,从此过程中,并没有涉及到数据拷贝,而是直接从ION显示内存中读取屏幕数据即可。省去了屏幕数据的拷贝环节,可以使得PCIe EP端显示设备的投屏画面更快抵达,缩短时延。
在本申请中的一种具体实施方式中,步骤S104利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备,包括:在内核收到刷新屏幕通知后,利用DMA将屏幕数据通过PCIe总线发送至PCIe EP端显示设备。即,向PCIe EP端显示设备发送屏幕数据,是基于内核收到刷新屏幕通知之后进行,此外,进行数据的传输可具体由DMA进行控制处理,对于DMA具体如何实现屏幕数据的控制处理,可以具体参照DMA的定义以及传输控制实现。
PCIe EP端显示设备接收到屏幕数据之后,便可基于该屏幕数据在其屏幕中进行显示,从而完成安卓系统至PCIe EP端显示设备的投屏。
应用本申请实施例所提供的方法,
获取窗口图层数据,并分配ION显示内存;在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIe EP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存;利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
在本申请中,在分配内存时,分配ION显示内存,分配了ION显示内存后,将该ION显示内存与PCIe EP端显示设备的DMA间建立映射关系。由于ION可以被用户空间的进程之间或者内核空间的模块之间进行内存共享,而且这种共享可以是零拷贝的,因而,在完成硬件合成之后,可以直接利用映射关系,将该屏幕数据通过PCIe总线发送给位于头戴显示设备内部或外侧的PCIe EP端显示设备。由此可见,在本申请所提供的投屏方案,相对于投屏的消费者和生产者各自占用一份内存空间,且需求在两个不同的内存空间进行拷贝来进行数据传输的方案而言,本申请仅需占用一份ION显示内存即可提供了投屏的生产者和消费者使用,从而可减少内存占用,也省去了内存拷贝时间,可以缩短投屏画面的时延,可以有效提升头戴显示设备的用户体验。
为便于本领域技术人员更好地理解本申请实施例所提供的投屏方法,下面结合具体的应用场景为例,对投屏方法进行详细说明。
以在VR场景中使用投屏方法为例,实施投屏方法的具体过程包括以下步骤:
步骤(1)、Android应用绘制各个窗口的图层。
步骤(2)、绘制的窗口图层数据交给SurfaceFlinger进程显示管理进程,分配ION显示内存。具体包括:
步骤a、SurfaceFlinger将分配的ION显示内存对应的文件描述符传给内核;
步骤b、内核接收到ION文件描述符后,与PCIe EP端显示设备的DMA区域进行映射。
步骤(3)、SurfaceFlinger将所有图层交给HWC进行硬件合成。
步骤(4)、HWC完成硬件合成后,通知内核刷新显示数据。
步骤(5)、内核收到刷新屏幕通知后,通过DMA发送ION显示内存中的屏幕刷新数据(同上文中的屏幕数据)至PCIe EP端显示设备。
如VR设备等PCIe EP端显示设备在收到PCIe电缆发送的刷新数据后进行显示。
由此可见,本申请所提供的投屏方法,可以解决Android系统使用扩展屏,系统开销大,延迟时间长的问题。通过PCIe电缆连接扩展屏,可以在主显示屏正常工作的同时,高效快速地完成扩展屏数据传输与分享。
相应于上面的方法实施例,本申请实施例还提供了一种投屏装置,下文描述的投屏装置与上文描述的投屏方法可相互对应参照。
参见图2所示,该装置应用于安卓系统,具体包括以下模块:
内存分配模块101,用于获取窗口图层数据,并分配ION显示内存;
映射建立模块102,用于在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,PCIe EP端显示设备,设置于头戴显示设备内部,或外挂于头戴显示设备外侧;
硬件合成模块103,用于对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存;
数据发送模块104,用于利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
在安卓系统中应用本申请实施例所提供的装置,包括:
获取窗口图层数据,并分配ION显示内存;在ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIe EP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;对窗口图层数据进行硬件合成后,将所得屏幕数据存入ION显示内存;利用映射关系,将屏幕数据通过PCIe总线发送给PCIe EP端显示设备。
在本申请中,在分配内存时,分配ION显示内存,分配了ION显示内存后,将该ION显示内存与PCIe EP端显示设备的DMA间建立映射关系。由于ION可以被用户空间的进程之间或者内核空间的模块之间进行内存共享,而且这种共享可以是零拷贝的,因而,在完成硬件合成之后,可以直接利用映射关系,将该屏幕数据通过PCIe总线发送给位于头戴显示设备内部或外侧的PCIe EP端显示设备。由此可见,在本申请所提供的投屏方案,相对于投屏的消费者和生产者各自占用一份内存空间,且需求在两个不同的内存空间进行拷贝来进行数据传输的方案而言,本申请仅需占用一份ION显示内存即可提供了投屏的生产者和消费者使用,从而可减少内存占用,也省去了内存拷贝时间,可以缩短投屏画面的时延,可以有效提升头戴显示设备的用户体验。
在本申请的一种具体实施方式中,数据发送模块104,具体用于利用映射关系,从ION显示内存中读取屏幕数据;
通过PCIe总线,将屏幕数据发送给PCIe EP端显示设备。
在本申请的一种具体实施方式中,内存分配模块101,具体用于利用安卓应用绘制各个窗口的图层,得到窗口图层数据。
在本申请的一种具体实施方式中,内存分配模块101,具体用于将窗口图层数据传递给显示管理进程;
利用显示管理进程,分配ION显示内存给窗口图层数据。
在本申请的一种具体实施方式中,硬件合成模块103,具体用于利用硬件合成器对窗口图层数据进行合成,得到屏幕数据;
合成完成后,向内核发送刷新屏幕通知。
在本申请的一种具体实施方式中,数据发送模块104,具体用于在内核收到刷新屏幕通知后,利用DMA将屏幕数据通过PCIe总线发送至PCIe EP端显示设备。
在本申请的一种具体实施方式中,映射建立模块102,具体用于将ION显示内存对应的文件描述符传给内核;
内核利用文件描述符,建立映射关系。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种投屏方法可相互对应参照。
参见图3所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的投屏方法的步骤。
具体的,请参考图4,图4为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的投屏方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种投屏方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的投屏方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种投屏方法,其特征在于,应用于安卓系统,包括:
获取窗口图层数据,并分配ION显示内存;
在所述ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIe EP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;
对所述窗口图层数据进行硬件合成后,将所得屏幕数据存入所述ION显示内存;
利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备。
2.根据权利要求1所述的投屏方法,其特征在于,利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备,包括:
利用所述映射关系,从所述ION显示内存中读取所述屏幕数据;
通过所述PCIe总线,将所述屏幕数据发送给所述PCIe EP端显示设备。
3.根据权利要求1所述的投屏方法,其特征在于,所述获取窗口图层数据,包括:
利用安卓应用绘制各个窗口的图层,得到所述窗口图层数据。
4.根据权利要求1所述的投屏方法,其特征在于,所述分配ION显示内存,包括:
将所述窗口图层数据传递给显示管理进程;
利用所述显示管理进程,分配所述ION显示内存给所述窗口图层数据。
5.根据权利要求1所述的投屏方法,其特征在于,对所述窗口图层数据进行硬件合成,包括:
利用硬件合成器对所述窗口图层数据进行合成,得到所述屏幕数据;
合成完成后,向内核发送刷新屏幕通知。
6.根据权利要求5所述的投屏方法,其特征在于,利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备,包括:
在所述内核收到所述刷新屏幕通知后,利用所述DMA将所述屏幕数据通过所述PCIe总线发送至所述PCIe EP端显示设备。
7.根据权利要求1至6任一项所述的投屏方法,其特征在于,在所述ION显示内存与PCIeEP端显示设备的DMA间建立映射关系,包括:
将所述ION显示内存对应的文件描述符传给内核;
所述内核利用所述文件描述符,建立所述映射关系。
8.一种投屏装置,其特征在于,应用于安卓系统,包括:
内存分配模块,用于获取窗口图层数据,并分配ION显示内存;
映射建立模块,用于在所述ION显示内存与PCIe EP端显示设备的DMA间建立映射关系;其中,所述PCIe EP端显示设备,设置于头戴显示设备内部,或设置于所述头戴显示设备外部;
硬件合成模块,用于对所述窗口图层数据进行硬件合成后,将所得屏幕数据存入所述ION显示内存;
数据发送模块,用于利用所述映射关系,将所述屏幕数据通过PCIe总线发送给所述PCIe EP端显示设备。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述投屏方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述投屏方法的步骤。
CN202211190719.7A 2022-09-28 2022-09-28 一种投屏方法、装置、设备及可读存储介质 Pending CN115494946A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211190719.7A CN115494946A (zh) 2022-09-28 2022-09-28 一种投屏方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211190719.7A CN115494946A (zh) 2022-09-28 2022-09-28 一种投屏方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115494946A true CN115494946A (zh) 2022-12-20

Family

ID=84471631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211190719.7A Pending CN115494946A (zh) 2022-09-28 2022-09-28 一种投屏方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115494946A (zh)

Similar Documents

Publication Publication Date Title
CN112099941B (zh) 实现硬件加速处理的方法、设备和系统
US7619629B1 (en) Method and system for utilizing memory interface bandwidth to connect multiple graphics processing units
JP6014274B2 (ja) 複数のバーチャルマシーンをマッピングする方法及びシステム並びにクライアント装置
JP6412708B2 (ja) プロセッシングシステムおよびマルチプロセッシングシステム
JP2017513096A (ja) コンピュータ、制御デバイス及びデータ処理方法
CN114077480B (zh) 一种主机与虚拟机共享内存方法、装置、设备及介质
CN103460202A (zh) 至少部分地通过电路来促进对至少一个控制器命令接口的访问
CN102063242A (zh) 显示系统及显示方法
CN115344226B (zh) 一种虚拟化管理下的投屏方法、装置、设备及介质
JP6373620B2 (ja) ゲーム提供システム
CN113886019B (zh) 虚拟机创建方法、装置、系统、介质和设备
CN113064727B (zh) 应用于Android系统的图像显示调度方法、终端及存储介质
EP4213030A1 (en) Method and device for data processing
CN116774933A (zh) 存储设备的虚拟化处理方法、桥接设备、系统及介质
CN114302040A (zh) 多应用共享单一摄像头的方法及相关产品
US10929079B2 (en) Video display method, electronic device and computer program product
EP2677427A1 (en) Techniques for directly accessing a graphical processing unit memory by an application
CN116670661A (zh) 图形处理器的缓存访问方法、图形处理器及电子设备
CN116088784B (zh) 图像投屏方法、装置、电子设备、芯片、存储介质及车辆
CN115494946A (zh) 一种投屏方法、装置、设备及可读存储介质
EP2204740A1 (en) Memory management process and apparatus for the same
CN113434089B (zh) 数据搬移方法、装置及pcie系统
CN114253704A (zh) 一种分配资源的方法及装置
CN112801856A (zh) 数据处理方法和装置
WO2019079940A1 (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