一种用于多摄像头存储并同步回放显示算法

文档序号:8434150阅读:357来源:国知局
一种用于多摄像头存储并同步回放显示算法
【技术领域】
[0001]本发明涉及一种算法,具体涉及一种用于多摄像头存储数据并同步回放显示算法。
【背景技术】
[0002]随着现在科技的进步,网络传输速度的增加,硬件条件的提升,有时候需要用多台摄像机多角度观察某一对象,对该对象的画面录制成视频。摄像头传输的数字信号存储方式和怎样同步回放显示存储方式成了一个问题。
[0003]现在的视频存储方式多为接受到数据帧后按数据帧直接存储和提取,如果有数据帧丢失或者每秒接受数据帧数量不同,则会造成画面不同步现象,并且随着显示时间增加不同步现象会越来越严重。
[0004]市面上的摄像头录制存储方案多为内存存储或者磁盘存储。只储存在内存便捷,但内存消耗比较大,可存储时间比较短。只存储在磁盘可存储数据较大,但会不停对磁盘进行写入操作,很大影响磁盘使用寿命。怎样的一种读取方便,对硬盘伤害小的存储方式成为了难题。

【发明内容】

[0005]本发明的目的在于提供了一种多摄像头视频采集存储并同步回放算法。
[0006]本发明的技术方案是,当软件启动时登陆连接多个摄像头,摄像头会将实时采集画面转换成数据流的形式发送回计算机上,当计算机接收到完整的一帧后存储该帧,并在结构体里记录该帧的存储时间、存储方式和存储位置。
【附图说明】
[0007]图1为本发明时间与帧数对应关系图。
[0008]图2为本发明视频接收数据存入内存图。
[0009]图3为本发明内存一次转存100帧数据到磁盘图。
[0010]图4为本发明提取存取视频数据播放图。
【具体实施方式】
[0011]下面结合附图进一步说明本发明的技术方案。
[0012]参见附图1,视频数据通过数据流的方式发送到数据计算机上(主动调用),计算机接收到数据后,判断本次接收数据是否为完整数据,如果不是完整数据继续等待接收直到数据完整。编写一个帧信息结构体SaveData如下:
struct SaveData{
BYTE *pBuffer; long long filepos;
DWORD dwBufSize;
char type;//0 Cache I Hard disk
int sec;
int mis;
};
接收到完整一帧数据后将视频帧数据同帧位置(预留,保存硬盘使用)、帧大小、保存介质、当前秒、当前毫秒保存到结构体中,再将结构体放入vector容器中。
[0013]启动一个线程检测当前缓存储存数据大小参见图2,当缓存储存数据大小超过预设缓存,打开磁盘存储数据文件(预先建立)将100帧数据复制到文件中,同时删除数据缓存空间,并将存储帧信息结构体中的存储介质该为磁盘,将文件存储位置地址赋值给filepos,关闭打开文件。当软件关闭时,将所有缓存文件中的数据写入文件中。
[0014]编写一个时间对应帧数结构体Misnode如下: struct Misnode
{
int mis; int frame
struct Misnode 氺next;
};
参见图3,建立1000000个Misnode类型指针数组为Misnode *secs [1000000](能保证24小时录制时间),秒数为secs下标,毫秒为secs []成员,具体存储方式如图所示,获取存储帧数时间,秒对应为secs的下标,晕秒对应为获取帧数时间部分_秒数(同一秒内_秒时间一定是按从小到大顺序出现),next指针初始化为NULL,当有下一个数据时,则把数据的地址赋值给next,形成连续队列,从而实现时间与帧数对应储存。
[0015]当检测线程检测到缓存储存数据大小超过预设缓存,将一帧数据存储到磁盘文件后,相对应的将时间与帧数对应数据存入另一个与磁盘存储文件相对应的磁盘时间数据文件中(预先建立)。
[0016]参见图4,为提取存取视频数据播放图查找时将时间分为秒和晕秒两部分,将秒的时间作为secs下标查找,然后用毫秒部分对比mis,如果毫秒比mis大则对比next对应数据mis,直到毫秒部分小于mis,获取当前帧数。
【主权项】
1.本发明涉及一种算法,具体涉及一种用于多摄像头存储数据并同步回放显示算法。
2.此算法发明了一种使用缓存和磁盘共同存储摄像头帧的存储机制,用于取代磁盘或缓存的单存储模式。
3.根据权利要求1所述的存储系统,其特征是将摄像头数据和时间绑定,用于实时播放和延时播放。
4.根据权利要求2所述的存储系统,其特征在于:有效的利用内存和磁盘的各种特点,从而使摄像头传输的数据能够合理的存储,并且能够实现实时播放和延时播放功能。
5.根据权利要求2所述,该发明涉及一种算法,该算法通过判断接收帧大小是否超过预设大小来判断存储介质。
【专利摘要】本发明揭示了一种用于多摄像头存储数据并同步回放显示算法。当软件启动时登陆连接多个摄像头,摄像头会将实时采集画面转换成数据流的形式发送回计算机上,当计算机接收到完整的一帧后存储该帧,并在结构体里记录该帧的存储时间、存储方式和存储位置。
【IPC分类】H04N5-781
【公开号】CN104754273
【申请号】CN201510092238
【发明人】夏曹俊, 蔡泳
【申请人】夏曹俊, 蔡泳
【公开日】2015年7月1日
【申请日】2015年3月2日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1