CN104581176A - 无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 - Google Patents
无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 Download PDFInfo
- Publication number
- CN104581176A CN104581176A CN201410828416.2A CN201410828416A CN104581176A CN 104581176 A CN104581176 A CN 104581176A CN 201410828416 A CN201410828416 A CN 201410828416A CN 104581176 A CN104581176 A CN 104581176A
- Authority
- CN
- China
- Prior art keywords
- watermark
- sub
- frame
- current
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入及提取方法,该视频水印嵌入方法通过解析出I帧中预测编码模式为Intra_4×4的宏块中非零残差系数的个数大于阈值的残差系数矩阵,再通过调制残差系数矩阵与相应水印模板之间的正负相关性,将水印嵌入在I帧中的预测编码模式为Intra_4×4的宏块中的4×4子块中;优点是降低了计算复杂度,且嵌入水印后的视频流码率变化保持稳定,既解决了误差漂移问题又进一步增加了压缩域视频水印的鲁棒性。
Description
技术领域
本发明涉及一种视频水印技术,尤其是涉及一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入及提取方法。
背景技术
随着网络和多媒体技术的飞速发展,视频的传输和处理等操作变得越来越容易。如何保护视频所有者的合法权益,成为一个亟待解决的问题。视频水印技术是解决这一问题的有效手段。视频数据量庞大,通常是以压缩的形式进行存储和传输的,而传统视频水印算法需要完全解码出原始视频才能进行水印的嵌入和检测,不适用于压缩视频。在压缩域中嵌入水印主要有两类方法,第一类是联合编码的压缩域水印方法,这类方法可以在闭环回路加入水印,不会造成误差漂移,视频质量好,但是当这类方法应用于压缩视频流时,需要完全解码出原始视频再联合编码嵌入水印,复杂度极高;第二类是基于视频流的压缩域水印方法,这类方法避免了复杂的编码过程,计算复杂度低,但是只能在开环回路嵌入水印,含水印的重建值会对后续块的重建产生预测误差,造成误差漂移。依据对误差漂移的处理方式将这类方法分为3类型,第1类型是不考虑误差漂移问题,直接嵌入水印,实时性好,但是由于没有考虑误差漂移问题,因此视频质量难以得到保证;第2类型是对误差漂移进行补偿,增加了计算复杂度,该类已有的方法鲁棒性能差且大部分是可检测而不可读方案,不适用于一些需要提取水印的应用场合;第3类型是巧妙限制或者避免误差漂移,实时性强且视频质量好,但是已有的水印方法鲁棒性欠佳。
发明内容
本发明所要解决的技术问题是提供一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入及提取方法,其在保证视频质量的前提下,能够有效地降低计算复杂度,且提高鲁棒性。
本发明解决上述技术问题所采用的技术方案为:一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于包括以下步骤:
①-1、在水印嵌入端,将符合H.264/AVC标准的待处理视频流定义为目标视频流,记为Test.264;
①-2、对待嵌入的水印信息用密钥key1置乱加密后得到加密水印信息,记为M,M={m1,m2,…,mn-1,mn},其中,n表示M的总比特数,m1、m2、mn-1和mn对应表示M中的第1个比特、第2个比特、第n-1个比特和第n个比特;
①-3、以帧为单位解析目标视频流Test.264,将目标视频流Test.264中当前待解析的帧定义为当前帧;
①-4、如果当前帧为I帧,则令SW表示当前帧中已嵌入的水印的总比特数,然后执行步骤①-5,其中,SW的初始值为0;如果当前帧为P帧或B帧,则对当前帧不进行水印嵌入操作,然后执行步骤①-10;
①-5、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片;
①-6、依序解析当前片中的每个以帧内预测模式编码的宏块,将当前片中当前解析出的以帧内预测模式编码的宏块定义为当前宏块;
①-7、如果当前宏块采用的预测编码模式为Intra_16×16,则对当前宏块不进行水印嵌入操作,然后执行步骤①-8;
如果当前宏块采用的预测编码模式为Intra_4×4,则解析出当前宏块中的每个4×4子块的残差系数矩阵,将当前宏块中的第k个4×4子块的残差系数矩阵中下标为(i,j)处的残差系数记为并统计当前宏块中的每个4×4子块的残差系数矩阵中的非零残差系数的个数,将当前宏块中的第k个4×4子块的残差系数矩阵中的非零残差系数的个数记为且将当前宏块在当前帧中的序号记为MB_Address,其中,k的初始值为1,1≤k≤16,1≤i≤4,1≤j≤4;然后执行以下步骤:
①-7a、将当前宏块中当前正在处理的第k个4×4子块定义为当前子块;
①-7b、判断是否小于当前帧的嵌入阈值T或者SW是否大于或等于100,如果是,则对当前子块不进行水印嵌入操作,然后对当前子块的残差系数矩阵重新进行熵编码,再执行步骤①-7c;
否则,将当前子块所在的8×8子块在当前宏块中的序号记为b8,将当前子块在其所在的8×8子块中的序号记为b4;然后将MB_Address、b8和b4作为当前子块的水印边信息,并根据MB_Address、b8、b4和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的嵌入水印模板,将最终的嵌入水印模板记为W,其中,f()为选择函数;接着假设M中当前待嵌入当前子块中的比特为第p个比特,则将M中的第p个比特mp嵌入当前子块中,将当前子块嵌入水印后的残差系数矩阵中下标为(i,j)处的残差系数记为 其中,p的初始值为1,1≤p≤n,N为一个整数,W(i,j)表示W中下标为(i,j)处的水印;之后对当前子块嵌入水印后的残差系数矩阵进行熵编码,并令SW=SW+1,p=p+1,其中,SW=SW+1和p=p+1中的“=”为赋值符号;再执行步骤①-7c;
①-7c、令k=k+1,然后将当前宏块中下一个待处理的4×4子块作为当前子块,接着返回步骤①-7b继续执行,直至当前宏块中的所有4×4子块处理完毕,完成当前宏块的水印嵌入,再执行步骤①-8,其中,k=k+1中的“=”为赋值符号;
①-8、将当前片中下一个解析出的以帧内预测模式编码的宏块作为当前宏块,然后返回步骤①-7继续执行,直至当前片中的所有以帧内预测模式编码的宏块处理完毕,再执行步骤①-9;
①-9、将当前帧中下一个待解析的片作为当前片,然后返回步骤①-6继续执行,直至当前帧中的所有片处理完毕,再执行步骤①-10;
①-10、将目标视频流Test.264中下一个待解析的帧作为当前帧,然后返回步骤①-4继续执行,直至目标视频流Test.264中的所有帧处理完毕,得到嵌有水印信息的H.264/AVC视频流,记为TestW.264;
①-11、在水印嵌入端,将目标视频流Test.264中的每帧中采用Intra_4×4预测编码模式的宏块中的4×4子块的水印边信息、密钥key2及密钥key1发送给水印提取端。
所述的步骤①-7b中当前帧的嵌入阈值T的获取过程为:
如果当前帧为目标视频流Test.264中的第1个I帧,则令T=T1,其中,T1表示设定的最低阈值;
如果当前帧为目标视频流Test.264中除第1个I帧外的其它I帧,则T的确定过程为:1)根据当前帧中的所有4×4子块各自的残差系数矩阵中的非零残差系数的个数,统计当前帧中的非零残差系数的个数为NNZ的4×4子块的个数,记为a(NNZ),其中,NNZ∈[0,16];2)令Sa(Q)表示当前帧中的非零残差系数的个数大于或等于Q的4×4子块的个数,其中,Q为大小在区间[0,16]内的整数变量;3)假设Told为当前帧的前1个I帧的嵌入阈值,则当时,直接令T=T1;当时,使T的值从16开始以1递减,直至等于T1,将满足条件Sa(T)≥70的最大的T的值作为T的最终取值,若不存在满足条件Sa(T)≥70的T的值,则直接令T=T1;其中,表示当前帧中的非零残差系数的个数大于或等于Told的4×4子块的个数,T1表示设定的最低阈值,Sa(T)表示当前帧中的非零残差系数的个数大于或等于T的4×4子块的个数。
所述的步骤①-7b中取 取
所述的步骤①-7b中的N的获取过程为:当mp=0时,使N的值从0开始以1递增,将满足条件的最小的N的值作为N的最终取值;当mp=1时,使N的值从0开始以1递减,将满足条件的最大的N的值作为N的最终取值;其中,β为一个正整数。
上述β的取值为:
所述的步骤①-7b中f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,其中,符号“⊕”为异或运算符,符号“%”为求余运算符。
一种与上述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法相应的提取方法,其特征在于包括以下步骤:
②-1、在水印提取端,将嵌有水印信息的H.264/AVC视频流定义为目标视频流,记为TestW.264;
②-2、以帧为单位解析目标视频流TestW.264,将目标视频流TestW.264中当前待解析的帧定义为当前帧;
②-3、如果当前帧为I帧,则执行步骤②-4;如果当前帧为P帧或B帧,则对当前帧不进行水印提取操作,然后执行步骤②-7;
②-4、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片;
②-5、根据水印嵌入端发送的4×4子块的水印边信息,定位当前片中的水印嵌入位置,然后解析出当前片中的所有嵌有水印的4×4子块各自的残差系数矩阵,接着从当前片中的每个嵌有水印的4×4子块中提取出水印,再执行步骤②-6;
其中,对于当前片中的任一个嵌有水印的4×4子块的水印提取过程为:
②-5a、根据该4×4子块的水印边信息和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的提取水印模板,将最终的提取水印模板记为W',其中,f()为选择函数,MB_Address,b8,b4为该4×4子块的水印边信息,MB_Address表示该4×4子块所在的宏块在当前帧中的序号,b8表示该4×4子块所在的8×8子块在该4×4子块所在的宏块中的序号,b4表示该4×4子块在其所在的8×8子块中的序号;
②-5b、令然后判断是否大于0,如果是,则从该4×4子块中提取出水印比特0,否则,从该4×4子块中提取出水印比特1;其中,1≤i≤4,1≤j≤4,W'(i,j)表示W'中下标为(i,j)处的水印,R'c,W(i,j)表示该4×4子块的残差系数矩阵中下标为(i,j)处的残差系数;
②-6、将当前帧中下一个待解析的片作为当前片,然后返回步骤②-5继续执行,直至当前帧中的所有片处理完毕,再执行步骤②-7;
②-7、将目标视频流TestW.264中下一个待解析的帧作为当前帧,然后返回步骤②-3继续执行,直至目标视频流TestW.264中的所有帧处理完毕,完成目标视频流TestW.264中嵌入的水印信息的提取;
②-8、将从目标视频流TestW.264中提取出的水印信息记为M',然后对M'用密钥key1解密后得到原始的水印信息。
所述的步骤②-5a中取 取
所述的步骤②-5a中f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,其中,符号“⊕”为异或运算符,符号“%”为求余运算符。
与现有技术相比,本发明的优点在于:
1)本发明的视频水印嵌入方法和视频水印提取方法均充分考虑了误差漂移特性,使用能够避免误差漂移的水印模板,使得视频质量得到了保证。
2)本发明的视频水印嵌入方法选择数据打包优先级高的I帧数据嵌入水印,这能够抵抗一定的信道丢包攻击。
3)本发明的视频水印嵌入方法利用人眼对纹理复杂区域比较不敏感的视觉特性,选择代表纹理复杂的非零残差系数个数多的4×4子块嵌入水印,这对视觉舒适度影响小。
4)本发明的视频水印嵌入方法将水印嵌入在更为稳定的数据域即非零残差系数个数多的4×4子块中,并且采用更为鲁棒的水印嵌入方式,即通过调制相应水印模板与残差系数矩阵的正负相关性嵌入水印,嵌入水印后的视频流码率变化保持稳定,既解决了误差漂移问题又进一步增加了压缩域视频水印的鲁棒性,对比以往的视频水印算法在抗量化转码以及添加噪声攻击等一些常见水印攻击上鲁棒性更高。
5)本发明的视频水印嵌入方法和视频水印提取方法过程简单、快速,且无需原始视频的参与,计算复杂度低,能够满足需要实时处理的应用场合。
附图说明
图1a为本发明的视频水印嵌入方法的总体实现框图;
图1b为本发明的视频水印提取方法的总体实现框图;
图2a为Foreman标准测试序列经压缩编码后的第30帧亮度图像;
图2b为News标准测试序列经压缩编码后的第30帧亮度图像;
图2c为Carphone标准测试序列经压缩编码后的第30帧亮度图像;
图2d为Container标准测试序列经压缩编码后的第30帧亮度图像;
图2e为Stefan标准测试序列经压缩编码后的第30帧亮度图像;
图2f为Mobile标准测试序列经压缩编码后的第30帧亮度图像;
图3a为Foreman标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图3b为News标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图3c为Carphone标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图3d为Container标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图3e为Stefan标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图3f为Mobile标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像;
图4为Foreman、News、Carphone、Container、Stefan、Mobile标准测试序列在水印嵌入前和水印嵌入后各自的解码视频与原始视频之间的结构相似度SSIM的曲线图;
图5a为从重量化转码攻击后的视频流中提取出的水印的误码率BER;
图5b为从高斯模糊攻击后的视频流中提取出的水印的误码率BER;
图5c为从图像锐化攻击后的视频流中提取出的水印的误码率BER;
图5d为从高斯噪声攻击后的视频流中提取出的水印的误码率BER;
图5e为从亮度减弱攻击后的视频流中提取出的水印的误码率BER;
图5f为从亮度增强攻击后的视频流中提取出的水印的误码率BER。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例一:
本实施例提出的一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其总体实现框图如图1a所示,其在水印嵌入端,判断处理的帧是否为I帧,如果是,则进入下一个判定条件,否则,跳过该帧;对处理的I帧中的片中的宏块的预测编码模式进行判定,若为Intra_4×4,则进入下一个判定条件,否则该宏块不嵌入水印;对于预测编码模式为Intra_4×4的宏块中的各个4×4子块,若某个4×4子块的非零残差系数的个数以及处理的I帧已嵌入的水印总比特数均满足嵌入条件,则通过调制残差系数矩阵与相应的水印模板之间的相关性嵌入水印信息,否则该4×4子块不嵌入水印。
该视频水印嵌入方法具体包括以下步骤:
①-1、在水印嵌入端,将符合H.264/AVC标准的待处理视频流定义为目标视频流,记为Test.264。
目标视频流Test.264由I帧数据、P帧数据和B帧数据组成,每个类型的帧数据由若干个片数据组成,将I帧数据中的片数据记为I_Slice,每个I_Slice由若干个以帧内预测模式编码的宏块数据组成,将每个I_Slice中的以帧内预测模式编码的宏块定义为I宏块,I宏块有两种预测编码模式,分别为Intra_4×4和Intra_16×16,当I宏块采用Intra_4×4预测编码模式时,I宏块划分为16个4×4子块,每个4×4子块经预测、计算预测残差、整数变换、量化后得到一个4×4残差系数矩阵。
①-2、对待嵌入的水印信息用密钥key1置乱加密后得到加密水印信息,记为M,M={m1,m2,…,mn-1,mn},其中,n表示M的总比特数,m1、m2、mn-1和mn对应表示M中的第1个比特、第2个比特、第n-1个比特和第n个比特。
①-3、以帧为单位解析目标视频流Test.264,将目标视频流Test.264中当前待解析的帧定义为当前帧。
①-4、如果当前帧为I帧,则令SW表示当前帧中已嵌入的水印的总比特数,然后执行步骤①-5,其中,SW的初始值为0;如果当前帧为P帧或B帧,则对当前帧不进行水印嵌入操作,然后执行步骤①-10。
①-5、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片。
①-6、依序解析当前片中的每个以帧内预测模式编码的宏块,将当前片中当前解析出的以帧内预测模式编码的宏块定义为当前宏块。
①-7、如果当前宏块采用的预测编码模式为Intra_16×16,则对当前宏块不进行水印嵌入操作,然后执行步骤①-8。
如果当前宏块采用的预测编码模式为Intra_4×4,则解析出当前宏块中的每个4×4子块的残差系数矩阵,将当前宏块中的第k个4×4子块的残差系数矩阵中下标为(i,j)处的残差系数记为并统计当前宏块中的每个4×4子块的残差系数矩阵中的非零残差系数的个数,将当前宏块中的第k个4×4子块的残差系数矩阵中的非零残差系数的个数记为且将当前宏块在当前帧中的序号记为MB_Address,其中,k的初始值为1,1≤k≤16,1≤i≤4,1≤j≤4;然后执行以下步骤:
①-7a、将当前宏块中当前正在处理的第k个4×4子块定义为当前子块。
①-7b、判断是否小于当前帧的嵌入阈值T或者SW是否大于或等于100,如果是,则对当前子块不进行水印嵌入操作,然后对当前子块的残差系数矩阵重新进行熵编码,再执行步骤①-7c。
否则,将当前子块所在的8×8子块在当前宏块中的序号记为b8,将当前子块在其所在的8×8子块中的序号记为b4;然后将MB_Address、b8和b4作为当前子块的水印边信息,并根据MB_Address、b8、b4和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的嵌入水印模板,将最终的嵌入水印模板记为W,其中,f()为选择函数,在此f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,符号“⊕”为异或运算符,符号“%”为求余运算符,取 取 接着假设M中当前待嵌入当前子块中的比特为第p个比特,则将M中的第p个比特mp嵌入当前子块中,将当前子块嵌入水印后的残差系数矩阵中下标为(i,j)处的残差系数记为 其中,p的初始值为1,1≤p≤n,N为一个整数,在此N的获取过程为:当mp=0时,使N的值从0开始以1递增,将满足条件的最小的N的值作为N的最终取值;当mp=1时,使N的值从0开始以1递减,将满足条件的最大的N的值作为N的最终取值,β为一个正整数,W(i,j)表示W中下标为(i,j)处的水印;之后对当前子块嵌入水印后的残差系数矩阵进行熵编码,并令SW=SW+1,p=p+1,其中,SW=SW+1和p=p+1中的“=”为赋值符号;再执行步骤①-7c。
在本实施例中,步骤①-7b中当前帧的嵌入阈值T的获取过程为:如果当前帧为目标视频流Test.264中的第1个I帧,则令T=T1,其中,T1表示设定的最低阈值,在本实施例中取T1=4。如果当前帧为目标视频流Test.264中除第1个I帧外的其它I帧,则T的确定过程为:1)根据当前帧中的所有4×4子块各自的残差系数矩阵中的非零残差系数的个数,统计当前帧中的非零残差系数的个数为NNZ的4×4子块的个数,记为a(NNZ),其中,NNZ∈[0,16];2)令Sa(Q)表示当前帧中的非零残差系数的个数大于或等于Q的4×4子块的个数,其中,Q为大小在区间[0,16]内的整数变量;3)假设Told为当前帧的前1个I帧的嵌入阈值,则当时,直接令T=T1;当时,使T的值从16开始以1递减,直至等于T1,将满足条件Sa(T)≥70的最大的T的值作为T的最终取值,若不存在满足条件Sa(T)≥70的T的值,则直接令T=T1;其中,表示当前帧中的非零残差系数的个数大于或等于Told的4×4子块的个数,T1表示设定的最低阈值,在本实施例中取T1=4,Sa(T)表示当前帧中的非零残差系数的个数大于或等于T的4×4子块的个数。
①-7c、令k=k+1,然后将当前宏块中下一个待处理的4×4子块作为当前子块,接着返回步骤①-7b继续执行,直至当前宏块中的所有4×4子块处理完毕,完成当前宏块的水印嵌入,再执行步骤①-8,其中,k=k+1中的“=”为赋值符号。
①-8、将当前片中下一个解析出的以帧内预测模式编码的宏块作为当前宏块,然后返回步骤①-7继续执行,直至当前片中的所有以帧内预测模式编码的宏块处理完毕,再执行步骤①-9。
①-9、将当前帧中下一个待解析的片作为当前片,然后返回步骤①-6继续执行,直至当前帧中的所有片处理完毕,再执行步骤①-10。
①-10、将目标视频流Test.264中下一个待解析的帧作为当前帧,然后返回步骤①-4继续执行,直至目标视频流Test.264中的所有帧处理完毕,得到嵌有水印信息的H.264/AVC视频流,记为TestW.264。
①-11、在水印嵌入端,将目标视频流Test.264中的每帧中采用Intra_4×4预测编码模式的宏块中的4×4子块的水印边信息、密钥key2及密钥key1发送给水印提取端。
实施例二:
本实施例提出了一种与实施例一给出的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法相应的提取方法,其总体实现框图如图1b所示,其包括以下步骤:
②-1、在水印提取端,将嵌有水印信息的H.264/AVC视频流定义为目标视频流,记为TestW.264。
②-2、以帧为单位解析目标视频流TestW.264,将目标视频流TestW.264中当前待解析的帧定义为当前帧。
②-3、如果当前帧为I帧,则执行步骤②-4;如果当前帧为P帧或B帧,则对当前帧不进行水印提取操作,然后执行步骤②-7。
②-4、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片。
②-5、根据水印嵌入端发送的4×4子块的水印边信息,定位当前片中的水印嵌入位置,即找出当前片中的所有嵌有水印的4×4子块,然后解析出当前片中的所有嵌有水印的4×4子块各自的残差系数矩阵,接着从当前片中的每个嵌有水印的4×4子块中提取出水印,再执行步骤②-6。
其中,对于当前片中的任一个嵌有水印的4×4子块的水印提取过程为:
②-5a、根据该4×4子块的水印边信息和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的提取水印模板,将最终的提取水印模板记为W',其中,f()为选择函数,MB_Address,b8,b4为该4×4子块的水印边信息,MB_Address表示该4×4子块所在的宏块在当前帧中的序号,b8表示该4×4子块所在的8×8子块在该4×4子块所在的宏块中的序号,b4表示该4×4子块在其所在的8×8子块中的序号;
②-5b、令然后判断是否大于0,如果是,则从该4×4子块中提取出水印比特0,否则,从该4×4子块中提取出水印比特1;其中,1≤i≤4,1≤j≤4,W'(i,j)表示W'中下标为(i,j)处的水印,R'c,W(i,j)表示该4×4子块的残差系数矩阵中下标为(i,j)处的残差系数。
在此,取 取
f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,其中,符号“⊕”为异或运算符,符号“%”为求余运算符。
②-6、将当前帧中下一个待解析的片作为当前片,然后返回步骤②-5继续执行,直至当前帧中的所有片处理完毕,再执行步骤②-7。
②-7、将目标视频流TestW.264中下一个待解析的帧作为当前帧,然后返回步骤②-3继续执行,直至目标视频流TestW.264中的所有帧处理完毕,完成目标视频流TestW.264中嵌入的水印信息的提取。
②-8、将从目标视频流TestW.264中提取出的水印信息记为M',然后对M'用密钥key1解密后得到原始的水印信息。
在版权信息的认证阶段,将在水印提取端从视频文件中提取出的水印信息与嵌入端嵌入的水印信息作对比,可判定视频的版权归属。
为验证本发明的视频水印嵌入方法与相应的视频水印提取方法的有效性和可行性,对本发明方法进行试验。
采用6个纹理复杂度各异且格式为QCIF的标准测试序列,分别为Foreman、News、Carphone、Container、Stefan、Mobile,该格式的视频分辨率为176×144,本实施例中采用的标准测试代码为JM12.4,帧率设置为30帧/秒,编码结构设置为“IPPPPPPPPP”。采用H.264标准测试代码JM12.4在上述编码条件下对上述6个标准测试序列进行压缩编码,将压缩编码后的视频流作为目标视频流,记为Test.264。
图2a、图2b、图2c、图2d、图2e和图2f分别给出了上述6个标准测试序列经压缩编码后的第30帧亮度图像。图3a、图3b、图3c、图3d、图3e和图3f分别给出了上述6个标准测试序列经压缩编码后再利用本发明的视频水印嵌入方法嵌后水印后的第30帧亮度图像。从图2a至图2f及图3a至图3f中可以看出,水印嵌入后并没有引起主观视觉失真。
图4给出了上述6个标准测试序列在水印嵌入前和水印嵌入后各自的解码视频与原始视频之间的结构相似度SSIM的曲线图,从图4中可以看出,水印嵌入前和水印嵌入后对视频的客观质量影响不大。
水印透明性良好的主要原因,其一是水印是根据人眼视觉特性嵌入的,这在一定程度上保证了水印的不可见性;其二是嵌入的水印不引起误差漂移,进一步保证了视频质量。视频压缩域水印算法不会给码率带来额外负担,为评价本发明的视频水印嵌入方法的性能,定义比特率变化率为BIR,其中,BRO表示水印嵌入前的视频流比特率,BRW表示水印嵌入后的视频流比特率。计算Foreman、News、Carphone、Container、Stefan、Mobile标准测试序列的比特率变化率,分别为0.85%、0.88%、0.88%、1.03%、0.20%和0.15%,从比特率变化率可见本发明的视频水印嵌入方法对码率影响很小。
在本实施例中,为了说明本发明的视频水印嵌入方法对水印攻击的鲁棒性,对上述6个标准测试序列利用本发明的视频水印嵌入方法嵌入水印后得到的含有水印的视频流进行以下几种常见的攻击,包括:重量化转码、高斯模糊、图像锐化、高斯噪声、亮度减弱、亮度增强。再利用本发明的视频水印提取方法对攻击后的视频流进行水印提取,图5a给出了从重量化转码(QP)攻击后的视频流中提取出的水印的误码率BER,图5b给出了从高斯模糊(gaussian blurring)攻击后的视频流中提取出的水印的误码率BER,图5c给出了从图像锐化(sharp filter factor)攻击后的视频流中提取出的水印的误码率BER,图5d给出了从高斯噪声(standard deviance)攻击后的视频流中提取出的水印的误码率BER,图5e给出了从亮度减弱(drcease value)攻击后的视频流中提取出的水印的误码率BER,图5f给出了从亮度增强(lncrease value)攻击后的视频流中提取出的水印的误码率BER。从图5a至图5f中可以看出对编码量化参数QP∈[16,34]内的重量化转码攻击及其它常见的攻击方法,误码率BER均在0.15以下,充分表明了本发明的视频水印嵌入方法与视频水印提取方法的有效性。
Claims (9)
1.一种无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于包括以下步骤:
①-1、在水印嵌入端,将符合H.264/AVC标准的待处理视频流定义为目标视频流,记为Test.264;
①-2、对待嵌入的水印信息用密钥key1置乱加密后得到加密水印信息,记为M,M={m1,m2,…,mn-1,mn},其中,n表示M的总比特数,m1、m2、mn-1和mn对应表示M中的第1个比特、第2个比特、第n-1个比特和第n个比特;
①-3、以帧为单位解析目标视频流Test.264,将目标视频流Test.264中当前待解析的帧定义为当前帧;
①-4、如果当前帧为I帧,则令SW表示当前帧中已嵌入的水印的总比特数,然后执行步骤①-5,其中,SW的初始值为0;如果当前帧为P帧或B帧,则对当前帧不进行水印嵌入操作,然后执行步骤①-10;
①-5、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片;
①-6、依序解析当前片中的每个以帧内预测模式编码的宏块,将当前片中当前解析出的以帧内预测模式编码的宏块定义为当前宏块;
①-7、如果当前宏块采用的预测编码模式为Intra_16×16,则对当前宏块不进行水印嵌入操作,然后执行步骤①-8;
如果当前宏块采用的预测编码模式为Intra_4×4,则解析出当前宏块中的每个4×4子块的残差系数矩阵,将当前宏块中的第k个4×4子块的残差系数矩阵中下标为(i,j)处的残差系数记为并统计当前宏块中的每个4×4子块的残差系数矩阵中的非零残差系数的个数,将当前宏块中的第k个4×4子块的残差系数矩阵中的非零残差系数的个数记为且将当前宏块在当前帧中的序号记为MB_Address,其中,k的初始值为1,1≤k≤16,1≤i≤4,1≤j≤4;然后执行以下步骤:
①-7a、将当前宏块中当前正在处理的第k个4×4子块定义为当前子块;
①-7b、判断是否小于当前帧的嵌入阈值T或者SW是否大于或等于100,如果是,则对当前子块不进行水印嵌入操作,然后对当前子块的残差系数矩阵重新进行熵编码,再执行步骤①-7c;
否则,将当前子块所在的8×8子块在当前宏块中的序号记为b8,将当前子块在其所在的8×8子块中的序号记为b4;然后将MB_Address、b8和b4作为当前子块的水印边信息,并根据MB_Address、b8、b4和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的嵌入水印模板,将最终的嵌入水印模板记为W,其中,f()为选择函数;接着假设M中当前待嵌入当前子块中的比特为第p个比特,则将M中的第p个比特mp嵌入当前子块中,将当前子块嵌入水印后的残差系数矩阵中下标为(i,j)处的残差系数记为 其中,p的初始值为1,1≤p≤n,N为一个整数,W(i,j)表示W中下标为(i,j)处的水印;之后对当前子块嵌入水印后的残差系数矩阵进行熵编码,并令SW=SW+1,p=p+1,其中,SW=SW+1和p=p+1中的“=”为赋值符号;再执行步骤①-7c;
①-7c、令k=k+1,然后将当前宏块中下一个待处理的4×4子块作为当前子块,接着返回步骤①-7b继续执行,直至当前宏块中的所有4×4子块处理完毕,完成当前宏块的水印嵌入,再执行步骤①-8,其中,k=k+1中的“=”为赋值符号;
①-8、将当前片中下一个解析出的以帧内预测模式编码的宏块作为当前宏块,然后返回步骤①-7继续执行,直至当前片中的所有以帧内预测模式编码的宏块处理完毕,再执行步骤①-9;
①-9、将当前帧中下一个待解析的片作为当前片,然后返回步骤①-6继续执行,直至当前帧中的所有片处理完毕,再执行步骤①-10;
①-10、将目标视频流Test.264中下一个待解析的帧作为当前帧,然后返回步骤①-4继续执行,直至目标视频流Test.264中的所有帧处理完毕,得到嵌有水印信息的H.264/AVC视频流,记为TestW.264;
①-11、在水印嵌入端,将目标视频流Test.264中的每帧中采用Intra_4×4预测编码模式的宏块中的4×4子块的水印边信息、密钥key2及密钥key1发送给水印提取端。
2.根据权利要求1所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于所述的步骤①-7b中当前帧的嵌入阈值T的获取过程为:
如果当前帧为目标视频流Test.264中的第1个I帧,则令T=T1,其中,T1表示设定的最低阈值;
如果当前帧为目标视频流Test.264中除第1个I帧外的其它I帧,则T的确定过程为:1)根据当前帧中的所有4×4子块各自的残差系数矩阵中的非零残差系数的个数,统计当前帧中的非零残差系数的个数为NNZ的4×4子块的个数,记为a(NNZ),其中,NNZ∈[0,16];2)令Sa(Q)表示当前帧中的非零残差系数的个数大于或等于Q的4×4子块的个数,其中,Q为大小在区间[0,16]内的整数变量;3)假设Told为当前帧的前1个I帧的嵌入阈值,则当时,直接令T=T1;当时,使T的值从16开始以1递减,直至等于T1,将满足条件的最大的T的值作为T的最终取值,若不存在满足条件Sa(T)≥70的T的值,则直接令T=T1;其中,表示当前帧中的非零残差系数的个数大于或等于Told的4×4子块的个数,T1表示设定的最低阈值,Sa(T)表示当前帧中的非零残差系数的个数大于或等于T的4×4子块的个数。
3.根据权利要求1或2所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于所述的步骤①-7b中取 取
4.根据权利要求3所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于所述的步骤①-7b中的N的获取过程为:当mp=0时,使N的值从0开始以1递增,将满足条件的最小的N的值作为N的最终取值;当mp=1时,使N的值从0开始以1递减,将满足条件的最大的N的值作为N的最终取值;其中,β为一个正整数。
5.根据权利要求4所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于β的取值为:
6.根据权利要求5所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法,其特征在于所述的步骤①-7b中f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,其中,符号“⊕”为异或运算符,符号“%”为求余运算符。
7.一种与权利要求1所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印嵌入方法相应的提取方法,其特征在于包括以下步骤:
②-1、在水印提取端,将嵌有水印信息的H.264/AVC视频流定义为目标视频流,记为TestW.264;
②-2、以帧为单位解析目标视频流TestW.264,将目标视频流TestW.264中当前待解析的帧定义为当前帧;
②-3、如果当前帧为I帧,则执行步骤②-4;如果当前帧为P帧或B帧,则对当前帧不进行水印提取操作,然后执行步骤②-7;
②-4、以片为单位解析当前帧,将当前帧中当前待解析的片定义为当前片;
②-5、根据水印嵌入端发送的4×4子块的水印边信息,定位当前片中的水印嵌入位置,然后解析出当前片中的所有嵌有水印的4×4子块各自的残差系数矩阵,接着从当前片中的每个嵌有水印的4×4子块中提取出水印,再执行步骤②-6;
其中,对于当前片中的任一个嵌有水印的4×4子块的水印提取过程为:
②-5a、根据该4×4子块的水印边信息和密钥key2,从两个不会造成帧内误差漂移的4×4水印模板W1和W2中动态选择一个水印模板作为最终的提取水印模板,将最终的提取水印模板记为W',其中,f()为选择函数,MB_Address,b8,b4为该4×4子块的水印边信息,MB_Address表示该4×4子块所在的宏块在当前帧中的序号,b8表示该4×4子块所在的8×8子块在该4×4子块所在的宏块中的序号,b4表示该4×4子块在其所在的8×8子块中的序号;
②-5b、令然后判断是否大于0,如果是,则从该4×4子块中提取出水印比特0,否则,从该4×4子块中提取出水印比特1;其中,1≤i≤4,1≤j≤4,W'(i,j)表示W'中下标为(i,j)处的水印,R'c,W(i,j)表示该4×4子块的残差系数矩阵中下标为(i,j)处的残差系数;
②-6、将当前帧中下一个待解析的片作为当前片,然后返回步骤②-5继续执行,直至当前帧中的所有片处理完毕,再执行步骤②-7;
②-7、将目标视频流TestW.264中下一个待解析的帧作为当前帧,然后返回步骤②-3继续执行,直至目标视频流TestW.264中的所有帧处理完毕,完成目标视频流TestW.264中嵌入的水印信息的提取;
②-8、将从目标视频流TestW.264中提取出的水印信息记为M',然后对M'用密钥key1解密后得到原始的水印信息。
8.根据权利要求7所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印提取方法,其特征在于所述的步骤②-5a中取 取
9.根据权利要求8所述的无帧内误差漂移的H.264/AVC压缩域鲁棒视频水印提取方法,其特征在于所述的步骤②-5a中f(MB_Address,b8,b4,key2)=(MB_Address⊕b8⊕b4⊕key2)%2,其中,符号“⊕”为异或运算符,符号“%”为求余运算符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410828416.2A CN104581176B (zh) | 2014-12-26 | 2014-12-26 | 无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410828416.2A CN104581176B (zh) | 2014-12-26 | 2014-12-26 | 无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104581176A true CN104581176A (zh) | 2015-04-29 |
CN104581176B CN104581176B (zh) | 2017-07-07 |
Family
ID=53096235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410828416.2A Active CN104581176B (zh) | 2014-12-26 | 2014-12-26 | 无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104581176B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049929A (zh) * | 2015-08-11 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种视频渲染方法及装置 |
CN106101714A (zh) * | 2016-07-14 | 2016-11-09 | 中国科学院信息工程研究所 | 一种与压缩编码过程紧耦合的h.264视频信息隐藏方法 |
CN106331746A (zh) * | 2016-09-19 | 2017-01-11 | 北京小度互娱科技有限公司 | 用于识别视频文件中的水印位置的方法和装置 |
CN107105275A (zh) * | 2017-06-27 | 2017-08-29 | 郑州师范学院 | 一种基于h.265视频像素域的信息隐藏方法 |
CN107172434A (zh) * | 2017-06-27 | 2017-09-15 | 郑州师范学院 | 一种对h.265视频进行内置式隐写的方法 |
CN107197298A (zh) * | 2017-06-27 | 2017-09-22 | 郑州师范学院 | 一种基于多元组的无失真漂移的hevc视频可逆隐写方法 |
CN107333139A (zh) * | 2017-06-27 | 2017-11-07 | 郑州师范学院 | 一种基于帧内预测模式的h.265半可逆视频隐写信息方法 |
CN108900845A (zh) * | 2018-07-16 | 2018-11-27 | 东莞理工学院 | 数字视频信息中元数据的可逆嵌入与提取方法及装置 |
CN109819260A (zh) * | 2019-02-01 | 2019-05-28 | 中国科学院信息工程研究所 | 基于多嵌入域融合的视频隐写方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651834A (zh) * | 2009-08-28 | 2010-02-17 | 北京大学深圳研究生院 | 视频数字水印嵌入方法及其装置 |
CN101873485A (zh) * | 2009-08-21 | 2010-10-27 | 杭州海康威视软件有限公司 | 基于h.264压缩域的水印嵌入方法及装置 |
KR101114472B1 (ko) * | 2010-08-27 | 2012-02-24 | 동국대학교 산학협력단 | H.264/avc 압축영역에서의 영상 워터마크 삽입 방법 |
CN103152578A (zh) * | 2013-03-25 | 2013-06-12 | 中国传媒大学 | 基于混合编解码的h.264视频水印嵌入及提取方法 |
-
2014
- 2014-12-26 CN CN201410828416.2A patent/CN104581176B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873485A (zh) * | 2009-08-21 | 2010-10-27 | 杭州海康威视软件有限公司 | 基于h.264压缩域的水印嵌入方法及装置 |
CN101651834A (zh) * | 2009-08-28 | 2010-02-17 | 北京大学深圳研究生院 | 视频数字水印嵌入方法及其装置 |
KR101114472B1 (ko) * | 2010-08-27 | 2012-02-24 | 동국대학교 산학협력단 | H.264/avc 압축영역에서의 영상 워터마크 삽입 방법 |
CN103152578A (zh) * | 2013-03-25 | 2013-06-12 | 中国传媒大学 | 基于混合编解码的h.264视频水印嵌入及提取方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049929A (zh) * | 2015-08-11 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种视频渲染方法及装置 |
CN106101714A (zh) * | 2016-07-14 | 2016-11-09 | 中国科学院信息工程研究所 | 一种与压缩编码过程紧耦合的h.264视频信息隐藏方法 |
CN106101714B (zh) * | 2016-07-14 | 2019-06-04 | 中国科学院信息工程研究所 | 一种与压缩编码过程紧耦合的h.264视频信息隐藏方法 |
CN106331746A (zh) * | 2016-09-19 | 2017-01-11 | 北京小度互娱科技有限公司 | 用于识别视频文件中的水印位置的方法和装置 |
CN106331746B (zh) * | 2016-09-19 | 2019-12-06 | 北京小度互娱科技有限公司 | 用于识别视频文件中的水印位置的方法和装置 |
CN107333139A (zh) * | 2017-06-27 | 2017-11-07 | 郑州师范学院 | 一种基于帧内预测模式的h.265半可逆视频隐写信息方法 |
CN107197298A (zh) * | 2017-06-27 | 2017-09-22 | 郑州师范学院 | 一种基于多元组的无失真漂移的hevc视频可逆隐写方法 |
CN107105275B (zh) * | 2017-06-27 | 2019-05-21 | 郑州师范学院 | 一种基于h.265视频像素域的信息隐藏方法 |
CN107172434A (zh) * | 2017-06-27 | 2017-09-15 | 郑州师范学院 | 一种对h.265视频进行内置式隐写的方法 |
CN107172434B (zh) * | 2017-06-27 | 2019-06-18 | 郑州师范学院 | 一种对h.265视频进行内置式隐写的方法 |
CN107105275A (zh) * | 2017-06-27 | 2017-08-29 | 郑州师范学院 | 一种基于h.265视频像素域的信息隐藏方法 |
CN108900845A (zh) * | 2018-07-16 | 2018-11-27 | 东莞理工学院 | 数字视频信息中元数据的可逆嵌入与提取方法及装置 |
CN109819260A (zh) * | 2019-02-01 | 2019-05-28 | 中国科学院信息工程研究所 | 基于多嵌入域融合的视频隐写方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104581176B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104581176A (zh) | 无帧内误差漂移的h.264/avc压缩域鲁棒视频水印嵌入及提取方法 | |
Sun et al. | High performance reversible data hiding for block truncation coding compressed images | |
US10368051B2 (en) | 3D-HEVC inter-frame information hiding method based on visual perception | |
CN105263024A (zh) | 一种抗量化转码的hevc视频流零水印的注册和检测方法 | |
CN105791854B (zh) | 一种结合改进矩阵编码的奇异值修改视频隐写算法 | |
CN108965887B (zh) | 一种基于块间去耦合的视频信息隐藏方法和装置 | |
CN104065976B (zh) | 一种基于视频的图像压缩及保密传输方法 | |
CN102685500B (zh) | 基于信息变长分组结构的h.264大容量信息隐藏方法 | |
CN104159117A (zh) | 一种hevc视频的信息隐藏方法 | |
CN108769700A (zh) | 减小h.264帧间漂移失真的鲁棒性视频隐写方法 | |
CN107333139A (zh) | 一种基于帧内预测模式的h.265半可逆视频隐写信息方法 | |
Zhu et al. | Information hiding algorithm for H. 264 based on the motion estimation of quarter-pixel | |
CN113329229A (zh) | 高效保真的h·265视频信息高容量隐藏法 | |
CN110072109B (zh) | 宏块级最小化失真的h.264/avc视频信息隐藏方法 | |
Zhu et al. | Information Hiding Algorithm for H. 264 Based on the predition difference of Intra_4× 4 | |
Nguyen et al. | A robust blind video watermarking in DCT domain using even-odd quantization technique | |
Fallahpour et al. | Flexible image watermarking in JPEG domain | |
CN110248193B (zh) | 一种基于改进差值扩展的可逆信息隐藏方法 | |
Sakib et al. | A robust DWT-based compressed domain video watermarking technique | |
CN114598887A (zh) | 一种控制比特率增加的抗重压缩视频水印方法 | |
Liu et al. | A MPEG-2 video watermarking algorithm with compensation in bit stream | |
CN108200435B (zh) | 一种分形图像的可逆信息隐藏方法 | |
Li et al. | Dst-based video watermarking robust to lossy channel compression | |
Gangarde et al. | Application of crypto-video watermarking technique to improve robustness and imperceptibiltiy of secret data | |
Veličković et al. | The Impact of Prediction Structures of H. 264 Encoder on the Quality of the Extracted Watermark from the Chaos Domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |