发明名称 一种基于单深度帧内模式的3D‑HEVC深度视频信息隐藏方法
摘要 本发明公开了一种基于单深度帧内模式的3D‑HEVC深度视频信息隐藏方法,其包括信息嵌入和信息提取;在信息嵌入过程中,解析左右视点深度图像中编码树单元中编码单元对应的编码模式,当为单深度帧内编码模式时,构建像素值候选列表并比较列表中的两个元素:若两者相等且提取的密钥位信息为1,则利用加密信息调制该像素值的索引值,完成隐秘信息嵌入;若两者不相等,则对深度为2或3的编码单元,当右和下相邻编码单元的编码模式均不为单深度帧内编码模式且右上、右、右下、左下和下相邻编码单元各自的预测模式均不属于各自相应的模式范围时,利用加密信息调制该像素值的索引值,完成隐秘信息嵌入;优点是安全性较高、计算复杂度较低,且对码率影响较小。
申请公布号 CN106162195A 申请公布日期 2016.11.23
申请号 CN201610534911.1 申请日期 2016.07.05
申请人 宁波大学 发明人 蒋刚毅;王静;宋洋;杨家辉
分类号 H04N19/467(2014.01)I;H04N19/593(2014.01)I;H04N19/147(2014.01)I;H04N19/154(2014.01)I;H04L9/08(2006.01)I;H04L9/00(2006.01)I 主分类号 H04N19/467(2014.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 周珏
主权项 一种基于单深度帧内模式的3D‑HEVC深度视频信息隐藏方法,其特征在于包括信息嵌入和信息提取两部分;所述的信息嵌入部分的具体步骤为:①_1、令S<sub>org</sub>表示原始的立体视频,将S<sub>org</sub>的左视点彩色视频记为<img file="FDA0001041099030000011.GIF" wi="103" he="63" />将<img file="FDA0001041099030000012.GIF" wi="78" he="64" />对应的左视点深度视频记为<img file="FDA0001041099030000013.GIF" wi="101" he="71" />将S<sub>org</sub>的右视点彩色视频记为<img file="FDA0001041099030000014.GIF" wi="107" he="63" />将<img file="FDA0001041099030000015.GIF" wi="80" he="63" />对应的右视点深度视频记为<img file="FDA0001041099030000016.GIF" wi="115" he="70" />并令W表示待嵌入的隐秘信息,W中包含n个比特的值,W={w<sub>1</sub>,w<sub>2</sub>,…,w<sub>i</sub>,…,w<sub>n‑1</sub>,w<sub>n</sub>};然后通过3D‑HEVC标准编码平台对<img file="FDA0001041099030000017.GIF" wi="106" he="63" /><img file="FDA0001041099030000018.GIF" wi="78" he="71" />以及<img file="FDA0001041099030000019.GIF" wi="112" he="63" /><img file="FDA00010410990300000110.GIF" wi="82" he="71" />进行压缩编码,得到目标视频流,记为str.bin<sub>org</sub>;其中,<img file="FDA00010410990300000111.GIF" wi="78" he="70" />中的左视点彩色图像、<img file="FDA00010410990300000112.GIF" wi="78" he="71" />中的左视点深度图像、<img file="FDA00010410990300000113.GIF" wi="86" he="71" />中的右视点彩色图像、<img file="FDA00010410990300000114.GIF" wi="85" he="71" />中的右视点深度图像的宽度均为M且高度均为N,<img file="FDA00010410990300000115.GIF" wi="78" he="63" />中包含的左视点彩色图像的总帧数、<img file="FDA00010410990300000116.GIF" wi="82" he="70" />中包含的左视点深度图像的总帧数、<img file="FDA00010410990300000117.GIF" wi="79" he="62" />中包含的右视点彩色图像的总帧数、<img file="FDA00010410990300000118.GIF" wi="83" he="69" />中包含的右视点深度图像的总帧数均为F,<img file="FDA00010410990300000119.GIF" wi="398" he="135" />w<sub>1</sub>、w<sub>2</sub>、w<sub>i</sub>、w<sub>n‑1</sub>和w<sub>n</sub>对应表示W中的第1个比特的值、第2个比特的值、第i个比特的值、第n‑1个比特的值和第n个比特的值,w<sub>1</sub>、w<sub>2</sub>、w<sub>i</sub>、w<sub>n‑1</sub>和w<sub>n</sub>为0或1,1≤i≤n;①_2、利用logistics混沌映射产生一个包含n个比特的值的二值伪随机序列,将该二值伪随机序列作为密钥,并记为E,E={e<sub>1</sub>,e<sub>2</sub>,…,e<sub>i</sub>,…,e<sub>n‑1</sub>,e<sub>n</sub>};然后对W中的每个比特的值与E中的每个比特的值一一对应进行异或,得到加密信息,记为W',W'={w'<sub>1</sub>,w'<sub>2</sub>,…,w'<sub>i</sub>,…,w'<sub>n‑1</sub>,w'<sub>n</sub>};其中,产生密钥E的初始值信息随意给定,e<sub>1</sub>、e<sub>2</sub>、e<sub>i</sub>、e<sub>n‑1</sub>和e<sub>n</sub>对应表示E中的第1个比特的值、第2个比特的值、第i个比特的值、第n‑1个比特的值和第n个比特的值,e<sub>1</sub>、e<sub>2</sub>、e<sub>i</sub>、e<sub>n‑1</sub>和e<sub>n</sub>为0或1,w'<sub>1</sub>、w'<sub>2</sub>、w'<sub>i</sub>、w'<sub>n‑1</sub>和w'<sub>n</sub>对应表示W'中的第1个比特的值、第2个比特的值、第i个比特的值、第n‑1个比特的值和第n个比特的值,w'<sub>1</sub>、w'<sub>2</sub>、w'<sub>i</sub>、w'<sub>n‑1</sub>和w'<sub>n</sub>为0或1,1≤i≤n;①_3、以帧为单位解析目标视频流str.bin<sub>org</sub>,将目标视频流str.bin<sub>org</sub>中当前待解析的帧定义为当前帧;①_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤①_5;否则,执行步骤①_8;①_5、以编码树单元为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤①_6;①_6、按照当前解析块的最优分割模式,以分割完成的编码单元为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为<img file="FDA0001041099030000021.GIF" wi="109" he="70" />将<img file="FDA0001041099030000022.GIF" wi="82" he="71" />对应的编码模式记为<img file="FDA0001041099030000023.GIF" wi="131" he="70" />其中,k为正整数,k∈[1,64],<img file="FDA0001041099030000024.GIF" wi="78" he="70" />的尺寸大小为8×8、16×16、32×32或64×64,<img file="FDA00010410990300000215.GIF" wi="980" he="79" />然后执行以下步骤:①_6a、将当前解析块中正在处理的编码单元定义为当前编码单元;①_6b、假设当前编码单元为<img file="FDA0001041099030000025.GIF" wi="106" he="71" />则如果当前编码单元对应的编码模式<img file="FDA0001041099030000026.GIF" wi="94" he="69" />为帧内编码模式,那么执行步骤①_6i;如果当前编码单元对应的编码模式<img file="FDA0001041099030000027.GIF" wi="97" he="71" />为单深度帧内编码模式,那么执行步骤①_6c;①_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式<img file="FDA0001041099030000028.GIF" wi="96" he="70" />的像素值候选列表,记为<img file="FDA0001041099030000029.GIF" wi="259" he="71" />中包含2个像素值,将第1个像素值记为<img file="FDA00010410990300000210.GIF" wi="105" he="70" />第1个像素值的索引值为0,将第2个像素值记为<img file="FDA00010410990300000211.GIF" wi="104" he="71" />第2个像素值的索引值为1,其中,<img file="FDA00010410990300000212.GIF" wi="582" he="78" />并从密钥E中读取第j个比特的值e<sub>j</sub>,从加密信息W'中读取第i个比特的值w'<sub>i</sub>,其中,1≤j≤n,j的初始值为1,1≤i≤n,i的初始值为1;然后执行步骤①_6d;①_6d、判断<img file="FDA00010410990300000213.GIF" wi="75" he="68" />与<img file="FDA00010410990300000214.GIF" wi="77" he="70" />是否相等,如果两者相等,则执行步骤①_6e;否则,执行步骤①_6f;①_6e、如果e<sub>j</sub>为1,则利用w'<sub>i</sub>对当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000031.GIF" wi="98" he="77" />所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000032.GIF" wi="99" he="71" />所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000033.GIF" wi="99" he="70" />所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的隐秘信息嵌入过程,然后令j=j+1,令i=i+1,再执行步骤①_6i;如果e<sub>j</sub>为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'<sub>i</sub>对当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000034.GIF" wi="96" he="71" />所选的像素值的索引值进行索引调制,得到当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000035.GIF" wi="94" he="70" />所选的像素值的嵌入隐秘信息后的索引值,并对当前编码单元进行压缩编码时当前编码单元对应的编码模式<img file="FDA0001041099030000036.GIF" wi="98" he="71" />所选的像素值的嵌入隐秘信息后的索引值进行熵编码,至此已完成当前编码单元的嵌入隐秘信息过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元;①_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤①_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤①‑7;①_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤①_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤①_8;①_8、将目标视频流str.bin<sub>org</sub>中下一帧待解析的帧作为当前帧,然后返回步骤①_4继续执行,直至目标视频流str.bin<sub>org</sub>中的所有帧均处理完毕,得到嵌入隐秘信息的视频流str.bin<sub>dec</sub>;①_9、将产生密钥E的初始值信息传送到信息提取端;所述的信息提取部分的具体步骤为:②_1、将嵌入隐秘信息的视频流定义为目标视频流,记为str.bin<sub>dec</sub>;②_2、根据信息嵌入端发送的产生密钥E的初始值信息,利用logistics混沌映射产生一个与信息嵌入端相同的密钥E;②_3、以帧为单位解析目标视频流str.bin<sub>dec</sub>,将目标视频流str.bin<sub>dec</sub>中当前待解析的帧定义为当前帧;②_4、判断当前帧是否为左视点深度图像或右视点深度图像,如果是,则执行步骤②_5;否则,执行步骤②_8;②_5、以编码树单元为单位解析当前帧,将当前帧中当前待解析的编码树单元定义为当前解析块,然后执行步骤②_6;②_6、按照当前解析块的最优分割模式,以分割完成的编码单元为单位,依序解析当前解析块中的每个编码单元对应的编码模式,将当前解析块中的第k个编码单元记为<img file="FDA0001041099030000041.GIF" wi="102" he="71" />将<img file="FDA0001041099030000042.GIF" wi="81" he="70" />对应的编码模式记为<img file="FDA0001041099030000043.GIF" wi="122" he="63" />其中,k为正整数,k∈[1,64],<img file="FDA0001041099030000044.GIF" wi="78" he="63" />的尺寸大小为8×8、16×16、32×32或64×64,<img file="FDA0001041099030000045.GIF" wi="974" he="78" />然后执行以下步骤:②_6a、将当前解析块中正在处理的编码单元定义为当前编码单元;②_6b、假设当前编码单元为<img file="FDA0001041099030000046.GIF" wi="106" he="63" />则如果当前编码单元对应的编码模式<img file="FDA0001041099030000047.GIF" wi="93" he="64" />为帧内编码模式,那么执行步骤②_6i;如果当前编码单元对应的编码模式<img file="FDA0001041099030000051.GIF" wi="98" he="70" />为单深度帧内编码模式,那么执行步骤②_6c;②_6c、按照单深度帧内编码模式的编码原理,构建当前编码单元对应的编码模式<img file="FDA0001041099030000052.GIF" wi="92" he="63" />的像素值候选列表,记为<img file="FDA0001041099030000053.GIF" wi="260" he="63" />中包含2个像素值,将第1个像素值记为<img file="FDA0001041099030000054.GIF" wi="99" he="71" />将第2个像素值记为<img file="FDA0001041099030000055.GIF" wi="102" he="71" />其中,<img file="FDA0001041099030000056.GIF" wi="590" he="71" />并从密钥E中读取第j个比特的值e<sub>j</sub>,其中,1≤j≤n,j的初始值为1;然后执行步骤②_6d;②_6d、判断<img file="FDA0001041099030000057.GIF" wi="75" he="69" />与<img file="FDA0001041099030000058.GIF" wi="75" he="71" />是否相等,如果两者相等,则执行步骤②_6e;否则,执行步骤②_6f;②_6e、如果e<sub>j</sub>为1,则解析当前编码单元对应的编码模式<img file="FDA0001041099030000059.GIF" wi="97" he="63" />的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为<img file="FDA00010410990300000510.GIF" wi="90" he="62" />至此已完成当前编码单元的隐秘信息提取过程,然后令j=j+1,令i=i+1,再执行步骤②_6i;如果e<sub>j</sub>为0,则令j=j+1,再执行步骤②_6i;其中,1≤i≤n,i的初始值为1,<img file="FDA00010410990300000511.GIF" wi="60" he="62" />为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、判断当前编码单元的右上相邻编码单元、右相邻编码单元、右下相邻编码单元、左下相邻编码单元和下相邻编码单元各自的预测模式是否属于各自相应的模式范围,如果都不满足,则解析当前编码单元对应的编码模式<img file="FDA00010410990300000512.GIF" wi="91" he="70" />的像素值的嵌入隐秘信息后的索引值,得到第i个加密信息比特值,记为<img file="FDA00010410990300000513.GIF" wi="83" he="59" />至此已完成当前编码单元的隐秘信息提取过程,然后令i=i+1,再执行步骤①_6i;否则,执行步骤①_6i;其中,当前编码单元的右上相邻编码单元为位于当前编码单元的右上侧且与当前编码单元相邻的编码单元,当前编码单元的右下相邻编码单元为位于当前编码单元的右下侧且与当前编码单元相邻的编码单元,当前编码单元的左下相邻编码单元为位于当前编码单元的左下侧且与当前编码单元相邻的编码单元;②_6i、将当前解析块中下一个待处理的编码单元作为当前编码单元,然后返回步骤②_6b继续执行,直至当前解析块中的所有编码单元均处理完毕,再执行步骤②_7;②_7、将当前帧中下一个待解析的编码树单元作为当前解析块,然后返回步骤②_6继续执行,直至当前帧中的所有编码树单元均处理完毕,再执行步骤②_8;②_8、将目标视频流str.bin<sub>dec</sub>中下一帧待解析的帧作为当前帧,然后返回步骤②_4继续执行,直至目标视频流str.bin<sub>dec</sub>中的所有帧均处理完毕,完成隐秘信息提取;②_9、将得到的n个加密信息比特值构成加密信息,记为<img file="FDA0001041099030000061.GIF" wi="81" he="61" /><img file="FDA0001041099030000062.GIF" wi="739" he="79" />然后对<img file="FDA0001041099030000063.GIF" wi="62" he="62" />中的每个加密信息比特值与E中的每个比特的值一一对应进行异或,得到解密的隐秘信息,记为<img file="FDA0001041099030000064.GIF" wi="74" he="63" /><img file="FDA0001041099030000065.GIF" wi="642" he="86" />其中,<img file="FDA0001041099030000066.GIF" wi="461" he="62" />和<img file="FDA0001041099030000067.GIF" wi="65" he="60" />对应表示得到的第1个加密信息比特值、第2个加密信息比特值、第i个加密信息比特值、第n‑1个加密信息比特值和第n个加密信息比特值,<img file="FDA0001041099030000068.GIF" wi="475" he="62" />和<img file="FDA0001041099030000069.GIF" wi="69" he="62" />为0或1,<img file="FDA00010410990300000610.GIF" wi="409" he="63" />和<img file="FDA00010410990300000611.GIF" wi="53" he="61" />对应表示<img file="FDA00010410990300000612.GIF" wi="45" he="55" />中的第1个比特的值、第2个比特的值、第i个比特的值、第n‑1个比特的值和第n个比特的值,<img file="FDA00010410990300000613.GIF" wi="411" he="63" />和<img file="FDA00010410990300000614.GIF" wi="50" he="61" />为0或1。
地址 315211 浙江省宁波市江北区风华路818号