首页 / 专利库 / 物理 / 淘析器 / 一种监控录像文件的解码方法和系统

一种监控录像文件的解码方法和系统

阅读:880发布:2020-05-15

专利汇可以提供一种监控录像文件的解码方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种监控录像文件的解码方法及系统,基于现有 解码器 进行自动尝试解码,评价出一种最优化的解码器,淘汰掉解码效果不佳的解码器,有效解决了无法对未知格式的监控录像文件进行解码导致的无法播放、 帧 数据无法解析等问题。,下面是一种监控录像文件的解码方法和系统专利的具体信息内容。

1.一种监控录像文件的解码方法,其特征在于所述方法包括:
S1:读取监控录像文件的编码类型;
S2:通过文件头判断编码类型,如有可用的通用解码器则直接将监控录像文件送到该解码器进行解码,否则进入步骤S3;
S3:通过对监控录像文件预读的方式,读取文件的头到下一帧的开头,获取该帧数据,定位第一帧,并从该帧开始向后取200帧数据进行下一步尝试;
S4:初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db;
S5:将文件剩余的帧继续使用Db进行解码;
步骤S4中所述确定一种最优化的解码器Db包括:
S41:优先尝试通用解码器,将监控录像文件送入通用解码器进行解码,将解码出的RGB24位图缓存存起来,作为后续测试评价的参考值,若无法进行解码则进入步骤S42;
S42:初始化自定义解码器为D1、D2....Dn;
S43:取出监控录像文件的前200帧图像,并将其分别送入步骤S42所述的自定义解码器中进行解码;若解码函数具有返回值,则将解码得到的RGB24位图数据存储起来;若没有返回值则淘汰相应的解码器;
S44:[Dx]为成功获取RGB24数据的解码器集,将其中各种解码器获取的RGB数据进行评价,挑选出一个颜色最平衡、边缘最清晰,噪点最少的结果,对结果进行加权计算;将计算结果低于阈值的解码器标记为失败,将计算结果高于阈值的解码器标记为成功,并将成功解码器的结果存入存储器
S45:将成功解码器的结果与步骤S41得到的解码结果再次进行比较;通过步骤S44所述的加权计算方式相互比较,加权计算结果为最高者,标记为最优化的解码器Db。
2.如权利要求1所述的方法,其特征在于步骤S3中所述通过对监控录像文件预读包括:读取到第一帧的帧头,随后找到第二个帧头,取出这两个帧头之间的数据作为第一帧数据。
3.一种监控录像文件的解码系统,其特征在于所述系统包括:
用于读取监控录像文件的编码类型的模
用于通过文件头判断编码类型的模块,如有可用的通用解码器则直接将监控录像文件送到该解码器进行解码,否则送入下一模块;
用于通过对监控录像文件预读的方式,读取文件的帧头到下一帧的开头,获取该帧数据,定位第一帧,并从该帧开始向后取200帧数据进行下一步尝试的模块;
用于初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db的模块;
用于将文件剩余的帧继续使用Db进行解码的模块;
所述确定一种最优化的解码器Db包括:
S41:优先尝试通用解码器,将监控录像文件送入通用解码器进行解码,将解码出的RGB24位图缓存存起来,作为后续测试评价的参考值,若无法进行解码则进入步骤S42;
S42:初始化自定义解码器为D1、D2....Dn;
S43:取出监控录像文件的前200帧图像,并将其分别送入步骤S42所述的自定义解码器中进行解码;若解码函数具有返回值,则将解码得到的RGB24 位图数据存储起来;若没有返回值则淘汰相应的解码器;
S44:[Dx]为成功获取RGB24数据的解码器集,将其中各种解码器获取的RGB数据进行评价,挑选出一个颜色最平衡、边缘最清晰,噪点最少的结果,对结果进行加权计算;将计算结果低于阈值的解码器标记为失败,将计算结果高于阈值的解码器标记为成功,并将成功解码器的结果存入存储器;
S45:将成功解码器的结果与步骤S41得到的解码结果再次进行比较;通过步骤S44所述的加权计算方式相互比较,加权计算结果为最高者,标记为最优化的解码器Db。
4.如权利要求3所述的系统,其特征在于所述通过对监控录像文件预读包括:读取到第一帧的帧头,随后找到第二个帧头,取出这两个帧头之间的数据作为第一帧数据。

说明书全文

一种监控录像文件的解码方法和系统

技术领域

[0001] 本发明涉及安防监控领域的视频编解码技术,尤其是对于未知格式的监控录像文件进行解码的方法及系统。

背景技术

[0002] 近十年,我国大建设视频监控设施,监控录像与日俱增,也逐渐成为公安机关案件侦破的重要依据。由于视频监控技术的飞速发展,人们已经不满足于录像播放的功能,而在不断挖掘监控录像的利用价值。而这一切的前提是,需要能够识别录像文件的内部结构并将其进行解码,从而实现如智能分析、录像文件压缩等功能。由于我国监控行业较为复杂的组成结构,各厂家都有自家的录像文件格式,甚至在文件中加入了一些密文,导致使用常规手段无法将其解码和进行格式转换,而传统的视频编解码技术只针对民用级别的视频文件进行解码和转换,如电影、flash等,无法对未知格式的监控录像文件进行解码和格式转换。

发明内容

[0003] 为解决现有技术中存在的技术问题,本发明提供了一种监控录像文件的解码方法及系统,针对监控录像的特殊性,利用多种解码器视频解析、图像质量分析等技术,通过优化评测,对监控录像进行解码转换,有效解决了未知格式的监控录像文件解码和转换的问题。
[0004] 本发明所采用的技术方案是:
[0005] 一种监控录像文件的解码方法,包括:
[0006] S1:读取监控录像文件的编码类型;
[0007] S2:通过文件头判断编码类型,如有可用的通用解码器则直接将监控录像文件送到该解码器进行解码,否则进入步骤S3;
[0008] S3:通过对监控录像文件预读的方式,读取文件的帧头到下一帧的开头,获取该帧数据,定位第一帧,并从该帧开始向后取200帧数据进行下一步尝试;
[0009] S4:初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db;
[0010] S5:将文件剩余的帧继续使用Db进行解码。
[0011] 优选地,步骤S3中所述通过对监控录像文件预读包括:读取到第一帧的帧头,随后找到第二个帧头,取出这两个帧头之间的数据作为第一帧数据。
[0012] 优选地,步骤S4中所述确定一种最优化的解码器Db包括:
[0013] S41:优先尝试通用解码器,将监控录像文件送入通用解码器进行解码,将解码出的RGB24位图缓存存起来,作为后续测试评价的参考值,若无法进行解码则进入步骤S42;S42:初始化自定义解码器为D1、D2....Dn;
[0014] S43:取出监控录像文件的前200帧图像,并将其分别送入步骤S42所述的自定义解码器中进行解码;若解码函数具有返回值,则将解码得到的RGB24位图数据存储起来;若没有返回值则淘汰相应的解码器;
[0015] S44:[Dx]为成功获取RGB24数据的解码器集,将其中各种解码器获取的RGB数据进行评价,挑选出一个颜色最平衡、边缘最清晰,噪点最少的结果,对结果进行加权计算;将计算结果低于阈值的解码器标记为失败,将计算结果高于阈值的解码器标记为成功,并将成功解码器的结果存入存储器
[0016] S45:将成功解码器的结果与步骤S41得到的解码结果再次进行比较;通过步骤S44所述的加权计算方式相互比较,加权计算结果为最高者,标记为最优化的解码器Db。
[0017] 本发明还提供了一种监控录像文件的解码系统,所述系统包括:
[0018] 用于读取监控录像文件的编码类型的模
[0019] 用于通过文件头判断编码类型的模块,如有可用的通用解码器则直接将监控录像文件送到该解码器进行解码,否则送入下一模块;
[0020] 用于通过对监控录像文件预读的方式,读取文件的帧头到下一帧的开头,获取该帧数据,定位第一帧,并从该帧开始向后取200帧数据进行下一步尝试的模块;
[0021] 用于初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db的模块;
[0022] 用于将文件剩余的帧继续使用Db进行解码的模块。附图说明
[0023] 图1表示一种监控录像文件的解码方法的流程图
[0024] 图2表示未知编码方式文件的尝试解码工作的流程图。

具体实施方式

[0025] 下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例汇总的特征可以互相任意组合。
[0026] 本发明提供的一种监控录像文件的解码方法,主要是通过调用各种解码器和一种最优选择解码器Db的测试方法,对监控录像文件进行解码,具体实施方法如图1所示,包括以下步骤:
[0027] S1:读取监控录像文件的编码类型。
[0028] 对于监控录像,编码方式非常繁杂,通过标准函数获取文件编码方式主要有h264、xvid、divx、pcm、mpeg2、mpeg4等等,这些均为已知编码方式,通常出现在民用领域,其中大部分均可使用通用解码器进行解码。另外一种是一些行业内应用较为广泛的视频格式,如海康威视的mp4格式,利用海康提供的公开解码器文件可以直接进行解码。而本发明主要针对第三种,也即通过标准函数无法获取文件编码方式的监控录像文件,提出了一种技术解决方案。
[0029] S2:通过文件头判断编码类型,如有可用的通用解码器则直接送到该解码器进行解码,否则进入下一步。
[0030] 在视频监控技术领域中,有一部分文件采用的是将标准视频格式进行加密的方式进行编码。最为常见的方式是在视频帧的头部加上一些密文,我们通过对帧数据的识别可读取出文件信息中那些不容易被识别出的信息,如帧头后的串码。将伪装的帧头数据去除,得到一组标识信息,这些标识信息往往是这个文件的编码方式,此时,再相应地将其送入通用解码器进行解码。
[0031] S3:通过对录像文件预读的方式,读取文件的帧头到下一帧的开头,获取该帧数据,定位第一帧,从该帧开始向后取200帧数据进行下一步尝试。
[0032] 这种方法适用于无法获取文件编码方式的监控录像。此时,先将文件进行拆解,读取到第一帧的帧头Fhead1,随后找到第二个帧头Fhead2,取出这两个帧头之间的数据作为第一帧数据,存储在一个缓存中,随后再循环取数据,取到该文件的前200帧存储在一个缓存器中。
[0033] S4:初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db。
[0034] 对于无法获取编码方式的文件,目前只能通过尝试解码的方式进行解码,本发明采用了一种自动的解码器评价的方式进行解码尝试,并对解码结果进行评测对比,改变了传统的手动尝试,肉眼观察解码效果的方式。目前市面上有几十种不同的视频解码器,将S3中得到的200帧数据分别送入初始化完成的各种解码器进行解码。将得到的bitmap位图数据以RGB24的方式存储在缓存器中。将正确解码的RGB24数据进行二次分析,通过图像评价方法进行比较,保留一种最优的解码器结果,得到最优解码器Db。
[0035] S5:将文件剩余的帧继续使用Db进行解码。
[0036] 得到最优解码器Db后,将文件剩余的帧按照S3所描述的方法拆解出来,采用Db进行解码,最终得到理想化的视频帧的RGB24数据。
[0037] 其中,如图2所示,上述S4所述的自动解码器评价方法的具体步骤如下:
[0038] S41:优先尝试通用解码器,将识别到的已知文件头送入通用解码器,如avcodec、avformat等。将解码出的RGB24位图存起来,作为后续测试评价的参考值。由于监控录像的复杂性,有些文件虽然能被通用解码器识别并解码,但并不一定能够得到最好的解码效果。所以,需要将这些解码结果送入下面的评价模块进行最优解码器评价。
[0039] S42:初始化自定义解码器为D1、D2....Dn。自定义解码器为一些现有的视频文件解码器,如avcodec、ffmpeg等,是一种可编程的动态库,可用于某些格式的视频解码。本发明中描述的自定义解码器集成了多种视频解码器用于尝试解码。
[0040] S43:取出监控录像文件的前200帧图像,并将其分别送入S42所述的解码器中进行解码,如解码函数具有返回值,则将解码得到的RGB24数据存储起来,若没有返回值则淘汰相应的解码器。将200帧数据通过各解码器的接口函数送入解码器进行解码,如avcodec_FrameInsert=[f1,f2......f200],得到一组200副的RGB24位图数据,存到一个缓存器中为下一步做准备。进行尝试时,若前25帧图像送入一个解码器,均没有返回值数据,则将其丢弃。
[0041] S44:[Dx]为成功获取RGB24数据的解码器集,将其中各种解码器获取的RGB数据进行评价,挑选出一个颜色最平衡、边缘最清晰,噪点最少的结果。这里采用一种改良的视频质量评价方法,基于视频监控录像的特点,通过HVS视频质量评价方法,得出一个颜色平衡值:color。同时,对这200帧图像进行帧间差计算。通常帧间差的结果反映的是图像的序列程度,得到一个平均帧间差的值,视为场景稳定度参数值:diff。然后通过目标边缘清晰度算法计算出一个画面清晰度值edge。最终通过加权判定的方式得出一个特征值result,即Result=Color*ColorRate+Diff*DiffRate+Edge*EdgeRate,将其和设定的阈值L进行比较,若Result<L,则将相应的解码器置为失败,若Result>L,则将该解码器记为成功,进入比较计算的存储器。此时将成功的解码器权值结果,再次做比较计算,值最大者则记为最优解码器,定义为Dg。
[0042] S45:将此结果与S41得到的结果再次进行比较,得到一个最优化的解码器Db。此处再根据S44的方法,将Dg的解码结果与通用解码器得到的结果进行比较,最优者则被挑选出来,定义为最优解码器Db。
[0043] 本发明还提供了一种监控录像文件的解码系统,所述系统包括:
[0044] 用于读取监控录像文件的编码类型的模块;
[0045] 用于通过文件头判断编码类型的模块,如有可用的通用解码器则直接将监控录像文件送到该解码器进行解码,否则送入下一模块;
[0046] 用于通过对监控录像文件预读的方式,读取文件的帧头到下一帧的开头,获取该帧数据,定位第一帧,并从该帧开始向后取200帧数据进行下一步尝试的模块;
[0047] 用于初始化多种解码器准备解码,将200帧数据传入各解码器进行循环解码,确定一种最优化的解码器Db的模块;
[0048] 用于将文件剩余的帧继续使用Db进行解码的模块。
[0049] 以下是根据以上实施方式的一个具体实施例:
[0050] 在解码器处输入一个监控录像文件aaa.xxx,通过标准视频编码函数读取文件编码类型,得到编码类型为null,即无法获取编码类型。此时读取文件首帧,读取发现帧头数据为0x30306463,找到每一帧都具有相同的帧头,表示文件可以被解码。读取下一个0x30306463,找到下一帧的头,获取两帧fhead1和fhead2之间的数据作为一帧的数据,以此类推,获取前200帧数据存储到缓存器中。
[0051] 初始化avcodec、avformat、avutil、swscale、DCsdk、H264decV33解码器进行尝试解码。将获得的200帧数据依次送入以上解码器进行解码,分别获取位图数据集合:D1frame=[avcodec_frame]、D2frame=[avformat_frame]、D3frame=[avutil_frame]、D4frame=[swscale_frame]、D5frame=[DCsdk_frame]。
[0052] 将各集合中的位图数据以流的方式送给HVS视频质量评价模块得到图像色彩质量ColorD1=4,ColorD2=5,ColorD3=1,ColorD4=4,ColorD5=8。再将这些帧进行图像稳定度计算得到稳定度系数DiffD1=5,DiffD2=4,DiffD3=3,DiffD4=5,DiffD5=7。然后再进行画面边缘计算,计算清晰度最高的效果值EdgeD1=3,EdgeD2=3,EdgeD3=4,EdgeD4=5,EdgeD5=6。得到上述参数后我们定义公式Result=Color*ColorRate+Diff*DiffRate+Edge*EdgeRate。根据经验值设定ColorRate=40%,DiffrRate=30%,EdgeRate=30%。综上所述得到ResultD1=4,ResultD2=4.1,ResultD3=
2.5,ResultD4=4.6,ResultD5=7.6。根据经验值,我们设定阈值L=4.5,针对该段视频,解码效果较好。那么,D1、D2、D3均小于L值,将其淘汰,此时再判断大于L值的解码器有D4和D5,比较发现D5的效果最好,由此,判断出H264decV33为最优的解码器,此时,将H264decV33解码器作为aaa.xxx文件的最优解码器Db,按照上述解码方式再对剩余的帧进行解码,得到该文件所有帧的RGB24位图文件,再选择默认的xvid编码方式,将文件转换成aaa.avi格式文件。
[0053] 使用windows系统自带的mediaplayer软件可以正常播放,采用标准编码方式查看函数获取aaa.avi文件的编码方式为xvid,到此,则完成了该录像文件的解码及格式转换工作。
[0054] 本领域普通技术人员可以理解上述方法中的全部或者部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中。可选地,上述实施例的全部或者部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明的实施方式不限于任何特定形式的硬件和软件的结合。
[0055] 以上仅为本发明的优选实施例,当然,本发明实施方式还可有其他多种实施例。在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明实施方式作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈