CN109389546A - 多分块可逆水印嵌入方法及装置、水印提取方法及装置 - Google Patents
多分块可逆水印嵌入方法及装置、水印提取方法及装置 Download PDFInfo
- Publication number
- CN109389546A CN109389546A CN201811277455.2A CN201811277455A CN109389546A CN 109389546 A CN109389546 A CN 109389546A CN 201811277455 A CN201811277455 A CN 201811277455A CN 109389546 A CN109389546 A CN 109389546A
- Authority
- CN
- China
- Prior art keywords
- pixel
- image block
- block
- pixel value
- image
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0203—Image watermarking whereby the image with embedded watermark is reverted to the original condition before embedding, e.g. lossless, distortion-free or invertible watermarking
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明公开了一种基于PVO和差值对的多分块可逆水印嵌入方法及装置、水印提取方法及装置,包括:将载体图像分成互不重叠的图像块;确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,并对待修改像素执行水印嵌入操作;同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;可见,本发明将局部复杂度划分地更精细,根据待嵌入图像块的像素数量等级和局部复杂度等级情况,确定最终待修改的像素数量,具体地说,局部纹理复杂度越低,图像块越平滑,修改像素数量越多,携带的水印信息就越多,此举极大地提高了像素的利用率,最终提高了嵌入性能。
Description
技术领域
本发明涉及信息隐藏技术领域,更具体地说,涉及一种基于PVO和差值对的多分块可逆水印嵌入方法及装置、水印提取方法及装置。
背景技术
可逆信息隐藏是信息隐藏的一个特殊研究分支。它的特殊性体现在当水印信息被正确提取后原始载体信息也必须被无失真地恢复出来。目前,在已有的基于PVO(pixel-value-ordering,像素值排序)和差值对的可逆水印算法中,对于一个图像块的三个最大像素和三个最小像素,采用第三大像素预测其他两个最大像素来得到两个预测误差,并将得到的两个预测误差组成一个预测误差对;同时,用第三小像素预测其他两个最小像素的预测方式来获得另一个预测误差对。无论是由三个最大像素产生的预测误差对还是由三个最小像素产生的预测误差对,均将预测误差对的两个预测误差看成一个整体,省去两个预测误差因携带水印信息而同时改变1的情况,使得一个预测误差对能至多携带log23比特,这样做的好处可以大大降低嵌入失真。尽管上述方法实现了较好的嵌入性能,然而,当块的大小比较大的时候,上述方法对像素的利用率是极低的。
因此,如何提高像素的利用率,提高嵌入性能是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于PVO和差值对的多分块可逆水印嵌入方法及装置、水印提取方法及装置,以实现提高像素的利用率,提高嵌入性能。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于PVO和差值对的多分块可逆水印嵌入方法,包括:
将载体图像分成互不重叠的图像块;
计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,并对待修改像素执行水印嵌入操作;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
产生附加信息,将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
其中,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
其中,所述将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块,包括:
将局部复杂度不大于预设阈值的图像块加入第一集合;
生成与所述第一集合中的每个图像块对应的一维位置图;所述一维位置图中的每一个位置标识与每个图像块相对应,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0;
将所述一维位置图中位置标识为1的图像块作为待嵌入图像块。
其中,所述确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;
Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待修改像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待修改像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待修改像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S4中待修改像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S5中待修改像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素。
一种基于PVO和差值对的多分块可逆水印嵌入装置,包括:
第一图像分类模块,用于将载体图像分成互不重叠的图像块;
第一局部复杂度计算模块,用于计算每个图像块的局部复杂度;
待嵌入图像块确定模块,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
待修改像素确定模块,用于确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印嵌入操作执行模块,用于对待修改像素执行水印嵌入操作;
附加信息嵌入模块,用于将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
一种基于PVO和差值对的多分块可逆水印提取方法,包括:
从携带水印的图像中提取附加信息,根据所述附加信息将携带水印的图像分成互不重叠的图像块;
计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,
待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
其中,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
其中,所述将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块,包括:
判断图像块的局部复杂度是否大于预设阈值;
若是,则将图像块作为原始图像块;若否,则根据附加信息获取中的一维位置图判断图像块的位置标识是否为0;
若是,则将图像块作为原始图像块;若否,则将图像块作为待提取图像块加入第二集合;
其中,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0。
其中,所述确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;
Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待提取像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待提取像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待提取像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S4中待提取像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S5中待提取像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素。
一种基于PVO和差值对的多分块可逆水印提取装置,包括:
附加信息提取模块,用于从携带水印的图像中提取附加信息;
第二图像分类模块,用于根据所述附加信息将携带水印的图像分成互不重叠的图像块;
第二局部复杂度计算模块,用于计算每个图像块的局部复杂度;
待提取图像块确定模块,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
待提取像素确定模块,用于确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印提取操作执行模块,用于对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
通过以上方案可知,本发明实施例提供的一种基于PVO和差值对的多分块可逆水印嵌入方法,包括:将载体图像分成互不重叠的图像块;计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,并对待修改像素执行水印嵌入操作;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;产生附加信息,将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
可见,本方案考虑到传统算法至多只修改图像块的四个像素,并没有将所有块中像素的利用起来。为此,本发明将局部复杂度划分地更精细,根据待嵌入图像块的像素数量等级和局部复杂度等级情况,确定最终待修改的像素数量,具体地说,局部纹理复杂度越低,图像块越平滑,修改像素数量越多,携带的水印信息就越多,此举极大地提高了像素的利用率,最终提高了嵌入性能。
本发明还公开一种基于PVO和差值对的多分块可逆水印嵌入装置、水印提取方法及装置,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于PVO和差值对的多分块可逆水印嵌入方法流程示意图;
图2为本发明实施例公开的灰度平移方式示意图;
图3为本发明实施例公开的一种基于PVO和差值对的多分块可逆水印嵌入装置结构示意图;
图4为本发明实施例公开的一种水印嵌入和提取总体流程图;
图5为本发明实施例公开的一种基于PVO和差值对的多分块可逆水印提取方法流程示意图;
图6为本发明实施例公开的一种基于PVO和差值对的多分块可逆水印提取装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于PVO和差值对的多分块可逆水印嵌入方法及装置、水印提取方法及装置,以实现提高像素的利用率,提高嵌入性能。
参见图1,本发明实施例提供的一种基于PVO和差值对的多分块可逆水印嵌入方法,包括:
S101、将载体图像分成互不重叠的图像块;
具体的,在本方案中,将可逆信息隐藏过程分为嵌入和提取两部分。嵌入过程是将水印信息无失真地嵌入到载体图像中,嵌入过程包含局部纹理提取、位置图构造等步骤。提取过程是嵌入过程的逆过程提取过程注重从含水印载体中正确提取水印和恢复原始图像。本实施例对水印嵌入方法进行详细介绍。
具体的,在本方案中,载体图像为需要携带水印信息的图像,在进行水印嵌入之前,需要先对该载体图像进行分块,也即将大小为R×C的载体图像I分成大小为r×c的互不重叠的图像块{X1,…,XN},其中R和C代表载体图像I的宽度和长度,每个图像块中的像素数量用n=r×c表示,n∈{2,3,4,5},N代表图像块的数量。
S102、计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
其中,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
在本方案中,需要计算每个图像块的局部复杂度,以图像块的局部复杂度作为控制参数,来决定一个像素是否适合嵌入数据,并设置了一个局部复杂度的预设阈值T,图像块的局部复杂度需要不大于该预设阈值T。对于一个二维图像块Xi(i∈{1,…,N}),将在嵌入过程中没有发生改变的像素和环绕该块的(r+c+1)像素构成块Xi的邻域,并计算该邻域的局部复杂度,记为Δi(i∈{1,…,N})。只有复杂度Δi小于或等于预设阈值T的图像块才能用于嵌入信息。将复杂度不大于预设阈值T的所有图像块组成一个集合SP,集合中图像块数量记为L。
具体来说,若用来表示图像块的邻域,那么在邻域中的x1,c+1…xr,c+1,xr+1,c+1,xr+1,1…xr+1,c是环绕图像块X的c+r+1个邻域像素,他们的像素值即为本方案中环绕图像块的邻域像素的像素值。进一步,将图像块X按照像素值升序排序后得到一维向量x={xσ(1),…,xσ(n)},再将在嵌入过程中不发生改变的像素({xσ(3),…,xσ(n-2)},即:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素)值和r+c+1个环绕像素构成一个数据集合,记为GP。
在本方案中,通过如下公式计算图像块的局部复杂度Δ:
其中,xj表示集合GP中第j个像素的像素值,表示集合GP中所有像素的均值,即:
进一步,在本方案中,从所有图像块中选择需要进行水印嵌入的图像块时,需要通过上述方法计算局部复杂度,并将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块,该过程具体包括如下步骤:
将局部复杂度不大于预设阈值的图像块加入第一集合;
生成与所述第一集合中的每个图像块对应的一维位置图;所述一维位置图中的每一个位置标识与每个图像块相对应,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0;
将所述一维位置图中位置标识为1的图像块作为待嵌入图像块。
具体的,本方案将复杂度不大于预设阈值T的所有图像块组成一个集合SP,SP即为本方案中的第一集合,对于该第一集合,需要构造位置图,也即:本方案需要产生一个和SP中图像块一一对应的一维位置图。对于SP中任一个一维像素序列x,如果x中像素都属于[0,255]范围之内,则在位置图中相应位置标识1,否则标识0。
综上所述,在本方案中,对于载体图像中的图像块,在确定待嵌入图像块时,需要按照从左到右,从上到下的顺序遍历图像I中的每一个图像块,并计算每一个图像块的局部复杂度Δ,如果Δ>T,则跳过该图像块对其不作任何处理;如果Δ≤T且,在位置图中相应位置标识为0,则这个块也保持不变;如果Δ≤T且在位置图中相应位置标识为1,则将该图像块作为待嵌入图像块,否则,为不修改图像块。需要说明的是,在后续生成附加信息时,需要将生成的位置图经算术编码压缩后得到长度为LS的二进制比特流B。
S103、确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,并对待修改像素执行水印嵌入操作;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
具体的,在本实施例中,对于每个待嵌入图像块,需要进行像素数量分级和局部复杂度分级,也就是说,对于SP中任意一个图像块,根据n的大小将图像块的局部复杂度Δ再次分类,并根据分类结果将图像块分成更小的块来提高块中像素的利用率。
在本方案中,对于像素数量等级来说,像素等级越高,则像素数量越多,则对图像块的局部复杂度进行分级时,分的等级越多;例如:本方案将像素数量等级分为三个等级,分别是像素数量处于第一范围、第二范围和第三范围的这三个像素等级,且第一范围小于第二范围,第二范围小于第三范围;在针对这三个像素等级下,对局部复杂度进行分级时,像素等级越高则局部复杂度分的等级越多,例如:将像素数量处于第一范围的图像块的局部复杂度分为两个等级,即T/2<Δ≤T和Δ≤T/2;将像素数量处于第二范围的图像块的局部复杂度分为三个等级,即:2T/3<Δ≤T、T/3<Δ≤2T/3和Δ≤T/3;将像素数量处于第三范围的图像块的局部复杂度分为四个等级,即:3T/4<Δ≤T、T/2<Δ≤3T/4、T/4<Δ≤T/2和Δ≤T/4。
进一步的,对于不同的局部复杂度等级来说,局部复杂度等级越高则代表局部复杂度越高,例如:对于这四个3T/4<Δ≤T、T/2<Δ≤3T/4、T/4<Δ≤T/2和Δ≤T/4等级来说,3T/4<Δ≤T的局部复杂度高于Δ≤T/4的局部复杂度,进而在本方案中,图像块的局部复杂度等级越低,则从中确定的待修改像素的数量越多;可以看出,在本方案中,图像块的局部纹理复杂度越低,则说明图像块越平滑,那么分成的子块大小越小,最终确定的待修改像素的数量越多,则携带的水印信息就越多,此举极大地提高了像素的利用率,最终提高了嵌入性能。
可以理解的是,本方案通过上述方式确定最终需要修改的像素后,便可根据现有技术中的水印嵌入技术执行水印嵌入操作,执行水印嵌入操作的具体实施方式在本实施例中并不具体限定,只要能实现水印的嵌入便可。
S104、产生附加信息,将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
具体的,在本方案中,执行水印嵌入操作后,需要将附加信息嵌入到图像块中,其嵌入方法与嵌入水印的方法相同,在此便不具体赘述。之所以要将附加信息和载荷一起嵌入到图像中,是因为在抽取过程中需要先将这些附加信息提取出来,然后再依靠这些附加信息来进行正确的水印提取和原始图像恢复,从而保证信息的正确提取。
本方案中的附加信息具体包括如下信息(假设图像大小为512×512):块大小r和c的值(4比特),压缩后的位置图大小LS(18比特),嵌入结束位置(18比特)。进一步,还包括载荷P的值(18比特),载荷就是取值为0和1的二进制水印序列,即为待嵌入的水印,是随机产生的,载荷是真正要嵌入的信息,即容量。载荷越高,psnr越低,性能越好。在matlab程序中:
上述的matlab程序中wm_bits就是产生的载荷。
在上述附加信息中,块大小r和c是在将载体图像分块时,图像块的大小值;压缩后的位置图即为上文中记载像素值是否在范围内的一维位置图;嵌入结束位置为嵌入水印的结束位置,通过该结束位置,可以在解码端的时候,通过这个结束位置,可以很容易将附加信息一个一个地分离出来,即,分离出载荷P的值,r和c的大小,和Ls。
在此,假设附加信息的长度为LΣ,本方案中,在将附加信息嵌入到执行水印嵌入操作后的像素中时,具体是用LΣ个附加信息去分别代替前LΣ个执行水印嵌入操作的像素的最不重要位,具体来说,假设一个像素的值是162,用8位二进制表示162为10100010,本方案中的最不重要位就是10100010的最后一位,即0。
需要说明的是,为了保证可逆性,附加信息代替了最不重要位后,被代替的原始的最不重要位需要被保留下来,和载荷一起嵌入到剩余的原始块中。在本实施例中,剩余的原始块为没有处理的图像块,即为上文中不修改图像块,该不修改图像块需要被处理以便携带被替换的原始的最不重要位和载荷,只不过,不修改图像块被处理后的像素的最不重要位不需要被代替。
经过上述处理后,将嵌入水印信息的图像块(嵌入水印信息的图像块包括:嵌入附加信息的图像块和未嵌入附加信息的图像块)和未被嵌入水印信息的图像块(未被嵌入水印信息的图像块包括:嵌入不重要位和载荷的图像块和未嵌入不重要位和载荷的图像块)组成最终的携带水印的图像IW,从而完成可逆信息隐藏。
综上可以看出,本方案将局部复杂度划分地更精细,根据待嵌入图像块的像素数量等级和局部复杂度等级情况,确定最终待修改的像素数量,具体地说,局部纹理复杂度越低,图像块越平滑,修改像素数量越多,携带的水印信息就越多,此举极大地提高了像素的利用率,最终提高了嵌入性能。
基于上述实施例,在本实施例中,确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;
Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待修改像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待修改像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待修改像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S4中待修改像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S5中待修改像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素。
具体的,第一范围小于第二范围,第二范围小于第三范围,在本实施例中,将第一范围设置为4<n<10,将第二范围设置为10≤n<20,将第三范围设置为n≥20,对于待嵌入图像块Xi(i∈{1,…,N}),对图像块中的每个像素的像素值做升序排序后得到排序后的一维像素序列xi={xσ(1),…,xσ(n)},xσ(n)为像素值最大的像素,xσ(n-1)为像素值次大的像素,xσ(1)为像素值最小的像素,xσ(2)为像素值次小的像素;在每个像素数量等级范围下的待嵌入图像块Xi中待修改像素确定方法具体如下:
当4<n<10时,则将局部复杂度细分成两类,具体分类过程如下:如果T/2<Δ≤T,则Xi属于子类S1,Xi中两个像素xσ(1)和xσ(n)用于水印嵌入;如果Δ≤T/2,则Xi属于子类S2,Xi中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;
当10≤n<20时,将局部复杂度细分成三类,具体分类过程如下:如果2T/3<Δ≤T,则Xi属于子类S1,Xi中两个像素xσ(1)和xσ(n)用于水印嵌入;如果T/3<Δ≤2T/3,则Xi属于子类S2,Xi中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;如果Δ≤T/3,则Xi属于子类S3中,将Xi分成两个大于或等于5的子块,对于每一个子块,它的四个像素参与水印嵌入;在本方案中,第一数量为5;
当n≥20时,将局部复杂度细分成四类,具体分类过程如下:如果
3T/4<Δ≤T,则Xi属于子类S1,Xi中两个像素xσ(1)和xσ(n)用于水印嵌入;如果T/2<Δ≤3T/4,则Xi属于子类S2,Xi中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;如果T/4<Δ≤T/2,则Xi属于子类S4,先将图像块分成两个大于或等于10的子块,对于每一个子块,其四个像素参与水印嵌入;如果Δ≤T/4,则Xi属于子类S5,先将图像块分成四个尺寸大于或等于5的子块,对于每一个子块,其四个像素参与水印嵌入;在本方案中,第二数量为10,第三数量为5。
进一步的,对于每个子类的像素修改和信息嵌入方法如下:
1)S1中图像块的像素修改和信息嵌入:对于两个最大像素(xσ(n-1),xσ(n)),在考虑了xσ(n-1)和xσ(n)之间的位置关系后,产生出一个新的差值dmax,即dmax=xu-xv;同理,对于两个最小像素(xσ(2),xσ(1)),两个最小像素之间的差值为dmin,其值为dmin=xs-xt,其中u=min(σ(n),σ(n-1)),v=max(σ(n),σ(n-1)),s=min(σ(1),σ(2)),t=max(σ(1),σ(2))。
相应地,xσ(n)被修改为x'σ(n):
其中b∈{0,1}代表1-比特水印信息。
同理,最小值xσ(1)被修改为x'σ(1):
在这个过程中,σ计算如下:σ:{1,...,n}→{1,...,n}是一对一的数据映射,
它表示的是像素在排序之前的位置,注意:如果两个像素的值相等,则原先位置在前的像素排序后仍在前而原先位置在后的像素排序后仍在后,即如果pσ(i)=pσ(j)且i<j,则pσ(1)≤…≤pσ(n),σ(i)<σ(j)。
2)S2中图像块的像素修改和信息嵌入:将二维的图像块Xi(i∈{1,…,N})做升序排列得到排序后的一维像素序列xi={xσ(1),…,xσ(n)},对于三个最大像素(xσ(n-2),xσ(n-1),xσ(n)),用xσ(n-2)分别预测xσ(n-1)和xσ(n)产生两个绝对差值dl1和dl2,即dl1=|xσ(n-2)-xσ(n-1)|,dl2=|xσ(n-2)-xσ(n)|,将两个预测误差组成一个预测误差对(dl1,dl2);同理,对于三个最小像素(xσ(1),xσ(2),xσ(3)),先用xσ(3)预测xσ(2)产生出一个差值ds1,即ds1=|xσ(3)-xσ(2)|,再用xσ(2)预测xσ(1)产生出另一个差值ds2=|xσ(2)-xσ(1)|,将两个预测误差组成另一个预测误差对(ds1,ds2);
其中,xσ(n-1)表示一维像素序列xi中位置靠前的、大于或等于xσ(n-2)的像素,xσ(n)表示位置靠后的像素,即σ(n-1)≤σ(n);xσ(2)表示一维像素序列xi中位置靠后的小于或等于xσ(3)的像素,xσ(1)表示小或等于xσ(3)的位置靠前的像素,即σ(2)≥σ(1);符号|·|表示绝对值符号;
具体来说,对于大于xσ(n-2)的两个像素(xσ(n-1),xσ(n)),他们两个是有位置的,举例说明:假设一个1×6的图像块(164,163,162,161,160,165),在排序之后,这个图像块就变为了(160,161,162,163,164,165),大于163的有两个像素分别是164,165,他们在(164,163,162,161,160,165)块中的位置分别是1,6,也就是164对应的位置是1,165对应的位置是6,选择位置靠前的164作为xσ(n-1),靠后的165为xσ(n)。
由于(dl1,dl2)和(ds1,ds2)修改过程相同,这里仅以(dl1,dl2)为例来说明水印嵌入过程。具体地说,如果dl1=dl2=1,则嵌log23比特水印信息到(dl1,dl2)中;如果dl1,dl2满足以下三个条件之一:dl1=dl2=2、dl1=dl2+1和dl2=dl1+1,则嵌1比特水印信息到(dl1,dl2)中;对于其余的(dl1,dl2),通过灰度平移方式来防止像素错误分类,具体图2所示的灰度平移方式示意图。注:为了描述的方便,以下内容会省去图像块X和它的一维像素序列x的下标i。
具体的嵌入过程如表1-3所示:
表1
表1为在t的不同取值下,(xσ(1),xσ(2))或(xσ(n-1),xσ(n))的修改过程,其中t代表一个三进制水印信息,即t∈{0,1,2};“'”代表含密的意思,例如x′σ(2)代表含密的xσ(2)。
表2
表2为(dl1,dl2)和(xσ(n-1),xσ(n))的修改过程,其中b代表1比特水印信息,即b∈{0,1}。
表3
表3为(ds1,ds2)和(xσ(1),xσ(2))的修改过程。
3)S3中图像块的像素修改和信息嵌入:将Xi分成两个大于或等于5的子块,对于每一个子块,具体地水印嵌入和像素修改和子类S2中图像块的像素修改和信息嵌入过程相同,不再赘述。
4)S4中图像块的像素修改和信息嵌入:将Xi分成两个大于或等于10的子块,对于每一个子块,其四个像素参与水印嵌入,具体地水印嵌入和像素修改和子类S2中图像块的像素修改和信息嵌入过程相同,不再赘述。
5)S5中图像块的像素修改和信息嵌入:将Xi分成四个大于或等于5的子块,对于每一个子块,具体地水印嵌入和像素修改和子类S2中图像块的像素修改和信息嵌入过程相同,不再赘述。
下面对本方案中的水印提取方法进行描述,需要说明的是,水印提取过程是上文描述的水印嵌入过程的反过程,相同部分可参照上文所述的水印提取方法。
参见图3,本发明实施例提供的一种基于PVO和差值对的多分块可逆水印提取方法,包括:
S201、从携带水印的图像中提取附加信息,根据所述附加信息将携带水印的图像分成互不重叠的图像块;
具体的,在上述水印嵌入方法中,S104即为附加信息的嵌入,将被替换的最不重要位放在载荷的后面,先嵌载荷,再嵌最不重要位。在本实施例中的抽取的过程中,先提取最不重要位,再提取载荷,也即:S201需要按照和嵌入过程S104所述的次序提取像素的最不重要位,并将提取得到的最不重要位经算术解码后得到位置图;再将位置图经无损压缩得到压缩后的比特流,比特流长度记为LS,按照每个参数的固定长度依次将各个参数提取出来。
进而,根据提取出的附加信息,可以得知提取出来的块的大小r和c,采用和嵌入过程S101中相同的方式将含密图像分成大小为n=r×c的互不重叠的图像块{X′1,…,X'N}。
S202、计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
其中,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
具体的,本方案为了保证算法的可逆性,必须按照和嵌入过程相反的次序恢复原始像素和提取水印信息,同样,也要按照和嵌入过程相反的次序计算复杂度,对于当前图像块X′i(i∈{N,…,1}),将X′i按照升序排列成一维像素序列x′i={x′σ(1),…,x′σ(n)},用环绕它的r+c+1个像素和块内没有做修改的像素来计算它的局部复杂度Δi。
具体来说,在本实施例中,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块,包括:
判断图像块的局部复杂度是否大于预设阈值;
若是,则将图像块作为原始图像块;若否,则根据附加信息获取中的一维位置图判断图像块的位置标识是否为0;
若是,则将图像块作为原始图像块;若否,则将图像块作为待提取图像块加入第二集合;
其中,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0。
可以理解的是,与水印嵌入方法实施例中的S102相同,在本实施例中,如果Δi>T,则Xi=X′i,直接作为原始图像块;如果Δi≤T且在位置图中标识为0,则Xi=X′i,直接作为原始图像块;如果Δi≤T且在位置图中标识为1,则作为待提取图像块,进行水印抽取和原始像素恢复,并加入集合SP;具体的,局部复杂度的具体计算方式详见水印嵌入方法实施例中的S102。
S203、确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
具体的,水印提取方法中对图像块的像素数量等级和局部复杂度等级进行划分,与水印嵌入方法实施例中的S103相同,在此便不再赘述。
S204、对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
具体的,在本实施例中,从待提取像素中提取出水印之后,将提取后的图像块与原始图像块生成原始图像,从而实现了对图片的水印提取。可以看出,本方案通过根据图像块的像素数量等级和局部复杂度等级情况,确定了更多的携带水印信息的像素,能够携带更多的水印信息,通过对待提取像素执行水印提取操作,可以还原出原始图像的基础上,获取更多的水印信息。
在本实施例中,对待提取像素的确定及水印提取进行详细描述,具体来说:确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;
Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待提取像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待提取像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待提取像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S4中待提取像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S5中待提取像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素。
具体的,本方案需要对图像块进行精确分类,即:对于SP中任意一个图像块,根据n的大小将图像块的局部复杂度再次分类,并根据分类结果将图像块分成更小的块来提高块中像素的利用率。第一范围小于第二范围,第二范围小于第三范围,在本实施例中,将第一范围设置为4<n<10,将第二范围设置为10≤n<20,将第三范围设置为n≥20,第一数量为5,第二数量为10,第三数量为5。
当4<n<10时,则将局部复杂度细分成两类,具体分类过程如下:如果T/2<Δ≤T,则X′i属于子类S1,X′i中两个像素xσ(1)和xσ(n)用于水印嵌入;如果Δ≤T/2,则X′i属于子类S2,X′i中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;
当10≤n<20时,将局部复杂度细分成三类,具体分类过程如下:如果2T/3<Δ≤T,则X′i属于子类S1,X′i中两个像素xσ(1)和xσ(n)用于水印嵌入;如果T/3<Δ≤2T/3,则X′i属于子类S2,X′i中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;如果Δ≤T/3,则X′i属于子类S3中,将X′i分成两个大于或等于5的子块,对于每一个子块,它的四个像素参与水印嵌入;
当n≥20时,将局部复杂度细分成四类,具体分类过程如下:如果3T/4<Δ≤T,则X′i属于子类S1,X′i中两个像素xσ(1)和xσ(n)用于水印嵌入;如果T/2<Δ≤3T/4,则X′i属于子类S2,X′i中四个像素xσ(1)、xσ(2)、xσ(n-1)及xσ(n-2)用于水印嵌入;如果T/4<Δ≤T/2,则X′i属于子类S4,先将图像块分成两个大于或等于10的子块,对于每一个子块,其四个像素参与水印嵌入;如果Δ≤T/4,则X′i属于子类S5,先将图像块分成四个尺寸大于或等于5的子块,对于每一个子块,其四个像素参与水印嵌入;
进一步的,对于每个子类的像素恢复和信息抽取方法如下:
1)S1中图像块的像素恢复和信息抽取:将二维的图像块X′i(i∈{1,…,N})按照升序排列得到排序后的一维像素序列x′i={x′σ(1),…,x′σ(n)},对两个最大像素(x′σ(n-1),x′σ(n)),同时用x′σ(n-1)预测x′σ(n)得到d′max,;对于两个最小像素(x′σ(1),x′σ(2)),用x′σ(2)预测x′σ(1)得到d′min;
借助d'max来恢复出原始像素xσ(n)和提取出原始水印信息:
借助d'min来恢复出原始像素xσ(1)和提取出原始水印信息:
2)S2中图像块的像素恢复和信息抽取:将二维的图像块X′i(i∈{1,…,N})按照升序排列得到排序后的一维像素序列xi′={x′σ(1),…,x′σ(n)},对于三个最大像素(x′σ(n-2),x′σ(n-1),x′σ(n)),用x′σ(n-2)预测x′σ(n-1)得到预测误差d′l2,同时用x′σ(n-1)预测x′σ(n)得到d′l1,将得到的两个差值组成一个差值对(dl1′,dl2′);对于三个最小像素(x′σ(1),x′σ(2),x′σ(3)),用x′σ(3)预测x′σ(2)得到预测误差d′s2,同时用x′σ(3)预测x′σ(2)得到d′s1,将得到的两个差值组成一个差值对(d′s1,d′s2);并按照表4-5,在水印信息被正确抽取出来后,原始像素被无失真恢复出来;其中,表4水印的抽取和原始像素(xσ(1),xσ(2))的恢复,表5为水印的抽取和原始像素(xσ(n-1),xσ(n))的恢复。
表4
表5
3)S3中图像块的像素恢复和信息抽取:将X′i分成两个大于或等于5的子块,对于每一个子块,具体地信息抽取、像素恢复方法和子类S2中图像块的信息抽取、像素恢复方法相同,不再赘述。
4)S4中图像块的像素恢复和信息抽取:将X′i分成两个大于或等于10的子块,对于每一个子块,其四个像素参与水印嵌入,具体地信息抽取、像素恢复方法和子类S2中图像块的信息抽取、像素恢复方法相同,不再赘述。
5)S5中图像块的像素恢复和信息抽取:将Xi分成四个大于或等于5的子块,对于每一个子块,具体地信息抽取、像素恢复方法和子类S2中图像块的信息抽取、像素恢复方法相同,不再赘述。
对SP中的每个待提取图像块进行上述处理之后,便可得到恢复后的原始图像I和嵌入的水印信息;参见图4,为本实施例公开的水印嵌入和提取总体流程图,通过流程图可以看出,水印信息嵌入到载体图像之后,经过网络传输或者存储,在从图像中提取出水印信息,并可还原出载体图像。
下面对本发明实施例提供的多分块可逆水印嵌入装置进行介绍,下文描述的多分块可逆水印嵌入装置与上文描述的多分块可逆水印嵌入方法可以相互参照。
参见图5,本发明实施例提供的一种基于PVO和差值对的多分块可逆水印嵌入装置,包括:
第一图像分类模块101,用于将载体图像分成互不重叠的图像块;
第一局部复杂度计算模块102,用于计算每个图像块的局部复杂度;
待嵌入图像块确定模块103,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
待修改像素确定模块104,用于确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素;其中,同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印嵌入操作执行模块105,用于对待修改像素执行水印嵌入操作;
附加信息嵌入模块106,用于将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
其中,所述第一局部复杂度计算模块102,具体用于利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
其中,所述待嵌入图像块确定模块103,包括:
第一集合确定单元,用于将局部复杂度不大于预设阈值的图像块加入第一集合;
一维位置图确定单元,用于生成与所述第一集合中的每个图像块对应的一维位置图;所述一维位置图中的每一个位置标识与每个图像块相对应,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0;
待嵌入图像块确定模块,用于将所述一维位置图中位置标识为1的图像块作为待嵌入图像块。
其中,所述待修改像素确定模块104包括:
第一像素数量确定单元,用于确定图像块的像素数量n;
第一局部复杂度确定单元,用于确定图像块的局部复杂度Δ;
待修改像素确定单元,用于当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;当n在第三范围时:
3T/4<Δ≤T,图像块属于子类S1;T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待修改像素为:图像块中像素值最大的像素和像素值最小的像素;子类S2中待修改像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;子类S3中待修改像素为:将图像块分为两个大于或等于5的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;子类S4中待修改像素为:将图像块分为两个大于或等于10的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;子类S5中待修改像素为:将图像块分为四个大于或等于5的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素。
下面对本发明实施例提供的多分块可逆水印提取装置进行介绍,下文描述的多分块可逆水印提取装置与上文描述的多分块可逆水印提取方法可以相互参照。
参见图6,本发明实施例提供的一种基于PVO和差值对的多分块可逆水印提取装置,包括:
附加信息提取模块201,用于从携带水印的图像中提取附加信息;
第二图像分类模块202,用于根据所述附加信息将携带水印的图像分成互不重叠的图像块;
第二局部复杂度计算模块203,用于计算每个图像块的局部复杂度;
待提取图像块确定模块204,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
待提取像素确定模块205,用于确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印提取操作执行模块206,用于对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
其中,所述第二局部复杂度计算模块203具体用于利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
其中,待提取图像块确定模块204包括:
第一判断单元,用于判断图像块的局部复杂度是否大于预设阈值;若是,则将图像块作为原始图像块;
第二判断单元,用于在图像块的局部复杂度不大于预设阈值时,根据附加信息获取中的一维位置图判断图像块的位置标识是否为0;若是,则将图像块作为原始图像块;
第二集合确定单元,用于将图像块的位置标识不为0时,将图像块作为待提取图像块加入第二集合;其中,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0。
其中,待提取像素确定模块205包括:
第二像素数量确定单元,用于确定图像块的像素数量n;
第二局部复杂度确定单元,用于确定图像块的局部复杂度Δ;
待提取像素提取单元,用于当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待提取像素为:图像块中像素值最大的像素和像素值最小的像素;子类S2中待提取像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;子类S3中待提取像素为:将图像块分为两个大于或等于5的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;子类S4中待提取像素为:将图像块分为两个大于或等于10的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;子类S5中待提取像素为:将图像块分为四个大于或等于5的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素。
本发明实施例还公开了一种基于PVO和差值对的多分块可逆水印嵌入设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述实施例中多分块可逆水印嵌入方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中多分块可逆水印嵌入方法的步骤。
本发明实施例还公开了一种基于PVO和差值对的多分块可逆水印提取设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述实施例中多分块可逆水印提取方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中多分块可逆水印提取方法的步骤。
其中,上述存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于PVO和差值对的多分块可逆水印嵌入方法,其特征在于,包括:
将载体图像分成互不重叠的图像块;
计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,并对待修改像素执行水印嵌入操作;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
产生附加信息,将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
2.根据权利要求1所述的多分块可逆水印嵌入方法,其特征在于,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
3.根据权利要求2所述的多分块可逆水印嵌入方法,其特征在于,所述将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块,包括:
将局部复杂度不大于预设阈值的图像块加入第一集合;
生成与所述第一集合中的每个图像块对应的一维位置图;所述一维位置图中的每一个位置标识与每个图像块相对应,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0;
将所述一维位置图中位置标识为1的图像块作为待嵌入图像块。
4.根据权利要求3所述的多分块可逆水印嵌入方法,其特征在于,所述确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待修改像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待修改像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待修改像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S4中待修改像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素;
子类S5中待修改像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待修改像素。
5.一种基于PVO和差值对的多分块可逆水印嵌入装置,其特征在于,包括:
第一图像分类模块,用于将载体图像分成互不重叠的图像块;
第一局部复杂度计算模块,用于计算每个图像块的局部复杂度;
待嵌入图像块确定模块,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待嵌入图像块;否则,作为不修改图像块;
待修改像素确定模块,用于确定每个待嵌入图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待嵌入图像块中的待修改像素;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印嵌入操作执行模块,用于对待修改像素执行水印嵌入操作;
附加信息嵌入模块,用于将所述附加信息替换执行水印嵌入操作后的像素的最不重要位,并将被替换的最不重要位与载荷一起嵌入到所述不修改图像块中,生成携带水印的图像。
6.一种基于PVO和差值对的多分块可逆水印提取方法,其特征在于,包括:
从携带水印的图像中提取附加信息,根据所述附加信息将携带水印的图像分成互不重叠的图像块;
计算每个图像块的局部复杂度,将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,待嵌入图像块的像素数量等级越高,则待嵌入图像块的局部复杂度等级越多,且同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
7.根据权利要求6所述的多分块可逆水印提取方法,其特征在于,所述计算每个图像块的局部复杂度,包括:
利用图像块在嵌入过程中没有发生改变的像素的像素值,及环绕图像块的邻域像素的像素值,计算图像块的局部复杂度;
其中,图像块在嵌入过程中没有发生改变的像素为:除了图像块中像素值最大的像素、次大的像素、最小的像素、次小的像素之外的其他的像素。
8.根据权利要求7所述的多分块可逆水印提取方法,其特征在于,所述将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块,包括:
判断图像块的局部复杂度是否大于预设阈值;
若是,则将图像块作为原始图像块;若否,则根据附加信息获取中的一维位置图判断图像块的位置标识是否为0;
若是,则将图像块作为原始图像块;若否,则将图像块作为待提取图像块加入第二集合;
其中,若图像块中的每个像素的像素值均在[0,255]范围内,则一维位置图中对应的位置标识为1,否则,对应的位置标识为0。
9.根据权利要求8所述的多分块可逆水印提取方法,其特征在于,所述确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素,包括:
确定图像块的像素数量n及局部复杂度Δ;
当n在第一范围时:T/2<Δ≤T,图像块属于子类S1;Δ≤T/2,图像块属于子类S2;其中,T为局部复杂度的预设阈值;
当n在第二范围时:2T/3<Δ≤T,图像块属于子类S1;T/3<Δ≤2T/3,图像块属于子类S2;Δ≤T/3,图像块属于子类S3;
当n在第三范围时:3T/4<Δ≤T,图像块属于子类S1;
T/2<Δ≤3T/4,图像块属于子类S2;T/4<Δ≤T/2,图像块属于子类S4;Δ≤T/4,图像块属于子类S5;所述第一范围小于所述第二范围,所述第二范围小于所述第三范围;
其中,子类S1中待提取像素为:图像块中像素值最大的像素和像素值最小的像素;
子类S2中待提取像素为:图像块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素;
子类S3中待提取像素为:将图像块分为两个像素数量大于或等于第一数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S4中待提取像素为:将图像块分为两个像素数量大于或等于第二数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素;
子类S5中待提取像素为:将图像块分为四个像素数量大于或等于第三数量的子块,每个子块中像素值最大的像素、像素值次大的像素、像素值最小的像素和像素值次小的像素作为待提取像素。
10.一种基于PVO和差值对的多分块可逆水印提取装置,其特征在于,包括:
附加信息提取模块,用于从携带水印的图像中提取附加信息;
第二图像分类模块,用于根据所述附加信息将携带水印的图像分成互不重叠的图像块;
第二局部复杂度计算模块,用于计算每个图像块的局部复杂度;
待提取图像块确定模块,用于将局部复杂度不大于预设阈值、且图像块中每个像素的像素值均在预定范围内的图像块作为待提取图像块;否则,直接作为原始图像块;
待提取像素确定模块,用于确定每个待提取图像块的像素数量等级和局部复杂度等级,根据所述像素数量等级和局部复杂度等级确定待提取图像块中的待提取像素;其中,同一像素数量等级的待嵌入图像块,局部复杂度等级越低则待修改像素数量越多;
水印提取操作执行模块,用于对待提取像素执行水印提取操作,获取被嵌入的水印信息,将提取后的图像块与原始图像块生成原始图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811277455.2A CN109389546B (zh) | 2018-10-30 | 2018-10-30 | 多分块可逆水印嵌入方法及装置、水印提取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811277455.2A CN109389546B (zh) | 2018-10-30 | 2018-10-30 | 多分块可逆水印嵌入方法及装置、水印提取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109389546A true CN109389546A (zh) | 2019-02-26 |
CN109389546B CN109389546B (zh) | 2023-07-25 |
Family
ID=65427800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811277455.2A Active CN109389546B (zh) | 2018-10-30 | 2018-10-30 | 多分块可逆水印嵌入方法及装置、水印提取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109389546B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915472A (zh) * | 2019-05-10 | 2020-11-10 | 浙江大学 | 一种水印嵌入方法、提取方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090035237A (ko) * | 2007-10-05 | 2009-04-09 | 한국과학기술원 | 정수 웨이블릿 변환에 기초한 워터 마크 삽입 방법 |
CN105741224A (zh) * | 2016-01-28 | 2016-07-06 | 广东工业大学 | 基于pvo和自适应块分割的可逆水印算法 |
CN106067157A (zh) * | 2016-05-27 | 2016-11-02 | 陕西师范大学 | 变方向差值扩展和同步嵌入的可逆水印嵌入和提取方法 |
CN106485640A (zh) * | 2016-08-25 | 2017-03-08 | 广东工业大学 | 一种基于多层次ipvo的可逆水印计算方法 |
CN108109101A (zh) * | 2017-12-20 | 2018-06-01 | 广东工业大学 | 一种基于多媒体数据的信息隐藏方法、装置及设备 |
CN108230226A (zh) * | 2018-01-08 | 2018-06-29 | 西安电子科技大学 | 自适应分块像素值排序数字可逆水印方法、医学图像系统 |
CN108416724A (zh) * | 2018-02-11 | 2018-08-17 | 广东工业大学 | 一种基于多预测器的可逆信息隐藏方法 |
-
2018
- 2018-10-30 CN CN201811277455.2A patent/CN109389546B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090035237A (ko) * | 2007-10-05 | 2009-04-09 | 한국과학기술원 | 정수 웨이블릿 변환에 기초한 워터 마크 삽입 방법 |
CN105741224A (zh) * | 2016-01-28 | 2016-07-06 | 广东工业大学 | 基于pvo和自适应块分割的可逆水印算法 |
CN106067157A (zh) * | 2016-05-27 | 2016-11-02 | 陕西师范大学 | 变方向差值扩展和同步嵌入的可逆水印嵌入和提取方法 |
CN106485640A (zh) * | 2016-08-25 | 2017-03-08 | 广东工业大学 | 一种基于多层次ipvo的可逆水印计算方法 |
CN108109101A (zh) * | 2017-12-20 | 2018-06-01 | 广东工业大学 | 一种基于多媒体数据的信息隐藏方法、装置及设备 |
CN108230226A (zh) * | 2018-01-08 | 2018-06-29 | 西安电子科技大学 | 自适应分块像素值排序数字可逆水印方法、医学图像系统 |
CN108416724A (zh) * | 2018-02-11 | 2018-08-17 | 广东工业大学 | 一种基于多预测器的可逆信息隐藏方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915472A (zh) * | 2019-05-10 | 2020-11-10 | 浙江大学 | 一种水印嵌入方法、提取方法和装置 |
CN111915472B (zh) * | 2019-05-10 | 2023-07-28 | 浙江大学 | 一种水印嵌入方法、提取方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109389546B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102187672B (zh) | 压缩视频中的语法元素的兼容cabac/avc的水印加注 | |
CN105741224B (zh) | 基于pvo和自适应块分割的可逆水印算法 | |
CN109993678B (zh) | 一种基于深度对抗生成网络的鲁棒信息隐藏方法 | |
CN108109101A (zh) | 一种基于多媒体数据的信息隐藏方法、装置及设备 | |
CN104065887A (zh) | 针对多次曝光的增强动态范围图像和视频的方法和系统 | |
CN103856829B (zh) | 一种视频数字水印的嵌入、提取方法和装置 | |
CN103533458A (zh) | 一种视频水印的嵌入和提取方法 | |
CN111898136A (zh) | 一种基于预测误差值排序的高保真可逆信息隐藏方法和装置 | |
CN112184585B (zh) | 一种基于语义边缘融合的图像补全方法及系统 | |
CN105447808A (zh) | 可逆数据隐藏方法以及恢复方法 | |
CN105427230A (zh) | 可逆数据隐藏方法 | |
CN105828081A (zh) | 编码方法及编码装置 | |
CN109741233A (zh) | 一种可逆水印的嵌入和提取方法 | |
CN107292315B (zh) | 基于多尺度ltp特征的隐写分析方法和隐写分析装置 | |
CN110162986A (zh) | 基于相邻像素预测模型的可逆信息隐藏方法 | |
CN112884758A (zh) | 一种基于风格迁移方法的缺陷绝缘子样本生成方法及系统 | |
CN105741225A (zh) | 一种多维预测误差扩展的可逆水印方法 | |
CN115331012A (zh) | 基于零样本学习的联合生成式图像实例分割方法及系统 | |
CN109859090B (zh) | 基于人类视觉系统的可逆水印方法及装置 | |
CN114399419B (zh) | 基于预测误差扩展的可逆图像水印算法 | |
CN109389546A (zh) | 多分块可逆水印嵌入方法及装置、水印提取方法及装置 | |
Li et al. | Steganography of steganographic networks | |
Su et al. | Reversible data hiding using the dynamic block-partition strategy and pixel-value-ordering | |
CN111741313B (zh) | 基于图像熵k均值聚类的3d-hevc快速cu分割方法 | |
Sachnev et al. | Reversible watermarking algorithm with distortion compensation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |