【技术实现步骤摘要】
一种基于可逆数据隐藏的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.2 ...
【技术保护点】
一种基于可逆数据隐藏的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&t ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。