一种对有损视频监控数据进行恢复的方法及系统的制作方法
【专利摘要】本申请公开了一种对有损视频监控数据进行恢复的方法,包括:A、从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息;B、采用底层数据提取或者数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件;C、将所述文件索引信息写入损坏的视频数据文件的文件头结构;D、调用解码器解码损坏的视频数据文件。本申请还提供了一种对有损视频监控数据进行恢复的系统。本申请技术方案能够有效修复硬盘录像机生成的有损视频监控数据。
【专利说明】一种对有损视频监控数据进行恢复的方法及系统
【技术领域】
[0001]本申请涉及计算机数据恢复【技术领域】,尤其涉及一种对有损视频监控数据进行恢复的方法及系统。
【背景技术】
[0002]硬盘录像机(Digital Video Recorder, DVR),是一套进行图像存储处理的计算机系统,具有对图像/语音进行长时间录像、录音、远程监视和控制的功能,DVR集合了录像机、画面分割器、云台镜头控制、报警控制、网络传输等五种功能于一身,用一台设备就能取代模拟监控系统一大堆设备的功能,因此广泛应用于电力远程监控、车辆行驶情况监控、银行保安监控、楼宇智能化、家庭防盗监控等领域。
[0003]按系统结构,DVR可以分为两大类:基于PC架构的PC式DVR和脱离PC架构的嵌入式DVR。基于PC系统的硬盘录像机,是以PC机为基本硬件,以Windows或Linux操作系统为基本软件,配备图像采集或图像采集压缩卡,编制软件成为一套完整的系统。嵌入式硬盘录像机基于嵌入式处理器和嵌入式操作系统,采用专用芯片对图像进行压缩及解压回放,视频压缩芯片集成在主板上或者也采用插卡架构。
[0004]硬盘录像机因其具有一定的时效性、易失性,即只能保存一定时间段的数据且数据可以被人为删除,导致很多监控现场和关联现场或可能的关联现场的数据无法找到,需要进行数据恢复。目前国内外尚无专门的视频监控数据恢复软件,尤其是针对损坏的视频监控资料恢复技术。国内各领域使用的硬盘录像机、车载监控设备大都是国内生产的产品,各家的产品结构、视频记录与数据的存储方式也不尽相同,国外尚无对这些厂家的视频监控设备进行专门恢复的工具,也没有对其损坏的视频监控资料进行修复的相关报道。
【发明内容】
[0005]本申请提供了一种对有损视频监控数据进行恢复的方法及系统,能够有效修复硬盘录像机生成的有损视频监控数据。
[0006]本申请实施例提供的一种对有损视频监控数据进行恢复的方法,包括:
[0007]A、从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息;
[0008]B、采用底层数据提取或者数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件;
[0009]C、将所述文件索引信息写入损坏的视频数据文件的文件头结构;
[0010]D、调用解码器解码损坏的视频数据文件。
[0011]较佳地,步骤B包括:
[0012]B1、识别并获取硬盘录像机的硬盘中的Windows碎片文件;
[0013]B2、从所述Windows碎片文件中筛选出视频数据,所筛选出的视频数据作为损坏的视频数据文件。
[0014]较佳地,步骤B2包括:[0015]B2-1、从所述Windows碎片文件中筛选出视频数据;
[0016]B2-2、判断筛选出的视频数据是否为视频采集卡生成,若是,将该视频数据作为损坏的视频数据文件,否则删除该视频数据。
[0017]较佳地,步骤B包括:
[0018]B1、从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据;
[0019]B2、根据文件管理系统的文件存储方式,定位空余空间数据中需要恢复的录像的邻近文件,根据邻近文件的位置推算需要恢复的录像文件的首簇位置;
[0020]B3、根据所述首簇位置,将空余空间中相联系的簇对应的数据一一导出,形成碎片文件,再将所述碎片文件合并为损坏的视频数据文件。
[0021]较佳地,所述从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据包括:
[0022]提取硬盘录像机的硬盘的空余空间数据;
[0023]对提取的空余空间数据的类型进行分析,找到需要恢复的视频数据。
[0024]较佳地,步骤D包括:将所述损坏的视频数据进行熵解码、重排序、反量化和反变换,得到残差数据;将所述残差数据加上帧内预测或帧间预测的数据,再经过环路滤波器的滤波,就得到最终的图像数据。
[0025]所述熵解码包括:
[0026]D1、解析出计算非零系数和拖尾系数,如果+/-1的个数大于3个,只有最后3个被视为拖尾系数,其余的被视为非零系数;根据变量Ne的值从4个变长码表中选择要查找的表格,变长码表存储结构为2维结构,存储内容为码字,2维下标分别表示非零系数和拖尾系数;Nc的值是根据当前块左边4X4块的非零系数数目Na和当前块上面4X4块非零系数数目Nb求得;
[0027]D2、对拖尾系数的符号进行解码,在解码时对于拖尾系数的符号用一个比特表示,并且编码的顺序是按照反向扫描的顺序;
[0028]D3、按照反向扫描的顺序对除拖尾系数之外的非零系数幅值进行解码;
[0029]D4、对最后一个非零系数前零的数目进行编码;
[0030]D5、按照反向扫描的顺序对每个非零系数前零的数目进行解码。
[0031 ] 较佳地,步骤D包括:
[0032]D1、解析出计算非零系数和拖尾系数,如果+/-1的个数大于3个,只有最后3个被视为拖尾系数,其余的被视为非零系数;根据变量Ne的值从4个变长码表中选择要查找的表格,变长码表存储结构为2维结构,存储内容为码字,2维下标分别表示非零系数和拖尾系数;Nc的值是根据当前块左边4X4块的非零系数数目Na和当前块上面4X4块非零系数数目Nb求得;
[0033]D2、对拖尾系数的符号进行解码,在解码时对于拖尾系数的符号用一个比特表示,并且编码的顺序是按照反向扫描的顺序;
[0034]D3、按照反向扫描的顺序对除拖尾系数之外的非零系数幅值进行解码;
[0035]D4、对最后一个非零系数前零的数目进行编码;
[0036]D5、按照反向扫描的顺序对每个非零系数前零的数目进行解码。
[0037]本申请实施例还提供了一种对有损视频监控数据进行恢复的系统,包括:[0038]数据格式分析模块,用于从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息;
[0039]底层数据提取模块,用于采用底层数据提取的方法,从硬盘录像机中获取损坏的视频数据文件;
[0040]数据恢复模块,用于采用数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件;
[0041]数据修复模块,用于将所述文件索引信息写入损坏的视频数据文件的文件头结构,输出修复后的视频数据文件;
[0042]解码模块,用于调用解码器解码数据修复模块输出的视频数据文件。
[0043]较佳地,所述底层数据提取模块包括:
[0044]Windows碎片识别单元,用于识别并获取硬盘录像机的硬盘中的Windows碎片文件;[0045]视频数据筛选单元,用于从所述Windows碎片文件中筛选出视频数据,所筛选出的视频数据作为损坏的视频数据文件。
[0046]较佳地,所述底层数据提取模块进一步包括:
[0047]判断单元,用于判断所述视频数据筛选单元所筛选出的视频数据是否为视频采集卡生成,若是,将该视频数据作为损坏的视频数据文件,否则删除该视频数据。
[0048]较佳地,所述数据恢复模块包括:
[0049]位置获取单元,用于从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据,根据所述视频数据的邻近文件的位置推算需要恢复的视频数据的首簇位置;
[0050]碎片导出单元,用于在硬盘录像机的硬盘的空余空间找到首簇的位置,将空余空间中相联系的簇对应的数据--导出,形成碎片文件;
[0051]碎片合并单元,用于将所述碎片文件合并为损坏的视频数据文件。
[0052]较佳地,所述数据恢复模块进一步包括:
[0053]类型分析单元,用于提取硬盘录像机的硬盘的空余空间数据;对提取的空余空间数据的类型进行分析,找到需要恢复的视频数据,将所述需要恢复的视频数据的存储信息通知位置获取单元。
[0054]从以上技术方案可以看出,将正常视频数据文件中提取所需的文件索引信息写入损坏的视频数据文件的文件头结构,再此基础上对视频数据文件进行解码,可以实现播放损坏的视频监控数据。更进一步地,本申请方案可以结合windows碎片识别法、空余空间提取法和异型数据抽取法对硬盘中的视频数据进行抽取,从而实现视频数据自动识别和获取,使损坏文件的修复工作自动化,并极大提升了修复能力。
【专利附图】
【附图说明】
[0055]图1为本申请提供的对有损视频监控数据进行恢复的方法的基本处理流程示意图;
[0056]图2为RIFF格式文件的文件头结构示意图;
[0057]图3为使用Ultraedit(UE)工具打开AVI文件后所显示的文件最开始部分的十六进制数据示意图;[0058]图4为本申请实施例提供的二进制头信息关联法针对有损视频监控数据进行修复的过程示意图;
[0059]图5为本申请实施例提供的空余空间分析法处理流程示意图;
[0060]图6为本申请实施例中解码器的处理流程示意图;
[0061]图7为本申请实施例提供的熵解码处理流程示意图。
【具体实施方式】
[0062]本申请提供的对有损视频监控数据进行恢复的方法的基本处理流程如图1所示,包括如下步骤:
[0063]步骤101:从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息。
[0064]步骤102:采用底层数据提取或者数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件。
[0065]步骤103:将所述文件索引信息写入损坏的视频数据文件的文件头结构。
[0066]步骤104:调用解码器解码损坏的视频数据文件。
[0067]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0068]本申请实施例提供了四种有损监控录像恢复算法,包括二进制头信息关联法、windows碎片识别法、空余空间提取法和异型数据抽取法,以下对四种方法的原理分别加以介绍。
[0069]二进制头信息关联法:计算机中的文件有很多类型,不同类型的文件在命名时以扩展名区分,例如 EXE、COM、BMP、GIF、WMV, APE、RMVB, FLV, SWF、TXT、CPP、ASM 等等,操作系统利用不同的文件类型具有不同的文件头结构来区分文件。文件头结构是直接位于文件中的一段数据,是文件的一部分。文件头结构的作用是描述一个文件的一些重要的属性,以下将这些属性信息称为索引信息。二进制头信息关联法实际上是利用监控录像文件中的文件头结构对损坏的监控录像数据重建索引的过程。以下通过对AVI格式分析,来说明二进制头信息关联法的原理。
[0070]AVI 文件是一种资源交换档案标准(RIFF, Resource Interchange File Format)格式文件。RIFF文件使用四字符码(FOURCC,four-character code)来表征数据类型,比如用RIFF表示格式类型,用AVI表示具体的文件类型,用LIST表示列表等。RIFF文件首先含有一个如图2所示的文件头结构,最初4个字节表示这是一个RIFF格式的文件,接下来的两个4字节分别表示文件大小和文件类型最后的部分则是索引信息。
[0071]使用Ultraedit (UE)工具打开AVI文件后所显示的文件最开始部分的十六进制数据如图3所示,可以看出前4个字符为RIFF,随后是文件大小(5E360000)。文件大小后面又是一个四字符码,描述文件的具体类型(比如AV1、WAVE等),这里是AVI,AVI后面有一个空格。
[0072]RIFF文件的索引信息从LIST开始,下面按顺序依次说明各个部分的格式:
[0073]首先是LIST四个字符,其后为LIST大小,是0XDA040000,接着是hdrl,表示下面是头部列表的数据,然后是avih,表示avi头部,接着是AVI头部的大小,是0x38000000。AVI头部大小后面是一个如下的数据结构:[0074]Typedef struct
[0075]{
[0076]DWORD dwMaxBytesPerFrame;//显不每巾贞所需的时间
[0077]DWORD dwMaxBytesPerSec;//最大的数据传输率
[0078]DWORD dwPaddingGranularity;//记录块的长度需为此值的倍数,通常是2048
[0079]DWORD dwFlages;//AVI文件的特殊属性,如是否包含索引块,音视频数据是否交叉存储
[0080]DWORD dwTotalFrame;//文件的总巾贞数
[0081]DWORD dwInitialFrames;//说明在开始播放前需要多少中贞
[0082]DWORD dwStreams; //文件中包含的数据流种类
[0083]DWORD dwSuggestedBufferSize;//建议使用的缓冲区大小
[0084]WORD dwffi dth; // 图像宽
[0085]DWORD dwHeight;//图像高
[0086]DWORD dwReserved;//保留值
[0087]} MainAVIHeader
[0088]这个数据结构占据56个字节,这个数据结构中告诉我们很多关于这个AVI文件的信息,如显示速率等,这就为打开该AVI文件的程序提供了播放根据。MainAVIHeaderstructure后面是所谓的AVI流头部列表,也是以“LIST”开始,接着是这个LIST的大小:0χ8Ε040000,然后是strl,表示这个列表的数据是流列表类型,之后紧跟着的是strh块,表示流头部,后面是这个流头部的大小:0x38000000,接着是跟在流头部大小后面的又是一个如下的数据结构:
[0089]Typedef struct
[0090]{
[0091]FOURCC fccType;//4字节,表示数据流的种类,vids表示视频数据流,auds表示音频数据流
[0092]FOURCC fccHandler ;//4字节,表示数据流解压缩的驱动程序代号
[0093]DWORD dwFlags ;// 数据流属性
[0094]WORD wPriority ;//此数据流的播放优先级
[0095]WORD wLanguage ;// 音频的语言代号
[0096]DWORD dwInitalFrames ;//说明在开始播放前需要多少中贞
[0097]DWORD dwScale ;//数据量,视频每帧的大小或音频的采样大小
[0098]DWORD dwRate ;//dwScale/dwRate=每秒的米样数
[0099]DWORD dwStart ;//数据流开始播放的位置,以dwScale为单位
[0100]DWORD dwLength ;//数据流的数据量,以dwScale为单位
[0101]DWORD dwSuggestedBufferSize ;// 建议缓冲区的大小
[0102]DWORD dwQuality ;//解压缩质量参数,值越大质量越好
[0103]DWORD dwSampleSize ;// 音频的米样大小
[0104]RECT rcFrame ;//视频图像所占的矩形
[0105]}AVIStreamHeader[0106]显然,这是AVI流头结构,它描述了这个流的类型、压缩方式等属性。这个结构也占据56字节,从vids到strf之前。Vids是AVI流头部结构内部的一个四字符码,表示这个流是视频数据,不是音频数据。AVI六头部结构后面是流格式块,以strf标识,strf标识后面是这个块的大小:0x28040000。接着是BITMAPINF0结构:
[0107]Typtdef struct tagBITMAPINFO
[0108]{
[0109]BITMAPINFOHEADER bmiHeader ;
[0110]RGBQUAD bmiColors [];颜色表
tom] Ibitmapinfo
[0112]其中的BITMAPINFOHEADER是位图信息头结构,如下所示:
[0113]Typedef struct tagBITMAPIN0FHEADER
[0114]{
[0115]DWORD biSize ;//位图信息头结构的大小
[0116]LONG biffidth ;// 图像宽度
[0117]LONG biHeight ;// 图像高度
[0118]WORD biPlanes ;//目标设备位面数,设为I
[0119]WORD biBitCount ;//单位像素的位数,即图像位深度
[0120]DWORD biCompression ;// 图像的压缩类型
[0121]DWORD biSizelmage ;//图像的大小,以字节为单位
[0122]LONG biXPelsPeiMeter ;// 水平方向每米像素数
[0123]LONG biYPelsPeiMeter ;// 垂直方向每米像素数
[0124]DWORD biCliUsed ;//实际使用的色彩表中的颜色索引数
[0125]DWORD biClrlmportant ;// 重要颜色数
[0126]}BITMAPINFOHEADER
[0127]位图信息头结构的大小是40字节,但整个strf块的大小是0x28040000,这中间大部分是颜色表。颜色表后面是JUNK四字符码,JUNK列表中的数据均为零,起占位作用,用户可以在其中写入各种信息。越过JUNK列表就是图像数据本身。图像数据是一个列表,所以用LIST开始,后面是这个LIST的大小。LIST大小后面是movi四字符码,表示视频块的开始。图像数据列表中包含着以帧为单位的视频序列图像块。每一块以OOdb开始,接着是块大小,程序在读取一帧图像数据时需要越过这8个字节。
[0128]本申请实施例提供的二进制头信息关联法针对有损视频监控数据进行修复的过程如图4所示,包括如下步骤:
[0129]步骤401:使用二进制分析工具分析硬盘录像机生成的正常录像文件,提取正常文件的文件头结构,确定各种文件头结构的对应位置。
[0130]步骤402:分析损坏的录像文件的大小。主要是分析实际文件大小与设定文件大小,如果文件大小判断不准确,比如文件大小的设定比文件实际大小小,将导致部分数据无
法播放。
[0131]步骤403:从正常录像文件中提取索引信息如文件大小、文件名称、建立时间,将所提取的索引信息写入损坏的录像文件的文件头结构的对应位置。这样就为损坏的录像文件建立了播放器播放时所需要的索引信息,播放器根据这些信息可以对修复后的文件进行播放。
[0132]有些情况下,文件头结构中包含的信息还有一些厂商的信息,内部索引关键数据等,而一些内部索引关键数据每个文件都不同,无法通过分析正常的录像文件得到,这些信息无法分析和判断时,即使为损坏了录像文件建立了索引也无法正常播放,这种情况下,需要对编制播放器的SDK工具中的解码算法进行分析,编制新的解码算法,得到新的解码器,使损坏的文件最终得到播放。具体实现方法如下:
[0133]使用播放库SDK获取码流的基本信息,包括索引信息、解码帧信息、分辨率、帧率。使用二进制编辑工具的“文件比较”功能,将克隆盘中现有的正常录像文件进行分析比较,找到文件头中相同的索引信息,如文件类型、编码类型,分析不同的索引信息,如文件大小、文件名、文件总时长、文件总帧数。根据新参数编辑SDK,播放损坏文件。
[0134]Window碎片识别法=Windows碎片是因为Windows操作系统为了长久地存储和访问数据而为用户提供的一种基于文件和目录的存储机制。一个文件系统由系统结构和按一定规则存放的用户数据组成,以使计算机系统可以找到并访问它们。在这样的文件系统管理下,文件被分散保存到整个硬盘的不同地方,而不是连续地保存在磁盘连续的簇中。当应用程序所需的物理内存不足时,一般操作系统会在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。虚拟内存管理程序会对硬盘频繁读写,产生大量的碎片,这是产生硬盘碎片的主要原因。具体地说,主要分为如下两种情况:
[0135]情况1:由于硬盘录像机的存储空间有限,所得到的监控视频通常只会保留一段时间就会删除,而实际应用中往往需要恢复很早以前的监控录像。而Windows碎片都是不同时间段下形成的不完整的视频数据,而且不会因为厂商设计的周期性覆盖方式而消失,这些Windows碎片很可能存在关键的录像数据。Windwos碎片识别法的建立也是基于这类硬盘录像机中录像数据的恢复。
[0136]情况2:在已有的计算机系统中安装视频采集卡作为硬盘录像机,这样该硬盘录像机还具有普通计算机所具备的所有功能,比如安装程序,玩游戏,上网等等,此外该计算机还具有监控功能,通过安装在计算机上的视频采集卡将数据采集并存储在计算机的指定分区中。在这种情况下,也可以用Windows碎片识别法进行录像数据的恢复。
[0137]对于情况1,本申请实施例提供的二进制头信息关联法针对有损视频监控数据进行修复的过程如图所示,包括如下步骤:
[0138]步骤1:使用常见数据恢复软件(如FinalData,FileRecovery等)对硬盘里的视频数据进行恢复;
[0139]步骤2:寻找软件恢复得到的碎片文件,文件后缀名多为CHK ;
[0140]步骤3:使用二进制头信息法对碎片文件进行修复。
[0141]情况2:
[0142]步骤1:使用常见数据恢复软件(如FinalData,FileRecovery等)硬盘里的数据进行恢复;
[0143]步骤2:寻找软件恢复得到的碎片文件,文件后缀名不确定。
[0144]步骤3:从不同后缀名的碎片文件筛选出视频碎片文件。
[0145]步骤4:使用二进制头信息法对筛选出的视频碎片文件进行修复。[0146]空余空间分析法:空余空间分两种,一种是数据的结尾与其分配的空间结束处未被使用的磁盘空间;另一种是因文件被删除而释放出来暂时未被利用的磁盘空间。空余空间中有可能存在以前被删除的数据,这取决于操作系统存储数据时的操作方式。例如,一个文件的大小为100字节,一个文件系统的数据单元大小为4096字节,也就是8个扇区,将该文件存储进这个文件系统时,会为其分配8个扇区的存储空间,但是它只是使用了第一个扇区的前100个字节,第一个扇区的后412字节和后7个扇区都没有被使用,这就有可能在这部分扇区中存在着以前被删除的数据。
[0147]本申请实施例提供的空余空间分析法处理流程如图5所示,包括如下步骤:
[0148]步骤501:从基于PC系统的硬盘录像机中硬盘的空余空间提取出视频数据。
[0149]步骤502:根据文件管理系统的文件存储方式,定位空余空间数据中需要恢复的录像的邻近文件,根据邻近文件的位置推算需要恢复的录像文件的首簇位置。
[0150]步骤503:根据所述首簇位置,将空余空间中相联系的簇对应的数据一一导出,形成碎片文件,再将所述碎片文件合并为待识别文件。
[0151]步骤504:采用二进制头信息关联法进行下一步操作,直到数据被修复为止。
[0152]若基于PC系统的硬盘录像机中硬盘的空余空间数据全部为视频类数据,使用X-Ways Forensics取证工具(X-Ways Forensics是为计算机取证分析人员提供一个功能强大的、综合的取证、分析软件,本方法中使用该工具主要是用到其二进制分析功能,用于提取二进制视频数据片断)或底层数据分析工具WINHEX从空余空间提取出视频数据。
[0153]如果是在已有的计算机上安装的视频采集卡,情况就比较复杂,空余空间的数据不仅包括视频数据,还包括其他类型的数据,且视频数据与其他数据交叉存在。这种情况下,先要对提取的空余空间数据的类型进行分析,找到视频类数据片段,并从中找到视频采集卡生成的视频类数据片段,然后再按照上述方法进行处理,直到数据被修复。
[0154]异型数据转换法:嵌入式硬盘录像机中的硬盘加载到windows系统或Iinux系统下时,一般出现磁盘无法识别的现象。对于嵌入式系统硬盘录像机而言,在检验的过程中一般会遇到两种情况:
[0155]第一种是录像机硬盘里的数据未受到破坏,只是由于技术员不懂如何在基于PC系统的计算机上读取录像文件或因周期覆盖原因造成需要的数据丢失需要提取录像机硬盘里的数据。使用如下步骤进行恢复:
[0156]步骤一:厂家专用的硬盘读取工具可以将盘里的数据读出来,使用这些工具可以看到完整的文件目录或名称,便于分析与查找,也可以使用底层数据分析工具如winhex直接分段提取全部硬盘数据进行分析。
[0157]步骤二:查找需要的视频片段,这种方法下提取的视频无法形成完整的文件目录或名称,但能够将硬盘中存储的全部数据提取出来,已周期覆盖的嵌入式硬盘录像机适用这种提取方法。
[0158]第二种情况是录像机硬盘里的数据已经被破坏,一些是因为操作人员不懂嵌入式硬盘录像机的原理,不清楚其数据存储方式,盲目将盘从录像机中拆下连接到基于windows系统的PC机中,操作人员便对磁盘进行初始化操作,使得硬盘中的数据被破坏,即使使用前面介绍的厂商专用硬盘读取工具也无法读取里面的数据;另一些是由于硬盘录像机的持有者因各种原因不愿提供录像数据,便使用嵌入式硬盘录像机操作面板上的格式化按钮进行格式化操作,这类操作造成的后果与进行初始化操作的后果类似,都是把录像机硬盘中的文件索引区域破坏,但具体录制的视频数据其实还是存储在硬盘上的,并没有被清除掉。使用如下步骤进行恢复:
[0159]步骤一:使用底层数据分析工具winhex等进行分段提取
[0160]步骤二:使用视频流分析工具分析得到该硬盘录像机编码格式下的关键帧,使用X-Ways Forensics取证工具或winhex底层数据分析工具搜索关键巾贞,并提取相应的数据片段。
[0161]步骤三:使用视频流分析工具计算文件中所含的数据帧数量,根据文件头各类索引信息所占字节数计算文件大小、文件总时长、文件总帧数等关键信息,建立完整的头文件。
[0162]步骤四:使用二进制头信息关联法进行恢复。
[0163]无论是从基于PC系统的硬盘录像机还是嵌入式系统的硬盘录像机中读取的数据都是以文件的方式保存在检验工作站中,要对这些文件(正常文件和非正常文件)以二进制方式读入视频恢复系统并进行编辑,如果将这些数据提取出来并存储在程序设计的数据结构中是数据转换算法要完成的工作。
[0164]异型数据转换算法如下:
[0165]设从硬盘录像机中得到的原始数据文件为file。
[0166]输入:file;
[0167]输出:数据的中间转存结果;
[0168]①Read (file) ;//读取文件
[0169]②Open (file) ;//以二进制方式打开文件
[0170]③ftell (file) ;//获取文件长度
[0171]④new char [len+1] ;// 分配内存空间
[0172]⑤rewind (file) ;//将文件指针重新放置到文件的开始处。
[0173]⑥重复步骤1-5;
[0174]⑦close (file) ;//关闭文件
[0175]解码器将经过上述处理的损坏的视频数据进行熵解码、重排序、反量化和反变换,得到残差数据;将所述残差数据加上帧内预测或帧间预测的数据,再经过环路滤波器的滤波,就得到最终的图像数据。流程图如图6所示。
[0176]本申请实施例提供的熵解码处理流程如图7所示,包括如下步骤:
[0177]步骤701:解析出计算非零系数TotalcoefTs和拖尾系数TrailingOnes。如果+/-1的个数大于3个,只有最后3个被视为拖尾系数,其余的被视为普通的非零系数。根据变量Ne的值从4个变长码表中选择要查找的表格,变长码表存储结构为2维结构,存储内容为码字,2维下标分别是Totalcoeffs和TrailingOnes。Ne的值是根据当前块左边4X4块的非零系数数目(Na)和当前块上面4X4块非零系数数目(Nb)求得。
[0178]步骤702:对拖尾系数的符号进行解码,在解码时对于拖尾系数的符号用一个比特表示(O表示+,I表示-),并且编码的顺序是按照反向扫描的顺序。
[0179]步骤703:按照反向扫描的顺序对除拖尾系数之外的非零系数幅值进行解码。
[0180]步骤704:对最后一个非零系数前零的数目(RunBefore)进行编码;最后一个非零系数前零的数目TotalZeros的值是查表求得的,表格的入口参数是Totalcoeffs。
[0181]步骤705:按照反向扫描的顺序对每个非零系数前零的数目(RunBefore)进行解码,即从最高频的非零系数开始。RunBefore的值是查表求得的,表格的入口参数是Zeroleft,其表示当前非零系数之前零(RunBefore)的总个数。
[0182]本申请实施例还提供了一种对有损视频监控数据进行恢复的系统,包括:
[0183]数据格式分析模块,用于从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息;
[0184]底层数据提取模块,用于采用底层数据提取的方法,从硬盘录像机中获取损坏的视频数据文件;
[0185]数据恢复模块,用于采用数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件;
[0186]数据修复模块,用于将所述文件索引信息写入损坏的视频数据文件的文件头结构,输出修复后的视频数据文件;
[0187]解码模块,用于调用解码器解码数据修复模块输出的视频数据文件。
[0188]较佳地,所述底层数据提取模块包括:
[0189]Windows碎片识别单元,用于识别并获取硬盘录像机的硬盘中的Windows碎片文件;
[0190]视频数据筛选单元,用于从所述Windows碎片文件中筛选出视频数据,所筛选出的视频数据作为损坏的视频数据文件。
[0191]较佳地,所述底层数据提取模块进一步包括:
[0192]判断单元,用于判断所述视频数据筛选单元所筛选出的视频数据是否为视频采集卡生成,若是,将该视频数据作为损坏的视频数据文件,否则删除该视频数据。
[0193]较佳地,所述数据恢复模块包括:
[0194]位置获取单元,用于从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据,根据所述视频数据的邻近文件的位置推算需要恢复的视频数据的首簇位置;
[0195]碎片导出单元,用于在硬盘录像机的硬盘的空余空间找到首簇的位置,将空余空间中相联系的簇对应的数据--导出,形成碎片文件;
[0196]碎片合并单元,用于将所述碎片文件合并为损坏的视频数据文件。
[0197]较佳地,所述数据恢复模块进一步包括:
[0198]类型分析单元,用于提取硬盘录像机的硬盘的空余空间数据;对提取的空余空间数据的类型进行分析,找到需要恢复的视频数据,将所述需要恢复的视频数据的存储信息通知位置获取单元。
[0199]本申请实施例提供的有损视频监控数据恢复系统要完成的主要功能是对损坏的录像文件进行有效修复,因此该系统的核心是索引信息自动修复算法及数据解码算法、数据存储算法。索引信息自动修复算法设计的难点在于如何正确分析各类文件标识在整个文件中的位置,解决的办法一种是通过对正常文件的分析比对获得,二是案件检验过程中与课题研究中不断积累各类录像文件类型,使得在算法的设计过程中能更多地适应不同损坏程度的录像文件的修复情况,以提高修复的成功率。数据解码算法设计的难点在于如何从不同厂商的SDK开发包中分析得到需要的数据的结构,并进行进一步的处理,解决的办法是在数据分析过程中尽可能剔除无关紧要的数据,在数据导入过程中减少中间数据的存储。数据存储算法设计的难点在于如何有效的输出并存储大容量的修复数据,有效节约计算机空间和时间,解决的办法是合理选择数据存储结构和数据搜索算法。
[0200]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
1.一种对有损视频监控数据进行恢复的方法,其特征在于,包括: A、从硬盘录像机生成的正常视频数据文件中提取所需的文件索引信息; B、采用底层数据提取或者数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件; C、将所述文件索引信息写入损坏的视频数据文件的文件头结构; D、调用解码器解码损坏的视频数据文件。
2.根据权利要求1所述的方法,其特征在于,步骤B包括: B1、识别并获取硬盘录像机的硬盘中的Windows碎片文件; B2、从所述Windows碎片文件中筛选出视频数据,所筛选出的视频数据作为损坏的视频数据文件。
3.根据权利要求2所述的方法,其特征在于,步骤B2包括: B2-1、从所述Windows碎片文件中筛选出视频数据; B2-2、判断筛选出的视频数据是否为视频采集卡生成,若是,将该视频数据作为损坏的视频数据文件,否则删除该视频数据。
4.根据权利要求1所述的方法,其特征在于,步骤B包括: B1、从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据; B2、根据文件管理系统的文件存储方式,定位空余空间数据中需要恢复的录像的邻近文件,根据邻近文件的位置推算需要恢复的录像文件的首簇位置; B3、根据所述首簇位置,将空余空间中相联系的簇对应的数据一一导出,形成碎片文件,再将所述碎片文件合并为损坏的视频数据文件。
5.根据权利要求4所述的方法,其特征在于,所述从硬盘录像机的硬盘的空余空间数据中找到需要恢复的视频数据包括: 提取硬盘录像机的硬盘的空余空间数据; 对提取的空余空间数据的类型进行分析,找到需要恢复的视频数据。
6.根据权利要求1至5任一项所述的方法,其特征在于,步骤D包括:将所述损坏的视频数据进行熵解码、重排序、反量化和反变换,得到残差数据;将所述残差数据加上帧内预测或帧间预测的数据,再经过环路滤波器的滤波,就得到最终的图像数据。
7.根据权利要求6所述的方法,其特征在于,所述熵解码包括: D1、解析出计算非零系数和拖尾系数,如果+/-1的个数大于3个,只有最后3个被视为拖尾系数,其余的被视为非零系数;根据变量Ne的值从4个变长码表中选择要查找的表格,变长码表存储结构为2维结构,存储内容为码字,2维下标分别表示非零系数和拖尾系数;Ne的值是根据当前块左边4X4块的非零系数数目Na和当前块上面4X4块非零系数数目Nb求得; D2、对拖尾系数的符号进行解码,在解码时对于拖尾系数的符号用一个比特表示,并且编码的顺序是按照反向扫描的顺序; D3、按照反向扫描的顺序对除拖尾系数之外的非零系数幅值进行解码; D4、对最后一个非零系数前零的数目进行编码; D5、按照反向扫描的顺序对每个非零系数前零的数目进行解码。
8.一种对有损视频监控数据进行恢复的系统,其特征在于,包括:数据格式分析模块,用于从硬盘录像机生成的正常视频数据文件中提取所需的文件索弓K目息; 底层数据提取模块,用于采用底层数据提取的方法,从硬盘录像机中获取损坏的视频数据文件; 数据恢复模块,用于采用数据恢复的方法,从硬盘录像机中获取损坏的视频数据文件; 数据修复模块,用于将所述文件索引信息写入损坏的视频数据文件的文件头结构,输出修复后的视频数据文件; 解码模块,用于调用解码器解码数据修复模块输出的视频数据文件。
9.根据权利要求8所述的系统,其特征在于,所述底层数据提取模块包括: Windows碎片识别单元,用于识别并获取硬盘录像机的硬盘中的Windows碎片文件; 视频数据筛选单元,用于从所述Windows碎片文件中筛选出视频数据,所筛选出的视频数据作为损坏的视频数据文件。
10.根据权利要求9所述的系统,其特征在于,所述底层数据提取模块进一步包括: 判断单元,用于判断所述视频数据筛选单元所筛选出的视频数据是否为视频采集卡生成,若是,将该视频数据作为损坏的视频数据文件,否则删除该视频数据。
11.根据权利要求8所述的系统,其特征在于,所述数据恢复模块包括: 位置获取单元,用于从硬盘录像机的硬`盘的空余空间数据中找到需要恢复的视频数据,根据所述视频数据的邻近文件的位置推算需要恢复的视频数据的首簇位置; 碎片导出单元,用于在硬盘录像机的硬盘的空余空间找到首簇的位置,将空余空间中相联系的簇对应的数据一一导出,形成碎片文件; 碎片合并单元,用于将所述碎片文件合并为损坏的视频数据文件。
12.根据权利要求11所述的系统,其特征在于,所述数据恢复模块进一步包括: 类型分析单元,用于提取硬盘录像机的硬盘的空余空间数据;对提取的空余空间数据的类型进行分析,找到需要恢复的视频数据,将所述需要恢复的视频数据的存储信息通知位置获取单元。
【文档编号】G11C29/44GK103886883SQ201410105324
【公开日】2014年6月25日 申请日期:2014年3月20日 优先权日:2014年3月20日
【发明者】康艳荣, 张国臣, 尹春社, 周冬林, 楚川红, 邢桂东 申请人:公安部物证鉴定中心