[0054] 以下结合附图实施例对本发明作进一步详细描述。
[0055] 本发明提出的一种基于视觉感知的3D-HEVC帧间信息隐藏方法,其包括信息嵌入和信息提取两部分;所述的信息嵌入部分的总体实现框图如图1a所示,其具体步骤为:
[0056] ①_1、令Sorg表示原始的立体视频,将Sorg的左视点彩色视频记为Lorg,将Sorg的右视点彩色视频记为Rorg;并令W表示待嵌入的隐秘信息,W中包含nW个比特的值,其中,Lorg中的左视点彩色图像和Rorg中的右视点彩色图像的宽度
均为M,Lorg中的左视点彩色图像和Rorg中的右视点彩色图像的高度均为N,M和N均能被64整除,Lorg中包含的左视点彩色图像的总帧数和Rorg中包含的右视点彩色图像的总帧数均为F,F≥1, 对应表示W中的第nW个比特的值、第nW-1
个比特的值、…、第i个比特的值、…、第2个比特的值、第1个比特的值,
各自为0或1,1≤i≤nW。
[0057] ①_2、采用现有的立体图像显著模型,获取Lorg中的每帧左视点彩色图像的立体显著图像,将Lorg中的第j帧左视点彩色图像的立体显著图像记为 然后计算Lorg中的每帧左视点彩色图像的立体显著图像的大津阈值,将 的大津阈值记为 其中,1≤j≤F。
[0058] 同样,采用现有的立体图像显著模型,获取Rorg中的每帧右视点彩色图像的立体显著图像,将Rorg中的第j帧右视点彩色图像的立体显著图像记为 然后计算Rorg中的每帧右视点彩色图像的立体显著图像的大津阈值,将 的大津阈值记为
[0059] ①_3、将Lorg中的每帧左视点彩色图像的立体显著图像分割成 个互不重叠的尺寸大小为64×64的图像块,将 中的第k个图像块记为 然后计算Lorg中的每帧左视点彩色图像的立体显著图像中的每个图像块中的所有像素点的像素值的均值,将中的所有像素点的像素值的均值记为 接着根据Lorg中的每帧左视点彩色图像的
立体显著图像中的每个图像块中的所有像素点的像素值的均值和Lorg中的每帧左视点彩色图像的立体显著图像的大津阈值,将Lorg中的每帧左视点彩色图像的立体显著图像中的每个图像块确定为显著块或非显著块,对于 若 大于或等于 则将 确定为
显著块;若 小于 则将 确定为非显著块;其中,
[0060] 同样,将Rorg中的每帧右视点彩色图像的立体显著图像分割成 个互不重叠的尺寸大小为64×64的图像块,将 中的第k个图像块记为 然后计算Rorg中的每帧右视点彩色图像的立体显著图像中的每个图像块中的所有像素点的像素值的均值,将中的所有像素点的像素值的均值记为 接着根据Rorg中的每帧右视点彩色图像的
立体显著图像中的每个图像块中的所有像素点的像素值的均值和Rorg中的每帧右视点彩色图像的立体显著图像的大津阈值,将Rorg中的每帧右视点彩色图像的立体显著图像中的每个图像块确定为显著块或非显著块,对于 若 大于或等于 则将 确定为
显著块;若 小于 则将 确定为非显著块。
[0061] ①_4、利用logistics混沌映射产生一个包含nW个比特的值的二值伪随机序列,将该二值伪随机序列作为密钥,并记为E, 然后对W中的每个比特的值与E中的每个比特的值一一对应进行异或,将异或结果作为加密信息,记为W',
其中, 对应表示E中的第nW个比特的值、第
nW-1个比特的值、…、第i个比特的值、…、第2个比特的值、第1个比特的值,
各自为0或1, 对应表示W'中的第nW个比特的值、
第nW-1个比特的值、…、第i个比特的值、…、第2个比特的值、第1个比特的值,各自为0或1,w'i为wi与ei的异或值。
[0062] ①_5、通过3D-HEVC标准编码平台,以帧为单位对Lorg和Rorg进行压缩编码,将当前待编码的Lorg中的第j帧左视点彩色图像或Rorg中的第j帧右视点彩色图像定义为当前帧,并将当前帧记为Pj;其中,j的初始值为1。
[0063] 在对Lorg和Rorg进行压缩编码时是依次对Lorg中的第1帧左视点彩色图像、Rorg中的第1帧右视点彩色图像进行压缩编码,依次类推,直至依次对Lorg中的第F帧左视点彩色图像、Rorg中的第F帧右视点彩色图像进行压缩编码,完成整个编码过程。
[0064] ①_6、判断Pj是否为P帧或为B帧,如果是,则执行步骤①_7;否则,则执行步骤①_9。
[0065] ①_7、以编码树单元(CTU)为单位对Pj进行压缩编码,将Pj中当前待编码的第k个编码树单元定义为当前编码块,并记为Borg,j,k;其中, k的初始值为1。
[0066] ①_8a、初始化编码Borg,j,k相关的编码参数,读取Borg,j,k的编码量化参数,记为QPorg,j,k;并读取W'中的第i'个比特的值w'i'和第i'+1个比特的值w'i'+1,然后将w'i'+1w'i'转换为十进制数值,记为di', 其中,i'的初始值为1,1≤i'≤nW-1,w'i'和w'i'+1各自为0或1。
[0067] ①_8b、当Pj为Lorg中的第j帧左视点彩色图像时,判断QPorg,j,k对4取余的结果是否等于di',如果QPorg,j,k对4取余的结果不等于di',则当 为显著块时,利用w'i'和w'i'+1向下调制QPorg,j,k,得到Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,然后执行步骤①_8c;当 为非显著块时,利用w'i'和w'i'+1向上调制QPorg,j,k,得到Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,然后执行步骤①_8c;如果QPorg,j,k对4取余的结果等于di',则直接将QPorg,j,k作为Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,QP'org,j,k=QPorg,j,k,然后执行步骤①_8c;其中,QP'org,j,k=QPorg,j,k中的“=”为赋值符号。
[0068] 当Pj为Rorg中的第j帧右视点彩色图像时,判断QPorg,j,k对4取余的结果是否等于di',如果QPorg,j,k对4取余的结果不等于di',则当 为显著块时,利用w'i'和w'i'+1向下调制QPorg,j,k,得到Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,然后执行步骤①_8c;当 为非显著块时,利用w'i'和w'i'+1向上调制QPorg,j,k,得到Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,然后执行步骤①_8c;如果QPorg,j,k对4取余的结果等于di',则直接将QPorg,j,k作为Borg,j,k的嵌入有隐秘信息的编码量化参数,记为QP'org,j,k,QP'org,j,k=QPorg,j,k,然后执行步骤①_8c。
[0069] ①_8c、判断QP'org,j,k是否在[0,51]范围之内,如果是,则直接执行步骤①_8d;否则,当QP'org,j,k>51时,利用w'i'和w'i'+1向下调制QPorg,j,k,重新得到Borg,j,k的嵌入有隐秘信息的编码量化参数QP'org,j,k,然后执行步骤①_8d;当QP'org,j,k<0时,利用w'i'和w'i'+1向上调制QPorg,j,k,重新得到Borg,j,k的嵌入有隐秘信息的编码量化参数QP'org,j,k,然后执行步骤①_8d。
[0070] ①_8d、采用QP'org,j,k对Borg,j,k进行压缩编码,至此已完成Borg,j,k的隐秘信息嵌入过程;当编码完Borg,j,k后,判断Borg,j,k是否为skip块,如果是,则直接执行步骤①_8e;否则,令i'=i'+2,然后执行步骤①_8e;其中,i'=i'+2中的“=”为赋值符号。
[0071] ①_8e、令k=k+1,将Pj中下一个待编码的编码树单元作为当前编码块,并记为Borg,j,k,然后返回步骤①_8a继续执行,直至Pj中的所有编码树单元均编码完毕,再执行步骤①_9;其中,k=k+1中的“=”为赋值符号。
[0072] ①_9、令j=j+1,将Lorg中下一帧待编码的左视点彩色图像或Rorg中下一帧待编码的右视点彩色图像作为当前帧,并将当前帧记为Pj;然后返回步骤①_6继续执行,直至Lorg中的所有左视点彩色图像和Rorg中的所有右视点彩色图像均编码完毕,得到嵌入有隐秘信息的视频流;其中,j=j+1中的“=”为赋值符号。
[0073] ①_10、将产生密钥E的初始值信息传送到信息提取端。
[0074] 所述的信息提取部分的总体实现框图如图1b所示,其具体步骤为:
[0075] ②_1、将嵌入有隐秘信息的视频流定义为目标视频流,记为str.bindec。
[0076] ②_2、根据信息嵌入端发送的产生密钥E的初始值信息,利用logistics混沌映射产生一个与信息嵌入端相同的密钥E;如果直接将信息嵌入端的密钥E传送给信息提取端,则边信息太大,由于产生密钥的过程比较简单,只要给定初始值就能重现密钥,因此在信息提取端只需根据信息嵌入端发送的产生密钥E的初始值信息,重新产生即可得到与信息嵌入端相同的密钥E。
[0077] ②_3、以帧为单位解析str.bindec,将str.bindec中当前待解析的帧定义为当前帧。
[0078] ②_4、判断当前帧是否为P帧或为B帧,如果是,则执行步骤②_5;否则,执行步骤②_8。
[0079] ②_5、以编码树单元(CTU)为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块。
[0080] ②_6、判断当前解析块是否为skip块,如果是,则执行步骤②_7;否则,解析出当前解析块的嵌入有隐秘信息的编码量化参数,记为QP'dec,然后计算QP'dec对4取余的结果,记为d'dec,接着将d'dec转换为二进制数,得到从当前解析块中提取出的两个比特的值,至此已完成当前解析块的隐秘信息提取过程,再执行步骤②_7;其中,d'dec为0、1、2或3。
[0081] ②_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤②_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤②_8。
[0082] ②_8、将str.bindec中下一帧待解析的帧作为当前帧,然后返回步骤②_4继续执行,直至str.bindec中的所有帧均处理完毕,完成隐秘信息提取。
[0083] ②_9、将提取得到的nW个比特的值构成加密信息,记为W 'dec,然后对W'dec中的每个比特的值与E中的每个
比特的值一一对应进行异或,将异或结果作为解密的隐秘信息,记为Wdec,
其中, 对应表
示W'dec中的第nW个比特的值、第nW-1个比特的值、…、第i个比特的值、…、第2个比特的值、第
1个比特的值, 各自为0或1,
对应表示Wdec中的第nW个比特的值、第nW-1个比特的值、…、
第i个比特的值、…、第2个比特的值、第1个比特的值, 各自
为0或1。
[0084] 在此具体实施例中,步骤①_8b中利用w'i'和w'i'+1向下调制QPorg,j,k获取QP'org,j,k的具体过程为:A1、在区间[-3,QPorg,j,k]内找出绝对值对4取余的结果等于di'的所有的值;B1、计算步骤A1中找出的每个值与QPorg,j,k的差值的绝对值;C1、找出步骤B1中得到的所有绝对值中的最小绝对值,将步骤A1中找出的与该最小绝对值对应的那个值赋值给QP'org,j,k,即QP'org,j,k满足限定条件: 其中,mod为取余运算符号,
min()为取最小值函数。
[0085] 在此具体实施例中,步骤①_8b中利用w'i'和w'i'+1向上调制QPorg,j,k获取QP'org,j,k的具体过程为:A2、在区间[QPorg,j,k,54]内找出对4取余的结果等于di'的所有的值;B2、计算步骤A2中找出的每个值与QPorg,j,k的差值的绝对值;C2、找出步骤B2中得到的所有绝对值中的最小绝对值,将步骤A2中找出的与该最小绝对值对应的那个值赋值给QP'org,j,k,即QP'org,j,k满足限定条件:
[0086] 在此具体实施例中,步骤①_8c中利用w'i'和w'i'+1向下调制QPorg,j,k重新获取QP'org,j,k的具体过程为:A3、在区间[0,QPorg,j,k]内找出对4取余的结果等于di'的所有的值;B3、计算步骤A3中找出的每个值与QPorg,j,k的差值的绝对值;C3、找出步骤B3中得到的所有绝对值中的最小绝对值,将步骤A3中找出的与该最小绝对值对应的那个值赋值给QP'org,j,k,即QP'org,j,k满足限定条件:
[0087] 在此具体实施例中,步骤①_8c中利用w'i'和w'i'+1向上调制QPorg,j,k重新获取QP'org,j,k的具体过程为:A4、在区间[QPorg,j,k,51]内找出对4取余的结果等于di'的所有的值;B4、计算步骤A4中找出的每个值与QPorg,j,k的差值的绝对值;C4、找出步骤B4中得到的所有绝对值中的最小绝对值,将步骤A4中找出的与该最小绝对值对应的那个值赋值给QP'org,j,k,即QP'org,j,k满足限定条件:
[0088] 为了验证本发明方法的有效性和可行性,对本发明方法进行试验。
[0089] 采用的测试序列为Balloons立体视频序列的3视点和5视点、Newspaper立体视频序列的2视点和4视点、Shark立体视频序列的1视点和9视点、UndoDancer立体视频序列的1视点和9视点,前两个立体视频序列的分辨率为1024×768,后两个立体视频序列的分辨率为1920×1088。测试软件为3D-HEVC标准的编码平台HTM13.0,在随机访问下编码100帧,给定目标比特率分别为2000、4000、5000和6000,其他配置参数为平台默认值。下面将分别从立体视频序列的不可感知性、嵌入容量和比特率变化等方面来评价本发明方法的性能。
[0090] 1)立体视频序列的不可感知性
[0091] 为了验证本发明方法对立体视频序列的主观质量的影响,在此选取Newspaper立体视频序列和Shark立体视频序列来进行说明。图2a给出了原始的Newspaper立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的2视点的第2帧图像;图2b给出了原始的Newspaper立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的4视点的第2帧图像;图2c给出了原始的Shark立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的1视点的第2帧图像;图2d给出了原始的Shark立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的9视点的第2帧图像;图2e给出了原始的Newspaper立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的2视点的第2帧图像;图2f给出了原始的Newspaper立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的4视点的第2帧图像;图
2g给出了原始的Shark立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的1视点的第2帧图像;图2h给出了原始的Shark立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的9视点的第2帧图像。
比较图2a与图2e、比较图2b与图2f、比较图2c与图2g、比较图2d与图2h,可以看出隐秘信息嵌入前后立体视频序列视点的质量并无明显失真,说明本发明方法的立体视频不可感知性较好。
[0092] 为了进一步评价立体视频序列的质量,试验中引入了代表性指标峰值信噪比(Peak Signal-Noise-Ratio,PSNR)进行说明。表1给出了原始的Balloons立体视频序列、原始的Newspaper立体视频序列、原始的Shark立体视频序列、原始的UndoDancer立体视频序列分别压缩编码后生成的视频流再经解码得到的立体视频序列的质量,及原始的Balloons立体视频序列、原始的Newspaper立体视频序列、原始的Shark立体视频序列、原始的UndoDancer立体视频序列分别经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的质量。表1中嵌入隐秘信息前后PSNR的变化量ΔPSNR的计算公式为:ΔPSNR=PSNRpro-PSNRorg,其中,PSNRpro表示原始立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的两个视点的PSNR的均值,PSNRorg表示原始立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的两个视点的PSNR的均值,本试验中通过ΔPSNR的大小来进行立体视频序列不可感知性的说明。
[0093] 从表1中可以看出,在不同目标比特率下压缩编码立体视频序列,解码重建后的立体视频序列的质量不同,主要是因为给定的目标比特率越小,分配给视点的比特也就越少,立体视频序列压缩编码生成的视频流再经解码得到的立体视频序列的质量越差。同时,原始的立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的质量的PSNR值与原始的立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的质量的PSNR值的差异的绝对值范围在0.0014~0.0524dB,原始的立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的质量的PSNR值比原始的立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的质量的PSNR值平均下降了0.03139dB,说明本发明方法对立体视频序列的质量影响轻微。这主要是因为本发明方法结合立体图像显著模型指导隐秘信息的嵌入,且对编码量化参数只是进行微调,所以本发明方法对立体视频序列的质量影响较小。
[0094] 表1原始的立体视频序列经本发明方法处理后压缩编码生成的视频流再经解码得到的立体视频序列的质量与原始的立体视频序列压缩编码后生成的视频流再经解码得到的立体视频序列的质量
[0095]
[0096] 2)立体视频序列的嵌入容量和比特率变化
[0097] 一般来说,在立体视频序列的编码过程中利用编码量化参数嵌入隐秘信息会引起编码比特率的变化。表2给出了Balloons立体视频序列、Newspaper立体视频序列、Shark立体视频序列、UndoDancer立体视频序列,本发明方法的嵌入容量和比特率变化率的测试结果,表2中嵌入容量给出的是立体视频序列的嵌入容量的总和,比特率变化率BRI的定义如下: 其中,Rpro表示原始的立体视频序列经本发明方法处理后压缩编码的码率,Rorg表示原始的立体视频序列压缩编码的码率。
[0098] 从表2中可以看出,嵌入容量随着立体视频序列的分辨率的增大而增大,这主要是因为分辨率越大,划分的编码树单元越多,可嵌入的载体越多。本发明方法在不同的目标比特率下立体视频序列的平均嵌入容量为47236比特,平均比特率增长0.0741%,说明本发明方法能提供高的嵌入容量,且对编码的码率影响较小,主要是因为本发明方法在对编码量化参数进行微调的同时启用了码率控制模块,有效的抑制了码率的变化。
[0099] 表2本发明方法的嵌入容量和比特率变化率的测试结果
[0100]