一种基于单深度帧内模式的3D‑HEVC深度视频信息隐藏方法与流程

文档序号:11844827阅读:184来源:国知局
一种基于单深度帧内模式的3D‑HEVC深度视频信息隐藏方法与流程

本发明涉及一种视频信息隐藏技术,尤其是涉及一种基于单深度帧内模式的3D-HEVC深度视频信息隐藏方法。



背景技术:

在网络和通信技术迅速发展的同时,信息安全问题变得日益严重,信息隐藏技术是解决这一问题的有效方法。随着三维视频在电影产业和娱乐应用等方面的逐渐流行,人们越来越关注高效率视频编码(High Efficiency Video Coding,HEVC)标准在三维视频上的拓展,即3D-HEVC编码标准。深度视频是三维视频的重要组成部分,其不用于用户直接观看,主要用于绘制虚拟彩色视点。由于深度视频的部分深度失真不一定会造成虚拟彩色视点的失真,因此,研究3D-HEVC编码标准下的深度视频信息隐藏技术具有重要意义。

目前,现有的视频信息隐藏算法主要是基于单通道视频编码标准研究的,且随着HEVC标准的广泛应用,基于单通道HEVC编码标准的信息隐藏技术已经取得了初步发展。如:WANG等人提出与HEVC帧内预测模式相关的信息隐藏算法,由于该算法需要用修改后的预测模式重新编码,因此该算法的复杂度较高。又如:Tew等人根据嵌入的信息指导编码单元分割,同时也考虑了量化后非零的DCT系数的奇偶调制,使得该算法的整体性能得到了提升。然而,目前现有的三维视频信息隐藏算法较少,如:Yang等人提出了一种基于量化索引调制的3D视频盲水印算法,该算法将水印信息嵌入在深度视频的DCT系数上,该算法具有较强的鲁棒性,但是该算法是针对深度视频原始域的信息隐藏,嵌入的信息经编码压缩后有可能丢失。现有的压缩域的三维视频信息隐藏算法主要是基于单通道H.264编码标准的三维视频编码标准扩展研究的,如:SONG等人提出的一种可逆的多视点视频信息隐藏算法,其通过引入内积的思想,在b4帧编码块的运动矢量上进行信息隐藏,该算法具有较好的不可感知性,且能实现信息可逆。由于3D-HEVC编码标准的压缩性能明显优于H.264的三维视频编码标准扩展,3D-HEVC编码标准适用于更高清视频序列的压缩编码,因此研究基于3D-HEVC编码标准的三维视频信息隐藏算法很有必要。由于深度视频具有大量的平滑区域和尖锐的边缘区域,因此以上的彩色视频的信息隐藏技术如果直接用在深度视频上,则信息隐藏算法的性能并不一定会达到预期的效果。就3D-HEVC编码标准,其存在一种“单深度帧内模式”,这种模式是专门针对深度视频的平滑区域,而基于单通道H.264编码标准的三维视频编码标准扩展不具备该编码模式,因此需要研究一种基于单深度帧内模式的3D-HEVC深度视频信息隐藏方法。



技术实现要素:

本发明所要解决的技术问题是提供一种基于单深度帧内模式的3D-HEVC深度视频信息隐藏方法,其安全性较高、计算复杂度较低,且对码率影响较小。

本发明解决上述技术问题所采用的技术方案为:一种基于单深度帧内模式的3D-HEVC深度视频信息隐藏方法,其特征在于包括信息嵌入和信息提取两部分;

所述的信息嵌入部分的具体步骤为:

①_1、令Sorg表示原始的立体视频,将Sorg的左视点彩色视频记为将对应的左视点深度视频记为将Sorg的右视点彩色视频记为将对应的右视点深度视频记为并令W表示待嵌入的隐秘信息,W中包含n个比特的值,W={w1,w2,…,wi,…,wn-1,wn};然后通过3D-HEVC标准编码平台对以及进行压缩编码,得到目标视频流,记为str.binorg;其中,中的左视点彩色图像、中的左视点深度图像、中的右视点彩色图像、中的右视点深度图像的宽度均为M且高度均为N,中包含的左视点彩色图像的总帧数、中包含的左视点深度图像的总帧数、中包含的右视点彩色图像的总帧数、中包含的右视点深度图像的总帧数均为F,w1、w2、wi、wn-1和wn对应表示W中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,w1、w2、wi、wn-1和wn为0或1,1≤i≤n;

①_2、利用logistics混沌映射产生一个包含n个比特的值的二值伪随机序列,将该二值伪随机序列作为密钥,并记为E,E={e1,e2,…,ei,…,en-1,en};然后对W中的每个比特的值与E中的每个比特的值一一对应进行异或,得到加密信息,记为W',W'={w'1,w'2,…,w'i,…,w'n-1,w'n};其中,产生密钥E的初始值信息随意给定,e1、e2、ei、en-1和en对应表示E中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,e1、e2、ei、en-1和en为0或1,w'1、w'2、w'i、w'n-1和w'n对应表示W'中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,w'1、w'2、w'i、w'n-1和w'n为0或1,1≤i≤n;

①_3、以帧为单位解析目标视频流str.binorg,将目标视频流str.binorg中当前待解析的帧定义为当前帧;

①_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤①_5;否则,执行步骤①_8;

①_5、以编码树单元为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤①_6;

①_6、按照当前解析块的最优分割模式,以分割完成的编码单元为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为将对应的编码模式记为其中,k为正整数,k∈[1,64],的尺寸大小为8×8、16×16、32×32或64×64,然后执行以下步骤:

①_6a、将当前解析块中正在处理的编码单元定义为当前编码单元;

①_6b、假设当前编码单元为则如果当前编码单元对应的编码模式为帧内编码模式,那么执行步骤①_6i;如果当前编码单元对应的编码模式为单深度帧内编码模式,那么执行步骤①_6c;

①_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式的像素值候选列表,记为中包含2个像素值,将第1个像素值记为第1个像素值的索引值为0,将第2个像素值记为第2个像素值的索引值为1,其中,并从密钥E中读取第j个比特的值ej,从加密信息W'中读取第i个比特的值w'i,其中,1≤j≤n,j的初始值为1,1≤i≤n,i的初始值为1;然后执行步骤①_6d;

①_6d、判断与是否相等,如果两者相等,则执行步骤①_6e;否则,执行步骤①_6f;

①_6e、如果ej为1,则利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的隐秘信息嵌入过程,然后令j=j+1,令i=i+1,再执行步骤①_6i;如果ej为0,则令j=j+1,再执行步骤①_6i;其中,j=j+1和i=i+1中的“=”为赋值符号;

①_6f、解析当前编码单元的深度depth,如果depth为2或3,则执行步骤①_6g;如果depth为0或1,则执行步骤①_6i;其中,depth∈{0,1,2,3};

①_6g、判断当前编码单元的右相邻编码单元或下相邻编码单元的编码模式是否为单深度帧内编码模式,如果是,则执行步骤①_6i;否则,执行步骤①_6h;其中,当前编码单元的右相邻编码单元为位于当前编码单元的右侧且与当前编码单元相邻的编码单元,当前编码单元的下相邻编码单元为位于当前编码单元的下侧且与当前编码单元相邻的编码单元;

①_6h、判断当前编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元各自的预测模式是否属于各自相应的模式范围,如果都不满足,则利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的嵌入隐秘信息过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元;

①_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤①_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤①-7;

①_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤①_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤①_8;

①_8、将目标视频流str.binorg中下一帧待解析的帧作为当前帧,然后返回步骤①_4继续执行,直至目标视频流str.binorg中的所有帧均处理完毕,得到嵌入隐秘信息的视频流str.bindec

①_9、将产生密钥E的初始值信息传送到信息提取端;

所述的信息提取部分的具体步骤为:

②_1、将嵌入隐秘信息的视频流定义为目标视频流,记为str.bindec

②_2、根据信息嵌入端发送的产生密钥E的初始值信息,利用logistics混沌映射产生一个与信息嵌入端相同的密钥E;

②_3、以帧为单位解析目标视频流str.bindec,将目标视频流str.bindec中当前待解析的帧定义为当前帧;

②_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤②_5;否则,执行步骤②_8;

②_5、以编码树单元为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤②_6;

②_6、按照当前解析块的最优分割模式,以分割完成的编码单元为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为将对应的编码模式记为其中,k为正整数,k∈[1,64],的尺寸大小为8×8、16×16、32×32或64×64,然后执行以下步骤:

②_6a、将当前解析块中正在处理的编码单元定义为当前编码单元;

②_6b、假设当前编码单元为则如果当前编码单元对应的编码模式为帧内编码模式,那么执行步骤②_6i;如果当前编码单元对应的编码模式为单深度帧内编码模式,那么执行步骤②_6c;

②_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式的像素值候选列表,记为中包含2个像素值,将第1个像素值记为将第2个像素值记为其中,并从密钥E中读取第j个比特的值ej,其中,1≤j≤n,j的初始值为1;然后执行步骤②_6d;

②_6d、判断与是否相等,如果两者相等,则执行步骤②_6e;否则,执行步骤②_6f;

②_6e、如果ej为1,则解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为至此已完成当前编码单元的隐秘信息提取过程,然后令j=j+1,令i=i+1,再执行步骤②_6i;如果ej为0,则令j=j+1,再执行步骤②_6i;其中,1≤i≤n,i的初始值为1,为0或1,j=j+1和i=i+1中的“=”为赋值符号;

②_6f、解析当前编码单元的深度depth,如果depth为2或3,则执行步骤②_6g;如果depth为0或1,则执行步骤②_6i;其中,depth∈{0,1,2,3};

②_6g、判断当前编码单元的右相邻编码单元或下相邻编码单元的编码模式是否为单深度帧内编码模式,如果是,则执行步骤②_6i;否则,执行步骤②_6h;其中,当前编码单元的右相邻编码单元为位于当前编码单元的右侧且与当前编码单元相邻的编码单元,当前编码单元的下相邻编码单元为位于当前编码单元的下侧且与当前编码单元相邻的编码单元;

②_6h、判断当前编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元各自的预测模式是否属于各自相应的模式范围,如果都不满足,则解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为至此已完成当前编码单元的隐秘信息提取过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元;

②_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤②_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤②_7;

②_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤②_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤②_8;

②_8、将目标视频流str.bindec中下一帧待解析的帧作为当前帧,然后返回步骤②_4继续执行,直至目标视频流str.bindec中的所有帧均处理完毕,完成隐秘信息提取;

②_9、将得到的n个加密信息比特值构成加密信息,记为然后对中的每个加密信息比特值与E中的每个比特的值一一对应进行异或,得到解密的隐秘信息,记为其中,和对应表示得到的第1个加密信息比特值、第2个加密信息比特值、第i个加密信息比特值、第n-1个加密信息比特值和第n个加密信息比特值,和为0或1,和对应表示中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,和为0或1。

所述的步骤①_6e和所述的步骤①_6h中的利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值的具体过程为:将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值记为将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值记为

所述的步骤①_6h中的当前编码单元的右上相邻编码单元相应的模式范围为由数字标识为0及2至10的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的右相邻编码单元相应的模式范围为由数字标识为0及1至25的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的右下相邻编码单元相应的模式范围为由数字标识为0、1及11至25的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的左下相邻编码单元相应的模式范围为由数字标识为0及26至34的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的下相邻编码单元相应的模式范围为由数字标识为0、1及11至34的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合。

所述的步骤②_6e和所述的步骤②_6h中的解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值的具体过程为:将当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值记为则有

所述的步骤②_6h中的当前编码单元的右上相邻编码单元相应的模式范围为由数字标识为0及2至10的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的右相邻编码单元相应的模式范围为由数字标识为0及1至25的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的右下相邻编码单元相应的模式范围为由数字标识为0、1及11至25的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的左下相邻编码单元相应的模式范围为由数字标识为0及26至34的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合;当前编码单元的下相邻编码单元相应的模式范围为由数字标识为0、1及11至34的预测模式构成的预测模式集合或由DMM模式构成的预测模式集合。

与现有技术相比,本发明的优点在于:

1)本发明方法为首次在3D-HEVC压缩域中进行信息隐藏,同时也是首次在3D-HEVC深度视频中进行信息隐藏,本发明方法利用3D-HEVC编码标准中提出的单深度帧内编码模式(专门针对深度视频平滑区域的编码)进行隐秘信息嵌入和隐秘信息提取,而由于H.264编码标准在三维视频上的扩展不具有单深度帧内编码模式,因此本发明方法不同于H.264编码标准在三维视频上的扩展的压缩域的信息隐藏方法,两者不能通用。

2)本发明方法在信息嵌入部分中利用logistics混沌映射产生一个二值伪随机序列作为密钥,利用该密钥加密待嵌入的隐秘信息,同时结合密钥对待嵌入隐秘信息的编码单元进行位置选择,有效地提高了本发明方法的安全性。

3)本发明方法通过构建编码模式为单深度帧内编码模式的编码单元的编码模式的像素值候选列表,在像素值候选列表中的2个像素值相等且从密钥中提取的信息比特的值为1时,利用从加密信息中提取的信息比特的值对编码单元的编码模式的像素值的索引值进行索引调制,实现隐秘信息嵌入;而在像素值候选列表中的2个像素值不相等、编码单元的深度为2或3且编码单元的右相邻编码单元和下相邻编码单元的编码模式不为单深度帧内编码模式时,通过对编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元的预测模式的判别,选择是否对编码单元进行隐秘信息嵌入,这样隐秘信息嵌入方式很好地避免了误差漂移现象。

4)本发明方法在信息提取部分中,加密信息能够盲提取,不需要原始视频的参与,计算复杂度低。

附图说明

图1a为本发明方法的信息嵌入部分的总体实现框图;

图1b为本发明方法的信息提取部分的总体实现框图;

图2a为原始的Balloons立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的4视点的第1帧图像;

图2b为原始的Newspaper立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的3视点的第1帧图像;

图2c为原始的Shark立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的5视点的第1帧图像;

图2d为原始的Balloons立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的4视点的第1帧图像;

图2e为原始的Newspaper立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的3视点的第1帧图像;

图2f为原始的Shark立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的5视点的第1帧图像。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提出的一种基于单深度帧内模式的3D-HEVC深度视频信息隐藏方法,其包括信息嵌入和信息提取两部分。

所述的信息嵌入部分的总体实现框图如图1a所示,其具体步骤为:

①_1、令Sorg表示原始的立体视频,将Sorg的左视点彩色视频记为将对应的左视点深度视频记为将Sorg的右视点彩色视频记为将对应的右视点深度视频记为并令W表示待嵌入的隐秘信息,W中包含n个比特的值,W={w1,w2,…,wi,…,wn-1,wn};然后通过3D-HEVC标准编码平台对以及进行压缩编码,得到目标视频流,记为str.binorg;其中,中的左视点彩色图像、中的左视点深度图像、中的右视点彩色图像、中的右视点深度图像的宽度均为M且高度均为N,中包含的左视点彩色图像的总帧数、中包含的左视点深度图像的总帧数、中包含的右视点彩色图像的总帧数、中包含的右视点深度图像的总帧数均为F,w1、w2、wi、wn-1和wn对应表示W中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,w1、w2、wi、wn-1和wn为0或1,1≤i≤n。

在对以及进行压缩编码时是依次对中的第1帧左视点彩色图像、中的第1帧左视点深度图像、中的第1帧右视点彩色图像、中的第1帧右视点深度图像进行压缩编码,依次类推,直至依次对中的第F帧左视点彩色图像、中的第F帧左视点深度图像、中的第F帧右视点彩色图像、中的第F帧右视点深度图像进行压缩编码,完成整个编码过程。

①_2、利用logistics混沌映射产生一个包含n个比特的值的二值伪随机序列,将该二值伪随机序列作为密钥,并记为E,E={e1,e2,…,ei,…,en-1,en};然后对W中的每个比特的值与E中的每个比特的值一一对应进行异或,得到加密信息,记为W',W'={w'1,w'2,…,w'i,…,w'n-1,w'n};其中,产生密钥E的初始值信息随意给定,e1、e2、ei、en-1和en对应表示E中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,e1、e2、ei、en-1和en为0或1,w'1、w'2、w'i、w'n-1和w'n对应表示W'中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,w'1、w'2、w'i、w'n-1和w'n为0或1,1≤i≤n。

①_3、以帧为单位解析目标视频流str.binorg,将目标视频流str.binorg中当前待解析的帧定义为当前帧。

①_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤①_5;否则,执行步骤①_8。

①_5、以编码树单元(CTU)为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤①_6。

①_6、按照当前解析块的最优分割模式,以分割完成的编码单元(CU)为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为将对应的编码模式记为其中,k为正整数,k∈[1,64],当前解析块的尺寸大小为64×64,当前解析块在编码完成后可以分割成若干个编码单元,尺寸大小为8×8、16×16、32×32或64×64,当编码单元的尺寸大小为64×64时,说明当前解析块没有分割,保持原来大小,这时只有1个编码单元,因此k的取值仅为1,当前解析块如果全分为尺寸大小为8×8的编码单元,则有64个编码单元,因此k的取值为从1至64,当前解析块如果全分为尺寸大小为32×32的编码单元时,有4个编码单元,因此k的取值为1、2、3、4,当前解析块如果分为不同尺寸大小的编码单元,如分为尺寸大小为8×8、16×16、32×32的编码单元,则根据编码单元的个数确定了k的取值,故k∈[1,64],的尺寸大小为8×8、16×16、32×32或64×64,然后执行以下步骤:

①_6a、将当前解析块中正在处理的编码单元定义为当前编码单元。

①_6b、假设当前编码单元为则如果当前编码单元对应的编码模式为帧内编码模式,那么执行步骤①_6i;如果当前编码单元对应的编码模式为单深度帧内编码模式,那么执行步骤①_6c。

①_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式的像素值候选列表,记为中包含2个像素值,将第1个像素值记为第1个像素值的索引值为0,将第2个像素值记为第2个像素值的索引值为1,其中,并从密钥E中读取第j个比特的值ej,从加密信息W'中读取第i个比特的值w'i,其中,1≤j≤n,j的初始值为1,1≤i≤n,i的初始值为1;然后执行步骤①_6d。

①_6d、判断与是否相等,如果两者相等,则执行步骤①_6e;否则,执行步骤①_6f。

①_6e、如果ej为1,则利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的隐秘信息嵌入过程,然后令j=j+1,令i=i+1,再执行步骤①_6i;如果ej为0,则令j=j+1,再执行步骤①_6i;其中,j=j+1和i=i+1中的“=”为赋值符号。

在此具体实施例中,步骤①_6e中的利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值的具体过程为:将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值记为将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值记为

①_6f、解析当前编码单元的深度depth,如果depth为2或3,则执行步骤①_6g;如果depth为0或1,则执行步骤①_6i;其中,depth∈{0,1,2,3}。

①_6g、判断当前编码单元的右相邻编码单元或下相邻编码单元的编码模式是否为单深度帧内编码模式,如果是,则执行步骤①_6i;否则,执行步骤①_6h;其中,当前编码单元的右相邻编码单元为位于当前编码单元的右侧且与当前编码单元相邻的编码单元,当前编码单元的下相邻编码单元为位于当前编码单元的下侧且与当前编码单元相邻的编码单元。

①_6h、判断当前编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元各自的预测模式是否属于各自相应的模式范围,如果都不满足,则利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的嵌入隐秘信息过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元。

在此具体实施例中,步骤①_6h中的当前编码单元的右上相邻编码单元相应的模式范围为由数字标识为0及2至10的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的右相邻编码单元相应的模式范围为由数字标识为0及1至25的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的右下相邻编码单元相应的模式范围为由数字标识为0、1及11至25的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的左下相邻编码单元相应的模式范围为由数字标识为0及26至34的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的下相邻编码单元相应的模式范围为由数字标识为0、1及11至34的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合。

在此具体实施例中,步骤①_6h中的利用w'i对当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值的具体过程为:将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的索引值记为将当前编码单元进行压缩编码时当前编码单元对应的编码模式所选的像素值的嵌入隐秘信息后的索引值记为

①_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤①_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤①-7。

①_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤①_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤①_8。

①_8、将目标视频流str.binorg中下一帧待解析的帧作为当前帧,然后返回步骤①_4继续执行,直至目标视频流str.binorg中的所有帧均处理完毕,得到嵌入隐秘信息的视频流str.bindec

①_9、将产生密钥E的初始值信息传送到信息提取端,在信息提取端只需要知道初始值信息就能产生相同的密钥。

所述的信息提取部分的总体实现框图如图1b所示,其具体步骤为:

②_1、将嵌入隐秘信息的视频流定义为目标视频流,记为str.bindec

②_2、根据信息嵌入端发送的产生密钥E的初始值信息,利用logistics混沌映射产生一个与信息嵌入端相同的密钥E;如果直接将信息嵌入端的密钥E传送给信息提取端,则边信息太大,由于产生密钥的过程比较简单,只要给定初始值就能重现密钥,因此在信息提取端只需根据信息嵌入端发送的产生密钥E的初始值信息,重新产生即可得到与信息嵌入端相同的密钥E。

②_3、以帧为单位解析目标视频流str.bindec,将目标视频流str.bindec中当前待解析的帧定义为当前帧。

②_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤②_5;否则,执行步骤②_8。

②_5、以编码树单元(CTU)为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤②_6。

②_6、按照当前解析块的最优分割模式,以分割完成的编码单元(CU)为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为将对应的编码模式记为其中,k为正整数,k∈[1,64],当前解析块的尺寸大小为64×64,当前解析块在编码完成后可以分割成若干个编码单元,尺寸大小为8×8、16×16、32×32或64×64,当编码单元的尺寸大小为64×64时,说明当前解析块没有分割,保持原来大小,这时只有1个编码单元,因此k的取值仅为1,当前解析块如果全分为尺寸大小为8×8的编码单元,则有64个编码单元,因此k的取值为从1至64,当前解析块如果全分为尺寸大小为32×32的编码单元时,有4个编码单元,因此k的取值为1、2、3、4,当前解析块如果分为不同尺寸大小的编码单元,如分为尺寸大小为8×8、16×16、32×32的编码单元,则根据编码单元的个数确定了k的取值,故k∈[1,64],的尺寸大小为8×8、16×16、32×32或64×64,然后执行以下步骤:

②_6a、将当前解析块中正在处理的编码单元定义为当前编码单元。

②_6b、假设当前编码单元为则如果当前编码单元对应的编码模式为帧内编码模式,那么执行步骤②_6i;如果当前编码单元对应的编码模式为单深度帧内编码模式,那么执行步骤②_6c。

②_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式的像素值候选列表,记为中包含2个像素值,将第1个像素值记为将第2个像素值记为其中,并从密钥E中读取第j个比特的值ej,其中,1≤j≤n,j的初始值为1;然后执行步骤②_6d。

②_6d、判断与是否相等,如果两者相等,则执行步骤②_6e;否则,执行步骤②_6f。

②_6e、如果ej为1,则解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为至此已完成当前编码单元的隐秘信息提取过程,然后令j=j+1,令i=i+1,再执行步骤②_6i;如果ej为0,则令j=j+1,再执行步骤②_6i;其中,1≤i≤n,i的初始值为1,为0或1,j=j+1和i=i+1中的“=”为赋值符号。

在此具体实施例中,步骤②_6e中的解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值的具体过程为:将当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值记为则有

②_6f、解析当前编码单元的深度depth,如果depth为2或3,则执行步骤②_6g;如果depth为0或1,则执行步骤②_6i;其中,depth∈{0,1,2,3}。

②_6g、判断当前编码单元的右相邻编码单元或下相邻编码单元的编码模式是否为单深度帧内编码模式,如果是,则执行步骤②_6i;否则,执行步骤②_6h;其中,当前编码单元的右相邻编码单元为位于当前编码单元的右侧且与当前编码单元相邻的编码单元,当前编码单元的下相邻编码单元为位于当前编码单元的下侧且与当前编码单元相邻的编码单元。

②_6h、判断当前编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元各自的预测模式是否属于各自相应的模式范围,如果都不满足,则解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为至此已完成当前编码单元的隐秘信息提取过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元。

在此具体实施例中,步骤②_6h中的当前编码单元的右上相邻编码单元相应的模式范围为由数字标识为0及2至10的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的右相邻编码单元相应的模式范围为由数字标识为0及1至25的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的右下相邻编码单元相应的模式范围为由数字标识为0、1及11至25的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的左下相邻编码单元相应的模式范围为由数字标识为0及26至34的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合;当前编码单元的下相邻编码单元相应的模式范围为由数字标识为0、1及11至34的预测模式构成的预测模式集合或由DMM(Depth modeling modes)模式构成的预测模式集合。

在此具体实施例中,步骤②_6h中的解析当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值的具体过程为:将当前编码单元对应的编码模式的像素值的嵌入隐秘信息后的索引值记为则有

②_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤②_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤②_7。

②_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤②_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤②_8。

②_8、将目标视频流str.bindec中下一帧待解析的帧作为当前帧,然后返回步骤②_4继续执行,直至目标视频流str.bindec中的所有帧均处理完毕,完成隐秘信息提取。

②_9、将得到的n个加密信息比特值构成加密信息,记为然后对中的每个加密信息比特值与E中的每个比特的值一一对应进行异或,得到解密的隐秘信息,记为其中,和对应表示得到的第1个加密信息比特值、第2个加密信息比特值、第i个加密信息比特值、第n-1个加密信息比特值和第n个加密信息比特值,和为0或1,和对应表示中的第1个比特的值、第2个比特的值、第i个比特的值、第n-1个比特的值和第n个比特的值,和为0或1。

为验证本发明方法的有效性和可行性,对本发明方法进行试验。

采用的测试序列为Balloons立体视频序列的3视点和5视点、Newspaper立体视频序列的2视点和4视点、Kendo立体视频序列的3视点和5视点、Shark立体视频序列的1视点和9视点、PoznanStreet立体视频序列的3视点和5视点、UndoDancer立体视频序列的1视点和9视点,前三个立体视频序列的分辨率为1024×768,后三个立体视频序列的分辨率为1920×1088。测试软件为3D-HEVC标准的编码平台HTM13.0,使用All-intra配置文件,编码100帧,彩色视频编码的QP值为25、30、35、40,相应的深度视频编码的QP值为34、39、42、45,其他配置参数为平台默认值。下面分别从嵌入容量、比特率变化、立体视频序列的不可感知性等方面评价本发明方法的性能。

1)嵌入容量和比特率变化

嵌入容量和比特率变化是信息隐藏方法的主要性能指标。表1给出了针对Balloons立体视频序列、Newspaper立体视频序列、Kendo立体视频序列、Shark立体视频序列、PoznanStreet立体视频序列、UndoDancer立体视频序列,本发明方法的嵌入容量和比特率变化率的测试结果,表1中嵌入容量给出的是所有深度图像的嵌入容量的均值,比特率变化率BRI的定义如下:其中,Rpro表示经本发明方法处理后视频编码的码率,Rorg表示原始视频编码的码率。

嵌入容量与立体视频序列的分辨率和编码的QP值有关。分辨率与嵌入容量成正比,编码的QP值与嵌入容量成反比。分辨率越大说明编码单元的数量越多,可嵌入的载体多;增大QP的值对编码单元的编码模式的率失真影响较大,影响最优分割模式的选择。从表1中可以看出,所有编码的QP值下平均每帧深度图像的嵌入容量为244bit,信息嵌入前后立体视频序列的比特率变化率在0.03%~0.25%,平均变化率为0.12%,说明本发明方法提供的嵌入容量较大,对比特率影响较小。

表1本发明方法的嵌入容量和比特率变化率的测试结果

2)立体视频序列的不可感知性

立体视频的不可感知性也是立体视频信息隐藏方法的一个性能指标,即嵌入信息前后立体视频的质量无明显下降。由于深度视频并不直接用于用户观看,而是用来绘制虚拟视点,因此嵌入信息后深度视频的质量变化可以通过绘制视点的质量来体现。选取Balloons立体视频序列、Newspaper立体视频序列和Shark立体视频序列来进行说明。图2a给出了原始的Balloons立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的4视点的第1帧图像;图2b给出了原始的Newspaper立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的3视点的第1帧图像;图2c给出了原始的Shark立体视频序列压缩编码生成视频流,视频流解码得到的立体视频序列绘制的5视点的第1帧图像;图2d给出了原始的Balloons立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的4视点的第1帧图像;图2e给出了原始的Newspaper立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的3视点的第1帧图像;图2f给出了原始的Shark立体视频序列压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的5视点的第1帧图像。比较图2a与图2d、比较图2b与图2e、比较图2c与图2f,可以看出隐秘信息嵌入前后绘制视点的质量并无明显失真,说明本发明方法的立体视频不可感知性较好。

嵌入隐秘信息前后立体视频的质量变化除了从主观上进行观察外,还可以从客观指标上考虑,这里主要从峰值信噪比(Peak Signal-Noise-Ratio,PSNR)和结构相似度(Structural similarity index,SSIM)两个指标入手。表2给出了原始的Balloons立体视频序列、原始的Newspaper立体视频序列、原始的Kendo立体视频序列、原始的Shark立体视频序列、原始的PoznanStreet立体视频序列、原始的UndoDancer立体视频序列分别压缩编码生成视频流,视频流经本发明方法处理后解码得到的立体视频序列绘制的视点质量,及原始的Balloons立体视频序列、原始的Newspaper立体视频序列、原始的Kendo立体视频序列、原始的Shark立体视频序列、原始的PoznanStreet立体视频序列、原始的UndoDancer立体视频序列分别压缩编码生成视频流,视频流解码得到的立体视频序列绘制的视点质量。表2中嵌入隐秘信息前后PSNR和SSIM的变化量ΔPSNR和ΔSSIM的计算公式为:ΔPSNR=PSNRpro-PSNRorg,ΔSSIM=SSIMpro-SSIMorg,其中,PSNRpro表示生成的视频流经本发明方法处理后解码得到的立体视频序列绘制的视点与原始视点之间的PSNR,SSIMpro表示生成的视频流经本发明方法处理后解码得到的立体视频序列绘制的视点与原始视点之间的SSIM,PSNRorg表示生成的视频流解码得到的立体视频序列绘制的视点与原始视点之间的PSNR,和SSIMorg表示生成的视频流解码得到的立体视频序列绘制的视点与原始视点之间的SSIM,本试验中通过ΔPSNR和ΔSSIM的大小来进行立体视频不可感知性的说明。

从表2中可以看出,不同的QP值编码立体视频序列,解码重建后得到的立体视频序列所绘制的视点质量不同,QP值越大,绘制的视点质量越差,主要是因为增大QP值,对深度视频的压缩程度越大,失真较大,因此绘制的视点质量也会下降。嵌入隐秘信息前后的视频流解码得到的立体视频序列绘制的视点质量的PSNR的绝对值差异范围在0~0.0139dB,经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量的PSNR值比未经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量的PSNR值平均下降了0.00141dB,说明本发明方法对绘制的视点质量影响轻微。由于有时候PSNR值与人的主观感受不一致,所以表2也给出了SSIM值,经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量的SSIM值比未经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量的SSIM值平均下降了0.000006,从而进一步说明了本发明方法对立体视频的不可感知性较好,这主要是因为本发明方法在编码模式为单深度帧内编码模式的编码单元的编码模式的像素值候选列表中的元素相同的情况下,利用隐秘信息调制像素值候选列表中的像素值的索引值,不会对该编码单元造成任何失真;而在像素值候选列表中的元素不同的情况下,由于考虑了误差漂移问题,因此本发明方法也只会对当前的编码单元产生失真。

表2经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量与未经本发明方法处理后的视频流解码得到的立体视频序列绘制的视点质量

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1