优化块选择策略的高性能可逆信息隐藏算法

2023-05-11 12:51周琳娜吴正哲邓云腾李岱霖
西安电子科技大学学报 2023年2期
关键词:分块邻域波动

周琳娜,唐 鑫,吴正哲,邓云腾,李岱霖

(1.北京邮电大学 网络空间安全学院,北京 100876;2.国际关系学院 网络空间安全学院,北京 100091)

1 引 言

随着全球信息化的建设,信息安全在各个领域变得越来越重要,例如云数据安全技术[1-3]、水印算法研究[4-5]。可逆信息隐藏[6-12]是信息安全领域的关键技术之一,其以可逆的方式将秘密数据嵌入到覆盖载体中。到目前为止,可逆信息隐藏主要工作有基于差值扩展[6]、直方图平移[7-10]和预测误差扩展[11-12]的算法。像素值排序(Pixel Value Ordering,PVO)[13]是实现可逆信息隐藏的一种新兴的有效手段。通过对一个块中的像素值按升序排序,使用次大值像素预测最大值像素,使用次小值像素预测最小值像素,分别生成预测误差,并通过预测误差扩展来实现数据嵌入。与传统的预测误差扩展方法相比,基于像素值排序的方法通过排序使得预测更准确,从而减少了扩展中的无效平移。然而,对于粗糙块,由于像素间的波动性较大,预测的准确性仍然面临很大的不确定性。随之而来的无效平移不可避免地影响了数据嵌入的不可感知性。

像素块按波动性排序是解决这一问题的一种有效手段。通过计算像素块的波动值,可以区分平滑块和粗糙块。通过优先在平滑块中嵌入数据,可有效减少无效平移,从而提高不可感知性。当前,像素块的波动值计算方法可分为4类。① 基于块内的非扩展像素计算块波动值[13-16]。其中,最常见的方法是计算块内次大值与次小值的差值作为块的波动值。但是,在这类方法中,外部大量像素往往被忽略,即使其中一些像素也能反映块的波动性。而且,只使用块内两个像素来定义块波动性并不准确,缺乏对于竖直和水平方向像素相关性的考量;② 考虑了外部右邻域和下邻域的邻接像素,使用像素块右侧两列像素和底部两行像素[17-20],定义波动值为邻接上下文像素竖直和水平方向差的绝对值之和。由于涉及到周围块的像素值变化,为了保证可逆性,按照从下到上、从右到左逆序进行数据提取和恢复。然而,这类方法仅仅考虑了右邻域和下邻域,没有考虑左邻域和上邻域的上下文像素,如果扩展像素出现在块的左上角,远离上下文像素,预测精度会受到显著影响;③ 使用了全包围上下文像素策略来评估波动性[21-22],引入了更多像素,以提高波动值计算的准确性。该方法大部分的工作都是在双层嵌入的基础上进行设计。除边界像素外,将载体图像分为阴影块和空白块两个块集,选取阴影块的4个相邻空白块中的像素作为上下文像素,计算阴影块的波动值,嵌入容量一半的比特被嵌入到阴影块后,用相同的方法计算空白块的波动值;再将剩下的另一半比特嵌入到空白块中,提取过程与嵌入过程相反,保证了算法的可逆性。在该类算法中,选取相邻上下邻域一行、左右邻域一列或者相邻上下邻域两行、左右邻域两列的像素作为上下文像素,块波动值被定义为每个邻域中两个连续像素在竖直或水平方向上差的绝对值之和。然而,在块波动值的计算中没有考虑到像素在双斜对角方向的一致性,对于较小的分块,块内像素距离接近且相关性较强,仅考虑水平竖直两个方向上的上下文像素不容易区分波动性,考虑双斜对角方向的一致性可以更好地提升预测精度。此外,对于较大或分块不均匀的分块,即使块局部波动性好也不能说明该块平滑,各个方向上的上下文像素一致性均应被纳入考虑;④ 同时使用了块内外的相关上下文像素来计算所选块的波动值,选取与预测相关的相邻像素[23-25]。如选取块中最大两个像素和最小两个像素的周围8个邻接像素作为上下文像素,考虑了像素点水平、竖直、双斜对角4个方向上像素的一致性。该算法虽然对像素点4个方向上邻域的像素都进行了考虑,但是仅仅计算像素点的局部波动性限制了预测的准确性,对于较大的分块不能准确地判断块的波动性。而且,该类算法不能适用于前沿的预测器,只适合扩展像素少的情况下秘密信息的嵌入。

针对以上提到的问题,文中提出了一种基于优化块选择策略的高性能像素值排序方法,以提高数据嵌入的隐蔽性。所提方法是首个同时考虑像素块水平、竖直和双斜对角方向像素一致性的块选择方法。选取块外8个方向上的部分像素为上下文像素,并将上下文像素的一致性定义为像素两侧的上下文像素在竖直、水平或双斜对角方向上差的绝对值。特别地,在计算完同一方向上两个不同邻域内的像素差后,将所得结果再次求差,体现为同一方向上的像素一致性。定义块的波动值为上述所有数值的绝对值之和。为了进一步提高数据嵌入的不可感知性,同时考虑像素的空间位置,通过定义切比雪夫距离来过滤掉不适合进行扩展的像素,减少无效平移。实验结果表明,所提方法相比现有方法,能够实现不可感知性的提升。

文中工作的主要贡献如下:

(1)提出了一种基于优化块选择策略的高性能可逆信息隐藏框架。该框架支持改进的块选择和相应的扩展像素距离筛选策略,这两种策略都大大提高了预测的准确性和不可感知性。得益于上下文像素的定义方法,在数据提取阶段,所提框架确保计算出的块波动值与嵌入阶段一致,从而确保可逆性。

(2)提出了一种基于多方向预测的块波动值计算方法。该方法使用水平、竖直和双斜对角4个方向的上下文像素计算波动值,并且对同一方向上的上下文像素综合考虑,极大地提高了预测的准确性。

(3)加入了对扩展像素空间位置的考虑。对于需要参与扩展的像素,使用切比雪夫距离计算像素空间位置距离,并且根据分块大小自适应确定阈值。对于较大或者长宽不均匀的平滑块,该方案能够筛选掉不适合扩展的像素,减少无效平移的数量,进一步提升不可感知性。实验结果表明,在嵌入相同数量的水印比特的条件下,所提算法可实现更好的预测精度和隐蔽性。

2 相关工作

2013年,文献[13]在预测误差扩展(Prediction Error Expansion,PEE)算法的基础上提出了一种基于像素值排序(PVO)的可逆信息隐藏算法。在每个块中,像素点按照升序排序,使用次大值像素预测最大值像素,次小值像素预测最小值像素,通过所得预测误差来确定是否进行嵌入。对于像素值排序算法,波动小的块更有利于可逆数据隐藏[26]。优先选择波动小的像素块进行预测误差扩展,可以有效减少无效平移,从而提高不可感知性。为了实现这一目的,进行块波动值的计算,文献[13]考虑到了块内像素的一致性,将块波动值定义为块中次大值与次小值像素的差。由于其简单性,在许多基于像素值排序算法的可逆隐藏方案中都有使用,如PVO[8]和IPVO(Improved Pixel Value Ordering)[16]。但是,由于只有两个内部像素参与波动值计算,得到的值不能准确反映对应块的波动性情况。作为改进,一种基于块外像素计算波动值的方法被广泛应用[16-19]。基本思想是使用像素块外部的右侧相邻两列和下侧相邻两行的像素作为上下文像素,将波动值定义为每个相邻像素之间竖直和水平差的绝对值之和,以提高波动值计算的准确性。在此基础上,文献[20]定义标准差反映像素块中像素值的离散程度,使用像素块的右邻域、下邻域和右下领域3个相邻像素块,通过计算相邻像素块的加权标准差区分平滑块和粗糙块,考虑到了像素块内整体的波动性。然而,这类方法仅仅使用到了右邻域和下邻域,参与计算的像素数量有限,左邻域和上邻域的上下文像素没有考虑,一旦目标像素出现在所选块的左上角,且距离上下文像素较远,则会对预测精度产生较大影响。文献[21]提出了一种全封闭上下文策略,通过实验对比,发现距离该块最近的像素对波动值计算是有帮助的。因此,该算法只选择那些接近像素块最近一行或一列的上下文像素,块的波动值被计算为块中两个连续像素在竖直和水平方向上差的绝对值之和。由于块的上、下、左、右邻域像素都用来作为上下文像素开展波动值计算,在此基础上执行块选择策略可以更好地挑选出波动小的块优先嵌入。文献[22]也通过全包围像素算法实现更精确的计算。对于边界块,将来自上、下、左、右邻接像素的数量加倍,指定块外两行和两列像素作为上下文像素,具体定义为水平或竖直方向上两个连续像素之间差的绝对值之和,取得了不错的效果。然而,双斜对角方向的一致性并没有被纳入波动值计算之中。为了更好地选择上下文像素,文献[23]提出了一种同时考虑内外上下文像素的自适应波动值计算方法。具体来说,以像素值较大的一侧为例,将最大值次大值的8个相邻像素、次大值本身和包含最大值次大值的最小边框矩形中的部分像素作为上下文像素,波动值定义为上下文像素集合中的最大值减去最小值除以像素个数。然而,对于粗糙块,由于仍然只有两个像素参与波动计算,改进相当有限。作为改进方案,文献[24]改进了上下文像素的定义,以消除不必要的相邻像素。以像素值较大的一侧为例,首先,选取所选块最大值的8个相邻像素,删除涉及到其他块的最大值最小值像素,保证了算法可逆性;此外,为了进一步改进,可对上下文像素求平均值,去除了与平均值偏差较大的像素,波动值定义为上下文像素的平均值与次大值差的绝对值。该算法消除了无效的上下文像素,提高了波动值计算的准确性。然而,由于上下文像素围绕扩展像素选取,所以该类方法对于较大的分块不能准确地评估波动性。而且,随着研究的进一步开展,现有的预测器可以在平滑块中嵌入更多的比特,平滑块内的像素需要更多的扩展,该算法仅适用于基础像素值排序算法。

3 算法流程

面向基于像素值排序的可逆信息隐藏算法,文中提出了一种高性能的优化块选择策略。该方法考虑了图像块内像素在水平、竖直、双斜对角4个方向的一致性,相比已有算法大大提高了所衡量图像块波动值的准确性。为了实现更好的不可感知性,进一步考虑了参与预测误差计算的像素之间的位置关系,优先在空间距离接近的像素对中嵌入数据。首先给出波动值计算的过程,然后在波动值的基础上根据扩展像素的切比雪夫距离进行二次判断筛选,最后给出基于优化块选择策略的嵌入和提取过程。

3.1 波动值计算

在文中所提的块选择策略的像素值排序算法中,首先需要选择上下文像素来计算每个分块的波动值。以一个分块为例,其内部像素在水平、竖直、双斜对角方向的一致性均反映了其波动性。在每个方向上,像素之间的一致性越强,块就越平滑。将图像分成n个大小相同、互不重叠的块,下面以图1所示的一个t×w的图像块为例,介绍上下文像素选取以及块波动值计算过程。该计算方法同样适用于其他大小的图像块。

图1 分块与上下文像素选取

黑粗框区域为需要计算波动值的t×w像素块,为了方便表达,中间省略的像素用…表示。使用其最外圈像素距离为2以内的部分像素点作为上下文像素来计算块波动值,在(t+4)×(w+4)的窗口框中,未使用到的像素点用×来表示。黑色单线圆圈表示水平方向利用到的上下文像素,黑色双线圆圈表示竖直方向利用到的上下文像素,黑色虚线圆圈表示双斜对角方向利用到的上下文像素。为了提升嵌入容量,用于计算块波动值的上下文像素会再次利用,在嵌入过程中按正序从左到右、从上到下扫描和处理块,而在提取过程中按逆序从下到上、从右到左扫描和处理块,以此保证算法的可逆性。

上下文像素包含围绕中心点集的两圈像素点x1,x2,…,x4w∪y1,y2,…,y4t∪z1,z2,…,z8。分别划分为水平组、竖直组和双斜对角组。在每个方向上,相邻上下文像素点差值反映像素的局部同质性[27]。然而,对于较大的分块,仅使用局部同质性并不能全面地评估像素块的波动性。因此,基于局部相邻上下文像素的差异,计算同一方向上所有上下文像素的一致性,并由此定义块的波动值。同时,对于距离像素块最近一行和一列的像素,也将其作为波动值计算的一部分。

对水平方向,定义局部波动值Hi(i∈[1,w])如下:

(1)

其中,x1,x2,…,x4w表示分块水平方向的上下文像素。

像素块在水平方向的全局波动值定义为

(2)

对竖直方向,定义局部波动值Vi(i∈[1,t])如下:

(3)

其中,y1,y2,…,y4t表示分块竖直方向的上下文像素。

像素块在竖直方向的全局波动值定义为

(4)

对双斜对角方向,定义局部波动值Oi(i∈[1,2])如下:

(5)

其中,z1,z2,…,z8表示分块双斜对角方向的上下文像素。

像素块在双斜对角方向的全局波动值定义为

LO=O1+O2。

(6)

距离目标块外圈像素距离为1的每两个连续像素之间差的绝对值之和定义为c,即

(7)

像素块的波动值L定义如下:

L=LH+LV+LO+c。

(8)

计算出像素块的波动值后,可通过设定阈值对平滑块开展筛选。筛选出的平滑像素块与文中提出的空间位置筛选算法结合,优先选择波动小的块来嵌入信息,以减少潜在的无效平移。

3.2 空间位置筛选平滑块

现有的基于块选择的像素值排序算法在数据嵌入的过程中仅通过块波动值来判断数据是否可嵌入,没有考虑块内最大值与次大值和最小值与次小值的空间位置关系。对于较大的分块或者长宽不均匀的分块,若用于参与扩展计算的像素空间位置相关性较弱,即使相应的块波动值较小,在实际嵌入过程中,也仍然可能导致无效平移,从而降低秘密信息嵌入的不可感知性。基于上述的问题,应进一步判断最大值与次大值和最小值与次小值的像素空间位置,具体方法如下。

在节3.1计算块波动值时考虑了双斜对角方向的像素一致性,所以对于某一个像素点,其在水平、竖直、双斜对角方向的邻接像素空间位置都应该被定义为1,因此像素空间位置的距离不能简单地通过直线距离或者曼哈顿距离来计算。与中心像素点距离为1的8个邻接像素点如图2所示。

图2 与中心像素距离为1的8个邻接像素点

为了解决这个问题,使用切比雪夫距离来定义像素空间位置距离,在数学上也称为棋盘距离。根据波动值划分完平滑块和粗糙块后,记录平滑块内最大值、次大值像素和最小值、次小值像素所在的空间位置。记最大值、次大值像素分别对应点A(q1,r1)、B(q2,r2),切比雪夫距离为dmax。记最小值、次小值像素分别对应点C(q3,r3)、D(q4,r4),切比雪夫距离为dmin。则根据切比雪夫公式分别可得像素间的距离为

dmax=max(|q1-q2|,|r1-r2|) ,

(9)

dmin=max(|q3-q4|,|r3-r4|) 。

(10)

为了既能筛选掉不适合扩展的预测误差对又能保证嵌入容量,对于一个t×w的块,定义像素空间距离阈值为D,将其与切比雪夫距离dmax、dmin进行比较,做进一步的嵌入判断。阈值D可表示为

D=max(t,w)-1 。

(11)

为了在保证嵌入容量的同时筛选掉不适合扩展的像素,如果最大值与次大值的切比雪夫距离dmax和最小值与次小值的切比雪夫距离dmin都大于等于D,则即使此块波动值很小,也不考虑进行扩展嵌入。特别注意的是,当分块大小为2×2时,不考虑位置筛选,因为块内的4个像素互相距离都为1,没有远近之分。

为了更清晰地说明文中算法,取一个5×2的块为例,具体样例如图3所示。

(a) 两对像素空间位置距离都过大

对于图3(a),按照从左到右、从上到下的顺序扫描像素,可得序列{85,77,81,82,82,80,81,80,79,83},从大到小排序后可得序列{85,83,82,82,81,81,80,80,79,77}。通过切比雪夫距离公式可得dmax=4,dmin=4,说明该块扩展像素距离过远,由相邻像素的一致性可得,其并不适合扩展嵌入。对于图3(b),按照从左到右、从上到下的顺序扫描像素,可得序列{85,83,83,82,83,81,82,80,84,84},从大到小排序后可得序列{85,84,84,83,83,83,82,82,81,80}。通过切比雪夫距离公式可得dmax=4,dmin=1,虽然最大值与次大值距离较远,但整体来看,块内的波动性不大,适合扩展嵌入。

3.3 自适应选择最佳分块

首先,将图像划分为m个大小相同且互不重叠的块,块内n个像素值从小到大排序后表示为xσ(1)≤xσ(2)≤…≤xσ(n-1)≤xσ(n),如果xσ(u)=xσ(v)并且u

对于不同的图像,或同一图像下不同的嵌入容量,固定的分块会限制算法的最优解。比如纹理平滑的图像在低嵌入容量下更适应较大的分块,一方面更多的上下文像素参与到块的波动值计算,另一方面切比雪夫距离的评估也更加准确。相反,对于纹理复杂的图像,小的分块可以保证更大的嵌入容量。自适应选择最佳分块的算法可用伪代码描述如算法1所示。

算法1自适应选择最佳分块算法。

使用穷举方法罗列每种分块大小的可能:

size_set=[] 存储不同分块

a,b=2,5 设置每个分块边的最小值和最大值(只能在2~5之间取)

foriin range(a,b+1):

forjin range(a,b+1):

size_set.append((i,j)) 将不同的分块存入size_set

best_para={} psnr最大时的分块参数(阈值和大小)

比较不同分块结果:

for item in res: 遍历结果

if not item[0]:

比较生成的结果,得到的结果比当前max_psnr大则更改相应参数

if item[1][′psnr′] > max_psnr:

max_psnr=item[1][′psnr′]

best_para[′T′]=item[1][′T′]

best_para[′size′]=item[1][′size′]

best_para[′psnr′]=′%.3f′ % max_psnr 取3位小数

print(best_para) 输出最合适的参数结果。

3.4 数据的嵌入

图4是所提出的基于优化块选择策略的可逆数据隐藏算法的图示。从流程图可以看出,该框架由两个模块组成:数据嵌入模块和数据提取模块。以嵌入为例,它可以进一步分为4个部分:图像分割和上下文像素选择、波动值计算、块选择、秘密数据嵌入。具体嵌入过程将在下面进行详细介绍。

图4 方法框图

步骤1 预测误差扩展。首先,按照节3.3的方法对图像分割并计算块的波动值。计算完波动值后,对低于波动值阈值的块进行预测误差扩展,预测误差可表示为

emax=xσ(n)-xσ(n-1),

(12)

emin=xσ(1)-xσ(2),

(13)

其中,xσ(n)表示分块中的最大值,xσ(n-1)表示分块中的次大值,xσ(1)表示分块中的最小值,xσ(2)表示分块中的次小值。

步骤2 溢出分析与辅助信息嵌入。为了防止255或0像素值上溢或下溢,可通过找出可能下溢或上溢的像素,并在位置图中标出它们的位置。若像素块内最大值像素为 255,将其减1并使用位置图将该像素标记为1。若像素块内最小值像素为 0,将其加1并使用位置图将该像素标记为1,其他非溢出点标记为0。辅助信息由位数(5 bit)、溢出点位置图长度(18 bit)、最后嵌入块的索引(16 bit)及其嵌入容量(1 bit)、分块大小(4 bit)、q个阈值(q×10 bit)组成。利用LSB(Least Significant Bits)方法将辅助信息作为嵌入的一部分嵌入到载体图像第1行的最低有效位。

步骤3 秘密信息嵌入。为了在达到最大容量之前实现较高的不可感知性,优先选择波动值小于的块进行嵌入,同时利用切比雪夫距离对需要进行成对扩展的像素点进行判断,确定最终的扩展像素。特别的是,位置图中标记为1的像素不进行考虑。剩余的像素,可表示为

(14)

如果emax=1,则通过预测误差扩展,将一个秘密比特b∈{0,1}嵌入到块的最大像素中;如果emax>1,则最大像素增加1。

另一侧,可表示为

(15)

如果emin=-1,则通过预测误差扩展,将一个秘密比特b∈{0,1}嵌入到块的最小像素中;否则,如果emin<-1,则最小像素减小1。

3.5 数据的提取和图像恢复

如框架图4所示,在接收端的步骤与嵌入相反,详细步骤如下。

步骤1 辅助信息提取。首先利用LSB方法提取载体图像第1行像素的最低有效位,以获得辅助信息。然后根据辅助信息确定分块的大小、阈值等参数。

(16)

所示的规则,提取一个秘密位。最后,通过

(17)

恢复最大的像素。

(18)

最后,通过

(19)

恢复最大的像素。

4 实验结果

通过实验来验证所提方案的有效性并评估其性能。采用了一台inter Core i5-6500 CPU @ 3.20 GHz、16 GB RAM和1 TB硬盘驱动器的工作站,所有算法都使用Python 3.7版本实现。从USC-SIPI 图像数据库[28]选取6张512×512的灰度图Lena、Baboon、Clock、Airplane、Lake、Sand进行实验,分别如图5所示。

(a) Lena

4.1 可逆性验证

首先通过可逆性验证检查算法的正确性。以图6(a)Lena图为例,具体来说,通过判断原始图像与恢复后的图像是否相同来决定算法是否可逆。嵌入10 000个随机生成的秘密比特以获得一个隐藏图像,如图6(b)所示。对图6(a)和图6(b)进行异或运算,结果如图6(c)所示,表明已经成功嵌入秘密比特。

(a) 原始图像

嵌入提取过程按照像素块扫描顺序正序嵌入、逆序提取,参与波动值计算的像素实际上没有改变,因此得到的序列与嵌入前的序列相同。可使用相同的比较过程找出提取秘密比特的具体位置,提取完10 000位秘密比特后,可以获得恢复的图像。图7(a)和图7(b)为原始图像和恢复后的图像,对原始图像和恢复图像进行异或运算如图7(c)所示。根据异或运算原理,可以推断出恢复后的图像与原始图像完全一致。因此,验证了算法的可逆性。

(a) 原始图像

4.2 固定嵌入容量下不可感知性对比

为了评估该算法在视觉质量和嵌入容量方面的性能,比较在相同嵌入容量下的峰值信噪比。分别与文献[13]、文献[20]、文献[23]、文献[24]4种经典或最新的方案进行了比较。这4种方案都是属于基于块选择改进的方案且嵌入方式相同,按照其最优的参数复现并与文中的方案进行对比,所有的结果都是平均20次尝试的结果。

为了更好地比较算法的不可感知性,在考虑图像最大嵌入容量后,在固定嵌入容量下对6副图片的峰值信噪比进行比较。表1显示了在10 000比特的嵌入容量下,文中算法与其他几种算法峰值信噪比数值的对比。

表1 10 000比特嵌入容量下峰值信噪比对比 dB

从表1可以看出,在10 000比特的嵌入容量下,提出的方法在Lena、Baboon、Clock、Airplane、Lake、Sand图像上都产生了令人满意的性能。对于纹理平滑图像,以Airplane为例,文中方案峰值信噪比约为63.308 dB,分别约高于文献[13]1.281 dB、文献[20]0.084 dB、文献[23] 0.291 dB、文献[24]1.839 dB。对于纹理复杂图像Baboon,所提出的方法比上述4种方法更有效。此外,文中提出的方案6副图像的峰值信噪比分别约为60.660 dB、54.431 dB、65.175 dB、63.308 dB、59.304 dB、54.818 dB;文中算法的平均峰值信噪比约为59.616 dB,分别约领先文献[13]0.666 dB、文献[20]0.232 dB、文献[23] 0.175 dB、文献[24]1.129 dB。由此可见,文中算法具有更好的性能。

4.3 不同嵌入容量不可感知性的对比

为了更好地体现文中框架的优越性,根据图像本身的特点对于不同的嵌入容量设定不同的分块大小和阈值空间。分别比较了这4种算法与文中算法在不同嵌入容量下的峰值信噪比,结果如图8所示。

(a) Lean

从图8中可清楚地看出,随着嵌入容量的不断增加,文中算法的峰值信噪比数值在大多数情况下都超过了目前最先进的方法。以测试图像Clock为例,在5 000、10 000、15 000位的嵌入容量下,文中方案的峰值信噪比分别约为68.232 dB、65.175 dB、63.299 dB,明显优于其他方案。究其原因,在PVO方案中,只选取了块内的两个像素点来计算波动值,这是非常不准确的。在文献[23-24]的方案中,仅仅将波动性局限于从局部的区域选取上下文像素,同时只针对最大值次大值或者最小值次小值附近的像素,非常有限。在文献[20]的方案中,仅仅考虑了像素块右邻域和下邻域的像素,虽然使用标准差更精确,但很多左邻域和上邻域相关性高的像素被忽略。作为对比,文中提出的方案不仅保证了参与波动值计算的像素个数与准确性,而且将同一方向上的上下文像素进行二次运算,提高了算法性能。同时,考虑了像素的空间位置,在波动值筛选后,利用切比雪夫距离公式对扩展像素之间的空间位置进一步判断筛选,有效地减少了无效平移。因此,文中方案实际上实现了较好的不可感知性。

5 结束语

笔者提出了一种基于优化块选择策略的高性能可逆信息隐藏算法。首先,改进了波动性的现有定义,同时考虑了块外沿水平、竖直和双斜对角方向的一致性;其次,考虑了像素块内扩展像素的空间位置关系,使用波动值区分分块波动性后通过切比雪夫距离公式筛选掉不适合扩展的像素块。实验结果表明,在所设计的波动值计算公式和像素空间位置判断的帮助下,文中提出的方案提高了算法的性能,实现了较好的不可感知性。

猜你喜欢
分块邻域波动
稀疏图平方图的染色数上界
分块矩阵在线性代数中的应用
羊肉价回稳 后期不会大幅波动
微风里优美地波动
2019年国内外油价或将波动加剧
基于邻域竞赛的多目标优化算法
干湿法SO2排放波动对比及分析
关于-型邻域空间
反三角分块矩阵Drazin逆新的表示
基于自适应中值滤波的分块压缩感知人脸识别