一种用于高速视频数据的自适应采集与存储方法

文档序号:30985023发布日期:2022-08-03 01:21阅读:168来源:国知局
一种用于高速视频数据的自适应采集与存储方法

1.本发明涉及视频存储的技术领域,尤其涉及一种用于高速视频数据的自适应采集与存储方法。


背景技术:

2.高速视频测量系统能够在秒级时获得数百帧或千帧序列高分辨率影像,在工业测量领域有着广泛的应用。使用高分辨率、高帧频的高速相机进行实验时候必然会产生海量的数据。数据的采集存储效率与高分辨率、高帧频的数据传输存储速度不匹配会影响高速采集存储的效率,造成采集到的数据不完整或者丢帧。大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。
3.提升高速视频测量领域中海量数据实时采集存储效率是业内亟需解决的问题。在提高高速视频采集存储效率问题上,许多学者针对这个问题提出了许多解决方案。这些方案可以总结为:(1)基于fpaga以nand flash为存储介质;(2)基于计算机内核实现采集存储队列优化和数据并行传输;(3)提升采集缓冲池空间提升采集速率;(4)结合powerpc与fpga基于sata的固态硬盘提高存储效率等。
4.然而以nand flash存储介质的存储方案设计复杂而且不易实现,很难应用于实际的工程实验中,基于内核的实现采集存储队列优化确实可以提高采集和存储速率,但两者不匹配会影响高速采集存储的效率,造成采集到的数据不完整或者丢帧,难以实现海量数据的实时无损存储。


技术实现要素:

5.本发明提供了一种用于高速视频数据的自适应采集与存储方法,通过数据拟合方式获取采集设备的采集帧频和采集图像的开窗大小、存储设备的存储速度和采集图像的开窗大小之间的函数关系式,在采集时间和数据量一定的情况下,根据采集帧频,计算开窗大小,实现自适应采集,再依据开窗大小,计算存储速度,避免由于采集帧频和存储速度之间的不匹配造成采集到的数据不完整或者丢帧的情况,同时根据存储速度,判定是否需要先暂存至存储设备的缓存区,提供存储设备的缓存区利用率,实现自适应存储,另外,利用处理器内存与采集缓存区的关系,设计更有益于采集效率的采集缓存区大小,增加采集的效率。
6.本发明可通过以下技术方案实现:
7.一种用于高速视频数据的自适应采集与存储方法,包括以下步骤:
8.步骤一、高速视频数据的采集
9.针对高速视频数据采集的实际应用要求,在采集时间、采集数据流一定的情况下,根据采集设备的采集帧频,计算采集图像的开窗大小,执行采集操作;
10.步骤二、高速视频数据的传输
11.在总缓冲区域小于50%的处理器内存容量的前提下,以采集图像的开窗大小作为单个内存缓冲区的容量,计算内存缓冲区的个数,然后采用循环读写的方式依次逐一向各个内存缓冲区读写高速视频数据;
12.步骤三、高速视频数据的存储
13.根据开窗大小,计算存储设备的存储速度,再判断所述存储速度是否大于存储设备的缓存区对应的存储速度,若是,则先将高速视频数据存储至硬盘缓存区,再存储之硬盘介质里;否则,直接将高速视频数据存储至硬盘介质里。
14.进一步,在采集时间、采集数据流一定的情况下,利用数据拟合方式获取采集设备的采集帧频和采集图像的开窗大小之间的函数关系式,所述函数关系式设置为
15.p=τ+σcos(αx)+ρsin(αx)
16.其中,p表示采集图像的开窗大小,单位是bite,x表示采集帧率,单位是fps/s,τ、σ、ρ、α表示常数;
17.利用数据拟合方式获取存储设备的存储速度和采集图像的开窗大小之间的函数关系式,所述函数关系式设置为
18.p=ae
(bs)
19.其中,s表示存储设备的传输速度,p表示采集图像的开窗大小,a、b表示常数。
20.进一步,在所述采集时间设置为60s-100s、采集得到的数据量设置为5g-8g的情况下,所述采集设备的采集帧频和采集图像的开窗大小之间的函数关系式中的各个常数设置为
21.τ=1.38
×
107,σ=-1.065
×
107,ρ=-8.374
×
106,α=0.005126;
22.所述存储设备的存储速度和采集图像的开窗大小之间的函数关系式中的各个常数设置为a=3463000,b=-0.002282。
23.进一步,多个内存缓冲区依次标号为0、1、2

n,所述循环读写方式设置为高速视频数据依次写入0号、1号、2号

n号、0号、1号

内存缓冲区,再依次从0号、1号、2号

n号、0号、1号

内存缓冲区读出。
24.进一步,所述采集设备设置为cmos高速相机,所述存储设备设置为m.2型nvme协议的高速固态硬盘,使用多根光纤介质线缆将高速相机的接口与cameralink高速采集卡连接起来,再经过两根多根光纤介质线缆将cameralink高速采集卡与存储设备连接起来,数据传输接口使用cameralink接口,
25.通过cameralink高速采集卡控制cmos高速相机进行视频采集,再经过光纤介质线缆将视频传输存储至高速固态硬盘。
26.本发明有益的技术效果在于:
27.本发明式在高速视频采集存储领域,旨在提高高速视频的采集存储效率,建立采集自适应模型以及设计与采集图像大小相同的多个内存缓冲区增加采集的效率。建立图像开窗大小与硬盘传输速度的自适应模型,提高硬盘缓存区的利用效率。
28.(1)利用计算机的处理器内存与采集缓冲区的关系,设计更有益于采集效率的采集缓冲区大小,增加采集的效率。
29.(2)建立关于采集图像的开窗大小与采集帧率之间的自适应模型,采集图像的时
候能够选择最适应的采集帧率或者开窗大小,从而提高高速视频采集效率。
30.(3)建立关于存储图像的开窗大小建立与硬盘的存储速度的自适应模型,能够根据硬盘的存储速度实现是否经过硬盘缓存区进行存储即有缓存区has buffer或者无缓存区no buffer的存储方式,提高硬盘缓存区的利用效率。
附图说明
31.图1为本发明的总体过程示意图;
32.图2为本发明的处理器内存内部多个缓冲区的循环读取过程示意图;
33.图3为本发明的采集存储自适应算法示意图。
具体实施方式
34.下面结合附图及较佳实施例详细说明本发明的具体实施方式。
35.如图1和3所示,本发明提供了一种用于高速视频数据的自适应采集与存储方法,包括以下步骤:
36.步骤一、高速视频数据的采集
37.针对高速视频数据采集的实际应用要求,在采集时间、采集数据流一定的情况下,根据采集设备的采集帧频,计算采集图像的开窗大小,执行采集操作。
38.根据采集传输存储数据流,存储到的数据为:
39.s=t
×f×
p
40.其中,t为采集时间,f为采集帧率,p为采集图像的开窗大小即为图像的长和宽m
×
n。
41.根据上式可知,采集的效率与采集帧频、采集时间以及采集图像的大小有关,在采集时间固定的情况下,采集的帧频与采集的开窗大小是影响采集数据流的主要参数,在保证数据流不变的情况下,改变自变量采集帧频,因变量采集开窗大小进行适当改变,就可以保证数据流不变。
42.下表表示采集时间固定为60s,数据流固定为5g的情况下,不同采集帧频下对应的开窗大小范围。
[0043][0044][0045]
利用数据拟合方法建立采集帧率与开窗大小之间的函数关系式,经过实验测试,利用牛顿法和通用全局优化的拟合方法获取的函数关系式能够使得拟合结果的均方误差
与均方根误差以及确定系数达到最优,因此选用其拟合结果作为最终的函数关系式模型,如下所示
[0046]
p=τ+σ
×
cos(x
×
a)+ρ
×
sin(x
×
a)
[0047]
其中,p表示采集图像的开窗大小,单位是bite,x表示采集帧率,单位是fps/s,τ、σ、ρ、α表示常数,τ=1.38
×
107,σ=-1.065
×
107,ρ=-8.374
×
106,α=0.005126。
[0048][0049]
为了验证上述函数关系式模型的适应性,我们设置了不同的采集时间、对应的不同采集数据流,观测函数关系式模型中常数的变化情况。
[0050][0051]
将不同采集时间与采集数据量利用牛顿法和通用全局优化法拟合出曲线计算关联度,可以看出几种曲线高度关联,以此验证函数模型的正确性。
[0052][0053]
使用新的采集帧频的间隔测试与开窗大小的关系,利用相同的方法拟合曲线,和开始的函数进行曲线关联度的测试,计算两条曲线的弗雷歇距离,弗雷歇距离是一种路径空间相似性的描述,可以很好的比较两条曲线的关联度。
[0054]
从上表判断,通过不同采集时间t与不采集数据量的条件下,参数的改变符合数据拟合的关联度变化范围。
[0055]
步骤二、高速视频数据的传输
[0056]
在总缓冲区域小于50%的处理器内存容量的前提下,以采集图像的开窗大小作为单个内存缓冲区的容量,计算内存缓冲区的个数,然后采用循环读写的方式依次逐一向各个内存缓冲区读写高速视频数据。
[0057]
基于高速视频测量采集的过程中需要高效的缓冲区用于数据的缓冲,磁盘缓存,又称磁盘快取,实际上就是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“缓冲池”),当保存到内存池中的数据达到一个程度时,便将数据保存到
硬盘中,这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。
[0058]
缓冲池设计太小,高速相机曝光和高速数据传输到采集卡的数据还没有被存储就会丢失,缓冲区设计太大,计算机资源占用过多,同一计算机其他程序运行也需要计算机内存空间,因此有可能造成系统奔溃,常见的计算机反应延迟。
[0059]
本发明设计实验测试了44gb内存卡的计算机环境下,最大有多少空间可以用来作为高速视频采集过程中缓冲池空间。第1次实验申请内存缓冲区4000个,到第5次申请5500个缓冲区有系统卡的现象,因此调整缓冲区个数至5800-5850之间,逐渐缩小范围,确定具体可申请多少缓冲区。在第15次实验时达到内存申请的极限,经过计算可以知道,此时缓冲池容量大于22gb,其中每个缓冲区大小为4000kb,超过内存容量的一半,实验结果如下表所示:
[0060][0061]
因此,设定缓冲池的大小不超过计算机处理器内存的50%。
[0062]
采集设备如高速相机由于高速曝光并将数据通过高速传输介质与接口传输至采集卡,采集卡接受后将数据送至内存缓冲池,但是数据传输速度过高,缓冲池一定会被填满,填满后,高速相机产生的数据将不会存储在内存缓冲池中,会被采集卡丢弃,如此一来就会造成丢帧,后果非常严重。由于缓冲池内部包括多个缓冲区,本发明提出可采用循环读写方式来对采集到的数据进行存储,同时每个缓冲区可以重复写入,最大限度地避免了丢帧问题。可以利用如下方程式计算缓冲区的个数
[0063]
c=δ
×
β
[0064]
其中,c为缓冲池在计算机占用的内存空间,δ为缓冲区的个数,β为缓冲区的大小即图像的开窗大小。
[0065]
记多个内存缓冲区依次标号为0、1、2

n,该循环读写方式设置为高速视频数据依次写入0号、1号、2号

n号、0号、1号

内存缓冲区,再依次从0号、1号、2号

n号、0号、1号

内存缓冲区读出,具体如下:
[0066]
缓冲池是在内存中申请的一块空间,用来存放高速相机曝光产生的数据,经由高速数据传输接口到达采集卡,采集卡传送至对应的缓冲区。如图2所示,有4个缓冲区,分别有自己对应的缓冲区编号,缓冲区编号的设计为了能写入和读取某一具体的缓冲区,此时0-2号内存缓冲区均已写入数据,若还有新的数据传输需要写入,会写入3号内存缓冲区。在所有缓冲区都占用后,再有新的数据传输需要写入,会从第0号缓冲区继续写入,如此循环
往复,这就是循环读写方式的设计。
[0067]
在循环写入缓冲池之后会经过异步i/o读写,异步i/o能够使得缓冲区内的数据分线程存储保证了存储的效率,在异步线程结束时候会对存储的帧序号进行检验,保证了缓冲区存储过程中不丢帧。
[0068]
步骤三、高速视频数据的存储
[0069]
根据开窗大小,计算存储设备的存储速度,再判断所述存储速度是否大于存储设备的缓存区对应的存储速度,若是,则先将高速视频数据存储至硬盘缓存区,再存储之硬盘介质里;否则,直接将高速视频数据存储至硬盘介质里。
[0070]
大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,所以根据图像大小与硬盘的写入速度进行有无硬盘缓存区的自适应判断是提高存储效率的一个方面。
[0071]
首先,对硬盘的存储速度进行测试,得到硬盘的写入速度的参数。
[0072][0073]
其次,通过大量的实验测试,获取不同存储速度下的采集图像的开窗大小的大量数据,如下表所示。
[0074][0075]
通过牛顿法和通用全局优化的方法对硬盘的写入速度与开窗大小进行数据拟合,得到最优的函数关系式模型,如下式所示。
[0076]
p=ae
(bs)
[0077]
其中,s表示存储设备的传输速度,p表示采集图像的开窗大小,a、b表示常数。a=3463000,b=-0.002282。
[0078]
通过计算不同拟合曲线的关联度可知,牛顿法和通用全局优化的方法所得到的函数模型的均方根误差以及确定系数达到最优,几种拟合曲线的关联度如下表所示。
[0079][0080]
然后,利用函数关系式,根据采集图像的开窗大小,计算存储设备的存储速度,再判断该存储速度是否大于存储设备的缓存区对应的存储速度,若是,则先将高速视频数据存储至硬盘缓存区,再存储之硬盘介质里;否则,直接将高速视频数据存储至硬盘介质里,选择存储效率最高的存储方式,减少图像损失,实现自适应存储。
[0081]
基于上述采集与存储方法可以搭建如图所示的硬件系统,该硬件系统由以下几个模块组成:(1)高速图像采集模块,可使用cameralink高速相机作为图像的采集模块,其分辨率为2048*2020,采集帧频为1-500fps,图像位深为8bits。
[0082]
(2)高速传输硬件模块,可使用两根高速数据传输线如光纤介质线缆,数据传输接口是cameralink,总传输速度为2.5gb/s,高速数据传输线连接高速相机与高速图像采集卡如cameralink高速采集卡,该高速图像采集卡挂载在戴尔图形工作站pcie3.0*4的接口上,就可以通过cameralink高速采集卡控制cmos高速相机进行视频采集。
[0083]
(3)高速存储硬件模块。以m.2型nvme协议高速固态硬盘samsung970pro512gb作为存储介质,固态硬盘挂载在戴尔图形工作站m.2接口上,再经过多根光纤介质线缆将cameralink高速采集卡与存储设备连接起来,就可以经过光纤介质线缆将视频传输存储至高速固态硬盘。
[0084]
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,因此,本发明的保护范围由所附权利要求书限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1