CN104301682B - 一种监控视频碎片的恢复方法和装置 - Google Patents
一种监控视频碎片的恢复方法和装置 Download PDFInfo
- Publication number
- CN104301682B CN104301682B CN201410564777.0A CN201410564777A CN104301682B CN 104301682 B CN104301682 B CN 104301682B CN 201410564777 A CN201410564777 A CN 201410564777A CN 104301682 B CN104301682 B CN 104301682B
- Authority
- CN
- China
- Prior art keywords
- fragment
- fstartoffset
- unit
- video
- slice header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开一种监控视频碎片的恢复方法及装置,其中,该方法包括:步骤1:通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展,搜索到的视频片段的集合记为集合F;步骤2:首先集合F中的元素根据不同的通道分成不同的组别;步骤3:读取第一个组别的元素,对该组别的元素按片段的开始时间信息进行从大到小的排序;步骤4:判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;步骤5:由步骤4获得的链表FLIST中的元素所包含的片段信息属于同一个视频文件,将其恢复为相应的视频文件;步骤6:读取下一个组别的元素,重复步骤3‑步骤5,直到所有组别的视频片段恢复为相应的视频文件。
Description
技术领域
本发明属于计算机数据恢复技术领域,涉及视频取证安全技术,具体涉及一种监控视频的恢复方法和装置。
背景技术
目前,许多刑事案件的侦查需要依赖于监控设备上的监控视频,监控视频在刑侦人员侦查破案中扮演着重要的角色,侦查人员经常遇到在调取监控视频时,发现相应的监控视频因为各种各样的原因无法获取,因此监控视频的恢复是侦查中的非常重要的环节。因此,对监控视频的恢复技术的研究具有重大意义。
传统的数据恢复技术,大多数依赖于文件系统的元信息,如文件分配表/目录结构等来恢复删除的文件,该技术对于元数据被覆盖的情况下却无能为力。并且针对监控视频的恢复,传统的恢复技术手段在很多情况下无法使用,因为监控视频的存储往往采用的是厂家特有的存储格式,而这些存储格式并非主流的文件系统。
目前,市面上已经有监控视频恢复的相关的软件,但这些软件采用的是传统的基于头部-尾部特征的方法进行恢复。这样导致恢复出来的视频碎片虽然能够播放,但却存在视频碎片过多不易查看等缺点。
发明内容
因此,针对上述的问题,本发明提出一种监控视频碎片的恢复方法和装置,该方法除了能够恢复视频碎片,还能将相应的视频碎片进行组合合成一个完整的视频,从而解决了现有恢复技术存在的恢复碎片过多不易查看等缺点。
为了解决上述技术问题,本发明所采用的思路是,采用特征搜索、时间唯一性分析、通道验证等技术,从存储监控视频的存储介质上恢复视频,恢复后的视频具有完整的通道时间信息;最后将属于同个文件的视频碎片进行合并生成一个完整视频文件。
下面先介绍现有视频文件的基本结构。为了能够实现在任意时间段内对特定视频文件的查看或者导出,监控厂商在设计视频文件结构的时候,一般情况下采用片段式的结构(所谓的片段式结构即一个视频由一个或者多个片段组成),且一个片段表示一帧的视频数据。而组成视频文件的片段一般情况下由两部分组成,即片段头部和实际的视频数据。
其中,片段头包含了时间FTIME、通道FCHANAL以及片段大小FSIZE等信息。片段头中的时间FTIME信息指的是当前帧所对应的录制时间信息,通道FCHANAL信息指的是当前帧所属的通道信息,而片段大小FSIZE则是用于描述当前片段的数据大小。除此之外,多数情况下片段头的开始有固定的数据特征,记为片段头特征,用于表示新片段的开始。
令F={f1,f2,.....,fn}表示视频片段的集合。其中,集合F中的元素f包含五个属性:a、片段大小FSIZE;b、片段的开始时间FSTARTTIME;c、片段的结束时间FENDTIME;d、片段的开始偏移FSTARTOFFSET;e、片段的通道号FCHANAL,即f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL}。
具体的,本发明的一种监控视频碎片的恢复方法,包括以下步骤:
步骤1:片段的搜索及扩展步骤,该步骤通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};
步骤2:视频碎片的恢复步骤,包括如下过程:
步骤2a:首先将搜索到的集合F中的元素(集合F中的元素也即视频片段,简称片段)根据不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同组别(也即不同通道)片段的集合;
步骤2b:读取第一个组别(例如组别F1)的元素,对该组别的元素按片段的开始时间信息进行排序(例如从大到小的排序方法);
步骤2c:根据片段与片段之间的衔接规则,遍历该组别的元素,判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;链表FLIST初始值为空;
步骤2d:由步骤2c获得的链表FLIST中的元素所包含的片段信息属于该组别的同一个视频文件,按顺序根据元素所包含的片段信息恢复为相应的视频文件;
步骤2e:读取下一个组别的元素,重复步骤2b-步骤2d,直到所有组别(F1,F2,....Fi,.... Fn)的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
具体的,所述步骤1具体包括如下过程:
步骤11:获取视频存储介质的大小DISKSIZE;
步骤12:判断OFFSET是否大于等于DISKSIZE,如果是转步骤112,否则继续下一步;其中,OFFSET为指针变量,其初始值为0;
步骤13:从OFFSET偏移位置读取固定长度(一个扇区大小)的数据块,并用片段头特征作为关键字在数据块中进行片段头部搜索;
步骤14:如果搜索没有命中结果,转步骤110,否则继续下一步;
步骤15:根据片段头合法性判断规则判断相应的命中片段头是否合法,如果不合法转步骤110,否则继续下一步;记该命中结果部位在数据块中的偏移为DATAOFFSET;
步骤16:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},则将FSTARTOFFSETf赋值为(DATAOFFSET + OFFSET),将FSIZEf赋值为片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的时间信息,将FCHANALf赋值为片段头记录的通道信息;
步骤17:根据片段头合法性判断规则判断偏移(FSTARTOFFSETf+ FSIZEf)处是否存在合法的片段头部,如果不存在转步骤111,否则继续下一步;
步骤18:假设偏移(FSTARTOFFSETf+ FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则判断f和f’是否能合并,如果不能合并转步骤111,否则继续下一步;
步骤19:判断片段f和片段f’是否满足片段间是否能合并的判断规则,如果满足则将f和f’合并,并将合并结果赋值给f,转步骤17;
步骤110:OFFSET=OFFSET+扇区大小,并转步骤12;
步骤111:将片段f加入到片段集合F中,OFFSET=FSTARTOFFSETf+ FSIZEf(如果OFFSET为非扇区大小,则采用OFFSET=OFFSET-OFFSET%扇区大小+扇区大小进行修正),并转步骤12;
步骤112:结束。
其中,片段头合法性判断规则具体是:当一个片段头同时满足以下条件时,则该片段头合法:
a、有相应的片段头特征;
b、通道号合法(一般情况下通道号在1~16之间)。
片段间是否能合并的判断规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,片段f1和片段f2同时满足以下条件则表示能合并:
a、片段f1和片段f2必须满足片段与片段之间的衔接规则;
b、FSTARTOFFSETf1+FSIZEf1等于FSTARTOFFSETf2;
c、FSTARTTIMEf1小于FSTARTTIMEf2。
其中,片段与片段之间的衔接规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,当片段f1和片段f2满足以下条件时则表示能衔接:
a、两个片段的通道号相同;
b、两个片段的时间信息相差不超过1秒(即一个片段的开始时间和另一个片段的结束时间相差不超过1秒),用公式表示为FENDTIMEf1 ≤ FSTARTTIMEf2 ≤ FENDTIMEf1 +1。
其中,片段的合并规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,片段f1和片段f2必须满足片段间是否能合并的判断规则才能合并,将合并产生的新片段记为f,则f的各属性如下:
a、FSIZEf 等于FSIZEf1加FSIZEf2;
b、FSTARTTIMEf等于FSTARTTIMEf1;
c、FENDTIMEf等于FENDTIMEf2;
d、FSTARTOFFSETf等于FSTARTOFFSETf1;
e、FCHANALf等于FCHANALf1。
进一步的,所述步骤2的视频碎片的恢复流程如下:
步骤21:将F中的元素按不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同通道片段的集合,对不同组别中的元素按片段的开始时间信息进行从大到小的排序,并设置变量i等于1;
步骤22:判断i是否小于等于n,如果否转步骤210,否则继续下一步;
步骤23:判断Fi中的元素是否为空,如果为空转步骤29,否则继续下一步;
步骤24:从Fi获取开始时间最小的元素f,并将f从集合Fi中移除;
步骤25:建立空链表FLIST,并将f存入FLIST链表之中,同时新建一个变量ft,并将其赋值为f;
步骤26:根据片段与片段之间的衔接规则判断Fi中是否存在与片段ft衔接的片段f’,如果不存在转步骤28,否则继续下一步;
步骤27:将f’从Fi中移除并将f’加入到FLIST中,同时将ft赋值为f’,转步骤26;
步骤28:FLIST中包含的片段信息属于同一个视频文件,按顺序根据片段所包含的信息恢复相应的视频文件,转步骤23;
步骤29:令i等于i+1,转步骤22;
步骤210:结束。
通过由步骤1的片段搜索以及扩展而得到的片段集合F中的元素就可以恢复出相应的视频碎片,这些视频碎片中包含了完整的通道和时间信息。但是,很多情况下这些碎片过于零碎,可能有的视频碎片只有几秒钟,因此不能直接输出视频碎片,需要对视频碎片整合输出。本发明的步骤2实现了对视频碎片的整合,其在整合过程中,首先将各视频碎片分通道存储,因为一般的,个通道之间的视频互不相关;然后通过各种验证规则确保时间唯一性;最后将属于同个文件的视频碎片进行合并,从而实现将不同通道的视频碎片整合为一个整体的监控视频,方便用户查看。
另一方面,为了实现本发明的目的,本发明还提供了一种监控视频碎片的恢复装置,其包括:
片段的搜索及扩展模块,用于通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};
视频碎片的恢复模块,该模块包括如下单元:
搜集单元,用于将搜索到的集合F中的元素(集合F中的元素也即视频片段,简称片段)根据不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同组别(也即不同通道)片段的集合;
排序单元,用于读取第一个组别(例如组别F1)的元素,对该组别的元素按片段的开始时间信息进行从大到小的排序;
衔接判断单元,用于根据片段与片段之间的衔接规则,遍历该组别的元素,判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;链表FLIST初始值为空;
恢复单元,由衔接判断单元获得的链表FLIST中的元素所包含的片段信息属于该组别的同一个视频文件,该恢复单元用于实现按顺序根据元素所包含的片段信息恢复为相应的视频文件;
循环单元,读取下一个组别的元素,重复排序单元、衔接判断单元和恢复单元,直到所有组别(F1,F2,.... Fi,.... Fn)的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
具体的,所述片段的搜索及扩展模块具体包括以下单元:
获取单元:用于获取视频存储介质的大小DISKSIZE;
判断单元:用于判断OFFSET是否大于等于DISKSIZE,如果是转则执行结束单元,否则执行搜索单元;其中,OFFSET为指针变量,其初始值为0;
搜索单元:用于从OFFSET偏移位置读取固定长度(一个扇区大小)的数据块,并用片段头特征作为关键字在数据块中进行片段头部搜索;
结果判断单元,该单元执行如下操作:如果搜索没有命中结果,执行偏移赋值单元,否则执行合法性判断单元;
合法性判断单元,该单元执行如下操作:根据片段头合法性判断规则判断相应的命中片段头是否合法,如果不合法执行偏移赋值单元,否则执行赋值单元;记该命中结果部位在数据块中的偏移为DATAOFFSET;
赋值单元,该单元执行如下操作:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},则将FSTARTOFFSETf赋值为(DATAOFFSET +OFFSET),将FSIZEf赋值为片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的时间信息,将FCHANALf赋值为片段头记录的通道信息;
第二合法性判断单元:用于根据片段头合法性判断规则判断偏移(FSTARTOFFSETf+ FSIZEf)处是否存在合法的片段头部,如果不存在执行集合处理单元,否则执行合并判断单元;
合并判断单元,该单元执行如下操作:假设偏移(FSTARTOFFSETf+ FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则判断f和f’是否能合并,如果不能合并执行集合处理单元,否则执行合并单元;
合并单元,该单元执行如下操作:判断片段f和片段f’是否满足片段间是否能合并的判断规则,如果满足则根据合并规则将f和f’合并,并将合并结果赋值给f,执行第二合法性判断单元;
偏移赋值单元,该单元执行如下操作:令OFFSET=OFFSET+扇区大小,并执行判断单元;
集合处理单元,该单元执行如下操作:将片段f加入到片段集合F中,OFFSET=FSTARTOFFSETf+ FSIZEf(如果OFFSET为非扇区大小,则采用OFFSET=OFFSET-OFFSET%扇区大小+扇区大小进行修正),并执行判断单元;
结束单元,执行结束操作。
其中,上述单元中用到的片段头合法性判断规则、片段间是否能合并的判断规则、片段与片段之间的衔接规则以及片段的合并规则与前述相同。
监控视频的恢复一直是视频取证中研究的热点和难点,目前国内对监控视频的研究还不够深入,虽然存在着相关的恢复软件,但基本没有相关的论文或者专利。本发明提出的监控视频碎片的恢复方法通过特征搜索、时间唯一性分析、通道验证的技术,能够自动的从存储介质上恢复监控视频。同时,该方法能够恢复视频碎片并将属于同个文件的视频碎片进行合并,从而在最大程度上对监控视频做了恢复。本发明的上述方法的提出,为侦查人员在视频取证过程中视频的丢失带来了解决方案,同时填补了国内在监控视频恢复研究上的相关论文或者专利的空白。
附图说明
图1为视频文件结构的示意图;
图2为片段头部信息的组成示意图;
图3为本发明的监控视频碎片的恢复方法的流程图;
图4为本发明的视频片段搜索和扩展的流程图;
图5为本发明的视频碎片恢复的流程图;
图6为本发明的监控视频碎片的恢复装置的原理框图。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
为了恢复被删除或者损坏的监控视频,以及将零碎的监控视频片段合并为视频,本发明提出了一种监控视频碎片的恢复方法,该方法采用特征搜索、时间唯一性分析、通道验证等技术能够从存储监控视频的存储介质上恢复视频,恢复的视频具有完整的通道时间信息。同时,该方法具有能恢复视频碎片并将属于同个文件的视频碎片进行合并生成一个完整视频文件的特点。以下具体介绍本发明的实现方案。
为了能够实现在任意时间段内对特定视频文件的查看或者导出,监控厂商在设计视频文件结构的时候,一般情况下采用片段式的结构(所谓的片段式结构即一个视频由一个或者多个片段组成),且一个片段表示一帧的视频数据。而组成视频文件的片段一般情况下由两部分组成,即片段头部和实际的视频数据。其视频文件结构如图1所示。
其中,片段头部信息的构成如图2所示,片段头包含了时间FTIME、通道FCHANAL以及片段大小FSIZE等信息。片段头中的FTIME信息指的是当前帧所对应的录制时间信息,FCHANAL信息指的是当前帧所属的通道信息,而FSIZE则是用于描述当前片段的数据大小。除此之外,多数情况下片段头的开始有固定的数据特征(简称特征),用于表示新片段的开始。
为了方便阐述本文所提方法,现做如下模型假设:
令F={f1,f2,.....,fn}表示视频片段的集合。其中,集合F中的元素f表示如下: f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL},f包含五个属性:a、片段的大小FSIZE;b、片段的开始时间FSTARTTIME;c、片段的结束时间FENDTIME;d、片段的开始偏移FSTARTOFFSET;e、片段的通道号FCHANAL。
以下是本发明的方法中所用到的四个判断规则,这些规则贯穿整个视频碎片的恢复过程,以下为规则的具体描述:
规则一、片段头合法性判断规则:当一个片段头同时满足以下条件时,则该片段头合法:
a、有相应的片段头特征;
b、通道号合法(一般情况下通道号在1~16之间)。
规则二、片段f1和片段f2(假设FSTARTTIMEf1小于FSTARTTIMEf2)之间的衔接判断规则:当两个片段满足以下条件时,则说明了两个片段之间是衔接的:
a、两个片段的通道号相同;
b、两个片段的时间信息相差不超过1秒(即一个片段的开始时间和另一个片段的结束时间),用公式表示为FENDTIMEf1 ≤ FSTARTTIMEf2 ≤FENDTIMEf1 + 1;
规则三、片段f1和片段f2(假设FSTARTTIMEf1小于FSTARTTIMEf2)是否能合并的判断规则:两个片段能够合并必须同时满足以下条件:
a、片段f1和片段f2必须满足片段与片段之间的衔接规则;
b、FSTARTOFFSETf1+FSIZEf1等于FSTARTOFFSETf2;
c、FSTARTTIMEf1小于FSTARTTIMEf2;
规则四、片段f1和片段f2(假设FSTARTTIMEf1小于FSTARTTIMEf2)的合并规则:两个片段要做合并必须满足片段与片段是否能合并的判断规则(规则三),假设合并产生的新片段为f,则f的各属性如下:
a、FSIZEf 等于FSIZEf1加FSIZEf2;
b、FSTARTTIMEf等于FSTARTTIMEf1;
c、FENDTIMEf等于FENDTIMEf2;
d、FSTARTOFFSETf等于FSTARTOFFSETf1;
e、FCHANALf等于FCHANALf1;
参见图3,本发明的恢复方法包括如下内容:
步骤a:通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};
步骤b:首先将搜索到的集合F中的片段(也即该集合F的元素)根据不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同组别(也即不同通道)片段的集合;
步骤c:读取第一个组别(例如组别F1)的片段,对该组别的片段按其开始时间信息进行从大到小的排序;
步骤d:根据片段与片段之间的衔接规则,遍历该组别的片段,判断该组别中的片段之间是否可衔接,如果可衔接,则将相互可衔接的片段依次存入链表FLIST中;链表FLIST初始值为空;
步骤e:由步骤d获得的链表FLIST中的片段所包含的片段信息属于该组别的同一个视频文件,按顺序根据其片段信息恢复为相应的视频文件;
步骤f:读取下一个组别的片段,重复步骤b-步骤e,直到所有组别(F1,F2,....Fi,.... Fn)的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
在实际实现时,本发明的监控视频碎片的恢复方法主要包括片段搜索以及扩展的步骤,以及视频碎片的恢复步骤。其中,片段集合的搜索以及扩展是视频碎片恢复流程中的重要一步,该步骤主要通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展。参见图4,其具体实现步骤如下:
步骤一:获取视频存储介质的大小DISKSIZE,并设置OFFSET为0;
步骤二:判断OFFSET是否大于等于DISKSIZE,如果是转步骤十二,否则继续下一步;
步骤三:从OFFSET偏移位置读取固定长度(一个扇区大小)的数据块,并用片段头的特征作为关键字在数据块中进行片段头部搜索;
步骤四:如果搜索没有命中结果,转步骤十,否则继续下一步;
步骤五:根据片段头合法性判断规则(规则一)判断相应的命中片段头(假设命中部位在数据块中的偏移为DATAOFFSET)是否合法,如果不合法转步骤十,否则继续下一步;
步骤六:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},将FSIZEf赋值为f的片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的相应开始时间和结束时间,将FSTARTOFFSETf赋值为(DATAOFFSET+OFFSET),将FCHANALf赋值为片段头记录的通道信息;
步骤七:根据片段头合法性判断规则(规则一)判断偏移(FSTARTOFFSETf+FSIZEf)处是否存在合法的片段头部,如果不存在转步骤十一,否则继续下一步;
步骤八:假设偏移(FSTARTOFFSETf+FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则(规则三)判断f和f’是否能合并,如果不能合并转步骤十一,否则继续下一步;
步骤九:根据合并规则(即规则四)将f和f’合并,并将合并结果赋值给f,转步骤七;
步骤十:OFFSET=OFFSET+扇区大小,并转步骤二;
步骤十一:将片段f加入到片段集合F中,OFFSET = (FSTARTOFFSETf+ FSIZEf)(如果OFFSET为非扇区大小,则采用OFFSET=OFFSET-OFFSET%扇区大小+扇区大小进行修正),并转步骤二;
步骤十二:结束。
通过上述的片段搜索以及扩展流程而得到的片段集合F中的元素就可以恢复出相应的视频碎片,这些视频碎片中包含了完整的通道和时间信息。但是,很多情况下这些碎片过于零碎,可能有的视频碎片只有几秒钟,因此不能直接输出视频碎片,需要对视频碎片整合输出。参见图5,视频碎片的恢复流程如下:
步骤一:将F中的元素按不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同通道片段的集合,对不同组别中的元素按片段的开始时间信息进行从大到小的排序,其中变量i等于1;
步骤二:判断i是否小于等于n,如果否转步骤十,否则继续下一步;
步骤三:判断Fi中的元素是否为空,如果为空转步骤九,否则继续下一步;
步骤四:从Fi获取开始时间最小的元素f,并将f从集合Fi中移除;
步骤五:设FLIST是一个空链表并将f存入FLIST链表之中,同时将变量ft赋值为f;
步骤六:判断Fi中是否存在与片段ft衔接的片段f’(根据衔接判断规则,即规则二),如果不存在转步骤八,否则继续下一步;
步骤七:将f’从Fi中移除并将f’加入到FLIST中,同时将ft赋值为f’,转步骤六;
步骤八:FLIST中包含的片段信息属于同一个视频文件,按顺序根据片段所包含的信息恢复相应的视频文件,转步骤三;
步骤九:i等于i+1,转步骤二;
步骤十:结束。
另一方面,为了实现本发明的目的,参见图6,本发明还提供了一种监控视频碎片的恢复装置,其包括片段的搜索及扩展模块和视频碎片的恢复模块。
其中,片段的搜索及扩展模块,用于通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};该模块包括如下单元:
获取单元:用于获取视频存储介质的大小DISKSIZE;
判断单元:用于判断OFFSET是否大于等于DISKSIZE,如果是则执行结束单元,否则执行搜索单元;其中,OFFSET为指针变量,其初始值为0;
搜索单元:用于从OFFSET偏移位置读取固定长度(一个扇区大小)的数据块,并用片段头特征作为关键字在数据块中进行片段头部搜索;
结果判断单元,该单元执行如下操作:如果搜索没有命中结果,执行偏移赋值单元,否则执行合法性判断单元;
合法性判断单元,该单元执行如下操作:根据片段头合法性判断规则判断相应的命中片段头是否合法,如果不合法执行偏移赋值单元,否则执行赋值单元;记该命中结果部位在数据块中的偏移为DATAOFFSET;
赋值单元,该单元执行如下操作:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},则将FSTARTOFFSETf赋值为(DATAOFFSET +OFFSET),将FSIZEf赋值为片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的时间信息,将FCHANALf赋值为片段头记录的通道信息;
第二合法性判断单元:用于根据片段头合法性判断规则判断偏移(FSTARTOFFSETf+ FSIZEf)处是否存在合法的片段头部,如果不存在执行集合处理单元,否则执行合并判断单元;
合并判断单元,该单元执行如下操作:假设偏移(FSTARTOFFSETf+ FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则判断f和f’是否能合并,如果不能合并执行集合处理单元,否则执行合并单元;
合并单元,该单元执行如下操作:判断片段f和片段f’是否满足片段间是否能合并的判断规则,如果满足则根据合并规则将f和f’合并,并将合并结果赋值给f,执行第二合法性判断单元;
偏移赋值单元,该单元执行如下操作:令OFFSET=OFFSET+扇区大小,并执行判断单元;
集合处理单元,该单元执行如下操作:将片段f加入到片段集合F中,OFFSET=FSTARTOFFSETf+ FSIZEf(如果OFFSET为非扇区大小,则采用OFFSET=OFFSET-OFFSET%扇区大小+扇区大小进行修正),并执行判断单元;
结束单元,执行结束操作。
视频碎片的恢复模块包括如下顺次连接的单元:
搜集单元,用于将搜索到的集合F中的元素(集合F中的元素也即视频片段,简称片段)根据不同的通道分成不同的组别,用F1,F2,.... Fi,.... Fn来表示不同组别(也即不同通道)片段的集合;
排序单元,用于读取第一个组别(例如组别F1)的元素,对该组别的元素按片段的开始时间信息进行从大到小的排序;
衔接判断单元,用于根据片段与片段之间的衔接规则,遍历该组别的元素,判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;链表FLIST初始值为空;
恢复单元,由衔接判断单元获得的链表FLIST中的元素所包含的片段信息属于该组别的同一个视频文件,该恢复单元用于实现按顺序根据元素所包含的片段信息恢复为相应的视频文件;
循环单元,读取下一个组别的元素,重复排序单元、衔接判断单元和恢复单元,直到所有组别(F1,F2,.... Fi,.... Fn)的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
其中,上述用到的片段头合法性判断规则同上述的规则一,片段间是否能合并的判断规则同上述的规则三,片段与片段之间的衔接规则同上述的规则二,片段的合并规则同上述的规则四。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (12)
1.一种监控视频碎片的恢复方法,包括以下步骤:
步骤1:片段的搜索及扩展步骤,该步骤通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};其中,FSIZE为片段大小,FSTARTTIME为片段的开始时间,FENDTIME为片段的结束时间,FSTARTOFFSET为片段的开始偏移,FCHANAL为片段的通道号;
步骤2:视频碎片的恢复步骤,包括如下过程:
步骤2a:首先将搜索到的视频片段的集合F中的元素根据不同的通道分成不同的组别,用F1,F2,....Fi,....Fn来表示不同通道片段的集合;
步骤2b:读取第一个组别的元素,对该组别的元素按片段的开始时间信息进行排序;
步骤2c:根据片段与片段之间的衔接规则,遍历该组别的元素,判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;
步骤2d:由步骤2c获得的链表FLIST中的元素所包含的片段信息属于该组别的同一个视频文件,按顺序将其恢复为相应的视频文件;
步骤2e:读取下一个组别的元素,重复步骤2b-步骤2d,直到所有组别的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
2.根据权利要求1所述的监控视频碎片的恢复方法,其特征在于:片段与片段之间的衔接规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,当片段f1和片段f2满足以下条件时则表示能衔接:
a、两个片段的通道号相同;
b、两个片段的时间信息相差不超过1秒,用公式表示为FENDTIMEf1≤FSTARTTIMEf2≤FENDTIMEf1+1。
3.根据权利要求1或2所述的监控视频碎片的恢复方法,其特征在于:所述步骤1具体包括如下过程:
步骤11:获取视频存储介质的大小DISKSIZE;
步骤12:判断OFFSET是否大于等于DISKSIZE,如果是转步骤112,否则继续下一步;其中,OFFSET为指针变量,其初始值为0;
步骤13:从OFFSET偏移位置读取固定长度的数据块,并用片段头特征作为关键字在数据块中进行片段头部搜索;
步骤14:如果搜索没有命中结果,转步骤110,否则继续下一步;
步骤15:根据片段头合法性判断规则判断相应的命中片段头是否合法,如果不合法转步骤110,否则继续下一步;记该命中结果部位在数据块中的偏移为DATAOFFSET;
步骤16:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},则将FSTARTOFFSETf赋值为(DATAOFFSET+OFFSET),将FSIZEf赋值为片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的时间信息,将FCHANALf赋值为片段头记录的通道信息;
步骤17:根据片段头合法性判断规则判断偏移(FSTARTOFFSETf+FSIZEf)处是否存在合法的片段头部,如果不存在转步骤111,否则继续下一步;
步骤18:假设偏移(FSTARTOFFSETf+FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则判断f和f’是否能合并,如果不能合并转步骤111,否则继续下一步;
步骤19:判断片段f和片段f’是否满足片段间是否能合并的判断规则,如果满足则将f和f’合并,并将合并结果赋值给f,转步骤17;
步骤110:OFFSET=OFFSET+扇区大小,并转步骤12;
步骤111:将片段f加入到片段集合F中,OFFSET=FSTARTOFFSETf+FSIZEf,并转步骤12;
步骤112:结束。
4.根据权利要求3所述的监控视频碎片的恢复方法,其特征在于:片段头合法性判断规则具体是:当一个片段头同时满足以下条件时,则该片段头合法:
a、有相应的片段头特征;
b、通道号合法。
5.根据权利要求3所述的监控视频碎片的恢复方法,其特征在于:片段间是否能合并的判断规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于
FSTARTOFFSETf2,片段f1和片段f2同时满足以下条件则表示能合并:
a、片段f1和片段f2必须满足片段与片段之间的衔接规则;
b、FSTARTOFFSETf1+FSIZEf1等于FSTARTOFFSETf2;
c、FSTARTTIMEf1小于FSTARTTIMEf2。
6.根据权利要求3所述的监控视频碎片的恢复方法,其特征在于:所述步骤19中,将f和f’合并,其是通过片段的合并规则来实现的,该片段的合并规则具体是:记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,片段f1和片段f2必须满足片段间是否能合并的判断规则才能合并,将合并产生的新片段记为f,则f的各属性如下:
a、FSIZEf等于FSIZEf1加FSIZEf2;
b、FSTARTTIMEf等于FSTARTTIMEf1;
c、FENDTIMEf等于FENDTIMEf2;
d、FSTARTOFFSETf等于FSTARTOFFSETf1;
e、FCHANALf等于FCHANALf1。
7.一种监控视频碎片的恢复装置,其包括:
片段的搜索及扩展模块,用于通过特征以及一些视频信息从视频存储介质中搜索出所有的视频片段信息并作扩展;将搜索到的视频片段的集合F表示为,F={f1,f2,.....,fn},f={FSIZE,FSTARTTIME,FENDTIME,FSTARTOFFSET,FCHANAL};其中,FSIZE为片段大小,FSTARTTIME为片段的开始时间,FENDTIME为片段的结束时间,FSTARTOFFSET为片段的开始偏移,FCHANAL为片段的通道号;
视频碎片的恢复模块,该模块包括如下单元:
搜集单元,用于将搜索到的集合F中的元素根据不同的通道分成不同的组别,用F1,F2,....Fi,....Fn来表示不同组别片段的集合;
排序单元,用于读取第一个组别的元素,对该组别的元素按片段的开始时间信息进行从大到小的排序;
衔接判断单元,用于根据片段与片段之间的衔接规则,遍历该组别的元素,判断该组别中的元素之间是否可衔接,如果可衔接,则将相互可衔接的元素依次存入链表FLIST中;链表FLIST初始值为空;
恢复单元,由衔接判断单元获得的链表FLIST中的元素所包含的片段信息属于该组别的同一个视频文件,该恢复单元用于实现按顺序根据元素所包含的片段信息恢复为相应的视频文件;
循环单元,读取下一个组别的元素,重复排序单元、衔接判断单元和恢复单元,直到所有组别的视频片段恢复为相应的视频文件,也即所有通道的视频文件恢复完毕。
8.根据权利要求7所述的监控视频碎片的恢复装置,其特征在于:片段与片段之间的衔接规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,当片段f1和片段f2满足以下条件时则表示能衔接:
a、两个片段的通道号相同;
b、两个片段的时间信息相差不超过1秒,用公式表示为FENDTIMEf1≤FSTARTTIMEf2≤FENDTIMEf1+1。
9.根据权利要求7或8所述的监控视频碎片的恢复装置,其特征在于:所述片段的搜索及扩展模块具体包括以下单元:
获取单元:用于获取视频存储介质的大小DISKSIZE;
判断单元:用于判断OFFSET是否大于等于DISKSIZE,如果是转则执行结束单元,否则执行搜索单元;其中,OFFSET为指针变量,其初始值为0;
搜索单元:用于从OFFSET偏移位置读取固定长度的数据块,并用片段头特征作为关键字在数据块中进行片段头部搜索;
结果判断单元,该单元执行如下操作:如果搜索没有命中结果,执行偏移赋值单元,否则执行合法性判断单元;
合法性判断单元,该单元执行如下操作:根据片段头合法性判断规则判断相应的命中片段头是否合法,如果不合法执行偏移赋值单元,否则执行赋值单元;记该命中结果部位在数据块中的偏移为DATAOFFSET;
赋值单元,该单元执行如下操作:假设命中片段为f,f={FSIZEf,FSTARTTIMEf,FENDTIMEf,FSTARTOFFSETf,FCHANALf},则将FSTARTOFFSETf赋值为(DATAOFFSET+OFFSET),将FSIZEf赋值为片段头记录的片段大小,将FSTARTTIMEf和FENDTIMEf分别赋值为该片段记录的时间信息,将FCHANALf赋值为片段头记录的通道信息;
第二合法性判断单元:用于根据片段头合法性判断规则判断偏移(FSTARTOFFSETf+FSIZEf)处是否存在合法的片段头部,如果不存在执行集合处理单元,否则执行合并判断单元;
合并判断单元,该单元执行如下操作:假设偏移(FSTARTOFFSETf+FSIZEf)处合法的片段为f’,根据片段间是否能合并的判断规则判断f和f’是否能合并,如果不能合并执行集合处理单元,否则执行合并单元;
合并单元,该单元执行如下操作:判断片段f和片段f’是否满足片段间是否能合并的判断规则,如果满足则根据合并规则将f和f’合并,并将合并结果赋值给f,执行第二合法性判断单元;
偏移赋值单元,该单元执行如下操作:令OFFSET=OFFSET+扇区大小,并执行判断单元;集合处理单元,该单元执行如下操作:将片段f加入到片段集合F中,
OFFSET=FSTARTOFFSETf+FSIZEf,并执行判断单元;
结束单元,执行结束操作。
10.根据权利要求9所述的监控视频碎片的恢复装置,其特征在于:片段头合法性判断规则具体是:当一个片段头同时满足以下条件时,则该片段头合法:
a、有相应的片段头特征;
b、通道号合法。
11.根据权利要求9所述的监控视频碎片的恢复装置,其特征在于:片段间是否能合并的判断规则具体是,记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,片段f1和片段f2同时满足以下条件则表示能合并:
a、片段f1和片段f2必须满足片段与片段之间的衔接规则;
b、FSTARTOFFSETf1+FSIZEf1等于FSTARTOFFSETf2;
c、FSTARTTIMEf1小于FSTARTTIMEf2。
12.根据权利要求9所述的监控视频碎片的恢复装置,其特征在于:所述合并单元中,将f和f’合并,其是通过片段的合并规则来实现的,该片段的合并规则具体是:记两个片段分别为片段f1和片段f2,且FSTARTOFFSETf1小于FSTARTOFFSETf2,片段f1和片段f2必须满足片段间是否能合并的判断规则才能合并,将合并产生的新片段记为f,则f的各属性如下:
a、FSIZEf等于FSIZEf1加FSIZEf2;
b、FSTARTTIMEf等于FSTARTTIMEf1;
c、FENDTIMEf等于FENDTIMEf2;
d、FSTARTOFFSETf等于FSTARTOFFSETf1;
e、FCHANALf等于FCHANALf1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410564777.0A CN104301682B (zh) | 2014-10-22 | 2014-10-22 | 一种监控视频碎片的恢复方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410564777.0A CN104301682B (zh) | 2014-10-22 | 2014-10-22 | 一种监控视频碎片的恢复方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104301682A CN104301682A (zh) | 2015-01-21 |
CN104301682B true CN104301682B (zh) | 2017-07-11 |
Family
ID=52321218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410564777.0A Active CN104301682B (zh) | 2014-10-22 | 2014-10-22 | 一种监控视频碎片的恢复方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301682B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980712A (zh) * | 2015-07-14 | 2015-10-14 | 济南中维世纪科技有限公司 | 视频监控数据恢复后的智能索引方法 |
CN106407035B (zh) * | 2016-10-08 | 2019-04-23 | 四川秘无痕信息安全技术有限责任公司 | 一种基于dhfs文件系统的监控视频数据恢复方法 |
CN108062357B (zh) * | 2017-11-28 | 2020-09-08 | 厦门市美亚柏科信息股份有限公司 | F2fs文件系统的删除文件恢复方法及存储介质 |
CN112416873B (zh) * | 2020-11-18 | 2024-05-28 | 万兴科技集团股份有限公司 | 视频碎片文件的恢复方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1069569A2 (en) * | 1999-06-28 | 2001-01-17 | Hewlett-Packard Company | Data set recovery by codeword overlay |
CN102314383A (zh) * | 2011-09-28 | 2012-01-11 | 成都市华为赛门铁克科技有限公司 | 数据索引的故障恢复方法和装置 |
CN102385610A (zh) * | 2011-08-30 | 2012-03-21 | 杭州海康威视数字技术股份有限公司 | 数字硬盘录像机录像文件保存与数据恢复的方法及其系统 |
CN103678026A (zh) * | 2012-09-18 | 2014-03-26 | 杭州海康威视系统技术有限公司 | 可修复的视频监控数据存储和修复方法及其装置 |
CN103886883A (zh) * | 2014-03-20 | 2014-06-25 | 公安部物证鉴定中心 | 一种对有损视频监控数据进行恢复的方法及系统 |
CN104063447A (zh) * | 2014-06-17 | 2014-09-24 | 惠州华阳通用电子有限公司 | 一种监控视频文件修复方法 |
-
2014
- 2014-10-22 CN CN201410564777.0A patent/CN104301682B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1069569A2 (en) * | 1999-06-28 | 2001-01-17 | Hewlett-Packard Company | Data set recovery by codeword overlay |
CN102385610A (zh) * | 2011-08-30 | 2012-03-21 | 杭州海康威视数字技术股份有限公司 | 数字硬盘录像机录像文件保存与数据恢复的方法及其系统 |
CN102314383A (zh) * | 2011-09-28 | 2012-01-11 | 成都市华为赛门铁克科技有限公司 | 数据索引的故障恢复方法和装置 |
CN103678026A (zh) * | 2012-09-18 | 2014-03-26 | 杭州海康威视系统技术有限公司 | 可修复的视频监控数据存储和修复方法及其装置 |
CN103886883A (zh) * | 2014-03-20 | 2014-06-25 | 公安部物证鉴定中心 | 一种对有损视频监控数据进行恢复的方法及系统 |
CN104063447A (zh) * | 2014-06-17 | 2014-09-24 | 惠州华阳通用电子有限公司 | 一种监控视频文件修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104301682A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301682B (zh) | 一种监控视频碎片的恢复方法和装置 | |
CN108009293B (zh) | 视频标签生成方法、装置、计算机设备和存储介质 | |
Wu et al. | Real-time near-duplicate elimination for web video search with content and context | |
CN104504109B (zh) | 图片搜索方法和装置 | |
CN103593363B (zh) | 视频内容索引结构的建立方法、视频检索方法及装置 | |
Zhang et al. | Multi-scale 2d temporal adjacency networks for moment localization with natural language | |
JP2004289848A5 (zh) | ||
CN103729402A (zh) | 一种基于图书目录的知识图谱的构建方法 | |
CN104301681B (zh) | 一种监控视频的恢复方法和装置 | |
CN101976259A (zh) | 一种推荐系列文档的方法和装置 | |
CN110427604B (zh) | 表格整合方法和装置 | |
CN104156373B (zh) | 编码格式检测方法及装置 | |
CN104750673B (zh) | 文本匹配过滤方法及装置 | |
CN102567521B (zh) | 网页数据抓取过滤方法 | |
JP2986865B2 (ja) | データ検索方法および装置 | |
CN108717469A (zh) | 一种帖子排序方法、装置、设备及计算机可读存储介质 | |
WO2019056781A1 (zh) | 同义词挖掘方法、装置、设备和计算机可读存储介质 | |
CN103761298B (zh) | 一种基于分布式架构的实体匹配方法 | |
CN106095808B (zh) | 一种mdb文件碎片恢复的方法和装置 | |
CN111046092B (zh) | 一种基于cpu-gpu异构体系结构的并行相似性连接方法 | |
CN106874294A (zh) | 一种信息匹配方法及装置 | |
Bollegala et al. | Mining for personal name aliases on the web | |
CN111930976A (zh) | 演示文稿生成方法、装置、设备及存储介质 | |
CN106844338A (zh) | 基于属性间依赖关系的网络表格的实体列的检测方法 | |
CN103902578A (zh) | 一种网页信息抽取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |