发明内容
本发明实施例提供了一种可逆水印嵌入、提取方法及装置和一种图像恢复方法及装置,以实现减少嵌入空间占用量。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供了一种可逆水印嵌入方法,包括:
获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;
为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图;
按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。
另一方面,本发明实施例还提供了一种可逆水印提取方法,包括:
获取待提取可逆水印的宏块信息以及与嵌入量相关位置图的长度值;
根据所述位置图的长度值,从所述待提取可逆水印的宏块信息中提取所述位置图中的信息;
根据所述位置图中的信息,将所述待提取可逆水印的宏块划分为第一集合与第二集合;
在提取所述位置图中的信息完成之后的所述待提取可逆水印的宏块中,提取水印信息以及所述待提取可逆水印的宏块信息中最低位的原始信息。
再一方面,本发明实施例还提供了一种图像恢复方法,该方法包括:
获取待提取可逆水印的宏块信息以及其对应的集合类别信息;其中,所述集合类别信息包括:第一集合、第二集合和第三集合;
将所述属于第一集合类别的待提取可逆水印的宏块信息进行整数变化的反变化,获取所述属于第一集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息;
将所述属于第二集合类别的待提取可逆水印的宏块信息进行最低位替换的反替换,获取所述属于第二集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息。
再一方面,本发明实施例还提供了一种可逆水印嵌入装置,包括:
信息获取单元,用于获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;
位置图建立单元,用于为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图;
信息嵌入单元,用于按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。
再一方面,本发明实施例还提供了一种可逆水印提取装置,包括:
信息获取单元,用于获取待提取可逆水印的宏块信息以及与嵌入量相关位置图的长度值;
位置图信息提取单元,用于根据所述位置图的长度值,从所述待提取可逆水印的宏块信息中提取所述位置图中的信息;
集合类别划分单元,用于根据所述位置图中的信息,将所述待提取可逆水印的宏块划分为第一集合与第二集合;
信息提取单元,用于在提取所述位置图中的信息完成之后的所述待提取可逆水印的宏块中,提取水印信息以及所述待提取可逆水印的宏块信息中最低位的原始信息。
再一方面,本发明实施例还提供了一种图像恢复装置,该装置包括:
类别信息获取单元,用于获取待提取可逆水印的宏块信息以及其对应的集合类别信息;其中,所述集合类别信息包括:第一集合、第二集合和第三集合;
第一集合原始信息获取单元,用于将所述属于第一集合类别的待提取可逆水印的宏块信息进行整数变化的反变化,获取所述属于第一集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息;
第二集合原始信息获取单元,用于将所述属于第二集合类别的待提取可逆水印的宏块信息进行最低位替换的反替换,获取所述属于第二集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息。
本发明实施例提供的一种可逆水印嵌入、提取方法及装置和图像恢复方法及装置;其中,所述可逆水印嵌入可以通过获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图;按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。与现有技术相比,本发明中仅为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图,而不对所述第三集合进行记录,从而降低了所述与嵌入量相关的位置图的空间占用量;可逆水印提取则按照预先约定的提取规则,提取所述嵌入过程的嵌入信息,从而完成接收端原始图像信息的恢复过程。
具体实施方式
下面结合附图对本发明实施例提供的一种可逆水印嵌入、提取方法及装置和一种图像恢复方法及装置进行详细的说明。
首先,对本发明中所提到的整数变化方法进行详细的说明;通过整数变化方法嵌入水印的过程如下:
设:x为整数,定义如下三个函数:
g(x)=LSB(x)=2f(x)-x=x-2h(x)
对于一个含有n个元素的向量x=(x0,x1,...,xn-1),也定义三个函数:
α(x)=round(x)
其中,round(·)表示四舍五入函数,
h(x)=(h(x
0),h(x
1),...,h(x
n-1))是一个向量;
按照上述定义的函数,采用整数变化嵌入水印后的像素值为yi,0≤i≤n;其中,wi为水印信息;
通过上述公式,可以在一个含有n个像素值的向量中嵌入n-1比特水印信息。其反变换为:
通过上述公式,可用根据嵌入水印的像素点y=(y0,y1,...,yn-1),恢复出原始图像的像素值信息x=(x0,x1,...,xn-1)。而嵌入的水印信息可以通过直接读取y=(y0,y1,...,yn-1)的LSB(最低有效位)来获得。
通过上述整数变化的水印嵌入方法与提取方法,可以得到如下性质:
v(x)=vh(y)。
其次,对本发明中所提到的原始图像的宏块集合类别的划分方法进行详细的说明;
所述宏块划分集合类别如下:设所述原始图像的每个宏块中的像素点个数为n,所述宏块中的像素点值的集合A={x=(x0,x1,...,xn-1):0≤xi≤255}。当所述宏块中的像素点的集合通过整数变化方法嵌入处理后,可能会导致像素值xi溢出,即xi大于255或者xi小于0;设像素值点对的集合D为通过整数变化方法嵌入后不溢出的像素值xi的集合;
D={x∈A:0≤2x0-2f(α(x))+g(α(x))≤255,0≤xi-f(α(x))≤127(1≤i≤n-1)}(1-1)
根据一个阈值t定义如下分组:设Et为第一集合;Ct为第二集合;Ot为第三集合;
Et={x∈D:v(x)≤t}
Ct={x∈A-Et:vh(x)≤t} (1-2)
Ot={x∈A-Et:vh(x)>t}
其中,集合Et中的点对将会被用于通过上述整数变化进行水印嵌入。根据v(x)=vh(y),可以得出,嵌入后:
Et={y:vh(y)≤t}
Ct={y:vh(y)≤t} (1-3)
Ot={y:vh(y)>t}
也就是说,当接收端接收嵌有水印的图像后,可以通过vh(y)把集合Et、Ct和Ot区分出来,而无法区别集合Et、Ct。这样,就需要在发送端建立位置图;例如:根据公式(1-1)和(1-2)依次判断原始图像的宏块像素值xi,将属于集合Et的宏块赋值为0;将属于集合Ct的宏块赋值为1;属于集合Ot中的点对不用记录。这样,按照原始图像所划分宏块的顺序,对所述各个宏块进行类别划分,并记录在所述位置图。
需要说明的是,所述位置图中的信息为按照宏块顺序,记录的“0”、“1”序列;其中,“0”代表宏块属于第一集合;“1”代表宏块属于第二集合。这样,当所述接收端获取到所述位置图中的信息后,即可将第一集合与第二集合进行区分。
如图1所示,为本发明实施例提供的一种可逆水印嵌入方法,该方法,具体实现过程如下:
101:信息发送端获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;
102:信息发送端为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的LOCATION MAP(位置图);所述与嵌入量相关的位置图相比于现有技术具有更小的尺寸,即需要占用的空间较小。
103:信息发送端按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。
基于以上实施例,如图2所示,为本发明实施例提供的一种可逆水印嵌入方法具体实现流程图。该方法,具体实现过程如下:
201:信息发送端获取原始图像中宏块参数以及嵌入失真初始阈值t;其中,所述原始图像中宏块参数包括:宏块的长度和宽度、宏块中的像素点个数g;本实施例中设所述嵌入失真初始阈值t为0。
202:根据所述原始图像中宏块参数以及嵌入失真初始阈值t,信息发送端为所述宏块划分集合类别,并确定嵌入失真阈值。该步骤的具体实现过程为:
首先,根据所述阈值t,将所有的宏块归类到不同的集合Et、Ct和Ot中,并对应所述Et和Ct建立与嵌入量相关的位置图;具体的讲,就是按照原始图像划分宏块的顺序,依次判断所述宏块的类别;如果判断宏块一的集合类别为Et,则将所述位置图中的信息第一位赋值0;如果判断所述宏块二的集合类别为Ct,则将所述位置图中的信息第二位赋值1;如果判断所述宏块三的集合类别为Ot,则不作记录;如果判断所述宏块四的集合类别为Et,则将所述位置图中的信息第三位赋值0;依次判断所述宏块的集合类别,并在所述位置图中的信息中记录与所述宏块集合类别相对应的赋值。设集合Et、Ct和Ot的长度分别为l1,l2和l3,无损压缩后的所述位置图为LM,其长度为m。
需要注意的是,此处可以根据实际情况的需要不对所述位置图进行无损压缩处理,而直接对所述位置图进行后续处理。
其次,判断是否满足条件l1×(g-1)≥n+m,其中n为预设水印嵌入长度;如果满足,表示有足够的容量可以嵌入水印w,则可以继续执行步骤203;否则,把阈值t加一,再重新划分宏块的集合类别。
203:信息发送端获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合Et、第二集合Ct和第三集合Ot。
204:信息发送端为所述第一集合Et和第二集合Ct中的各个宏块建立与嵌入量相关的位置图。具体的讲,就是按照原始图像划分宏块的顺序,依次判断所述宏块的类别;将所述宏块的类别为第一集合Et和第二集合Ct记录到所述位置图中。
205:按照所述宏块的排列顺序以及所述宏块的集合类别,信息发送端将所述与嵌入量相关的位置图中的信息嵌入到对应的宏块中;具体的讲,就是将所述位置图中的信息,嵌入到前
块的宏块中;具体的嵌入过程为:依照所述宏块的排列顺序,判断所述宏块的集合类别;如果所述宏块为第一集合E
t,则将所述无损压缩后的位置图中的信息按照整数变化方法将g-1比特的位置图信息嵌入到所述宏块中;如果所述宏块为第二集合C
t,则首先记录C
t中原始图像的宏块的x=(x
0,x
1,...,x
g-1)中的后g-1个像素点值(如:x
1,x
2,...,x
g-1)的LSB(leastsignificant bit,最低有效位),然后,再将所述无损压缩后的位置图中的信息按照最低有效位替换的方法嵌入到所述宏块中,即将所述位置图中的信息按照比特位替换到所述宏块的(x
1,x
2,...,x
g-1)中最低有效位处。其中,所述记录的原始x=(x
1,...,x
g-1)的最低有效位,与水印信息一起嵌入,即LSB序列l。
206:在所述与嵌入量相关的位置图中的信息嵌入完成之后的宏块,信息发送端继续将所述水印信息和记录的LSB信息按照整数变化的方法嵌入到所述集合类别为第一集合的宏块中。具体的讲,就是将所述记录的所有原始图像中宏块的LSB信息(即LSB序列l)和水印信息w通过整数变化的方法嵌入到剩下的Et中的块。
如图3所示,为本发明实施例提供的一种可逆水印提取方法,该方法,具体实现过程如下:
301:信息接收端获取待提取可逆水印的宏块信息以及与嵌入量相关位置图的长度值;具体实现过程为:
获取嵌入失真阈值以及待提取可逆水印的宏块信息;
根据所述嵌入失真阈值,获取位置图所对应的待提取可逆水印的宏块信息;
从所述待提取可逆水印的宏块信息中提取位置图的长度值。
302:根据所述位置图的长度值,信息接收端从所述待提取可逆水印的宏块信息中提取所述位置图中的信息;
303:根据所述位置图中的信息,信息接收端将所述待提取可逆水印的宏块划分为第一集合与第二集合;
304:在提取所述位置图中的信息完成之后的所述待提取可逆水印的宏块中,信息接收端提取水印信息以及所述待提取可逆水印的宏块信息中最低位的原始信息。
基于以上实施例,如图4所示,为本发明实施例提供的一种可逆水印提取方法具体实现流程图。该方法,具体实现过程如下:
401:信息接收端获取嵌入失真阈值t以及待提取可逆水印的宏块信息。
402:根据阈值t,信息接收端获取所有宏块中vh(y)≤t的待提取可逆水印的宏块信息,即嵌入过程中,属于集合Et和Ct的宏块信息。vh(y)≤t
403:信息接收端读取前
的块y
1,y
2,...,y
g-1的LSB,即可以获得的位置图中的信息。
需要说明的是,如果嵌入过程中将所述位置图进行了无损压缩,则处直接获取到的应该是压缩位置图信息,需要解压,才可以获取完整的位置图信息。
404:根据位置图中的信息,信息接收端将所述待提取可逆水印的宏块信息划分为集合Et和Ct。
405:信息接收端读取剩下的集合Et中块的y1,y2,...,yg-1的LSB,即可以获得记录的所有的原始图像中宏块中的LSB序列为l和水印信息w。
如图5所示,为本发明实施例提供的一种图像恢复方法,该方法包括:
501:信息接收端获取待提取可逆水印的宏块信息以及其对应的集合类别信息;其中,所述集合类别信息包括:第一集合、第二集合和第三集合;
502:信息接收端将所述属于第一集合类别的待提取可逆水印的宏块信息进行整数变化的反变化,获取所述属于第一集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息;
503:信息接收端将所述属于第二集合类别的待提取可逆水印的宏块信息进行最低位替换的反替换,获取所述属于第二集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息。
如图6所示,为本发明实施例提供的一种可逆水印嵌入装置,该装置包括:
信息获取单元601,用于获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;
位置图建立单元602,用于为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图;
信息嵌入单元603,用于按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。
其中,所述信息嵌入单元603,包括:
位置图信息嵌入子单元,用于按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息嵌入到对应的宏块中;
水印信息嵌入子单元,用于在所述与嵌入量相关的位置图中的信息嵌入完成之后的宏块,继续将所述水印信息按照整数变化的方法嵌入到所述集合类别为第一集合的宏块中。
值得说明的是,所述位置图信息嵌入子单元,还可以包括:
集合类别判断分单元,用于依照所述宏块的排列顺序,判断所述宏块的集合类别;
整数嵌入分单元,用于如果所述宏块为第一集合,则将所述与嵌入量相关的位置图中的信息按照整数变化方法嵌入到所述宏块中;
替换嵌入分单元,用于如果所述宏块为第二集合,则将所述与嵌入量相关的位置图中的信息按照最低有效位替换的方法嵌入到所述宏块中。
需要注意的是,所述装置还可以包括:
原始信息获取单元,用于信息获取原始图像中宏块参数以及嵌入失真初始阈值;
宏块划分单元,用于根据所述原始图像中宏块参数以及嵌入失真初始阈值,为所述宏块划分集合类别,并确定嵌入失真阈值。
如图7所示,为本发明实施例提供的一种可逆水印提取装置,该装置包括:
信息获取单元701,用于获取待提取可逆水印的宏块信息以及与嵌入量相关位置图的长度值;
位置图信息提取单元702,用于根据所述位置图的长度值,从所述待提取可逆水印的宏块信息中提取所述位置图中的信息;
集合类别划分单元703,用于根据所述位置图中的信息,将所述待提取可逆水印的宏块划分为第一集合与第二集合;
信息提取单元704,用于在提取所述位置图中的信息完成之后的所述待提取可逆水印的宏块中,提取水印信息以及所述待提取可逆水印的宏块信息中最低位的原始信息。
其中,所述信息获取单元701,包括:
信息获取子单元,用于获取嵌入失真阈值以及待提取可逆水印的宏块信息;
位置图信息获取子单元,用于根据所述嵌入失真阈值,获取所述与嵌入量相关位置图所对应的待提取可逆水印的宏块信息;
长度信息获取子单元,用于从所述待提取可逆水印的宏块信息中提取所述与嵌入量相关位置图的长度值。
如图8所示,为本发明实施例提供的一种图像恢复装置,该装置包括:
类别信息获取单元801,用于获取待提取可逆水印的宏块信息以及其对应的集合类别信息;其中,所述集合类别信息包括:第一集合、第二集合和第三集合;
第一集合原始信息获取单元802,用于将所述属于第一集合类别的待提取可逆水印的宏块信息进行整数变化的反变化,获取所述属于第一集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息;
第二集合原始信息获取单元803,用于将所述属于第二集合类别的待提取可逆水印的宏块信息进行最低位替换的反替换,获取所述属于第二集合类别的待提取可逆水印的宏块信息所对应的原始宏块信息。
本发明实施例提供的一种可逆水印嵌入、提取方法及装置和图像恢复方法及装置;其中,所述可逆水印嵌入可以通过获取原始图像中宏块的集合类别信息以及水印信息,所述集合类别信息包括:第一集合、第二集合和第三集合;为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图;按照所述宏块的排列顺序以及所述宏块的集合类别,将所述与嵌入量相关的位置图中的信息以及所述水印信息嵌入到对应的宏块中。与现有技术相比,本发明中仅为所述第一集合和第二集合中的各个宏块建立与嵌入量相关的位置图,而不对所述第三集合进行记录,从而降低了所述与嵌入量相关的位置图的空间占用量;可逆水印提取则按照预先约定的提取规则,提取所述嵌入过程的嵌入信息,从而完成接收端原始图像信息的恢复过程;并且与现有技术相比,本发明提出的可逆水印嵌入、提取方法及装置和图像恢复方法及装置,在相同嵌入率下,能够提高嵌入容量和减少嵌入失真。
通过以上的实施方式的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。