当前位置: 首页 > 专利查询>宁波大学专利>正文

一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法技术

技术编号:10640644 阅读:207 留言:0更新日期:2014-11-12 15:07
本发明专利技术公开了一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法,其在编码端,先提取宏块的特征向量和确定宏块的宿主向量,然后将上一个宏块的特征向量嵌入到当前的宏块的宿主向量中;在解码端,从嵌有特征信息的I帧中的宏块中提取出特征信息,并确定宏块的编码模式和亮度预测模式,再对非正确解码块进行错误恢复;优点是在编码端,提取的宏块的特征信息由宏块的子块的亮度预测模式或由宏块的编码模式和亮度预测模式确定,能有效恢复存在场景变换时丢失的宏块,并在向宿主向量中嵌入特征向量时,根据上一个宏块的编码模式,采用广义差分扩展的方法进行嵌入,不仅使得嵌入容量可控,而且可以实现提取特征信息后,还原I帧嵌入特征信息前的原始数据。

【技术实现步骤摘要】
一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法
本专利技术涉及一种视频网络传输过程中的错误复原及隐秘通信技术,尤其是涉及一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法。
技术介绍
随着多媒体技术日趋成熟以及用户需求的驱动,无线视频通信得到了越来越多的关注。但是无线通信网络和互联网的传输信道并不可靠,H.264/AVC视频码流在通信信道上传输时,特别是在具有较大噪声干扰的窄带信道或有可能丢包的信道(Internet)上传输时,信道干扰、网络拥塞和路由选择延迟等问题会导致随机比特错误、突发性差错等误码现象的发生。高效的H.264/AVC视频编码标准对视频码流完整性的依赖较强,一旦发生丢包或误码,对视频质量的影响非常大。这是因为:一方面,H.264/AVC采用可变长编码(VLC,VariableLengthCoding)来提高编码效率,但是由于变长编码的每个VLC码字具有不同的长度,因此若其中某些比特位出现错误,则解码器无法正确跳过出错码字,从而使VLC码字失去同步,导致后面的比特流无法正确解码;另一方面,H.264/AVC采用帧内预测、运动估计、运动矢量预测等预测技术,使得后面的数据在编码时要参考前面的数据,如果某部分数据出现错误,则不仅自身不能正确解码,而且其后面的数据也将受到影响,并且这种影响会一直持续到后续多帧。上述情况都将直接地导致视频信息的错误解码,使视频信号的重建质量急剧下降,严重时甚至会导致整个视频通信完全失效。因此,如何降低或者消除传输错误的影响是低码率视频通信应用中一个重要的研究方向。尽管目前已出现了一些针对H.264/AVC视频的错误恢复方法,例如在解码端利用视频内容相关性进行错误恢复;在编码端和解码端之间建立反馈通道的交互式错误恢复;利用信息隐藏技术,在编码端提取适于错误恢复的特征信息,通过信息隐藏的方式,将特征信息传递给解码端用于错误恢复。其中,基于信息隐藏技术进行错误恢复的方法,由于编码端的信息较解码端丰富、准确,是一种新的处理视频错误恢复的思路。Lin等人引用基于差分扩展的可逆数据隐藏方法来嵌入特征信息,但由于特征信息是像素值,导致嵌入的特征信息比特数非常多,因此使用了多层差分,计算相对复杂。Chen等人提出了一种有效的错误恢复方法,该方法将计算得到的I帧中的每个宏块的运动矢量(Motionvector,MV)作为重要特征数据,采用环路的方式嵌入到同一帧其他宏块中,嵌入方法采用的是奇偶嵌入法,由于嵌入信息后永久性的改变了视频载体原始的量化DCT(DiscreteCosineTransform)系数值,因此在提取信息后,会影响重建的视频质量。Chung等人在此基础上采用直方图平移的可逆信息隐藏方法,将宏块的运动矢量嵌入到值为零的量化DCT系数中,但该方法需要修改很多量化DCT系数,这样不仅会影响视频的不可感知性,而且会增加传输码率。因此,基于信息隐藏技术进行错误恢复的方法在提取有效特征、选择合适的嵌入方法和嵌入位置、提高视频重建质量等方面仍有改善的空间。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法,在存在场景变换时,其提取出的特征信息能高效恢复I帧中丢失的宏块,提升了I帧错误恢复质量,且其在提取出特征信息后,能够还原I帧宏块在嵌入特征信息前的原始数据。本专利技术解决上述技术问题所采用的技术方案为:一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法,其特征在于包括以下步骤:①在编码端,向I帧中除第1个宏块外的每个宏块中嵌入特征信息,得到嵌有特征信息的I帧,具体过程为:①-1、将I帧中当前预编码完成的第k个宏块定义为当前宏块,其中,1≤k≤K,在此K表示I帧中包含的宏块的总个数,k的初始值为1;①-2、将当前宏块的CBP的十进制值转化为由6位二进制值组成的二进制串,并记为A,A=a1a2a3a4a5a6,其中,a1为A的最高位二进制值,a6为A的最低位二进制值;①-3、提取当前宏块的特征向量:如果当前宏块的编码模式为Intra4×4,则提取当前宏块中编号为0、4、8、12这四个4×4块各自的亮度预测模式的数字标识,然后将这四个4×4块各自的亮度预测模式的数字标识量化为4个比特,之后按这四个4×4块在当前宏块中的编号的顺序将这四个4×4块的亮度预测模式以比特表示的数字标识排列构成一个包含16个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为其中,和对应表示当前宏块的特征向量wIntra4×4(k)中的第1个元素、第2个元素和第16个元素;如果当前宏块的编码模式为Intra16×16,则用数字9标识当前宏块的编码模式,然后将当前宏块的编码模式的数字标识量化为4个比特,并将当前宏块的亮度预测模式的数字标识量化为4个比特,之后按先后顺序将当前宏块的编码模式以比特表示的数字标识和当前宏块的亮度预测模式以比特表示的数字标识排列构成一个包含8个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为wIntra16×16(k),其中,和对应表示当前宏块的特征向量wIntra16×16(k)中的第1个元素、第2个元素和第8个元素;①-4、确定当前宏块的宿主向量:计算当前宏块中的每个4×4块的所有交流DCT系数的绝对值的和,将和值最大的4×4块作为特征信息嵌入块,然后以zig-zag方式扫描特征信息嵌入块中的所有量化DCT系数,之后按zig-zag方式扫描的顺序将特征信息嵌入块中的第8个至第16个量化DCT系数排列构成一个包含9个元素的一维向量,再将该一维向量作为当前宏块的宿主向量,记为x(k),x(k)=(x1x2…x9),其中,x1、x2和x9对应表示当前宏块的宿主向量x(k)中的第1个元素、第2个元素和第9个元素;①-5、将当前宏块的上一个宏块的特征向量嵌入到当前宏块的宿主向量中:判断当前宏块是否为I帧中的第1个宏块,如果是,则对当前宏块不作处理,直接执行步骤①-7;否则,若当前宏块的上一个宏块的编码模式为Intra4×4,则采用两次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra4×4(k-1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①-6;若当前宏块的上一个宏块的编码模式为Intra16×16,则采用一次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra16×16(k-1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①-6;①-6、修改当前宏块的CBP,然后执行步骤①-7;①-7、对当前宏块进行熵编码;①-8、令k=k+1,将I帧中下一个预编码完成的宏块作为当前宏块,再返回步骤①-2继续执行,直至I帧中的所有预编码完成的宏块处理完毕,得到嵌有特征信息的I帧的编码码流,其中,k=k+1中的“=”为赋值符号;②在解码端,从嵌有特征信息的I帧中的每个宏块中提取出特征信息,并确定每个宏块的编码模式和亮度预测模式本文档来自技高网
...
一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法

【技术保护点】
一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法,其特征在于包括以下步骤:①在编码端,向I帧中除第1个宏块外的每个宏块中嵌入特征信息,得到嵌有特征信息的I帧,具体过程为:①‑1、将I帧中当前预编码完成的第k个宏块定义为当前宏块,其中,1≤k≤K,在此K表示I帧中包含的宏块的总个数,k的初始值为1;①‑2、将当前宏块的CBP的十进制值转化为由6位二进制值组成的二进制串,并记为A,A=a1a2a3a4a5a6,其中,a1为A的最高位二进制值,a6为A的最低位二进制值;①‑3、提取当前宏块的特征向量:如果当前宏块的编码模式为Intra4×4,则提取当前宏块中编号为0、4、8、12这四个4×4块各自的亮度预测模式的数字标识,然后将这四个4×4块各自的亮度预测模式的数字标识量化为4个比特,之后按这四个4×4块在当前宏块中的编号的顺序将这四个4×4块的亮度预测模式以比特表示的数字标识排列构成一个包含16个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为wIntra4×4(k),wIntra4×4(k)=(wk,1Intra4×4wk,2Intra4×4...wk,16Intar4×4),]]>其中,和对应表示当前宏块的特征向量wIntra4×4(k)中的第1个元素、第2个元素和第16个元素;如果当前宏块的编码模式为Intra16×16,则用数字9标识当前宏块的编码模式,然后将当前宏块的编码模式的数字标识量化为4个比特,并将当前宏块的亮度预测模式的数字标识量化为4个比特,之后按先后顺序将当前宏块的编码模式以比特表示的数字标识和当前宏块的亮度预测模式以比特表示的数字标识排列构成一个包含8个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为wIntra16×16(k),wIntra16×16(k)=(wk,1Intra16×16wk,2Intra16×16...wk,8Intar16×16),]]>其中,和对应表示当前宏块的特征向量wIntra16×16(k)中的第1个元素、第2个元素和第8个元素;①‑4、确定当前宏块的宿主向量:计算当前宏块中的每个4×4块的所有交流DCT系数的绝对值的和,将和值最大的4×4块作为特征信息嵌入块,然后以zig‑zag方式扫描特征信息嵌入块中的所有量化DCT系数,之后按zig‑zag方式扫描的顺序将特征信息嵌入块中的第8个至第16个量化DCT系数排列构成一个包含9个元素的一维向量,再将该一维向量作为当前宏块的宿主向量,记为x(k),x(k)=(x1x2…x9),其中,x1、x2和x9对应表示当前宏块的宿主向量x(k)中的第1个元素、第2个元素和第9个元素;①‑5、将当前宏块的上一个宏块的特征向量嵌入到当前宏块的宿主向量中:判断当前宏块是否为I帧中的第1个宏块,如果是,则对当前宏块不作处理,直接执行步骤①‑7;否则,若当前宏块的上一个宏块的编码模式为Intra4×4,则采用两次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra4×4(k‑1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①‑6;若当前宏块的上一个宏块的编码模式为Intra16×16,则采用一次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra16×16(k‑1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①‑6;①‑6、修改当前宏块的CBP,然后执行步骤①‑7;①‑7、对当前宏块进行熵编码;①‑8、令k=k+1,将I帧中下一个预编码完成的宏块作为当前宏块,再返回步骤①‑2继续执行,直至I帧中的所有预编码完成的宏块处理完毕,得到嵌有特征信息的I帧的编码码流,其中,k=k+1中的“=”为赋值符号;②在解码端,从嵌有特征信息的I帧中的每个宏块中提取出特征信息,并确定每个宏块的编码模式和亮度预测模式,再对非正确解码块进行错误恢复,具体过程为:②‑1、对嵌有特征信息的I帧中的每个宏块进行熵解码,然后确定熵解码后的每个宏块是否为正确解码块,接着确定除熵解码后的第1个宏块外的每个正确解码块的包含有特征信息的向量,再从除熵解码后的第1个宏块外的每个正确解码块的包含有特征信息的向量中提取出特征信息,并确定除熵解码后的第1个宏块外的每个正确解码块的上一个宏块的编码模式和亮度预测模式,假设熵解码后的第k'个宏块为正确解码块,则确定该宏块的包含有特征信息的向量的具体过程为:计算该...

【技术特征摘要】
1.一种基于可逆数据隐藏的H.264/AVC视频I帧错误恢复方法,其特征在于包括以下步骤:①在编码端,向I帧中除第1个宏块外的每个宏块中嵌入特征信息,得到嵌有特征信息的I帧,具体过程为:①-1、将I帧中当前预编码完成的第k个宏块定义为当前宏块,其中,1≤k≤K,在此K表示I帧中包含的宏块的总个数,k的初始值为1;①-2、将当前宏块的CBP的十进制值转化为由6位二进制值组成的二进制串,并记为A,A=a1a2a3a4a5a6,其中,a1为A的最高位二进制值,a6为A的最低位二进制值;①-3、提取当前宏块的特征向量:如果当前宏块的编码模式为Intra4×4,则提取当前宏块中编号为0、4、8、12这四个4×4块各自的亮度预测模式的数字标识,然后将这四个4×4块各自的亮度预测模式的数字标识量化为4个比特,之后按这四个4×4块在当前宏块中的编号的顺序将这四个4×4块的亮度预测模式以比特表示的数字标识排列构成一个包含16个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为wIntra4×4(k),其中,和对应表示当前宏块的特征向量wIntra4×4(k)中的第1个元素、第2个元素和第16个元素;如果当前宏块的编码模式为Intra16×16,则用数字9标识当前宏块的编码模式,然后将当前宏块的编码模式的数字标识量化为4个比特,并将当前宏块的亮度预测模式的数字标识量化为4个比特,之后按先后顺序将当前宏块的编码模式以比特表示的数字标识和当前宏块的亮度预测模式以比特表示的数字标识排列构成一个包含8个元素的一维向量,再将该一维向量作为当前宏块的特征向量,记为wIntra16×16(k),其中,和对应表示当前宏块的特征向量wIntra16×16(k)中的第1个元素、第2个元素和第8个元素;①-4、确定当前宏块的宿主向量:计算当前宏块中的每个4×4块的所有交流DCT系数的绝对值的和,将和值最大的4×4块作为特征信息嵌入块,然后以zig-zag方式扫描特征信息嵌入块中的所有量化DCT系数,之后按zig-zag方式扫描的顺序将特征信息嵌入块中的第8个至第16个量化DCT系数排列构成一个包含9个元素的一维向量,再将该一维向量作为当前宏块的宿主向量,记为x(k),x(k)=(x1x2…x9),其中,x1、x2和x9对应表示当前宏块的宿主向量x(k)中的第1个元素、第2个元素和第9个元素;①-5、将当前宏块的上一个宏块的特征向量嵌入到当前宏块的宿主向量中:判断当前宏块是否为I帧中的第1个宏块,如果是,则对当前宏块不作处理,直接执行步骤①-7;否则,若当前宏块的上一个宏块的编码模式为Intra4×4,则采用两次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra4×4(k-1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①-6;若当前宏块的上一个宏块的编码模式为Intra16×16,则采用一次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra16×16(k-1)嵌入到当前宏块的宿主向量x(k)中,得到当前宏块对应的嵌有特征信息的向量然后用中的所有元素按序替换当前宏块中的特征信息嵌入块中的第8个至第16个量化DCT系数,再执行步骤①-6;所述的步骤①-5中采用两次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra4×4(k-1)嵌入到当前宏块的宿主向量x(k)中的具体过程为:A1、对x(k)进行正变换,得到向量y(k),y(k)=(y1y2…y9),其中,y1、y2和y9对应表示y(k)中的第1个元素、第2个元素和第9个元素,y2=x2-x1,yi'=xi'-x1,y9=x9-x1,2≤i'≤9,αi为权值,符号为向下取整符号;A2、将wIntra4×4(k-1)中的第1个元素至第8个元素嵌入到y(k)中,得到向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9,和对应表示wIntra4×4(k-1)中的第1个元素、第i'-1个元素和第8个元素;A3、对进行逆变换,得到嵌有部分特征信息的向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9;A4、对进行正变换,得到向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9,αi为权值;A5、将wIntra4×4(k-1)中的第9个元素至第16个元素嵌入到中,得到向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9,和对应表示wIntra4×4(k-1)中的第9个元素、第i'+7个元素和第16个元素;A6、对进行逆变换,得到当前宏块对应的嵌有特征信息的向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9;所述的步骤①-5中采用一次广义差分扩展的方法将当前宏块的上一个宏块的特征向量wIntra16×16(k-1)嵌入到当前宏块的宿主向量x(k)中的具体过程为:B1、对x(k)进行正变换,得到向量y(k),y(k)=(y1y2…y9),其中,y1、y2和y9对应表示y(k)中的第1个元素、第2个元素和第9个元素,y2=x2-x1,yi'=xi'-x1,y9=x9-x1,2≤i'≤9,αi为权值,符号为向下取整符号;B2、将wIntra16×16(k-1)嵌入到y(k)中,得到向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9,和对应表示wIntra16×16(k-1)中的第1个元素、第i'-1个元素和第8个元素;B3、对进行逆变换,得到当前宏块对应的嵌有特征信息的向量其中,和对应表示中的第1个元素、第2个元素和第9个元素,2≤i'≤9;①-6、修改当前宏块的CBP,然后执行步骤①-7;所述的步骤①-6中修改当前宏块的CBP的具体过程为:①-6a、如果当前宏块中的特征信息嵌入块所在的8×8块为当前宏块中左上角位置的8×8块,则统计当前宏块嵌入特征信息后左上角位置的8×8块中的所有量化DCT系数是否全为0,如果全为0,则将A中的a6置为0,a3,a4,a5保持不变,如果不全为0,则将A中的a6置为1,a3,a4,a5保持不变;如果当前宏块中的特征信息嵌入块所在的8×8块为当前宏块中右上角位置的8×8块,则统计当前宏块嵌入特征信息后右上角位置的8×8块中的所有量化DCT系数是否全为0,如果全为0,则将A中的a5置为0,a3,a4,a6保持不变,如果不全为0,则将A中的a5置为1,a3,a4,a6保持不变;如果当前宏块中的特征信息嵌入块所在的8×8块为当前宏块中左下角位置的8×8块,则统计当前宏块嵌入特征信息后左下角位置的8×8块中的所有量化DCT系数是否全为0,如果全为0,则将A中的a4置为0,a3,a5,a6保持不变,如果不全为0,则将A中的a4置为1,a3,a5,a6保持不变;如果当前宏块中的特征信息嵌入块所在的8×8块为当前宏块中右下角位置的8×8块,则统计当前宏块嵌入特征信息后右下角位置的8×8块中的所有量化DCT系数是否全为0,如果全为0,则将A中的a3置为0,a4,a5,a6保持不变,如果不全为0,则将A中的a3置为1,a4,a5,a6保持不变;①-6b、将修改后的A转化成十进制数,得到当前宏块修改后的CBP;①-7、对当前宏块进行熵编码;①-8、令k=k+1,将I帧中下一个预编码完成的宏块作为当前宏块,再返回步骤①-2继续执行,直至I帧中的所有预编码完成的宏块处理完毕,得到嵌有特征信息的I帧的编码码流,其中,k=k+1中的“=”为赋值符号;②在解码端,从嵌有特征信息的I帧中的每个宏块中提取出特征信息,并确定每个宏块的编码模式和亮度预...

【专利技术属性】
技术研发人员:王让定李然然徐达文李倩李伟王家骥
申请(专利权)人:宁波大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1