本发明属于通信技术领域,尤其涉及一种隐写信息编码方法和装置以及隐写信息解码方法和装置。
背景技术:
随着计算机网络的普及和信息处理水平的逐步发展,人们在生活和工作中越来越多的发送和存储数字信息。而由于移动网络和互联网平台的开放性,数据传输的安全性和存储的私密性越来越重要。
图像信息隐写技术可以分为空域隐藏和变换域隐藏两种方案。基于空域的信息隐写技术相对更加方便直接,通过修改每个像素若干最低有效位的信息,对秘密信息进行嵌入即可,而改变低有效位的像素并不会对图像的主观观察效果带来可见的影响,同时还能有效的传递隐藏信息。但是数字信息在传输的过程中会受到噪声、扰动的影响,导致基于空域的信息隐写技术鲁棒性较差。基于变换域的信息隐写技术需要进行复杂的时频变换,并谨慎的选择信息隐写的频点,相对来说增加了算法的复杂度。
技术实现要素:
有鉴于此,本发明实施例提供了一种隐写信息编码方法和装置以及隐写信息解码方法和装置,以解决现有技术中数字信息在传输的过程中受噪声、扰动的影响导致鲁棒性较差的问题。
本发明实施例的第一方面,提供了一种隐写信息编码方法,包括:
将目标图像分为预设大小的多个像素块,并计算每个所述像素块的像素均值;
计算各个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待编码隐写信息在该像素块中的插入位数;
根据各个所述像素块中待编码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行编码。
本发明实施例的第二方面,提供了一种隐写信息编码装置,包括:
第一像素均值计算模块,用于将目标图像分为预设大小的多个像素块,并计算每个所述像素块的像素均值;
第一插入位数计算模块,用于计算各个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待编码隐写信息在该像素块中的插入位数;
编码模块,用于根据各个所述像素块中待编码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行编码。
本发明实施例的第三方面,提供了一种隐写信息解码方法,包括:
接收目标图像信息,并计算所述图像信息中每个像素块的像素均值;
计算每个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待解码隐写信息在该像素块中的插入位数;
根据各个所述像素块中待解码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行解码。
本发明实施例的第四方面,提供了一种隐写信息解码装置,包括:
第二像素均值计算模块,用于接收目标图像信息,并计算所述图像信息中每个像素块的像素均值;
第二插入位数计算模块,用于计算每个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待解码隐写信息在该像素块中的插入位数;
解码模块,用于根据各个所述像素块中待解码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行解码。
本发明实施例相对于现有技术所具有的有益效果:将目标图像分为预设大小的多个像素块,并计算每个所述像素块的像素均值,计算各个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待编码隐写信息在该像素块中的插入位数,根据各个所述像素块中待编码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行编码,由于像素块的像素均值对噪声的鲁棒性较强,所以不需要进行复杂的时频变换,应用简单的空域处理就能保证隐写信息的有效传递。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的隐写信息编码方法的流程图;
图2是图1中步骤S103的实现流程图;
图3是图2中步骤S203的实现流程图;
图4是图3中步骤S302的实现流程图;
图5是本发明实施例提供的根据图像修正差值更新像素块的示意图;
图6是本发明实施例提供的隐写信息解码方法的流程图;
图7是图6中步骤S503的实现流程图;
图8是本发明实施例提供的隐写信息编码装置的结构框图;
图9是本发明实施例提供的编码模块的结构框图;
图10是本发明实施例提供的第一插入位数计算模块的结构框图;
图11是本发明实施例提供的隐写信息解码装置的结构框图;
图12是本发明实施例提供的解码模块的结构框图;
图13是本发明实施例提供的第二插入位数计算模块的结构框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
图1示出了本发明实施例一提供的隐写信息编码方法的实现流程,详述如下:
步骤S101,将目标图像分为预设大小的多个像素块,并计算每个所述像素块的像素均值。
本实施例中,可以按照左上角到右下角的方向,将目标图像的像素点划分成多个m*n大小的像素块,其中m和n均为正整数。例如,可以按照左上角到右下角的方向,将目标图像的像素点划分成3*3大小的像素块。
对于一个像素块,根据该像素块中的m*n个像素点的像素值,计算该像素块的像素均值Iavg。具体的,该像素块的像素均值Iavg等于该像素块中的m*n个像素点的像素值之和除以该像素块中像素点的个数m+n,并对结算结果中的小数进行四舍五入处理。
例如,像素块的大小为3*3,参见图5,各个像素点的像素值依次为:27、19、32、25、20、42、40、24和36,则该像素块的像素均值为29.44,四舍五入得到该像素块的像素均值为29。
步骤S102,计算各个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待编码隐写信息在该像素块中的插入位数。
一个实施例中,步骤S102可以通过以下过程实现:
计算各个所述像素块中各个像素点的像素值与像素均值差值的最大值:
其中,Idmax为所述最大值,Iavg为像素块的像素均值,I(i,j)为该像素块中第i行第j列像素点的像素值,该像素块的大小为m×n。
对于将要隐藏信息的目标图像,基于空域的信息隐藏技术将改变像素低四位的像素值,进行隐藏信息的插入。对于目标图像,在纹理较多的区域进行像素修改比在平滑区域更加合理,且在平滑区域进行像素变动更容易被察觉。Idmax较大的区域像素值梯度较大,细节相对较多,容许进行较大的像素变动,可以嵌入更多的隐写信息。为保证目标图像不失真,可以将每个像素块的隐写信息的最大嵌入位数限制为3,但并不以此为限。
根据所述最大值确定待编码隐写信息在该像素块中的插入位数:
Bin=min(a,round(log2(IdMax)))
其中,Bin为待编码隐写信息在该像素块中的插入位数,a为预设系数,且1≤a≤3。本实施例中,a=3,但并不以此为限。在其他实施例中,还可以设置a=2或a=1。
步骤S103,根据各个所述像素块中待编码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行编码。
参见图2,一个实施例中,步骤S103可以通过以下过程实现:
步骤S201,将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息进行替换,并计算替换后当前像素块的第一修正像素均值。
其中,Bin为待编码隐写信息在当前像素块中的插入位数。
例如,待编码隐写信息在当前像素块中的插入位数Bin=3;当前像素块像素均值为29,对应的二进制数值为00011101;与当前像素块对应的待编码隐写信息为011,则将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息进行替换,得到的第一修正像素均值IavgNew为00010111。
步骤S202,根据所述第一修正像素均值和所述像素均值,计算当前像素块的图像修正差值。
本实施例中,当前像素块的图像修正差值等于当前像素块的第一修正像素均值减去当前像素块的像素均值。即当前像素块的图像修正差值IdAvg=IavgNew-Iavg,其中,IdAvg为当前像素块的图像修正差值,IavgNew为当前像素块的第一修正像素均值。
例如,当前像素块的像素均值Iavg为00011101,当前像素块的第一修正像素均值IavgNew为00010111,则当前像素块的图像修正差值IdAvg=IavgNew-Iavg=-6。
步骤S203,根据所述图像修正差值对当前像素块进行编码。
具体的,修正后的每个像素点的像素值为I'(i,j)=I(i,j)+IdAvg,其中I'(i,j)为修正后的当前像素块中第i行第j列像素点的像素值,I(i,j)为当前像素块中第i行第j列像素点的像素值。
例如,参见图5,像素块的大小为3*3,该像素块中各个像素点的像素值依次为:27、19、32、25、20、42、40、24和36,则该像素块的像素均值Iavg为00011101。待编码隐写信息在当前像素块中的插入位数Bin=3;与当前像素块对应的待编码隐写信息为011,当前像素块的第一修正像素均值IavgNew为00010111,则当前像素块的图像修正差值IdAvg=IavgNew-Iavg=-6。
根据当前像素块的图像修正差值IdAvg对当前像素块的各个像素点进行修正,修正后的当前像素块的各个像素点的像素值依次为21、13、26、19、14、36、34、18和30。
参见图3,一个实施例中,步骤S203可以通过以下过程实现:
步骤S301,根据当前像素块的部分或全部已编码的相邻像素块对当前像素块进行优化,得出优化图像修正差值。
具体的,所述目标图像中相邻像素块之间像素的修正值应尽量接近,以防止临近像素块像素的变动差异过大,造成目标图像的明显可视失真。本实施例中,可以根据当前像素块的部分或全部已编码的相邻像素块对当前像素块进行优化,得出优化图像修正差值。其中,对于所述目标图像中第一个被编码的图像块,由于不存在已编码的相邻像素块,因此无需进行优化。
例如,由目标图像的左上角至右下角的方向,对目标图像的各个像素块进行编码,则可以根据当前像素块的左侧和上方的已编码的相邻像素块对当前像素块进行优化,得出当前像素块的优化图像修正差值。
对于由目标图像的右下角至左上角的方向对目标图像的各个像素块进行编码的情况,可以根据当前像素块的右侧和下方的已编码的相邻像素块对当前像素块进行优化,得出当前像素块的优化图像修正差值。
对于由目标图像的右上角至左下角的方向对目标图像的各个像素块进行编码的情况,可以根据当前像素块的右侧和上方的已编码的相邻像素块对当前像素块进行优化,得出当前像素块的优化图像修正差值。
对于由目标图像的左下角至右上角的方向对目标图像的各个像素块进行编码的情况,可以根据当前像素块的左侧和下方的已编码的相邻像素块对当前像素块进行优化,得出当前像素块的优化图像修正差值。
参见图4,一个实施例中,步骤S301可以通过以下过程实现:
步骤S401,计算当前像素块的部分或全部已编码的相邻像素块的临近参考图像修正值。
本步骤中,以由目标图像的左上角至右下角的方向对目标图像的各个像素块进行编码为例进行说明,但并不以此为限。所述临近参考图像修正值可以等于当前像素块的上方的已编码的相邻像素块的图像修正差值和当前像素块的左侧的已编码的相邻像素块的图像修正差值的均值。若当前像素块只存在一个已编码的相邻像素块,则所述临近参考图像修正值等于该相邻像素块的图像修正值。
例如,当前像素块的上方的已编码的相邻像素块的图像修正差值为IdAvgUp,当前像素块的左侧的已编码的相邻像素块的图像修正差值为IdAvgLeft,则所述临近参考图像修正值
在其他实施例中,所述临近参考图像修正值还可以等于当前像素块的上方的已编码的相邻像素块的图像修正差值和当前像素块的左侧的已编码的相邻像素块的图像修正差值的加权和。即,设置第一加权系数α和第二加权系数β,且α+β=1,则所述临近参考图像修正值IdAvgNear=αIdAvgUp+βIdAvgLeft。
步骤S402,计算当前像素块的第一图像修正差值和第二图像修正差值。
其中,所述第一图像修正差值为将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息的原值进行替换后计算得出的图像修正差值。所述第二图像修正差值为将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息的按位取反值进行替换后计算得出的图像修正差值。
步骤S403,将与所述临近参考图像修正值差值较小的第一图像修正差值或第二图像修正差值作为所述优化图像修正差值。
步骤S302,根据所述优化图像修正差值对该像素块进行编码。
本实施例中,步骤S302可以通过以下过程实施:
若所述优化图像修正差值等于所述第一图像修正差值,则将该像素块中的各个像素数值的二进制数值的末位置0,并对该像素块进行编码;
若所述优化图像修正差值等于所述第二图像修正差值,则将该像素块中的各个像素数值的二进制数值的末位置1,并对该像素块进行编码。
在其他实施例中,步骤S302也可以通过以下过程实施:
若所述优化图像修正差值等于所述第一图像修正差值,则将该像素块中的各个像素数值的二进制数值的末位置1,并对该像素块进行编码;
若所述优化图像修正差值等于所述第二图像修正差值,则将该像素块中的各个像素数值的二进制数值的末位置0,并对该像素块进行编码。
优选的,对于均值编码后存在0值像素点或者像素值为255的像素点的像素块,存在数值溢出的现象,在解码时无法准确计算出编码后均值,该图像块内信息隐写失败,这部分隐写信息将在下一像素块继续进行编码。解码时,对于存在0或255的像素点的像素块,不进行隐写信息读取。
上述隐写信息编码方法,利用图像传输过程中像素块的像素均值不易受噪声扰动影响的特点,不需要进行复杂的时频变换,只需要应用图像像素块的像素均值对像素点进行简单的编码,就能得到稳定准确的信息隐写方法,接收者通过相应的译码方法,就能方便的得到载体图像中隐藏的秘密信息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二
图6示出了本发明实施例一提供的隐写信息解码方法的实现流程,详述如下:
步骤S501,接收目标图像信息,并计算所述图像信息中每个像素块的像素均值。
本实施例中,可以将目标图像信息划分为预设大小的像素块。例如,可以按照左上角到右下角的方向,将目标图像的像素点划分成多个m*n大小的像素块,其中m和n均为正整数。例如,可以按照左上角到右下角的方向,将目标图像的像素点划分成3*3大小的像素块。
对于一个像素块,根据该像素块中的m*n个像素点的像素值,计算该像素块的像素均值Iavg。具体的,该像素块的像素均值Iavg等于该像素块中的m*n个像素点的像素值之和除以该像素块中像素点的个数m+n,并对结算结果中的小数进行四舍五入处理。
例如,像素块的大小为3*3,参见图5,各个像素点的像素值依次为:27、19、32、25、20、42、40、24和36,则该像素块的像素均值为29.44,四舍五入得到该像素块的像素均值为29。
步骤S502,计算各个像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待解码隐写信息在各个像素块中的插入位数。
一个实施例中,步骤S501可以通过以下过程实现:
计算像素块中各个像素点的像素值与像素均值差值的最大值:
其中,Idmax为所述最大值,Iavg为像素块的像素均值,I(i,j)为该像素块中第i行第j列像素点的像素值,当前像素块的大小为m×n。
根据所述最大值确定待解码隐写信息在各个像素块中的插入位数:
Bin=min(a,round(log2(IdMax)))
其中,Bin为待解码隐写信息在该像素块中的插入位数,a为预设系数,且1≤a≤3。本实施例中,a=3,但并不以此为限。在其他实施例中,还可以与实施例一中的步骤S102一致,设置为a=2或a=1。
步骤S503,根据各个所述像素块中待解码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行解码。
参见图7,一个实施例中,步骤S503可以通过以下过程实现:
步骤S601,获取当前像素块像素均值的二进制数值的第8-Bin位至第7位。
步骤S602,检测当前像素各个块像素点中像素值的二进制数值的第8位数值是否为零的像素点多于不为零的像素点。
步骤S603,在检测到当前像素块各个像素点中像素值的二进制数值的第8位为零的像素点多于不为零的像素点时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值,作为当前像素块中的待解码隐写信息。
步骤S604,在检测到当前像素块中各个像素点像素值的二进制数值第8位不为零的像素点多于不为零的像素点时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值取反,作为当前像素块中的待解码隐写信息。
步骤S605,将各个所述像素块中的待解码隐写信息按照各个所述像素块的解码顺序组合成所述待解码隐写信息。
例如,编码时,一个像素块中各个像素点的像素值依次为:27、19、32、25、20、42、40、24和36,则该像素块的像素均值Iavg为00011101。待编码隐写信息在当前像素块中的插入位数Bin=3;与当前像素块对应的待编码隐写信息为011。当前像素块的第一修正像素均值IavgNew为00010111,则当前像素块的第一图像修正差值IdAvg=IavgNew-Iavg=-6,第二图像修正差值为-4。且所述优化图像修正差值等于所述第一图像修正差值,修正后的该像素块的各个像素点的像素值依次为:21、13、26、19、14、36、34、18和30。再将该像素块中的各个像素数值的二进制数值的末位置0,最后得出编码后的该像素块的各个像素点的像素值依次为:20、12、26、18、14、36、34、18和30。
解码时,则当前像素块像素均值的二进制数值为00010111,计算得出的待解码隐写信息在该像素块中的插入位数为3。且当前像素块各个像素点中像素值的二进制数值的第8位为零的像素点多于不为零的像素点,则提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值011,作为当前像素块中的待解码隐写信息。
又例如,编码时,一个像素块中各个像素点的像素值依次为:27、19、32、25、20、42、40、24和36,则该像素块的像素均值Iavg为00011101。待编码隐写信息在当前像素块中的插入位数Bin=3;与当前像素块对应的待编码隐写信息为011。当前像素块的第一修正像素均值IavgNew为00010111,则当前像素块的第一图像修正差值IdAvg=IavgNew-Iavg=-6,第二图像修正差值为-4。且所述优化图像修正差值等于所述第二图像修正差值,修正后的该像素块的各个像素点的像素值依次为:23、15、18、21、16、38、36、20和32。再将该像素块中的各个像素数值的二进制数值的末位置1,最后得出编码后的该像素块的各个像素点的像素值依次为:23、15、19、21、17、39、37、21和33.
解码时,则当前像素块像素均值的二进制数值为00011001,计算得出的待解码隐写信息在该像素块中的插入位数为3。且当前像素块各个像素点中像素值的二进制数值的第8位不为零的像素点多于为零的像素点,则提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值100取反得出011,作为当前像素块中的待解码隐写信息。
步骤S503还包括:在当前像素块为所述目标图像信息中首个被解码的像素块时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值作为当前像素块中的待解码隐写信息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三
对应于上文实施例所述的隐写信息编码方法,图8示出了本发明实施例提供的隐写信息编码装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分。
参照图8,该装置包括第一像素均值计算模块101、第一插入位数计算模块102和编码模块103。第一像素均值计算模块101,用于将目标图像分为预设大小的多个像素块,并计算每个所述像素块的像素均值。第一插入位数计算模块102,用于计算各个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待编码隐写信息在该像素块中的插入位数。编码模块103,用于根据各个所述像素块中待编码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行编码。
参见图9,一个实施例中,所述编码模块103可以包括替换单元201、修正单元202和编码单元203。替换单元201,用于将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息进行替换,并计算替换后当前像素块的第一修正像素均值。其中,Bin为待编码隐写信息在该像素块中的插入位数。修正单元202,用于根据所述第一修正像素均值和所述像素均值,计算当前像素块的图像修正差值。编码单元203,用于根据所述图像修正差值对当前像素块进行编码。
优选的,所述编码单元203可以包括优化子单元和编码子单元。所述优化子单元,用于根据当前像素块的部分或全部已编码的相邻像素块对当前像素块进行优化,得出优化图像修正差值。所述编码子单元,用于根据所述优化图像修正差值对当前像素块进行编码。
作为一种可实施方式,所述优化子单元具体可以用于:
计算当前像素块的部分或全部已编码的相邻像素块的临近参考图像修正值;
计算当前像素块的第一图像修正差值和第二图像修正差值;其中,所述第一图像修正差值为将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息的原值进行替换后计算得出的图像修正差值;所述第二图像修正差值为将当前像素块像素均值的二进制数值的第8-Bin位至第7位与对应的待编码隐写信息的按位取反值进行替换后计算得出的图像修正差值;
将与所述临近参考图像修正值差值较小的第一图像修正差值或第二图像修正差值作为所述优化图像修正差值。
参见图10,一个实施例中,所述第一插入位数计算模块102可以包括第一最大值计算单元301和第一插入位数计算单元302。
第一最大值计算单元301,用于计算各个所述像素块中各个像素点的像素值与像素均值差值的最大值:
其中,Idmax为所述最大值,Iavg为像素块的像素均值,I(i,j)为该像素块中第i行第j列像素点的像素值,该像素块的大小为m×n。
第一插入位数计算单元302,用于根据所述最大值确定待编码隐写信息在该像素块中的插入位数:
Bin=min(a,round(log2(IdMax)))。
其中,Bin为待编码隐写信息在该像素块中的插入位数,a为预设系数,且1≤a≤3。
本发明实施例可以按照实施例一中所述的隐写信息编码方法进行实施,对此不再赘述。
实施例四
对应于上文实施例所述的隐写信息解码方法,图11示出了本发明实施例提供的隐写信息解码装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分。
参照图11,该装置包括第二像素均值计算模块401、第二插入位数计算模块402和解码模块403。第二像素均值计算模块401,用于接收目标图像信息,并计算所述图像信息中每个像素块的像素均值。第二插入位数计算模块402,用于计算每个所述像素块中各个像素点的像素值与所述像素均值之间差值的最大值,并根据所述最大值确定待解码隐写信息在该像素块中的插入位数。解码模块403,用于根据各个所述像素块中待解码隐写信息的插入位数和预设插入位置,按照预设顺序对各个所述像素块进行解码。
参见图12,一个实施例中,所述解码模块包括获取单元501、检测单元502、提取单元503和处理单元504。
获取单元501,用于获取当前像素块像素均值的二进制数值的第8-Bin位至第7位。
检测单元502,用于检测当前像素各个块像素点中像素值的二进制数值的第8位数值是否为零的像素点多于不为零的像素点。
提取单元503,用于在所述检测单元检测到当前像素块各个像素点中像素值的二进制数值的第8位为零的像素点多于不为零的像素点时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值,作为当前像素块中的待解码隐写信息。
提取单元503,还用于在所述检测单元检测到当前像素块中各个像素点像素值的二进制数值第8位不为零的像素点多于不为零的像素点时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值取反,作为当前像素块中的待解码隐写信息。
处理单元504,用于将各个所述像素块中的待解码隐写信息按照各个所述像素块的解码顺序组合成所述待解码隐写信息。
优选的,所述提取单元503,还用于在当前像素块为所述目标图像信息中首个被解码的像素块时,提取当前像素块像素均值的二进制数值的第8-Bin位至第7位的原值,作为当前像素块中的待解码隐写信息。
参见图13,一个实施例中,所述第二插入位数计算模块包括第二最大值计算单元601和第二插入位数计算单元602。
第二最大值计算单元601,用于计算各个所述像素块中各个像素点的像素值与像素均值差值的最大值:
其中,Idmax为所述最大值,Iavg为像素块的像素均值,I(i,j)为该像素块中第i行第j列像素点的像素值,该像素块的大小为m×n。
第二插入位数计算单元602,用于根据所述最大值确定待解码隐写信息在该像素块中的插入位数:
Bin=min(a,round(log2(IdMax)))。
其中,Bin为待解码隐写信息在该像素块中的插入位数,a为预设系数,且1≤a≤3。
本发明实施例可以按照实施例二中所述的隐写信息解码方法进行实施,对此不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。