一种基于H264/SVC视频流的可伸缩认证方法与流程

文档序号:11254349阅读:705来源:国知局
一种基于H264/SVC视频流的可伸缩认证方法与流程

本发明属于多媒体信息安全技术领域,更为具体地讲,涉及一种基于h264/svc(scalablevideocoding,即可伸缩视频编码)视频流的可伸缩认证方法。



背景技术:

视频流认证方法是多媒体信息安全领域中一个重要的研究热点,其目的在于保证视频流在发送方与接收方之间安全地传输。通常视频流认证过程需要发送方在所要发送的视频中加入认证信息,并且将认证信息与视频内容同时传输至接收方;接收方对获得的视频内容,采用接收的认证信息进行完整性验证。视频流认证方法特点在于接收方能够在重构视频内容之前,实现对获得的视频数据包进行安全验证,从而保证恢复出的视频内容具有认证性即视频内容的完整性。

现有的视频流认证方法,根据认证过程中视频流的数据包哈希附着方式与解码关系之间联系,分为基于解码无关的视频流认证方法和基于解码相关的视频流认证方法。

基于解码无关的视频流认证方法,通常将视频流中的数据包视为相互独立的单元,不考虑数据包解码之间的依赖关系,如基于链式、树型、蝴蝶型的流认证方法。此类认证方法由于不考虑视频解码过程,在网络丢包情况下认证效率较差,如接收方获得的视频数据包的认证比例较低,恢复的视频质量较差,并且认证负载过大,认证导致的延迟较大。

而基于解码相关的视频流认证方法,在构造哈希值附着方式时,考虑视频流数据包之间的解码次序,提高了认证方法在网络丢包情况下的认证效率。如文献[shintaroueda.h264/avcstreamauthenticationatthenetworkabstractionlayer[c].proceedingsofthe2007ieeeworkshoponinformationassurance,newyork,2007,ieee:302-308]提出一种基于h264/avc的抽象层nal流认证方法,根据流中的序列参数集、图像参数集和图像片数据包之间的解码依赖关系进行哈希附着。对于h264/svc视频流的认证,文献[kianooshmokhtarian.authenticationofscalablevideostreamswithlowcommunicationoverhead[j].ieeetransactionsonmultimedia,2010,12(7):730-742]提出具有较低通信负载的认证方法,将svc流中gop的时域、空域的高层数据单元的哈希序列,经过fec编码后分别附着到较低一层相应的数据单元之上,而在质量层,采用最小化认证负载方法,寻找对质量层数据单元的分组认证方法;文献[yifanzhao.techniqueforauthenticatingh264/svcanditsperformanceevaluationoverwirelessmobilenetworks[j].journalofcomputerandsystemsciences,2014,80(2014):520-532]提出对h264/svc流中gop的质量层、空域层高层数据单元的哈希直接附着在较低一层数据单元上,而对于时域层,单个时域层内将所有该层内au(accessunit)即访问单元哈希值进行ecc编码后,分别附着在该层每个au上,再将所有时域层的哈希构成序列进行签名。

虽然在h264/svc视频流的认证方面,现有基于解码相关的视频流认证方法能够提供一定的可伸缩认证,即提取后的子流仍然能够实现认证性。但由于现有方法在处理h264/svc的时域、空域高层数据单元哈希附着方法时,均将其直接附着在较低一层的所有数据单元,这样,在认证负载上消耗较多,且若较低一层某些数据单元若被丢弃,较高层的数据单元将无法实现完整性验证,h264/svc流中数据单元的解码依赖关系没有被充分利用;其次,h264/svc质量层数据mgs中的较低层存放帧图像变换系数的直流和低频分量,较高层存放高频分量,因而较低层中数据对于接收方视频恢复质量影响较大,需要采用较小的分组长度进行认证,以提高对网络丢包的抵抗性,而现有方法没有考虑不同质量层分组数据对接收方视频恢复质量的影响,因此认证效率有待提高。



技术实现要素:

本发明的目的在于克服现有h264/svc视频流认证技术的不足,提出一种基于h264/svc视频流的可伸缩认证方法,对gop(groupofpictures,即图像组)中的时域层、空域层数据单元建立基于解码依赖关系图拓扑排序的哈希附着方式,同时,对于质量层,提供不均等保护约束的最优分组,以提高视频流在认证比、认证负载带宽消耗、延迟时间、恢复视频质量方面的认证效率。

为实现上述发明目的,本发明基于h264/svc视频流的可伸缩认证方法,其特征在于,包括以下步骤:

(1)、建立时域层、空域层解码关系图并进行拓扑排序

1.1)、根据h264/svc视频流的编码规则,建立gop(groupofpicturs)中时域层的解码关系图:

定义时域层的解码关系图为一个有向图g(v,e),其中顶点集合v表示时域层au(accessunit,即访问单元)集合即一个访问单元为一个顶点,边集合e表示时域层au之间的解码依赖关系;顶点集合v中的顶点{v1,v2,…,vn}的序号即下标与访问单元的解码次序一致;采用有向边vi→vj表示顶点vj解码依赖于顶点vi,即只有当顶点vi正确接收后,顶点vj才能实现解码用于恢复视频帧图像;

采用邻接表存储时域层的解码关系图:定义邻接表为l,将顶点集合v中的每一个顶点表示为一个表头结点,表头结点中{outdegree,*edgefirst}分别表示该顶点的出度值和链接边域,表结点{vertexid,*next}为所有指向该顶点边对应的顶点序号和指针域,即表结点是该顶点解码所依赖的顶点,并且所有指向该顶点边对应的顶点的序号即表结点序号构成一个链表;

1.2)、根据邻接表l中元素取值,对时域层的解码关系图中顶点进行拓扑排序,以获取相应的认证哈希值附着方式:

1.2.1)、定义拓扑排序输出序列为sort,定义存放表结点序号的集合为p,sort与p初始值均为空;

通过遍历邻接表表头结点,将所有出度值为0的表头结点对应的顶点序号入栈;

1.2.2)、拓扑排序:若栈为空,则输出sort;否则从当前栈出栈一个顶点序号,并赋值到i;

1.2.3)、将邻接表中第i个表头节点l[i]的链表中所有的表结点中的顶点序号(即链接边域*edgefirst所指向的链表中的表结点中的顶点序号vertexid)存放于集合q,若集合q为空,执行1.2.4);否则从集合q中选择最大值,将其赋值到j中;

将哈希值附着关系添加至sort中,即sort=sort||i<j,关系i<j表示顶点vi的哈希值应附着在顶点vj之后;

对集合q中,将所有表结点序号对应表头节点的出度值减1,若某一表结点序号q,其对应表头节点的出度值l[q].outdegree减1等于0,则将表结点序号q入栈,最后置集合q为空,返回到步骤1.2.2);

1.2.4)、执行sort=sort||i,即所处理的是最后一个顶点,将对其直接进行哈希并签名;

对于空域层的解码关系图的建立与拓扑排序,除顶点集合v为不同分辨率视频帧的集合外,其他过程与时域层的解码关系图相同;

(2)、对质量层数据单元进行不均等保护约束的最优分组认证

在对质量层mgs(mediumgrainscalability,中等粒度可伸缩)数据分组优化采用迭代过程进行求解时,迭代过程采用代价函数为:

其中,cost(i,n)表示对长度为n的质量层mgs数据进行i个分组时所带来的代价,cost(i-1,n-xk)表示对去除掉第k个分组的质量层mgs数据进行i-1个分组时所带来的代价;

其中,为第k个分组带来的代价;

其中,s表示认证单个分组所需要的哈希大小;xk表示第k个分组的长度;参数b表示传输质量层mgs数据一个字节所需要的带宽消耗,其计算公式为:

b=size/d(f)

d(f)表示传输时域层au所需的时间,取值为视频编码的帧率的倒数;size表示1个字节的大小,p(x)表示网络信道带宽分布概率密度函数;参数bi-1表示为前i-1个质量层mgs数据分组所需要的带宽,即:

其中,xt表示第t个分组的长度;

(3)、对h264/svc进行逻辑单元哈希附着

对步骤(1)获得的gop中时域层、空域层拓扑排序即哈希认证附着方式,以及步骤(2)获得的质量层mgs数据分组大小集合,首先对gop中的质量层的分组数据进行认证,再对空域层数据进行认证,最后对时域层数据进行认证,并且对时域层中的基础层哈希进行签名;签名数据包、认证信息数据包根据质量层、时域层、空域层编号分别添加至h264/svc视频流的相应位置中;

接收方对获得的h264/svc视频流或子流,首先从签名数据包获得合并签名gop所有的哈希;对于单个gop,按照已获得的哈希对后续的时域层、空域层和质量层数据进行完整性验证,其过程与认证信息添加过程相反;若认证信息的哈希值与计算数据单元得到的哈希值相等,则采用该数据单元进行解码,否则丢弃该数据单元。

本发明的目的是这样实现的。

本发明基于h264/svc视频流的可伸缩认证方法,通过建立时域层、空域层解码关系图,然后采用邻接表进行存储,并利用邻接表进行拓扑排序,这样重复利用视频逻辑单元(访问单元、不同分辨率的帧)之间的解码依赖关系,能够将视频流中逻辑单元的认证关系与解码依赖关系充分耦合起来,提高了认证的效率。同时,对于在h264/svc视频流的质量层,采用不均等保护约束的最优分组认证,获得具有最小化代价函数值的分组方案,在提高视频流的质量层可伸缩性认证的同时,认证方法具有最小的通信负载。

附图说明

图1是本发明基于h264/svc视频流的可伸缩认证方法一种具体实施方式流程图;

图2是接收方用户信道带宽分布情况;

图3是视频流发送方延迟时间比较结果;

图4是视频流认证负载带宽消耗比较结果;

图5是视频流认证比与丢包率关系比较结果;

图6是视频流psnr与丢包率关系比较结果。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

本发明的目的在于针对现有h264/svc视频流认证技术的不足,提供一种可伸缩视频流认证方法:对gop(groupofpictures即图片组)中的时域层、空域层数据单元(时域层为访问单元,空域层为不同分辨率的视频帧)建立基于解码依赖关系图拓扑排序的哈希附着方式;对于质量层数据单元,提供不均等保护约束的最优分组认证方法,以提高视频流在认证比、认证负载带宽消耗、延迟时间、恢复视频质量方面的认证效率。

图1是本发明基于h264/svc视频流的可伸缩认证方法一种具体实施方式流程图。

在本实施例中,如图1所示,本发明基于h264/svc视频流的可伸缩认证方法包括以下步骤:

步骤s1:建立时域层、空域层解码关系图并进行拓扑排序

步骤s1.1:根据h264/svc视频流的编码规则,建立gop(groupofpicturs)中时域层的解码关系图:

首先,定义时域层的解码关系图为一个有向图g(v,e),其中顶点集合v表示时域层au(accessunit,即访问单元)集合即一个访问单元为一个顶点,边集合e表示时域层au之间的解码依赖关系;顶点集合v中的顶点{v1,v2,…,vn}的序号即下标与访问单元的解码次序一致;采用有向边vi→vj表示顶点vj解码依赖于顶点vi,即只有当顶点vi正确接收后,顶点vj才能实现解码用于恢复视频帧图像;

然后,采用邻接表存储时域层的解码关系图:定义邻接表为l,将顶点集合v中的每一个顶点表示为一个表头结点,表头结点中{outdegree,*edgefirst}分别表示该顶点的出度值(outdegree)和链接边域(*edgefirst),表结点{vertexid,*next}分别为所有指向该顶点(表头结点对应的顶点)边对应的顶点序号(vertexid)和指针域(*next),即表结点是该顶点解码所依赖的顶点,并且所有指向该顶点边对应的顶点的序号即表结点序号构成一个链表(其中,链表的第一个表结点由*edgefirst所指向,其余表结点分别由前一个表结点的*next所指向);

步骤s1.2:根据邻接表l中元素取值,对时域层的解码关系图中顶点进行拓扑排序,以获取相应的认证哈希值附着方式:

步骤s1.2.1):定义拓扑排序输出序列为sort,定义存放表结点序号的集合为p,sort与p初始值均为空;

通过遍历邻接表表头结点,将所有出度值为0的表头结点对应的顶点序号入栈;为提高算法处理效率,本发明采用栈数据结构存放当前所有出度值为0的顶点序列需要,用于认证时使用。

步骤s1.2.2):拓扑排序:若栈为空,则输出sort;否则从当前栈出栈一个顶点序号,并赋值到i;

步骤s1.2.3):将邻接表中第i个表头节点l[i]的链表中所有的表结点中的顶点序号(即链接边域*edgefirst所指向的链表中的表结点中的顶点序号vertexid)存放于集合q,若集合q为空,执行步骤s1.2.4);否则从集合q中选择最大值,将其赋值到j中;

将哈希值附着关系添加至sort中,即sort=sort||i<j,关系i<j表示顶点vi的哈希值应附着在顶点vj之后;

对集合q中,将所有表结点序号对应表头节点的出度值减1,若某一表结点序号q,其对应表头节点的出度值l[q].outdegree减1等于0,则将表结点序号q入栈,最后置集合q为空,返回到步骤s1.2.2);

步骤s1.2.4:执行sort=sort||i,即所处理的是最后一个顶点,将对其直接进行哈希并签名;

对于空域层的解码关系图的建立与拓扑排序,除顶点集合v为不同分辨率帧的集合外,其他过程与时域层的解码关系图相同。

步骤s2:对质量层数据单元进行不均等保护约束的最优分组认证

在本发明中,对于h264/svc视频流中质量层,采用分组认证方法以降低由于添加认证哈希值而引入的通信负载:考虑到不同质量层数据对于接收方恢复视频质量的影响,提供不均等的保护约束策略,即构建目标优化函数时,对于不同影响性的mgs数据的分组,将其认证长度作为一个目标优化项,以提高分组认证的有效性。

在本发明中,质量层mgs(mediumgrainscalability,中等粒度可伸缩)分组认证时,所使用的代价函数cost为:

其中,参数i表示分组数目,s表示认证单个分组所需要的哈希大小,xk表示第k个分组的长度,l为分组长度值,参数b表示传输mgs数据分组一个字节所需要的带宽消耗,其计算公式为:

b=size/d(f)

d(f)表示传输au所需的时间,取值为视频编码的帧率的倒数;size表示1个字节的大小,p(x)表示网络信道带宽分布概率密度函数;参数bk-1表示为前k-1个质量层mgs分组数据所需要的带宽,即

cost函数的第三项即:

表示对不同重要性mgs数据分组长度的限制,即若所该分组位于较低层次mgs分组数据部分,则相应的分组长度应该较小,反之若对于较高层次mgs数据,分组长度可以较大,这是本发明创新所在,即采用不均等保护约束的最优分组认证,获得具有最小化代价函数值的分组,在提高视频流的质量层可伸缩性认证的同时,具有最小的通信负载。

通过寻找合适的分组数目i,以及每组大小集合{x1,x2,...,xi},获取代价函数的极小值,则基于质量层的认证负载最优问题为:

mincost

其中n为质量层mgs分组数据总的长度;

具体而言,在本发明中,在对质量层mgs(mediumgrainscalable,中等粒度可伸缩)数据分组优化采用迭代过程进行求解时,迭代过程采用代价函数为:

其中,cost(i,n)表示对长度为n的质量层mgs数据进行i个分组时所带来的代价,cost(i-1,n-xk)表示对去除掉第k个分组的质量层mgs数据进行i-1个分组时所带来的代价;

其中,为第k个分组带来的代价;

其中,s表示认证单个分组所需要的哈希大小;xk表示第k个分组的长度;参数b表示传输质量层mgs数据一个字节所需要的带宽消耗,其计算公式为:

b=size/d(f)

d(f)表示传输时域层au所需的时间,取值为视频编码的帧率的倒数;size表示1个字节的大小,p(x)表示网络信道带宽分布概率密度函数;参数bi-1表示为前i-1个质量层mgs数据分组所需要的带宽,即:

其中,xt表示第t个分组的长度。

步骤s3:对h264/svc进行逻辑单元哈希附着

对步骤s1获得的gop中时域层、空域层拓扑排序即哈希认证附着方式,以及步骤s2获得的质量层的mgs数据分组大小集合,首先对gop中的质量层的分组数据进行认证,再对空域层数据进行认证,最后对时域层数据进行认证,并且对时域层中的基础层哈希进行签名;签名数据包、认证信息数据包根据质量层、时域层、空域层编号分别添加至h264/svc视频流的相应位置中;

接收方对获得的h264/svc视频流或子流,首先从签名数据包获得合并签名gop所有的哈希;对于单个gop,按照已获得的哈希对后续的时域层、空域层和质量层数据进行完整性验证,其过程与认证信息添加过程相反;若认证信息的哈希值与计算数据单元得到的哈希值相等,则采用该数据单元进行解码,否则丢弃该数据单元。

本步骤属于现有技术,在此不再赘述。

为了说明本发明的有益效果,下面设计了一组对比仿真实验,用于比较本发明发明提供的h264/svc视频流可伸缩认证方法与其它两种类似方法的认证性能,其它两种方法分别是文献[kianooshmokhtarian.authenticationofscalablevideostreamswithlowcommunicationoverhead[j].ieeetransactionsonmultimedia,2010,12(7):730-742]提出的fec方法和文献[yifanzhao.techniqueforauthenticatingh264/svcanditsperformanceevaluationoverwirelessmobilenetworks[j].journalofcomputerandsystemsciences,2014,80(2014):520-532]提出的eec方法。

实验仿真平台基于开源代码jsvm9.19,从jvt测试视频集中选取了三个不同内容、且编码后码率变化较大的视频作为本实验测试使用,视频名分别为:“bus”、“city”和“mobile”;采用jsvm对这些视频进行h264/svc编码,编码时帧率为15;选取gop中帧数目为8;空域层数目为2,分别为cif(352×288)与qcif(176×144)的解析度,其中cif表示层对应各个视频的码率分别为1.11mbps、2.05mbps和3.05mbps,qcif表示层对应的码率分别为0.28mbps、0.58mbps和0.78mbps;质量层数目为4,即每个空域层中质量层的基础层标识为0,增强层标识为1、2、3。采用sha-1算法进行哈希计算,生成20字节的哈希值;对视频流gop单元进行签名时,采用rsa签名算法,生成128字节的签名数据值。网络中mtu大小为1500字节,rtp数据包头部大小约40字节,考虑到哈希附着时需要占用一定字节数,实验中nal数据单元大小设置为1200字节。实验仿真中采用重传机制提高接收方获得认证信息概率,重复传输次数为2。

在模拟互联网中网络数据包丢包情况方面,假定码流中每个nal数据单元丢包情况满足独立同分布。根据数据包丢包模拟结果,对传输的视频流中一定数量的nal数据包进行丢弃。在对每个au中质量层分组优化认证时,需要预先设定网络通信带宽情况。结合所测试视频的码流,采用多模态高斯分布模拟网络带宽分布,并假设接收方所能获得的带宽集中在0.8mbps、2.5mbps和4mbps,如图2所示。接收方共有三个,分别对应不同带宽的子信道,且接收方pc计算机硬件配置分别为:3ghz处理器、2g内存容量;3.3ghz处理器、4g内存容量;3.6ghz处理器、8g内存容量,系统软件为win7操作系统。发送方由于需要对视频码流进行解析、分组优化认证等,采用处理速度较高的硬件计算机,配置为:3.2ghz处理器、16gb内存容量。

图3是视频流发送方延迟时间比较结果。

本发明提供的方法采用“ts”表示。ts与fec方法均需要要对n个gop进行缓存,而ecc方法仅需要缓存1个gop数据。如n=5时,ts方法对于“bus”、“city”和“mobile”三个视频码流的延迟分别为1.8s、2.5s和3.1s,而fec方法则需要延迟时间分别为6.7s、7.1s和7.7s,后者需要更多的时间用于fec信道编码和质量层优化算法中更大的搜索复杂度。eec方法对于单个图片组的延迟分别为1.5s、2.1s和2.5s,而ts方法此时需要的延迟时间分别为1s、1.4s和1.8s;可见ts方法在用于质量层优化分组时的时间小于ecc算法带来的延迟时间,且eec方法无法提供质量层的可伸缩性。

对于接收方的延迟时间,ts方法当接收方当获得签名nal数据包后,根据其中所包含的n个gop的哈希值,可以直接对后续n个gop进行验证,因此无需设置单独的缓冲区用于验证;而fec方法若n=5,至少需要缓存1个、最多需要缓存4个完整的gop数据才能对该gop进行认证;ecc方法则需要缓存1个完整gop数据。实验仿真中若接收方需要接收gop中所有的时域帧,则该gop播放所需时间为0.53s;若采用5个gop组合并签名认证,fec方法接收与播放“mobile”svc码流时,验证每个图片组平均需要1.15s,大于图片组的播放时间,需要约6.45mb大小的缓冲区。

从以上结果分析可知,三种方法对于svc码流认证时在发送方所产生的延迟时间区别较大,ts方法与fec方法延迟比较,至少小于3.8s、最多小于5.2s,与eec方法相比,延迟时间小于0.5s~0.7s;对于接收方延迟情况,ts方法可以对获取的gop数据直接验证,而其它两种方法则需要相应的缓存区存放图片组数据才能对其进行验证。

图4是视频流认证负载带宽消耗比较结果。

该图是三种认证方法对三个视频码流认证时平均所消耗的带宽情况比较结果。从该结果可以看出,ts方法带宽消耗最低。fec方法的带宽损耗最多,这是因为fec方法对于时域层中的每个层均采用了信道编码;eec方法因为不提供质量层的可伸缩性,所以对于每个质量层仅有一个哈希值认证负载,但在计算信道编码、每个gop单独进行签名部分消耗带宽较多。

图5是视频流认证比与丢包率关系比较结果。

在图5中,符号“noauth”表示在没有进行认证信息添加时,码流的认证比情况。从该图中可以看出,当网络中不存在丢弃情况下,三种方法的认证比都可以达到1;而随着网络丢包概率增大,三种认证方法的认证比都有所下降,其中ecc方法下降最多,其次是fec认证方法,而ts认证方法与“noauth”认证比降低最小。

图6是视频流psnr与丢包率关系比较结果。

在图6中,符号“noauth”表示在没有进行认证信息添加时,码流的psnr情况。psnr恢复视频质量研究的是视频帧的亮度信息的质量对比,并且对每个视频在所有子信道接收端的psnr求取平均值。从图中可以看出,当网络丢包率逐渐增大时,三种方法的psnr值相比较于“noauth”情况下都逐渐下降,fec与ecc认证方法下降速度较快,减小值在0.7db~4.5db之间;而ts认证方法在接收端psnr减小值最小,最大的减小值为0.4db。从上面的分析可知,相较于其它两种认证方法而言,ts认证方法所带来的视频帧质量影响,可以忽略。

通过以上的实验仿真与结果分析,说明本发明发明提供的方法具有很好的实施性,能够提供较好的认证性能,在视频流的延迟时间、负载带宽消耗、认证比以及视频流恢复质量方面,均优于现有的h264/svc视频流认证方法。本发明发明取得的视频流认证性能,主要受益于在哈希附着方式上,充分利用了视频流逻辑单元的解码依赖关系,使得解码依赖关系与哈希附着方式充分耦合;且在质量层的认证过程中,提供不均等保护约束的最优分组认证,使得认证负载引入的代价最小。本发明发明应用于h264/svc视频流认证时,在提供流安全认证的同时,对视频实时播放、视频恢复质量的影响最小。本发明方法对于研究实时网络视频流的安全传输具有一定的参考价值。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1