本发明涉及一种可逆数据隐藏技术,尤其是涉及一种H.264/AVC视频可逆数据隐藏方法。
背景技术:
因特网的普及和多媒体技术的快速发展,使得数字多媒体的应用达到了前所未有的广度和深度。人们不仅可以方便地下载和拷贝数字多媒体作品,而且还能凭借功能强大的多媒体工具对原始数据内容加以修改,甚至以所有者的身份进行分发和传播。如何保证数字媒体不被盗用和非法传播,如何确定数字媒体内容的真实性和完整性、防止恶意篡改以及如何监控未授权用户,已经成为亟待解决的热点问题。信息隐藏是一种隐蔽通信、版权保护和内容完整性认证的有效技术手段。可逆信息隐藏是信息隐藏领域的一个重要分支,其能够将特定信息嵌入到载体,并允许合法用户在提取信息后无失真地恢复出原始载体,因而在军事、遥感、医学、司法等对内容敏感的领域受到了广泛关注。
鉴于H.264/AVC高效的编码性能和良好的网络适应性,是目前应用最普及的视频编码标准,而视频数据隐藏要考虑视频压缩编码的影响,因此,对利用H.264/AVC视频进行可逆数据隐藏的方法的研究有着特别重要的意义。虽然图像可逆数据隐藏得到了快速发展,但是如何结合H.264/AVC视频数据特点实现高效的可逆数据隐藏,国内外的研究也才刚刚开始,可逆数据隐藏和视频编码的结合还有很多难点问题有待解决。目前,现有的H.264/AVC视频可逆数据隐藏方法主要是对量化残差系数采用一维直方图移位方式进行数据嵌入,这种方法的嵌入容量还有进一步提升的空间。
技术实现要素:
本发明所要解决的技术问题是提供一种H.264/AVC视频可逆数据隐藏方法,其在与H.264/AVC视频压缩编码标准相兼容的前提下进行可逆数据隐藏,且计算复杂度低、对H.264/AVC视频码流的码率影响很小、嵌入容量高,其能够保证隐秘信息有效地被提取出,并且在提取隐秘信息后可以完全恢复原始视频。
本发明解决上述技术问题所采用的技术方案为:一种H.264/AVC视频可逆数据隐藏方法,其特征在于包括H.264/AVC视频可逆数据隐藏、隐秘信息提取和原始视频恢复两部分;
所述的H.264/AVC视频可逆数据隐藏的具体过程为:
①_1、对H.264/AVC视频的码流进行熵解码,解码得到H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块中的所有的残差系数;
①_2、将H.264/AVC视频中预测模式为Intra_4×4预测模式的第m个宏块定义为当前宏块,其中,1≤m≤M,M表示H.264/AVC视频中包含的预测模式为Intra_4×4预测模式的宏块的总个数;
①_3、将当前宏块中的第n个4×4子块定义为当前子块,其中,1≤n≤N,N表示当前宏块中包含的4×4子块的总个数;
①_4、按照Zig-Zag顺序扫描当前子块中的所有的残差系数,同时按0,1,…,15的顺序对当前子块中的所有的残差系数进行编号;然后确定当前子块对应的隐秘信息嵌入区域,记为Rm,n,Rm,n=[Tm,n,1,Tm,n,2],其中,符号“[]”为区间表示符号,Tm,n,1和Tm,n,2均表示当前子块中的残差系数的编号,Tm,n,1和Tm,n,2的取值范围3≤Tm,n,1<Tm,n,2≤15;
①_5、从当前子块中的所有的残差系数中提取出编号属于Rm,n的所有的残差系数,并构成一个残差系数子集;然后对当前子块对应的残差系数子集中的残差系数进行两两组合配对,具体为:当该残差系数子集中非零的残差系数的总个数为偶数时,按序将该残差系数子集中非零的残差系数两两组合配对;当该残差系数子集中非零的残差系数的总个数为奇数时,除该残差系数子集中的第1个非零的残差系数外按序将剩余的非零的残差系数两两组合配对;并将任一个配对记为其中,表示中的前一个残差系数,表示中的后一个残差系数;
①_6、对当前子块对应的残差系数子集中前后两个残差系数均大于或等于2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对和均进行加1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前一个残差系数小于或等于-2且后一个残差系数大于或等于2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对进行减1移位,对进行加1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前一个残差系数大于或等于2且后一个残差系数小于或等于-2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对进行加1移位,对均进行减1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前后两个残差系数均小于或等于-2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对和均进行减1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
①_7、令n=n+1,将当前宏块中的下一个4×4子块作为当前子块,然后返回步骤①_4继续执行,直至当前宏块中的所有4×4子块处理完毕;其中,n=n+1中的“=”为赋值符号;
①_8、令m=m+1,将H.264/AVC视频中预测模式为Intra_4×4预测模式的下一个宏块作为当前宏块,然后返回步骤①_3继续执行,直至H.264/AVC视频中预测模式为Intra_4×4预测模式的所有宏块处理完毕;其中,m=m+1中的“=”为赋值符号;
①_9、将H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块对应的隐秘信息嵌入区域的两个端点,发送到隐秘信息提取和原始视频恢复端;
所述的隐秘信息提取和原始视频恢复的具体过程为:
②_1、对含隐秘信息的H.264/AVC视频的码流进行熵解码,解码得到含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块中的所有的残差系数;
②_2、将含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的第m个宏块定义为当前宏块,其中,1≤m≤M,M亦表示含隐秘信息的H.264/AVC视频中包含的预测模式为Intra_4×4预测模式的宏块的总个数;
②_3、将当前宏块中的第n个4×4子块定义为当前子块,其中,1≤n≤N,N亦表示当前宏块中包含的4×4子块的总个数;
②_4、按照Zig-Zag顺序扫描当前子块中的所有的残差系数,同时按0,1,…,15的顺序对当前子块中的所有的残差系数进行编号;然后确定当前子块对应的隐秘信息提取区域,记为R'm,n,R'm,n=[T'm,n,1,T'm,n,2],其中,T'm,n,1和T'm,n,2均表示当前子块中的残差系数的编号,T'm,n,1=Tm,n,1,T'm,n,2=Tm,n,2;
②_5、从当前子块中的所有的残差系数中提取出编号属于R'm,n的所有的残差系数,并构成一个残差系数子集;然后对当前子块对应的残差系数子集中的残差系数进行两两组合配对,具体为:当该残差系数子集中非零的残差系数的总个数为偶数时,按序将该残差系数子集中非零的残差系数两两组合配对;当该残差系数子集中非零的残差系数的总个数为奇数时,除该残差系数子集中的第1个非零的残差系数外按序将剩余的非零的残差系数两两组合配对;并将任一个配对记为其中,表示中的前一个残差系数,表示中的后一个残差系数;
②_6、在当前子块对应的残差系数子集中的每个配对中提取出隐秘信息,对于若或或则从中提取出2个比特隐秘信息00;若或或则从中提取出2个比特隐秘信息01;若或或则从中提取出2个比特隐秘信息10;若或或则从中提取出2个比特隐秘信息11;若或或或则从中提取出1个比特隐秘信息0;若或或或则从中提取出1个比特隐秘信息1;其中,符号“||”为取绝对值符号,为大于2的整数,为大于2的整数,为小于-2的整数,为大于2的整数;
②_7、对当前子块对应的残差系数子集中的每个配对进行原始数据恢复,对于将经原始数据恢复后得到的配对记为若或或或则令且若或或或则令且若或或或则令且若或则令且若或则令且若或则令且若或则令且若且则令且其中,sign()为取符号函数,
②_8、令n=n+1,将当前宏块中的下一个4×4子块作为当前子块,然后返回步骤②_4继续执行,直至当前宏块中的所有4×4子块处理完毕;其中,n=n+1中的“=”为赋值符号;
②_9、令m=m+1,将含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的下一个宏块作为当前宏块,然后返回步骤②_3继续执行,直至含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的所有宏块处理完毕;其中,m=m+1中的“=”为赋值符号。
所述的步骤①_6中对当前子块对应的残差系数子集中的部分配对进行移位的具体过程为:
若且则令以实现和的移位,其中,中的“=”为赋值符号;
若则令以实现和的移位,其中,中的“=”为赋值符号;
若且则令以实现和的移位,其中,中的“=”为赋值符号;
若且则令以实现和的移位,其中,中的“=”为赋值符号。
所述的步骤①_6中在中嵌入隐秘信息,得到的具体过程为:
①_6a、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x1为大于2的整数;
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y1为大于2的整数;
①_6b、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x2为小于-2的整数;
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y2为大于2的整数;
①_6c、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x3为大于2的整数;
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y3为小于-2的整数;
①_6d、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x4为小于-2的整数;
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y4为小于-2的整数。
所述的步骤②_6中从中提取出隐秘信息的具体过程为:
②_6a、若或或则从中提取出2个比特隐秘信息00;
若或或则从中提取出2个比特隐秘信息01;
若或或则从中提取出2个比特隐秘信息10;
若或或则从中提取出2个比特隐秘信息11;
若或则从中提取出1个比特隐秘信息0;其中,x1'为大于2的整数,y1'为大于2的整数;
若或则从中提取出1个比特隐秘信息1;
②_6b、若或或则从中提取出2个比特隐秘信息00;
若或或则从中提取出2个比特隐秘信息01;
若或或则从中提取出2个比特隐秘信息10;
若或或则从中提取出2个比特隐秘信息11;
若或则从中提取出1个比特隐秘信息0;其中,x2'为小于-2的整数,y2'为大于2的整数;
若或则从中提取出1个比特隐秘信息1;
②_6c、若或或则从中提取出2个比特隐秘信息00;
若或或则从中提取出2个比特隐秘信息01;
若或或则从中提取出2个比特隐秘信息10;
若或或则从中提取出2个比特隐秘信息11;
若或则从中提取出1个比特隐秘信息0;其中,x3'为大于2的整数,y3'为小于-2的整数;
若或则从中提取出1个比特隐秘信息1;
②_6d、若或或则从中提取出2个比特隐秘信息00;
若或或则从中提取出2个比特隐秘信息01;
若或或则从中提取出2个比特隐秘信息10;
若或或则从中提取出2个比特隐秘信息11;
若或则从中提取出1个比特隐秘信息0;其中,x4'为小于-2的整数,y4'为小于-2的整数;
若或则从中提取出1个比特隐秘信息1。
所述的步骤②_7中对进行原始数据恢复,得到的具体过程为:
②_7a、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7b、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7c、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7d、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
与现有技术相比,本发明的优点在于:
1)本发明方法在与H.264/AVC视频压缩编码标准相兼容的前提下选择4×4子块中的残差系数进行扩展或者移位实现可逆数据隐藏,不仅计算复杂度低,能够满足实时视频的应用需求,而且数据隐藏对H.264/AVC视频码流的码率影响很小。
2)本发明方法将邻近的两个非零的残差系数配对作为基本的嵌入单元,通过修改二维残差系数直方图来对残差系数配对做扩展或者移位实现隐秘信息的嵌入,出现频率大的残差系数对嵌入隐秘信息的比特位数多,在保持较好感知质量的同时,能够提供高嵌入容量。
3)本发明方法能够保证隐秘信息有效地被提取出,并且在提取隐秘信息后可以完全恢复原始视频,可应用于军事、遥感、医学、司法等重要领域。
附图说明
图1a为本发明方法中的H.264/AVC视频可逆数据隐藏的总体实现框图;
图1b为本发明方法中的隐秘信息提取和原始视频恢复的总体实现框图;
图2为本发明方法中隐秘信息嵌入和提取的示例图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种H.264/AVC视频可逆数据隐藏方法,其包括H.264/AVC视频可逆数据隐藏、隐秘信息提取和原始视频恢复两部分。
如图1a所示,所述的H.264/AVC视频可逆数据隐藏的具体过程为:
①_1、对H.264/AVC视频的码流进行熵解码,解码得到H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块中的所有的残差系数。
①_2、将H.264/AVC视频中预测模式为Intra_4×4预测模式的第m个宏块定义为当前宏块,其中,1≤m≤M,M表示H.264/AVC视频中包含的预测模式为Intra_4×4预测模式的宏块的总个数。
①_3、将当前宏块中的第n个4×4子块定义为当前子块,其中,1≤n≤N,N表示当前宏块中包含的4×4子块的总个数,由于宏块的尺寸大小为16×16,因此N=16。
①_4、按照Zig-Zag顺序扫描当前子块中的所有的残差系数,同时按0,1,…,15的顺序对当前子块中的所有的残差系数进行编号;然后确定当前子块对应的隐秘信息嵌入区域,记为Rm,n,Rm,n=[Tm,n,1,Tm,n,2],其中,符号“[]”为区间表示符号,Tm,n,1和Tm,n,2均表示当前子块中的残差系数的编号,Tm,n,1和Tm,n,2的取值范围3≤Tm,n,1<Tm,n,2≤15,限定将隐秘信息嵌入中高频残差系数中。
①_5、从当前子块中的所有的残差系数中提取出编号属于Rm,n的所有的残差系数,并构成一个残差系数子集;然后对当前子块对应的残差系数子集中的残差系数进行两两组合配对,具体为:当该残差系数子集中非零的残差系数的总个数为偶数时,按序将该残差系数子集中非零的残差系数两两组合配对;当该残差系数子集中非零的残差系数的总个数为奇数时,除该残差系数子集中的第1个非零的残差系数外按序将剩余的非零的残差系数两两组合配对;并将任一个配对记为其中,表示中的前一个残差系数,表示中的后一个残差系数。
①_6、对当前子块对应的残差系数子集中前后两个残差系数均大于或等于2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对和均进行加1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前一个残差系数小于或等于-2且后一个残差系数大于或等于2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对进行减1移位,对进行加1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前一个残差系数大于或等于2且后一个残差系数小于或等于-2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对进行加1移位,对均进行减1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
对当前子块对应的残差系数子集中前后两个残差系数均小于或等于-2的每个配对进行移位以空出隐秘信息嵌入空间,对于如果且则对和均进行减1移位;然后在移位的基础上在当前子块对应的残差系数子集中的每个配对中嵌入隐秘信息,对于如果且或且则在中嵌入2个比特隐秘信息00或01或10或11;如果且或且则在中嵌入1个比特隐秘信息0或1,将嵌入隐秘信息后的配对记为
在此具体实施例中,参见图2,步骤①_6中对当前子块对应的残差系数子集中的部分配对进行移位的具体过程为:
若且则令以实现和的移位,其中,中的“=”为赋值符号;
若且则令以实现和的移位,其中,中的“=”为赋值符号;
若且则令以实现和的移位,其中,中的“=”为赋值符号;
若且则令以实现和的移位,其中,中的“=”为赋值符号。
在此具体实施例中,参见图2,步骤①_6中在中嵌入隐秘信息,得到的具体过程为:
①_6a、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x1为大于2的整数。
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y1为大于2的整数。
①_6b、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x2为小于-2的整数。
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y2为大于2的整数。
①_6c、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x3为大于2的整数。
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y3为小于-2的整数。
①_6d、若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入2个比特隐秘信息,当待嵌入的2个比特隐秘信息为00时,令当待嵌入的2个比特隐秘信息为01时,令当待嵌入的2个比特隐秘信息为10时,令当待嵌入的2个比特隐秘信息为11时,令
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,x4为小于-2的整数。
若且则在中嵌入1个比特隐秘信息,当待嵌入的1个比特隐秘信息为0时,令当待嵌入的1个比特隐秘信息为1时,令其中,y4为小于-2的整数。
①_7、令n=n+1,将当前宏块中的下一个4×4子块作为当前子块,然后返回步骤①_4继续执行,直至当前宏块中的所有4×4子块处理完毕;其中,n=n+1中的“=”为赋值符号。
①_8、令m=m+1,将H.264/AVC视频中预测模式为Intra_4×4预测模式的下一个宏块作为当前宏块,然后返回步骤①_3继续执行,直至H.264/AVC视频中预测模式为Intra_4×4预测模式的所有宏块处理完毕;其中,m=m+1中的“=”为赋值符号。
①_9、将H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块对应的隐秘信息嵌入区域的两个端点,即Tm,n,1和Tm,n,2,发送到隐秘信息提取和原始视频恢复端。
如图1b所示,所述的隐秘信息提取和原始视频恢复的具体过程为:
②_1、对含隐秘信息的H.264/AVC视频的码流进行熵解码,解码得到含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的每个宏块中的每个4×4子块中的所有的残差系数。
②_2、将含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的第m个宏块定义为当前宏块,其中,1≤m≤M,M亦表示含隐秘信息的H.264/AVC视频中包含的预测模式为Intra_4×4预测模式的宏块的总个数。
②_3、将当前宏块中的第n个4×4子块定义为当前子块,其中,1≤n≤N,N亦表示当前宏块中包含的4×4子块的总个数,由于宏块的尺寸大小为16×16,因此N=16。
②_4、按照Zig-Zag顺序扫描当前子块中的所有的残差系数,同时按0,1,…,15的顺序对当前子块中的所有的残差系数进行编号;然后确定当前子块对应的隐秘信息提取区域,记为R'm,n,R'm,n=[T'm,n,1,T'm,n,2],其中,T'm,n,1和T'm,n,2均表示当前子块中的残差系数的编号,T'm,n,1=Tm,n,1,T'm,n,2=Tm,n,2。
②_5、从当前子块中的所有的残差系数中提取出编号属于R'm,n的所有的残差系数,并构成一个残差系数子集;然后对当前子块对应的残差系数子集中的残差系数进行两两组合配对,具体为:当该残差系数子集中非零的残差系数的总个数为偶数时,按序将该残差系数子集中非零的残差系数两两组合配对;当该残差系数子集中非零的残差系数的总个数为奇数时,除该残差系数子集中的第1个非零的残差系数外按序将剩余的非零的残差系数两两组合配对;并将任一个配对记为其中,表示中的前一个残差系数,表示中的后一个残差系数。
②_6、在当前子块对应的残差系数子集中的每个配对中提取出隐秘信息,对于若或或则从中提取出2个比特隐秘信息00;若或或则从中提取出2个比特隐秘信息01;若或或则从中提取出2个比特隐秘信息10;若或或则从中提取出2个比特隐秘信息11;若或或或则从中提取出1个比特隐秘信息0;若或或或则从中提取出1个比特隐秘信息1;其中,符号“||”为取绝对值符号,为大于2的整数,为大于2的整数,为小于-2的整数,为大于2的整数。
在此具体实施例中,参见图2,步骤②_6中从中提取出隐秘信息的具体过程为:
②_6a、若或或则从中提取出2个比特隐秘信息00。
若或或则从中提取出2个比特隐秘信息01。
若或或则从中提取出2个比特隐秘信息10。
若或或则从中提取出2个比特隐秘信息11。
若或则从中提取出1个比特隐秘信息0;其中,x1'为大于2的整数,y1'为大于2的整数。
若或则从中提取出1个比特隐秘信息1。
②_6b、若或或则从中提取出2个比特隐秘信息00。
若或或则从中提取出2个比特隐秘信息01。
若或或则从中提取出2个比特隐秘信息10。
若或或则从中提取出2个比特隐秘信息11。
若或则从中提取出1个比特隐秘信息0;其中,x2'为小于-2的整数,y2'为大于2的整数。
若或则从中提取出1个比特隐秘信息1。
②_6c、若或或则从中提取出2个比特隐秘信息00。
若或或则从中提取出2个比特隐秘信息01。
若或或则从中提取出2个比特隐秘信息10。
若或或则从中提取出2个比特隐秘信息11。
若或则从中提取出1个比特隐秘信息0;其中,x3'为大于2的整数,y3'为小于-2的整数。
若或则从中提取出1个比特隐秘信息1。
②_6d、若或或则从中提取出2个比特隐秘信息00。
若或或则从中提取出2个比特隐秘信息01。
若或或则从中提取出2个比特隐秘信息10。
若或或则从中提取出2个比特隐秘信息11。
若或则从中提取出1个比特隐秘信息0;其中,x4'为小于-2的整数,y4'为小于-2的整数。
若或则从中提取出1个比特隐秘信息1。
②_7、对当前子块对应的残差系数子集中的每个配对进行原始数据恢复,对于将经原始数据恢复后得到的配对记为若或或或则令且若或或或则令且若或或或则令且若或则令且若或则令且若或则令且若或则令且若且则令且其中,sign()为取符号函数,
在此具体实施例中,参见图2,步骤②_7中对进行原始数据恢复,得到的具体过程为:
②_7a、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7b、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7c、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_7d、若或或或则令且
若或或或则令且
若或或或则令且
若或则令且
若或则令且
若且则令且
②_8、令n=n+1,将当前宏块中的下一个4×4子块作为当前子块,然后返回步骤②_4继续执行,直至当前宏块中的所有4×4子块处理完毕;其中,n=n+1中的“=”为赋值符号。
②_9、令m=m+1,将含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的下一个宏块作为当前宏块,然后返回步骤②_3继续执行,直至含隐秘信息的H.264/AVC视频中预测模式为Intra_4×4预测模式的所有宏块处理完毕;其中,m=m+1中的“=”为赋值符号。