一种提高文件拍摄流畅性的方法及系统的制作方法

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

【发明内容】

[0006]针对以上不足,本发明的目的之一在于提供一种提高文件拍摄流畅性的方法,其通过将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离,刷新较快时帧进行重复使用,可以在界面操作频繁的时候设置较大的渲染速度,让绘图或者批注的操作相对流畅,同时通过异步渲染的方式使得帧处理的逻辑和渲染的逻辑分别运行在不同的两个线程当中,比原来两个逻辑都在同一个线程当中进行流水式的操作效率更好,提供了更好的用户体验。
[0007]为实现上述目的,本发明采取的技术方案是:
[0008]—种提高文件拍摄流畅性的方法,其包括以下步骤:
[0009]步骤1、通过摄像头对文件进行图像扫描,获取所述文件的在前视频图像;
[0010]步骤2、采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0011]步骤3、创建帧处理线程;
[0012]步骤4、通过帧处理线程对存储单元中的在前视频图像进行帧处理;
[0013]步骤5、帧处理完毕后,创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立;
[0014]步骤6、将帧处理后的在前视频图像压入到所述渲染队列中;
[0015]步骤7、通过渲染队列处理线程实时检测所述渲染队列中是否存在在前视频图像,如果存在,则执行步骤8;
[0016]步骤8、通过渲染队列处理线程对该在前视频图像进行渲染后使其显示在用户指定的窗口中;
[0017]步骤9、在步骤8中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行步骤8,反之,则执行步骤10 ;
[0018]步骤10、对文件进行再次图像扫描,获取所述文件的在后视频图像,并将该在后视频图像依次执行步骤2、4、6、7的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0019]所述步骤I还包括通过麦克风捕获音频信息,并将所述音频信息经步骤2-10进行处理。
[0020]所述步骤4中,帧处理线程将在前视频图像转换成开源计算机图像库图像,所述步骤8中,渲染队列处理线程将所述开源计算机图像库图像先转换成位图句柄图像,然后再将位图句柄图像通过位块转换的方式在显示在用户指定的窗口中。
[0021]所述步骤4中,每次帧处理后执行挂起操作,所述间隔时间包括该挂起的时间。
[0022]所述步骤4中,如果在单位时间内从摄像头获取的视频图像帧数大于帧处理的视频图像帧数,则执行丢帧操作,所述丢帧操作为将多余部分不进行帧处理以及渲染而直接释放,所述多余部分为在单位时间内从摄像头获取的视频图像帧与帧处理的视频图像帧相减后的视频图像帧。
[0023]本发明的另一目的在于提供一种提高文件拍摄流畅性的系统,其通过将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离,刷新较快时帧进行重复使用,可以在界面操作频繁的时候设置较大的渲染速度,让绘图或者批注的操作相对流畅,同时通过异步渲染的方式使得帧处理的逻辑和渲染的逻辑分别运行在不同的两个线程当中,比原来两个逻辑都在同一个线程当中进行流水式的操作效率更好,提供了更好的用户体验。
[0024]为实现上述目的,本发明采取的技术方案是
[0025]—种提高文件拍摄流畅性的系统,其包括:
[0026]图像扫描单元,用于通过摄像头对文件进行图像扫描,获取所述文件的在前视频图像;
[0027]图像采集和存储单元,采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0028]帧处理线程创建单元,用于创建帧处理线程;
[0029]帧处理单元,用于通过帧处理线程对存储单元中的在前视频图像进行帧处理;
[0030]渲染队列创建单元,用于在帧处理完毕后,创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立;
[0031]压入单元,用于将帧处理后的在前视频图像压入到该渲染队列中;
[0032]检测单元,用于通过渲染队列处理线程实时检测所述渲染队列中是否存在在前视频图像,如果存在,则执行渲染和显示单元;
[0033]渲染和显示单元,用于通过渲染队列处理线程对该在前视频图像进行渲染后使其显示在用户指定的窗口中;
[0034]比较单元,用于在渲染和显示单元中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行渲染和显示单元,反之,则执行图像再扫描单元;
[0035]图像再扫描单元,用于对文件进行再次图像扫描,获取所述文件的在后视频图像,并将该在后视频图像依次执行图像采集和存储单元、帧处理单元、压入单元以及渲染和显示单元的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0036]所述图像扫描单元还包括音频信息采集单元,用于通过麦克风捕获音频信息,并将所述音频信息经图像采集和存储单元、帧处理线程创建单元、帧处理单元、渲染队列创建单元、压入单元、检测单元、清染和显示单元、比较单元和图像再扫描单元依次进行处理。
[0037]所述帧处理单元中,帧处理线程将在前视频图像转换成开源计算机图像库图像,所述渲染和显示单元中,渲染队列处理线程将所述开源计算机图像库图像先转换成位图句柄图像,然后再将位图句柄图像通过位块转换的方式在显示在用户
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1