1.本发明涉及视频数据加解密技术领域,尤其涉及一种视频帧数据的多模式数据处理系统及方法。
背景技术:2.现有技术中的安全前端摄像头视频数据经过加密后传输到后端,后端再对密文视频数据进行解密,将视频明文传送到终端进行监控与回放等功能。因此,对视频数据的加解密过程是至关重要,目前主要是通过采用更高性能的芯片来满足对视频数据的处理需求,然后将明文传输到终端进行视频数据的监控与回放。
3.此外,视频帧数据中主要以i帧和p帧为主,对于视频数据中多数需要处理的是经h264编码的小包数据。不同的视频帧格式是不一样的,厂商一般不会去关心此部分,而是直接去解析视频帧数据中的视频数据地址索引,从而获取视频数据中的内容,这么做就表示上层应用软件每解析到一包数据后,将数据包数据传递给中间件,中间件对数据头部再进行一定的协议封装及数据尾部填充处理后发送给加密芯片进行处理,最后将处理结果返回给上层应用软件。
4.上述过程使得视频数据从用户态到内核态需要多次调用系统io进行写和读,且还会涉及到多次拷贝组包,这样做效率比较低;若是大数据包,加密芯片又需要花费一定的时间来处理,也不是很合理。
技术实现要素:5.本发明的目的在于提供一种视频帧数据的多模式数据处理系统及方法,从而解决现有技术中存在的前述问题。
6.为了实现上述目的,本发明采用的技术方案如下:
7.一种视频帧数据的多模式数据处理系统,包括应用层、中间件层和加密芯片层,所述应用层用于将视频获取装置中接收到的视频传输给所述中间件层或接收由所述中间件层转发的视频,所述中间件层分别与所述应用层和所述加密芯片层相连,实现视频数据在所述应用层和所述加密芯片层之间的转发过程,同时中间件层对获取到的视频文件参数信息直接进行维护,并在中间件层内部维护一个fifo,采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层;所述加密芯片层对从中间件层获取到的视频数据包进行加密或解密处理。
8.优选的,所述中间件层采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层具体包括以下内容:所述fifo最大支持16kb的视频数据包,当中间件层接收视频数据包时,首先判断视频数据包大小,若小于16kb,则最开始就从槽位0地址依次递增存放,当占满8个槽位时,重新开辟一个新线程,对数据包进行处理后传给所述加密芯片层;若等于16kb,对待发送数据包尾部加上一定处理后直接将数据一次发送给加密芯片层处理;若大于16kb,开辟新线程,在新线程内将这一大包数据分包若干个fifo大小,
然后循环处理,最后一个数据包尾部加上一定处理后再发送给加密芯片。
9.优选的,数据包尾部处理具体是:待发送数据追加就绪后,中间件层要根据对称分组加密模式及填充方式进行相应的合法性判断及是否继续填充。
10.本发明的另一个目的在于提供了一种视频帧数据的多模式数据处理方法,采用所述的视频帧数据的多模式数据处理系统,包括以下步骤:
11.s1,中间件层接收应用层下发的视频数据包,进行加解密初始化后,检测视频数据包的长度;
12.s2,若视频数据包的长度等于fifo,则进入步骤s3;若视频数据包的长度小于fifo,则进入步骤s4;若视频数据包大于fifo,则进入步骤s5;
13.s3,在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;
14.s4,从槽位0地址依次递增存放,当占满8个槽位时,开辟一个新线程,追加各槽位数据及最后数据尾部做一定的处理以满足加密芯片对数据格式的要求,传输给加密芯片,同时释放槽位并产生一个用户自定义信号sigusr通知主线程槽位已释放;
15.s5,开辟新线程,在新线程内将这一大包数据分包成若干个fifo大小的数据小包,然后循环处理,确定最后一个数据小包的大小,若小于fifo,那么在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;若等于fifo,则进行尾部处理后传输给加密芯片。
16.优选的,还包括加密结束后,如果加密模式是cfb/ofb且有指定填充,那么就校验填充长度及内容的合法性,正确则去掉填充;如果加密模式是cfb/ofb且没有指定填充,同样要内部校验是否有填充,有则去掉。
17.本发明的有益效果是:
18.本发明提供了一种视频帧数据的多模式数据处理系统及方法,该系统的中间件层加密解密前的初始化接口不与加密芯片层进行握手,待加解密的视频文件参数信息直接由中间件层进行维护,从而减少数据的读写;此外,本技术中主要针对小包数据,在中间件内部维护一个fifo,内部实现为内核链表封装,方便数据项内容扩展。
附图说明
19.图1是实施例1中提供的视频帧数据的多模式数据处理系统;
20.图2是实施例1中提供的fifo原理图;
21.图3是实施例2中提供的视频帧数据的多模式数据处理方法流程图;
具体实施方式
22.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
23.实施例1
24.本实施例提供了一种视频帧数据的多模式数据处理系统,如图1所示,包括应用层、中间件层和加密芯片层,所述应用层用于将视频获取装置中接收到的视频传输给所述
中间件层或接收由所述中间件层转发的视频,所述中间件层分别与所述应用层和所述加密芯片层相连,实现视频数据在所述应用层和所述加密芯片层之间的转发过程,同时中间件层对获取到的视频文件参数信息直接进行维护,并在中间件层内部维护一个fifo,采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层;所述加密芯片层对从中间件层获取到的视频数据包进行加密或解密处理。
25.本实施例中的所述中间件层采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层具体包括以下内容:所述fifo最大支持16kb的视频数据包,当中间件层接收视频数据包时,首先判断视频数据包大小,若小于16kb,则最开始就从槽位0地址依次递增存放,当占满8个槽位时,重新开辟一个新线程,对数据包进行处理后传给所述加密芯片层;若等于16kb,对待发送数据包尾部加上一定处理后直接将数据一次发送给加密芯片层处理;若大于16kb,开辟新线程,在新线程内将这一大包数据分包若干个fifo大小,然后循环处理,最后一个数据包尾部加上一定处理后再发送给加密芯片。
26.本实施例中的数据包尾部处理具体是:待发送数据追加就绪后,中间件层要根据对称分组加密模式及填充方式进行相应的合法性判断及是否继续填充。
27.实施例2
28.本实施例提供了一种视频帧数据的多模式数据处理方法,采用实施例1中所述的视频帧数据的多模式数据处理系统,如图3所示,包括以下步骤:
29.s1,中间件层接收应用层下发的视频数据包,进行加解密初始化后,检测视频数据包的长度;
30.s2,若视频数据包的长度等于fifo,则进入步骤s3;若视频数据包的长度小于fifo,则进入步骤s4;若视频数据包大于fifo,则进入步骤s5;
31.s3,在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;
32.s4,从槽位0地址依次递增存放,当占满8个槽位时,开辟一个新线程,追加各槽位数据及最后数据尾部做一定的处理以满足加密芯片对数据格式的要求,传输给加密芯片,同时释放槽位并产生一个用户自定义信号sigusr通知主线程槽位已释放;
33.s5,开辟新线程,在新线程内将这一大包数据分包成若干个fifo大小的数据小包,然后循环处理,确定最后一个数据小包的大小,若小于fifo,那么在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;若等于fifo,则进行尾部处理后传输给加密芯片。
34.本技术中的加解密过程都包括上述内容,若加密过程,则还包括加密结束后,如果加密模式是cfb/ofb且有指定填充,那么就校验填充长度及内容的合法性,正确则去掉填充;如果加密模式是cfb/ofb且没有指定填充,同样要内部校验是否有填充,有则去掉。
35.本实施例中给出一个具体的加密数据,待加密数据是32byte,如果加密模式是cfb/ofb,填充指定的模式是1,也就是指定填充,那么就开始校验这个32byte数据,与填充长度变量对比,如果填充长度是5byte,那么按照pkcs#5标准,我们检查下32byte的最后5个byte是不是全是5,如果是,那么就说明数据正确,然后我们去掉最后5byte数据,剩下的27byte才是最原始的被加密的源数据。
36.如果填充指定的模式是0,也就是没有填充,同样要与填充长度变量对比,如果填
充长度是0,那么就正确,如果填充长度不为0,那么是几就对比最后几个字节,假如是3,那么就检测最后的三个字节是不是全3,如果是那么解密正确。
37.通过采用本发明公开的上述技术方案,得到了如下有益的效果:
38.本发明提供了一种视频帧数据的多模式数据处理系统及方法,该系统的中间件层加密解密前的初始化接口不与加密芯片层进行握手,待加解密的视频文件参数信息直接由中间件层进行维护,从而减少数据的读写;此外,本技术中主要针对小包数据,在中间件内部维护一个fifo,内部实现为内核链表封装,方便数据项内容扩展。
39.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
技术特征:1.一种视频帧数据的多模式数据处理系统,其特征在于,包括应用层、中间件层和加密芯片层,所述应用层用于将视频获取装置中接收到的视频传输给所述中间件层或接收由所述中间件层转发的视频,所述中间件层分别与所述应用层和所述加密芯片层相连,实现视频数据在所述应用层和所述加密芯片层之间的转发过程,同时中间件层对获取到的视频文件参数信息直接进行维护,并在中间件层内部维护一个fifo,采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层;所述加密芯片层对从中间件层获取到的视频数据包进行加密或解密处理。2.根据权利要求1所述的视频帧数据的多模式数据处理系统,其特征在于,所述中间件层采用该fifo自动收发视频数据包,并将视频数据包处理后传输给所述加密芯片层具体包括以下内容:所述fifo最大支持16kb的视频数据包,当中间件层接收视频数据包时,首先判断视频数据包大小,若小于16kb,则最开始就从槽位0地址依次递增存放,当占满8个槽位时,重新开辟一个新线程,对数据包进行处理后传给所述加密芯片层;若等于16kb,对待发送数据包尾部加上一定处理后直接将数据一次发送给加密芯片层处理;若大于16kb,开辟新线程,在新线程内将这一大包数据分包若干个fifo大小,然后循环处理,最后一个数据包尾部加上一定处理后再发送给加密芯片。3.根据权利要求2所述的视频帧数据的多模式数据处理系统,其特征在于,数据包尾部处理具体是:待发送数据追加就绪后,中间件层要根据对称分组加密模式及填充方式进行相应的合法性判断及是否继续填充。4.一种视频帧数据的多模式数据处理方法,采用权利要求1-3任一所述的视频帧数据的多模式数据处理系统,其特征在于,包括以下步骤:s1,中间件层接收应用层下发的视频数据包,进行加解密初始化后,检测视频数据包的长度;s2,若视频数据包的长度等于fifo,则进入步骤s3;若视频数据包的长度小于fifo,则进入步骤s4;若视频数据包大于fifo,则进入步骤s5;s3,在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;s4,从槽位0地址依次递增存放,当占满8个槽位时,开辟一个新线程,追加各槽位数据及最后数据尾部做一定的处理以满足加密芯片对数据格式的要求,传输给加密芯片,同时释放槽位并产生一个用户自定义信号sigusr通知主线程槽位已释放;s5,开辟新线程,在新线程内将这一大包数据分包成若干个fifo大小的数据小包,然后循环处理,确定最后一个数据小包的大小,若小于fifo,那么在视频数据包尾部加上一定处理后直接将视频数据包一次性发送给加密芯片层进行加解密处理;若等于fifo,则进行尾部处理后传输给加密芯片。5.根据权利要求4所述的视频帧数据的多模式数据处理方法,其特征在于,还包括加密结束后,如果加密模式是cfb/ofb且有指定填充,那么就校验填充长度及内容的合法性,正确则去掉填充;如果加密模式是cfb/ofb且没有指定填充,同样要内部校验是否有填充,有则去掉。
技术总结本发明提供了一种视频帧数据的多模式数据处理系统及方法,该系统的中间件层加密解密前的初始化接口不与加密芯片层进行握手,待加解密的视频文件参数信息直接由中间件层进行维护,从而减少数据的读写;此外,本申请中主要针对小包数据,在中间件内部维护一个FIFO,内部实现为内核链表封装,方便数据项内容扩展。方便数据项内容扩展。方便数据项内容扩展。
技术研发人员:徐亚星 刘競林 王强
受保护的技术使用者:广州万协通信息技术有限公司
技术研发日:2022.03.30
技术公布日:2022/7/5