面向VR的实时图像截取方法、系统和存储介质技术方案

技术编号:25889869 阅读:43 留言:0更新日期:2020-10-09 23:29
本发明专利技术涉及一种面向VR的实时图像截取方法、系统和存储介质,包括:判断待图像截取的VR系统是否具有通知机制,若有,则引用VR系统的显示通路,在图像截取模块中重写显示通路的驱动程序,以覆盖呈现函数,并通过向VR应用程序注册图像截取模块,使图像截取模块作为VR系统的显示驱动;VR程序运行时,将图像发送至GPU计算并渲染,同时VR程序运行显示驱动,显示驱动的呈现函数会为每一帧计算并渲染完成后的图像反馈一个纹理句柄;定位纹理句柄,得到图像数据作为图像截取结果,否则使用钩子机制,将钩子插入VR程序的原始显示通路例程中,替换原始显示通路例程中调用的接口函数,形成替换例程,使用替换例程截取VR程序的图像数据作为图像截取结果。

【技术实现步骤摘要】
面向VR的实时图像截取方法、系统和存储介质
本专利技术涉及无线VR传输领域和视频、图像采集领域,并特别涉及一种面向VR的实时图像截取方法、系统和存储介质。
技术介绍
传统的图像截取方式有以下几种方案1、桌面截图或窗口截图:桌面截图即直接对电脑桌面进行屏幕抓取。一般操作系统都支持多种抓屏方式,比如windows下可通过GDI,DDRAW,DXGI等方式。其中GDI和DDRAW抓取一帧1080P的图像大致需要4-8ms时间,DXGI的抓屏速度更快,可以达到2-3ms,但是DXGI要求桌面必须要变化时才能抓取到图像。窗口截图一般是通过进程ID获取到程序的窗口句柄,然后进行窗口内容拷贝。这类方法适用于有窗口的程序。这类方法受限于常规桌面刷新率只有60Hz,无法达到VR场景90fps的需求。另外窗口映射也不是VR程序必备的要素,很多VR应用并不需要在电脑桌面显示窗口,所以窗口截图的方案也不适用于VR程序。2、使用视频采集卡:虚拟现实(VR)画面经过渲染之后,需通过视频线(HDMI,VGA等)传输到显示设备上。一般可通过HDMI信号截取或者信号分线器,将HDMI信号导入到视频采集卡来截取VR画面。这类方案需要能够支持90fps的采集卡,这类采集卡价格非常昂贵,不适宜推广。上述图像截取方案主要通过桌面截图和窗口截图的方法进行,其问题在于:1)桌面的刷新率通常只有60帧每秒,无法满足90帧每秒的VR体验要求2)窗口截图依赖于VR应用程序必须创建一个窗口,但是窗口对于VR应用程序而言不是必须的,因此这种方法对于不创建窗口的VR应用程序是不起作用的。
技术实现思路
本系统的截取功能是与VR渲染流水线融为一体的,可以保证以VR应用程序原始的渲染速率进行截取,同时不受限于VR应用程序的某种特征,例如是否存在预览窗口。另一方面,本系统提供内容导出机制,可以将截取的图像及时的传递给每一个感兴趣的第三方应用程序。具体地说,本专利技术公开了一种面向VR的实时图像截取方法,其中包括:步骤1、判断待图像截取的VR系统是否具有通知机制,若有,则执行步骤2,否则执行步骤5;步骤2、引用该VR系统的显示通路,在图像截取模块中重写该显示通路的驱动程序,以覆盖呈现函数,并通过向该VR应用程序注册该图像截取模块,使该图像截取模块作为该VR系统的显示驱动;步骤3、该VR程序运行时,将图像发送至GPU计算并渲染,同时该VR程序运行该显示驱动,该显示驱动的呈现函数会为每一帧计算并渲染完成后的图像反馈一个纹理句柄;步骤4、定位该帧的纹理句柄,以得到并复制该帧的图像数据,输出该图像数据作为图像截取结果;步骤5、使用钩子机制,将钩子插入该VR程序的原始显示通路例程中,替换该原始显示通路例程中调用的接口函数,形成替换例程,使用该替换例程截取该VR程序的图像数据,输出该图像数据作为图像截取结果。所述的面向VR的实时图像截取方法,其中该步骤2包括:使用该图像截取模块模拟本地设备,以在该VR系统调用该显示通路提交一幅画面后,该呈现函数执行该本地设备的功能指令。所述的面向VR的实时图像截取方法,其中该纹理句柄,具体为一个指向图像的指针。所述的面向VR的实时图像截取方法,其中该显示通路包括:图形应用程序编程接口和VR软件开发工具包。本专利技术还公开了一种面向VR的实时图像截取系统,其中包括:模块1、判断待图像截取的VR系统是否具有通知机制,若有,则执行模块2,否则执行模块5;模块2、引用该VR系统的显示通路,在图像截取模块中重写该显示通路的驱动程序,以覆盖呈现函数,并通过向该VR应用程序注册该图像截取模块,使该图像截取模块作为该VR系统的显示驱动;模块3、该VR程序运行时,将图像发送至GPU计算并渲染,同时该VR程序运行该显示驱动,该显示驱动的呈现函数会为每一帧计算并渲染完成后的图像反馈一个纹理句柄;模块4、定位该帧的纹理句柄,以得到并复制该帧的图像数据,输出该图像数据作为图像截取结果;模块5、使用钩子机制,将钩子插入该VR程序的原始显示通路例程中,替换该原始显示通路例程中调用的接口函数,形成替换例程,使用该替换例程截取该VR程序的图像数据,输出该图像数据作为图像截取结果。所述的面向VR的实时图像截取系统,其中该模块2包括:使用该图像截取模块模拟本地设备,以在该VR系统调用该显示通路提交一幅画面后,该呈现函数执行该本地设备的功能指令。所述的面向VR的实时图像截取系统,其中该纹理句柄,具体为一个指向图像的指针。所述的面向VR的实时图像截取系统,其中该显示通路包括:图形应用程序编程接口和VR软件开发工具包。本专利技术还公开了一种用于所述面向VR的实时图像截取系统的实施方法。本专利技术还公开了一种存储介质,用于存储执行所述面向VR的实时图像截取方法的程序。与现有技术相比,本专利技术的有益效果包括:1、在成本节省方面,不需要视频、图像采集卡设备;2、在效率方面,拥有实时性并且不会丢失帧率;3、在性能方面,留出了足够的时间进行图像处理工作。附图说明图1是本专利技术的直接截取法流程图;图2为本专利技术直接截取法结构图;图3为间接截取法钩子注入结构对比图。具体实施方式本专利技术实现一种面向VR的实时图像截取系统,作为VR应用程序与显示设备之间的中间层,可将VR内容在提交给显示设备之前截获,并转发给其他对此VR内容感兴趣的应用程序,例如转发给流媒体应用程序进行网络直播、监控。不同的VR应用程序会使用不同的显示通路,例如使用不同的VRSDK或图形API,因此本系统的截取功能需要覆盖所有可能的通路,包括:1)图形应用程序编程接口,例如各个版本的Direct3D和OpenGL等,2)VRSDK(软件开发工具包),例如OpenVR和WindowsMixedRealityToolkit等。对于每种通路,截取方法分为两种:1)直接截取,即VR系统本身提供了通知机制,允许第三方应用程序直接向VR应用程序登记,并在VR内容生成后得到通知,2)间接截取,即VR系统本身不提供内容导出机制,第三方应用程序需要通过进程注入,钩子函数,动态库代理等方式间接的获取VR内容。本专利技术的截取功能是与VR渲染流水线融为一体的,可以保证以VR应用程序原始的渲染速率进行截取,同时不受限于VR应用程序的某种特征,例如是否存在预览窗口。另一方面,本系统提供内容导出机制,可以将截取的图像及时的传递给每一个感兴趣的第三方应用程序。为让本专利技术的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。本专利技术提及两种VR画面实时截取的解决方案,分别为直接截取法和间接截取法(1)直接截取法是指通过阅读VR系统的开发文档,得知VR系统本身提供了通知机制。允许第三方应用程序直接向VR应用程序登记,并在VR内容生成后得到通知,在得到通知后从指定缓存中拷贝图本文档来自技高网
...

【技术保护点】
1.一种面向VR的实时图像截取方法,其特征在于,包括:/n步骤1、判断待图像截取的VR系统是否具有通知机制,若有,则执行步骤2,否则执行步骤5;/n步骤2、引用该VR系统的显示通路,在图像截取模块中重写该显示通路的驱动程序,以覆盖呈现函数,并通过向该VR应用程序注册该图像截取模块,使该图像截取模块作为该VR系统的显示驱动;/n步骤3、该VR程序运行时,将图像发送至GPU计算并渲染,同时该VR程序运行该显示驱动,该显示驱动的呈现函数会为每一帧计算并渲染完成后的图像反馈一个纹理句柄;/n步骤4、定位该帧的纹理句柄,以得到并复制该帧的图像数据,输出该图像数据作为图像截取结果;/n步骤5、使用钩子机制,将钩子插入该VR程序的原始显示通路例程中,替换该原始显示通路例程中调用的接口函数,形成替换例程,使用该替换例程截取该VR程序的图像数据,输出该图像数据作为图像截取结果。/n

【技术特征摘要】
1.一种面向VR的实时图像截取方法,其特征在于,包括:
步骤1、判断待图像截取的VR系统是否具有通知机制,若有,则执行步骤2,否则执行步骤5;
步骤2、引用该VR系统的显示通路,在图像截取模块中重写该显示通路的驱动程序,以覆盖呈现函数,并通过向该VR应用程序注册该图像截取模块,使该图像截取模块作为该VR系统的显示驱动;
步骤3、该VR程序运行时,将图像发送至GPU计算并渲染,同时该VR程序运行该显示驱动,该显示驱动的呈现函数会为每一帧计算并渲染完成后的图像反馈一个纹理句柄;
步骤4、定位该帧的纹理句柄,以得到并复制该帧的图像数据,输出该图像数据作为图像截取结果;
步骤5、使用钩子机制,将钩子插入该VR程序的原始显示通路例程中,替换该原始显示通路例程中调用的接口函数,形成替换例程,使用该替换例程截取该VR程序的图像数据,输出该图像数据作为图像截取结果。


2.如权利要求1所述的面向VR的实时图像截取方法,其特征在于,该步骤2包括:使用该图像截取模块模拟本地设备,以在该VR系统调用该显示通路提交一幅画面后,该呈现函数执行该本地设备的功能指令。


3.如权利要求1所述的面向VR的实时图像截取方法,其特征在于,该纹理句柄,具体为一个指向图像的指针。


4.如权利要求1所述的面向VR的实时图像截取方法,其特征在于,该显示通路包括:图形应用程序编程接口和VR软件开发工具包。


5.一种面向VR的实时图像截取系统,其特征在于,包括:
模块1、判断待图像截取的VR系统是...

【专利技术属性】
技术研发人员:张永昶周鹏冀德
申请(专利权)人:北京传送科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1