system: [SYSTEM]

user: 3. 基于调色板冗余颜色索引匹配的混合进制信息隐藏算法 本文算法是一种混合多进制的信息隐藏算法，其核心是先根据颜色相似原则将调色板有效颜色索引分为若干组相似颜色索引子集S i ，再将冗余颜色索引以嵌入容量增量最大的原则，将各冗余颜色索引逐个分配到S i 中，并修改冗余颜色索引的颜色分量值。在嵌入信息时，先根据调色板索引分组内的颜色索引数目将秘密信息文件进行混合多进制转换，并采取分组嵌入的方式，将文件逐组嵌入到每组颜色索引图像数据中。 3.1. 调色板有效颜色索引分组 本文对调色板颜色索引分组的依据是根据调色板索引颜色间的色差，具体表示为颜色的欧式距离差DL式(3-1)与亮度差DY式(3-2)，其中以亮度距离为主，欧氏距离为辅。由式(3-2)可知，在计算两颜色间的亮度距离时，各颜色分量分别乘上了一个不同的权值系数，必然会使得色差较大的颜色具有相似的亮度，使得两者间的亮度距离极小。为了解决这一问题，本文在衡量色差时，还引入了欧式距离作为亮度距离的补充约束条件，即只有当两颜色间亮度距离较小且欧氏距离满足条件的情况下，才符合分组条件。在判定索引颜色相似度时，对于各索引之间的DY与DL，分别设立了一个亮度距离阈值Dd-Y与欧式距离阈值Dd-L，若DY[i][j] ≤ Dd-Y且DL[i][j] ≤ Dd-L，则判定索引P i 与P j 间颜色相似度较高，可以视为一组相似颜色索引。根据人眼视觉特性，当被观察对象亮度Y发生改变时，人眼并不能立即察觉到，只有当亮度变化到一定值Y + ΔY时，人眼才会察觉到亮度的变化。由韦伯定律可知，在常用的背景亮度变化范围内，对比灵敏度ΔY /Y ≈ 0.22，且变化较小，基于此，本文选定亮度距离阈值Dd-Y = 0.2 * DY。欧氏距离作为亮度距离的补充约束条件，原则上取值越小越精确，但综合考虑嵌入容量与嵌入安全性，将其取值设为亮度距离阈值的一半，即Dd-L = 0.1 * DL。 (3-1) (3-2) 在分组前，先统计调色板Map (256*3)中各颜色索引在图像数据中的频次F i ，则F i = 0的颜色索引为冗余颜色索引，否则为有效颜色索引。取出Map中的有效颜色索引，计为M个，存入Map 0 (M*3)。对调色板Map 0 按颜色向量P i (R i ， G i ， B i )的模 (式3-3)从小到大的顺序依次排序，得到Map 1 (M*4)。局部调整Map 1 中颜色索引顺序，得到Map 2 (M*4)。其中，Map 1 和Map 2 中第0列存储该颜色索引在原始调色板Map的序号，第1至3列则存储该索引的颜色分量值。 (3-3) 排序后，根据Map 2 中各颜色索引间的亮度距离与欧氏距离，构建调色板有效颜色索引相似颜色索引矩阵DD-U (M*M)。当且仅当DY[i][j] ≤ Dd-Y且DL[i][j] ≤ Dd-L时，DD − U[i][j] = 1，表示两索引颜色间色差较小；否则DD − U[i][j] = 0，表示两索引色差较大。显而易见的是，颜色索引替换矩阵DD-U中主对角线上的元素的值均为1，且矩阵为对称矩阵，即DD − U[i][i] = 1，且DD − U[i][j] = DD − U[j][i]。分组时，以矩阵DD-U中第i − 1行、第i列元素DD-U[i − 1][i]的值为标准对颜色索引分组分组，当DD − U[i − 1][i] = 0时，则前i个颜色索引即为一组相似颜色索引。 综上所述，调色板有效颜色索引分组详细步骤如下所示： 1) 取出原始调色板Map中的有效颜色索引并存入Map 0 ，根据各索引颜色向量额模按从小到大的顺序依次排序，存入Map 1 。 2) 从Map1中模最小的索引开始，遍历Map 1 ，将满足条件(DL < Dd_L)的颜色索引按欧氏距离DL从小大大的顺序依次排序，存入Map 2 ； 3) 对调色板Map 1 中剩下的颜色索引，按步骤2)的方式继续排序，直至结束。 (4) 根据Map 2 中各索引颜色间的欧式距离与亮度距离，构建相似颜色索引矩阵DD-U; 5) 从i = 0开始，当DD−U[i 1 − 1][i 1 ] = 0时，则第零组分组结束，组内的索引为Map (Map 2 [ 0 ][ 0 ])， Map (Map 2 [ 1 ][ 0 ])， ∙∙∙， Map (Map 2 [i 1 − 1][ 0 ])； 6) 接下来从i 1 开始，当DD−U[i 2 − 1][i 2 ] = 0时，则第一次分组结束，组内的索引为：Map (Map 2 [i 1 ][ 0 ])， Map (Map 2 [i 1 + 1][ 0 ])， ∙∙∙， Map (Map 2 [i 2 − 1][ 0 ])； 7) 重复步骤6)，直至i z = M，调色板有效颜色索引分组结束。 3.2. 调色板冗余颜色索引分配 由上文可知，调色板有效颜色索引共被分为z组，每一组内含有的颜色索引数目k i 分别为：i 1 ， (i 2 − i 1 )， (i 3 − i 2 )， ∙∙∙， (i z − i (z − 1) )。对于分组后的调色板有效颜色索引，我们以索引子集S i 中的索引数目k i 为进制数，假定用k i 进制表示0xFF所需的最短码长为 ，则该组索引的隐写容量(以字节为单位) Num i 为： (3-4) 其中，N i 为每组索引在图像数据中出现的总频次；floor为向下取整函数，作用是向下舍入，即取不大于 的最大整数； 由上式(3-4)可知，每组颜色索引子集的嵌入容量Num i 仅与该组索引的总频次N i 及码长 有关。组内颜色索引数目越多，即k i 越大，则该组索引的总频次N i 越大，且 越小，故该组隐写容量Num i 越大。为每组颜色索引子集分配冗余颜色索引，即是增大每组颜色索引子集中的颜色索引数目k i ，此时，组内颜色索引的总频次N i 保持不变，而该组的最短码长 变短，因此该组隐写容量Num i 会变大。假定将一个冗余颜色索引分配给颜色索引子集S i ，则第i组索引的隐写容量增量ΔC i 如下式所示： (3-5) 当ΔC i 最大时，意味着将一个冗余颜色索引分到第i组，增加的嵌入容量最大。相应地，对于所有的冗余颜色索引，若均以这种方式进行分配，则图片总的隐写容量达到最大值。基于这一原理，本文设计了一种冗余颜色索引最优分配方案。该方案以单个冗余颜色索引对嵌入容量的增量为原则，将各冗余颜色索引依次分配到各组颜色索引子集中，使图片嵌入容量达到最大值。具体步骤如下所示： 1) 对于有效颜色索引，根据分组后的结果，计算每组增加一个索引时，该组增加的嵌入容量ΔC i ； 2) 比较各组的嵌入容量增量ΔC i ，若各组的ΔC i 相等，则将一个冗余索引Q x 分配给N i 最大的一组；否则找出ΔC i 最大的一组，并将一个冗余索引Q x 分配到该组； 3) 修改该冗余索引Q x 的颜色分量值。将Q x 的R、G、B修改为该组索引中频次最高的索引P i 的R、G、B值，并对某个颜色分量值加1。 4) 重新计算各组的容量增量ΔC i ，重复步骤2) 3)，直至冗余索引分配完毕。 3.3. 信息嵌入 分配并修改后的冗余颜色索引与有效颜色索引则构成了隐秘图像的调色板，假定SS i 为分配好冗余颜色索引后的颜色索引子集，则SS i 即为隐秘图像调色板相近颜色索引子集。且SS i 中颜色索引的数目kk i 为S i 中有效颜色索引数目k i 与分配的冗余颜色索引数目q i 之和。此时，每组的隐写容量Num i 为： (3-6) 在嵌入信息前，先为子集S i 中的k i 个颜色索引分别分配一个不同的P值0， 1， 2， 3， ∙∙∙， (kk i − 1)，以表征k i 进制的不同信息位。然后根据根据颜色索引与P值的对应关系，构建P值与索引值的对应关系表，其中，每一行即为一组颜色索引子集中的各颜色索引，每一列则为各组中P值相同的颜色索引。此外，为了保证接收方能准确恢复分组，发送方在嵌入信息时，还需要标出冗余索引的位置，即先将冗余索引标号顺序嵌入到图像数据中；再将秘密信息以分组嵌入的方式嵌入进剩余图像数据中。具体步骤如下所示: 1) 将冗余索引依次转换为二进制，以OPA算法嵌入图像数据的前半段。 a) 以各颜色向量的模对调色板颜色索引排序，并从模最小的颜色索引开始，找出与其欧氏距离最小的颜色索引，则这两个颜色索引即为一组，且分别表示信息位0和1。 b) 在调色板剩余颜色索引中，取出模最小的颜色索引及与之欧氏距离最小的颜色索引并分为一组，同样的组内的两个颜色索引分别表示信息位0和1，直至调色板颜色索引分组结束。 c) 将冗余索引信息转换成二进制码流，若当前信息比特与像素点颜色索引值对应的信息位相同，则保持不变并执行下一个信息比特的嵌入；否则将其修改为组内另一个颜色索引值。 2) 从第零组开始，kk 0 > 1，则先从剩余图像数据中依次取出所有属于第0组的索引，总数为N i ，但只有前Len[kk 0 ]*Num 0 个索引承载信息。 3) 取出Num 0 字节文件并转换成kk 0 进制的码流，码流长度为Len[kk 0 ]*Num 0 ，并按照顺序嵌入的方式将其嵌入第0组图像数据中。 4) 嵌入时，对照信息与索引的对应关系表，若当前索引承载的信息位与当前文件码字信息相同，则不做修改，并继续下一次嵌入；否则，将当前索引替换成当前文件码字信息在表中与第零组相对应的索引。 5) 重复步骤2)、3)、4)，直至所有秘密文件全部嵌入图像数据中。 6) 恢复图像数据。将按组取出的索引系数按原位置插入图像数据矩阵。 7) 压缩图像数据，生成隐秘图像。 3.4. 信息提取 提取信息步骤与嵌入类似，都要经过有效颜色索引分组，冗余颜色索引分配以获取隐秘图像调色板相近颜色索引子集SS i 。不同的是，隐秘图像调色板中的颜色索引无法直接区分，必须从前半段隐秘图像数据中提取冗余颜色索引信息以获取有效颜色索引并分组。具体步骤如下所示： 1) 先以OPA算法提取前半段图像数据中嵌入的冗余颜色索引信息，并从调色板中取出剩余颜色索引，则这些颜色索引即为原始图像中的有效颜色索引； 2) 以同样的分组算法，对原始图像中的调色板有效颜色索引进行分组，得到有效颜色索引的相近颜色索引子集S i ； 3) 逐个将冗余索引与每个有效颜色索引对比，并将该冗余颜色索引分配到与该冗余索引颜色最接近的颜色索引所在子集S i 中，得到隐秘图像调色板相近颜色索引子集SS i ； 4) 为SS i 中kk i 个颜色索引分配P值，构建颜色索引与信息位的对应关系表，并根据隐秘图像调色板分组结果SS i 从隐秘图像中分组取出图像数据； 5) 据信息位与颜色索引值的对应关系表，将每组图像数据分别译成相应的多进制码流并转换至十进制，即可完成秘密信息的提取。