一种在大屏可视化系统中高效图片渲染方法技术方案

技术编号:24095505 阅读:24 留言:0更新日期:2020-05-09 10:08
本发明专利技术涉及计算机技术领域,公开了一种在大屏可视化系统中高效图片渲染方法,包括:S1)发送图片渲染请求消息;S2)利用媒体时钟定时触发图片渲染请求消息;S3)可视化应用程序对触发的图片渲染请求消息进行响应;S4)将待渲染的图片组装成图片缓存流;S5)利用可视化应用程序对图片缓存流进行渲染操作;S6)通过DirectX调用显卡驱动接口进行图像数据处理,并对图像数据进行解码;S7)根据目标区域数据和当前图像区域数据对所述图像数据进行调整;S8)进行图像交换;S9)完成图片渲染。本发明专利技术为渲染组件创建了独立的线程,减少了控制分发器的压力,避免了程序出现卡顿的问题;将解码工作独立到GPU中,缓解了CPU的工作压力,图片渲染处理效率高。

An efficient image rendering method in large screen visualization system

【技术实现步骤摘要】
一种在大屏可视化系统中高效图片渲染方法
本专利技术涉及
,尤其涉及一种在大屏可视化系统中高效图片渲染方法。
技术介绍
目前大屏上进行图片展示时都需要进行如下步骤的处理:图片控件自身触发一次渲染请求;在媒体访问控制层上的上下文信息管理器中将渲染请求发送到渲染线程,系统触发WM_PAINT消息;Window拦截WM_PAINT消息,并加入控制分发器(Dispatcher)的消息转发列表;Dispatcher将渲染请求按照预设定的优先级别添加到Dispatcher的任务队列中;等待渲染线程刷新任务列表;渲染线程刷新可视化树节点;图片控件的资源通道设置要更新的内容;图片控件的资源通道向渲染驱动器发送渲染命令;利用DirectX调用显卡驱动接口进行数据处理,DirectX(DirectExtension)是由微软公司创建的多媒体编程接口,是一种应用程序接口;显卡接收数据后重新解码数据,并根据目标区域和当前图像区域数据实时调整图像数据完成图像的准备工作,通知系统后台处理,进行图像交换;桌面窗口管理器(DWM,DesktopWindowManager)刷新交换后的图片到桌面渲染区域。基于大屏上图像展示分辨率大,绝大部分会达到8K*8K;并且图像基于大屏1:1制作,其制作质量要求很高,图片更新频率较快,这些特点会直接出现以下状况:Dispatcher将渲染请求按照预设定的优先级别添加到Dispatcher的任务队列的这个过程异常繁忙而导致整个窗体渲染变慢不能处理其他的事务,严重时会直接出现应用程序崩溃;因为图片分辨率较大以及基于Windows的用户界面框架WPF(WindowsPresentationFoundation)的图片缓存机制会导致内存暴涨。
技术实现思路
本专利技术的目的在于提供一种在大屏可视化系统中高效图片渲染方法,从而解决现有技术中的问题。为了实现上述目的,本专利技术采用的技术方案如下:一种在大屏可视化系统中高效图片渲染方法,包括步骤:S1)客户端发送图片渲染请求消息;S2)设置媒体时钟,利用媒体时钟定时触发图片渲染请求消息;S3)可视化应用程序对触发的图片渲染请求消息进行响应,根据图片渲染请求消息从预建立的数据库中调用待渲染的图片;S4)利用编码线程将待渲染的图片组装成图片缓存流;S5)利用可视化应用程序对图片缓存流进行渲染操作,获得渲染操作后的图像数据;S6)通过DirectX调用显卡驱动接口进行图像数据处理,利用显卡接收处理后的图像数据,并对图像数据进行解码;S7)获取目标区域数据和当前图像区域数据,根据目标区域数据和当前图像区域数据对图像数据进行调整;S8)将调整后的目标区域数据和当前图像区域数据进行图像交换,获得交换后的图片;S9)利用桌面窗口管理器将交换后的图片刷新到桌面渲染区域,完成图片渲染。进一步的,步骤S6)中还包括将解码独立到GPU中运行,利用GPU对像素内容进行缓存。进一步的,在步骤S4)中对所述待渲染的图片进行单次纹理缩放来减少图片像素内容的大小。本专利技术的有益效果是:本专利技术为渲染组件创建了独立的线程,而且不影响其他组件的渲染,利用媒体时钟定时触发图片渲染请求消息,跳过WPF中Dispatcher按照优先级的排队,减少渲染延迟,减少Dispatcher的压力,避免了程序出现卡顿的问题;优化了图片缓存的载体,由现有技术的多次像素缓存升级为单次像素内容缓存,在编码线程中对图片进行单次纹理缩放来减少图片像素内容的大小,将解码工作独立到GPU中去运行,缓解了CPU的工作压力。附图说明图1是本专利技术实施例一的流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一,如图1所示,一种在大屏可视化系统中高效图片渲染方法,包括步骤:S1)客户端发送图片渲染请求消息;S2)设置媒体时钟,利用媒体时钟定时触发图片渲染请求消息;S3)可视化应用程序对触发的图片渲染请求消息进行响应,根据图片渲染请求消息从预建立的数据库中调用待渲染的图片;S4)利用编码线程将待渲染的图片组装成图片缓存流,对待渲染的图片进行单次纹理缩放来减少图片像素内容的大小;S5)利用可视化应用程序对图片缓存流进行渲染操作,获得渲染操作后的图像数据;S6)通过DirectX调用显卡驱动接口进行图像数据处理,利用显卡接收处理后的图像数据,并对图像数据进行解码,将解码独立到GPU中运行,利用GPU对像素内容进行缓存;S7)获取目标区域数据和当前图像区域数据,根据目标区域数据和当前图像区域数据对图像数据进行调整;S8)将调整后的目标区域数据和当前图像区域数据进行图像交换,获得交换后的图片;S9)利用桌面窗口管理器将交换后的图片刷新到桌面渲染区域,完成图片渲染。WPF使用的DirectX版本较老,无法胜任现在的渲染请求,导致渲染变慢以及系统显卡调度线程堵塞,整个系统变慢甚至出现蓝屏死机,本专利技术采用Direct11版本,利用Direct11使得显卡驱动调度优化性能得以数量级提升。另外,本专利技术将图片组件的渲染线程和图像数据解码线程进行隔离后,窗体的dispatcher不再对图片组件的解码任务排队及后续处理,使得窗口可以处理更多的其他事务,再加上Direct11对显卡驱动调度优化性能得以数量级提升,原来播放8K的图片列表都比较卡顿的情况得到了大幅度改善。现在12K的图片能以30张每秒的速度进行1:1的播放,16K的图片能以25张每秒的速度进行播放。经过一次对无损压缩像素缓存后,原方案15张16K的图片内存占用24G降为4G。通过采用本专利技术公开的上述技术方案,得到了如下有益的效果:本专利技术为渲染组件创建了独立的线程,而且不影响其他组件的渲染,利用媒体时钟定时触发图片渲染请求消息,跳过WPF中Dispatcher按照优先级的排队,减少渲染延迟,减少Dispatcher的压力,避免了程序出现卡顿的问题;优化了图片缓存的载体,由现有技术的多次像素缓存升级为单次像素内容缓存,在编码线程中对图片进行单次纹理缩放来减少图片像素内容的大小,将解码工作独立到GPU中去运行,缓解了CPU的工作压力,图片渲染处理效率高。以上仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
1.一种在大屏可视化系统中高效图片渲染方法,其特征在于,包括步骤:/nS1)客户端发送图片渲染请求消息;/nS2)设置媒体时钟,利用所述媒体时钟定时触发图片渲染请求消息;/nS3)可视化应用程序对触发的图片渲染请求消息进行响应,根据所述图片渲染请求消息从预建立的数据库中调用待渲染的图片;/nS4)利用编码线程将所述待渲染的图片组装成图片缓存流;/nS5)利用所述可视化应用程序对所述图片缓存流进行渲染操作,获得渲染操作后的图像数据;/nS6)通过DirectX调用显卡驱动接口进行图像数据处理,利用显卡接收处理后的图像数据,并对所述图像数据进行解码;/nS7)获取目标区域数据和当前图像区域数据,根据所述目标区域数据和所述当前图像区域数据对所述图像数据进行调整;/nS8)将调整后的目标区域数据和当前图像区域数据进行图像交换,获得交换后的图片;/nS9)利用桌面窗口管理器将交换后的图片刷新到桌面渲染区域,完成图片渲染。/n

【技术特征摘要】
1.一种在大屏可视化系统中高效图片渲染方法,其特征在于,包括步骤:
S1)客户端发送图片渲染请求消息;
S2)设置媒体时钟,利用所述媒体时钟定时触发图片渲染请求消息;
S3)可视化应用程序对触发的图片渲染请求消息进行响应,根据所述图片渲染请求消息从预建立的数据库中调用待渲染的图片;
S4)利用编码线程将所述待渲染的图片组装成图片缓存流;
S5)利用所述可视化应用程序对所述图片缓存流进行渲染操作,获得渲染操作后的图像数据;
S6)通过DirectX调用显卡驱动接口进行图像数据处理,利用显卡接收处理后的图像数据,并对所述图像数据进行解码;
S7)获取目标...

【专利技术属性】
技术研发人员:钱苏晋刘爱军向茂军
申请(专利权)人:北京恒泰实达科技股份有限公司
类型:发明
国别省市:北京;11

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

1