一种基于异步渲染的实物展示方法及系统的制作方法

文档序号:8946056阅读:243来源:国知局
一种基于异步渲染的实物展示方法及系统的制作方法
【技术领域】
[0001]本发明涉及实物展示技术领域,具体涉及一种基于异步渲染的实物展示方法及系统。
【背景技术】
[0002]在通过视频进行实物展示过程中,一般需要通过摄像头或摄像机采集实物的图像信息,然后将实物的图像通过显示设备以视频的方式展示出来。在图像以视频的方式展示过程中,大致包括了帧处理、渲染以及显示三部分。
[0003]帧处理是通过读取摄像头采集的帧数据并转换成开源计算机图像库(OpenSource Computer Vis1nibrary,OpenCV)图像,并将该图像送入每个自定义的过滤器(Filter)中进行处理,过滤器是基于DirectShow创建的组件对象模型(COM),执行一些多媒体流的操作,如绘图、批注等。过滤器的种类有很多,不同种类的过滤器相互连接在一起就形成了过滤器图表。同时,帧处理过程还包括通过开源计算机图像库对视频图像进行的处理包括如视频绘图、视频的旋转、图像的纠偏、图像的自动捕捉与拍照、图像的自动去黑边、剪切等,高效率的实现了视频图像的实时处理。
[0004]由于在帧处理的时候引入了开源计算机图像库,这无疑简化了图像处理的难度,也降低了代码的复杂度。但同时也带来了一个问题,就是在渲染的时候OpenCV的图像不能直接显示到屏幕上,而是要先经过转换,把OpenCV的图像转化为hbitmap (位图句柄)对象,即转换成适应于位块转换方式的位图句柄图像(位图句柄图像是通过位图句柄对OpenCV的图像进行相应的编码形成的图像),然后通过bitblt (位块转换)的方式进行图像的显示。图像转换是相当损耗CPU的性能的,同时bitblt的渲染由于没有通过硬件加速,渲染的效率就比较低了,这样当帧数据经过帧处理到渲染整个过程所需要的时间就长了,这个流畅的时间长度直接影响了用户的体验。

【发明内容】

[0005]针对以上不足,本发明的目的之一在于提供一种基于异步渲染的实物展示方法,其通过异步渲染的方式使得帧处理的逻辑和渲染的逻辑分别运行在不同的两个线程当中,比原来两个逻辑都在同一个线程当中进行流水式的操作效率更好,也提高了用户的体验度。
[0006]为了实现上述目的,本发明采取的技术方案是:
[0007]一种基于异步渲染的实物展示方法,其包括以下步骤:
[0008]步骤1、通过摄像头对实物进行图像扫描,获取所述实物的视频图像;
[0009]步骤2、采集所述视频图像;
[0010]步骤3、创建帧处理线程,对所述视频图像进行帧处理;
[0011]步骤4、创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立,帧处理后的视频图像压入到该渲染队列中;
[0012]步骤5、通过渲染队列处理线程实时检测所述渲染队列中是否存在视频图像,如果渲染队列中存在视频图像,则渲染队列处理线程对渲染队列中的视频图像进行渲染后使其显示在用户指定的窗口中。
[0013]所述步骤I还包括通过麦克风捕获音频信息,并将所述音频信息经步骤2-5进行处理。
[0014]所述步骤3中,帧处理将视频图像转换成开源计算机图像库图像,所述步骤5中,渲染队列处理线程将所述开源计算机图像库图像先转换成位图句柄图像,然后再将位图句柄图像通过位块转换的方式在显示在用户指定的窗口中。
[0015]所述步骤3中,每次帧处理后执行挂起操作。
[0016]所述步骤3中,如果在单位时间内从摄像头获取的视频图像帧数大于帧处理的视频图像帧数,则执行丢帧操作,所述丢帧操作为将多余部分不进行帧处理以及渲染而直接释放,所述多余部分为在单位时间内从摄像头获取的视频图像帧与帧处理的视频图像帧相减后的视频图像帧。
[0017]本发明的另一目的在于提供一种基于异步渲染的实物展示系统,其通过异步渲染的方式使得帧处理的逻辑和渲染的逻辑分别运行在不同的两个线程当中。比原来两个逻辑都在同一个线程当中进行流水式的操作效率更好,也提高了用户的体验度。
[0018]为了实现上述目的,本发明采取的技术方案是:
[0019]一种基于异步渲染的实物展示系统,其包括:
[0020]图像扫描单元,通过摄像头对实物进行图像扫描,获取所述实物的视频图像;
[0021]图像采集单元,用于采集所述视频图像;
[0022]帧处理单元,用于创建帧处理线程,用于对所述视频图像进行帧处理;
[0023]渲染队列创建单元,用于创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立,帧处理后的视频图像压入到该渲染队列中;
[0024]渲染和显示单元,用于通过渲染队列处理线程实时检测所述渲染队列中是否存在视频图像,如果渲染队列中存在视频图像,则渲染队列处理线程对渲染队列中的视频图像进行渲染后使其显示在用户指定的窗口中。
[0025]所述图像扫描单元还包括音频信息采集单元,用于通过麦克风捕获音频信息,并将所述音频信息经图像采集单元、帧处理单元、渲染队列创建单元以及渲染和显示单元依次进行处理。
[0026]所述图像扫描单元中,帧处理将视频图像转换成开源计算机图像库图像,所述渲染和显示单元中,渲染队列处理线程将所述开源计算机图像库图像先转换成位图句柄图像,然后再将位图句柄图像通过位块转换的方式在显示在用户指定的窗口中。
[0027]所述帧处理单元中,帧处理后执行挂起操作。
[0028]所述帧处理单元中,如果在单位时间内从摄像头获取的视频图像帧数大于帧处理的视频图像帧数,则执行丢帧操作,所述丢帧操作为将多余部分不进行帧处理以及渲染而直接释放,所述多余部分为在单位时间内从摄像头获取的视频图像帧与帧处理的视频图像帧相减后的视频图像帧。
[0029]与现有技术相比,本发明的有益效果在于:
[0030]1、其通过异步渲染的方式使得帧处理的逻辑和渲染的逻辑分别运行在不同的两个线程当中,比原来两个逻辑都在同一个线程当中进行流水式的操作效率更好,也提高了用户的体验度。
[0031]2、在每次帧处理后执行挂起(通过sle印函数实现)操作,这样既可以降低CPU的使用率,也可以控制帧率。
[0032]3、在人眼分辨不出的情况下,通过适当丢帧的操作,进一步提高流畅度。
【附图说明】
[0033]图1为本发明一种基于异步渲染的实物展示方法的流程图。
【具体实施方式】
[0034]下面结合【具体实施方式】对本发明作进一步的说明。
[0035]请参照图1所示,一种基于异步渲染的实物展示方法,其大致包括以下步骤:
[0036]步骤1、通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像;
[0037]步骤2、采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0038]步骤3、创建帧处理线程;
[0039]步骤4、通过帧处理线程对存储单元中的在前视频图像进行帧处理;
[0040]步骤5、帧处理完毕后,创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立;
[0041]步骤6、将帧处理后的在前视频图像压入到所述渲染队列中;
[0042]步骤7、通过渲染队列处理线程实时检测所述渲染队列中是否存在在前视频图像,如果存在,则执行步骤8;
[0043]步骤8、通过渲染队列处理线程对该在前视频图像进行渲染后使其显示在用户指定的窗口中;
[0044]步骤9、在步骤8中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行步骤8,反之,则执行步骤10 ;
[0045]步骤10、对实物进行再次图像扫描,获取所述实物的在后视频图像,并将该在后视频图像依次执行步骤2、4、6、7的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0046]其中,上述步骤2中的存储单元、以及步骤9-10涉及将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离技术,仅为本发明的一种优选方案,下面对各步骤的实现方式及实现过程做一详细描述。
[0047]步骤I涉及图像扫描
[0048]通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像。例如通过CMOS (Complementary Metal Oxie Semiconductor)镜头对待扫描的实物进行图像扫描,也即拍摄,从而获取所述实物的视频图像。同时,根据实际需要,可通过麦克风捕获实物拍摄现场的音频信息,音频信息的处理过程与视频图像的处理过程相似,这里仅以视频图像进行详细的说明。这种拍摄式扫描的方式对扫描实物的介质没有要求,而且可实现对普通平面实物及书籍等立体实物的扫描。将首次扫描获取的实物的视频图像定义为在前视频图像,以与在后扫描获取的视频图像进行区分。
[0049]步骤2涉及图像采集和存储
[0050]采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中,存储单元为在内存中创建;视频图像通过视频采集卡进行采集,然后再由视频采集过滤器(Video Capture Filter)从视频采集卡中获得视频图像数据流进行解码。解码后的视频图像直接存储到存储单元中,这样帧处理即可直接从存储单元中调取。[0051 ] 步骤3涉及创建帧处理线程
[0052]为了实现异步渲染,将原本只有一个线程实现帧处理和渲染的过程,分割成由独立的帧处理线程实现帧处理过程以及由独立的渲染队列处理线程实现渲染过程,帧处理过程的帧数据(视频图像,开始为在前视频图像)来自于存储单元,帧处理后的帧数据在储存到渲染队列中,渲染队列处理线程只针对渲染队列中的帧数据进行渲染。创建帧处理线程以及渲染队列处理线程只执行一次,之后的各种操作时忽略这两个步骤。
[0053]步骤4涉及帧处理
[0054]帧处理是通过帧处理线程读取摄像头采集的帧数据并转换成开源计算机图像库(Open Source Computer Vis1nibrary, OpenCV)图像,并将该图像送入每个自定义的过滤器(Filter)中进行处理,过滤器是基于DirectShow创建的组件对象模型(C0M),执行一些多媒体流的操作,如绘图、批注等。过滤器的种类有很多,不同种类的过滤器相互连接在一起就形成了过滤器图表。同时,帧处理过程还包括通过开源计算机图像库对视频图像进行的处理包
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1