用于缩放和旋转攻击的级联码水印方法
摘要
我们提出了一种基于级联码的水印方法,并依据IHC评估准则对该方法进行了评估。这些准则包括将JPEG压缩、剪切、缩放和旋转作为攻击手段。为了提高消息的鲁棒性,我们引入了级联码,因其在对抗JPEG压缩时具有较强的纠错能力以解码消息。当从隐写图像中裁剪出某一区域时,水印的位置可能变得不明确。因此,在隐写图像中嵌入了标记或同步码。由于缩放会导致像素丢失,旋转会引起失真,因此将水印嵌入到缩小图像中。采用量化索引调制技术进行水印的嵌入与提取,且无需原始图像。结果表明,本方法在最高图像质量基础上得到评估,峰值信噪比平均达到 36.250 dB。此外,本方法在最高容忍度基础上进行评估,能够在无错误的情况下实现平均压缩比2.633%。
关键词 :数字水印 · Concatenated码 · BCH code · LDPC码 · Information隐藏准则
1 引言
数字水印技术是一种将标记嵌入到静态图像、视频和音乐等数字内容中的技术。嵌入了水印的图像称为隐写图像。隐写图像可能会因压缩、格式转换、剪切、缩放或旋转而质量下降。然而,仍应能够从这种受损的图像中解码出水印。为此,应当增强水印的嵌入强度或使用纠错码。但同时应尽可能保持隐写图像的图像质量。当水印被强烈嵌入时,视觉效果可能会变差;而使用纠错码时,嵌入信息的码字长度在比特长度上会增加,可能导致图像质量下降。换句话说,水印的图像质量与鲁棒性之间存在权衡关系。
容差和图像质量评估由信息隐藏准则(IHC)[1]委员会定义。这些准则定义了图像质量通过峰值信噪比(PSNR)进行衡量,且PSNR应超过30 dB。标准还定义了对隐写图像的攻击。这些攻击通过JPEG压缩、剪切、缩放和旋转来实施。由于 JPEG压缩,水印也会受到损坏。在裁剪后的隐写图像中,水印会失去同步,即水印的位置变得不明确。诸如缩放和旋转之类的几何攻击可能会使水印无法检测,因为坐标轴发生了变化。
提出了一种结合低密度奇偶校验(LDPC)[2–4]码以对抗JPEG压缩和剪切攻击的方法[5]。LDPC码可通过使用低密度奇偶校验矩阵对消息进行编码,具有很强的纠错能力。在他们的方法中,[5],水印通过LDPC码从消息生成,并被重复嵌入图像中。为了从失真图像中解码消息,可通过多数表决对提取的水印错误进行粗略纠正。此外,利用LDPC码可几乎完全纠正所有错误。由于需要抵抗JPEG压缩,水印被嵌入到二维离散余弦变换(DCT)系数中。水印采用量化索引调制(QIM)[6],进行嵌入,该方法可在无需访问原始图像的情况下提取水印。为了实现水印的同步,还在图像中嵌入了标记或同步码。
在他们提出的方法[5],基础上,我们提出了一种不仅能够抵抗JPEG压缩和剪切,还能容忍缩放和旋转攻击的方法。在缩小图像中会丢失一些像素。如果水印的一部分位于丢失的像素上,则无法正确提取水印。当隐写图像被放大时,提取出的水印误差较小。因此,我们提出一种在嵌入水印之前先对原始图像进行预缩减的方法。我们将此过程称为预缩减。
隐写图像的旋转会导致像素变得不整齐,从而引起像素值的变化。由于靠近旋转中心处发生对齐错误的概率小于远离中心的位置,因此较小的图像更适合水印嵌入,预缩减方法因而有效。此外,我们还引入了级联码[7,8],因为缩放和旋转攻击会引发大量错误。级联码通过使用两种不同的纠错码来实现强大的纠错能力,广泛应用于通信信道中。在欧洲数字地面广播[8],中,已实际应用了由BCH[9,10]码和LDPC码构成的级联码。其中,BCH码对随机误差具有较强的鲁棒性,能够纠正限定数量内的错误;LDPC码是一种随机码,能够大致纠正大量错误。因此,LDPC码先将大量错误减少为少量错误,随后由 BCH码对残留误差进行纠正。
让我们定义本文中使用的术语。在IHC评估标准[1]中,“水印”一词的含义包括消息和嵌入信息。消息是需要发送的信息,而嵌入信息是经过编码的消息。在本文中,由于我们使用了纠错码,因此区分了消息和嵌入信息。此外,我们将嵌入信息称为水印。因此,消息长度,即IHC中描述的水印信息量,为200比特。注意,我们对水印和码字采用列向量表示法,而不是编码理论中常用的行向量表示法。
2 提出的方法
在IHC评估标准中,原始图像的尺寸为 4608×3456像素。消息长度,即水印信息量,为200比特。对隐写图像的攻击采用JPEG压缩、剪切、缩放和旋转。从每个隐写图像中裁剪出十个高清电视尺寸区域,即 1920 × 1080像素,并从剪切矩形中解码原始消息。当前标准中已知缩放因子和旋转角度。因此,我们将通过使用逆变换从恢复的图像中解码消息。
2.1 嵌入过程
图1显示了编码与嵌入过程。首先,由于需要容忍缩放和旋转攻击,原始图像在嵌入水印之前会预先缩小。由于IHC评估标准假设缩放比例为70,90,110,和 130%,我们选择了最小的比例70%。因此,70%缩小后的YUV图像的 Y分量被划分为 167×93个块段,如图2所示。此外,每个段进一步划分为 8×8个像素块。每个块通过二维离散余弦变换(DCT)进行变换。由于JPEG压缩,水印和标记将使用量化索引调制(QIM)嵌入到低频部分。由于在裁剪区域中没有关于嵌入位置的信息,每个水印比特被嵌入到DCT域中的固定位置[11]。我们还选择了DCT域中的(1,1)位置进行嵌入。
嵌入各种同步码或标记以与水印一起实现对剪切攻击的同步[12,13]。标记按图2所示的网格模式嵌入。每个标记的值为一。
嵌入标记后,水印被嵌入到水印区域中,如图2所示。由于受到不同攻击的影响,提取出的水印存在错误。因此,为了从提取的水印中解码出消息,我们引入了一种采用BCH [9,10]和LDPC [8]码的级联码。如图3所示,消息首先由外编码器中的BCH码进行编码,然后将编码后的消息(即外码字)在内编码器中由LDPC码再次编码。最终得到的内码字作为水印。
详细来说,通过BCH码,一个 K比特的消息 ξ被编码成一个外码字,
$$
\text{cout} = (\xi^T \mid (p_{\text{BCH}})^T)^T,
$$
其中 $ p_{\text{BCH}} $ 是BCH码中的校验位, $ \xi_i \in {0, 1}, i= 1,2,\cdots, K $, $ \text{cout} j \in {0, 1}, j= 1,2,\cdots, N {\text{BCH}} $, $ p_{\text{BCH},j} \in {0, 1}, j= 1,2,\cdots, N_{\text{BCH}} - K $,且 $ N_{\text{BCH}} $ 是cout的码字长度。通过LDPC码,外码字cout被编码为内码字,
$$
\text{cin} = ((\text{cout})^T \mid (p_{\text{LDPC}})^T)^T,
$$
其中 $ p_{\text{LDPC}} $ 是LDPC码中的一个校验位, $ \text{cin} k \in {0, 1}, k= 1,2,\cdots, N {\text{LDPC}} $, $ p_{\text{LDPC},k} \in {0, 1}, k= 1, 2,\cdots, N_{\text{LDPC}}−N_{\text{BCH}} $,且 $ N_{\text{LDPC}} $ 是cin的码字长度。水印 w 由内码字cin和校验位s组成,即 $ w = [s^T \mid (\text{cin})^T]^T $。校验比特被 B比特。因此, $ B+N_{\text{LDPC}} $ 比特水印被嵌入到水印区域中。每个段包含五个水印区域,如图2所示。每个水印区域是一个边长为 $ \ell $ 的正方形,其中
$$
\ell = \lceil \sqrt{B + N_{\text{LDPC}}} \rceil,
$$
其中 $ \lceil x \rceil $ 表示向上取整函数,该函数返回大于 x 的最小整数。
QIM用于嵌入水印和标记。当嵌入水印或标记的一比特 $ w \in {0, 1} $ 时,修改后的DCT系数C′由以下公式给出
$$
C’ = 2\Delta \left( \left\lfloor \frac{2C}{\Delta} - \frac{w}{2} + 0.5 \right\rfloor + \frac{w}{2} \right),
$$
其中 C是原始DCT系数, $ \Delta $ 是量化步长。大小 $ \Delta $ 由编码器和解码器共享。$ \lfloor x \rfloor $ 表示向下取整函数,返回不大于 x 的最大整数。
我们注意到存在一种例外情况。当像素值接近255,即颜色为白色时,嵌入水印或标记后的像素值可能会超过255。因此,我们针对以下条件引入一个例外处理。设一个块中的像素值为 $ P_{ij} , i= 0,1,\cdots,7, j= 0,1,\cdots,7 $。当该块中像素值的平均值
$$
\text{AVE} = \frac{1}{8 \times 8} \sum_{i=0}^{7} \sum_{j=0}^{7} P_{ij},
$$
接近 255 或 0 时,该块中的所有像素值都将被修改为
$$
\tilde{P}
{ij} =
\begin{cases}
P
{ij} - 5, & \text{AVE} \geq 253 \
P_{ij} + 5, & \text{AVE} \leq 2 \
P_{ij}, & \text{others}
\end{cases}.
$$
2.2 提取过程
图4展示了从 1920 × 1080像素的裁剪图像中进行解码的过程。首先,将裁剪图像调整为其原始大小的70%。存在 8×8个水印区域候选。调整大小后的图像被划分为 8 × 8像素块。所有块通过二维离散余弦变换转换到频域。为了实现区域同步,从调整大小后的图像中检测嵌入标记。由于所有标记的值均为1,因此在行和列中具有最大标记候选值之和的位置即为标记位置。当检测到标记位置后,段中的块将如图5所示进行交换。标记行和标记列分别被排列至顶部和左侧。
同步后,通过QIM从水印区域̂提取水印。设一个DCT系数的值为 C。水印 w 的提取值由下式给出
$$
w = \left\lfloor \frac{| \hat{C} |}{\Delta} + 0.5 \right\rfloor \mod 2.
$$
一个段中有五个水印区域。从每个区域中提取出 $ B + N_{\text{LDPC}} $ 比特水印 $ \tilde{w} $。第 μ个水印 $ \tilde{w} \mu = ((\tilde{s} \mu)^T \mid (\tilde{c} {\text{in},\mu})^T)^T $ 由提取的校验比特 $ \tilde{s} \mu $ 和提取的内码字 $ \tilde{c}_{\text{in},\mu} $ 组成。由于存在
3 计算机仿真
3.1 竞赛流程
我们根据IHC评估标准通过计算机仿真评估了提出的方法 [1]。消息长度为 K = 200比特。用于生成消息的十个初始值和六张测试图像由IHC委员会提供。图6显示了IHC标准图像。每张图像的大小为 4608 × 3456像素。默认评估流程总结如下。
- 生成的水印被嵌入到原始图像中。
- 对于图像编码,执行第一次JPEG压缩,文件大小应小于 1/15原始尺寸。
- 对于初步压缩,执行第二次JPEG压缩,文件大小应小于 1/25原始尺寸。为了保持相同的压缩比,此处使用的质量因子(QF)将被保存。峰值信噪比(PSNR)应高于30 dB。图像质量还通过均方结构相似性(MSSIM)[15]进行评估。
- 对图像施加一种附加攻击,包括缩放、旋转或它们的组合。缩放比例为 $ s = {70, 90, 110, 130\%} $,旋转角度为 $ \theta = {3, 6, 9, 12^\circ} $,它们的组合为 $ (s, \theta) = {(90,3),(90,9),(110,3),(110,9)} $。这些参数需用于评估检查,并且解码器已知这些所用参数。
- 受攻击图像使用与初步压缩相同的QF进行压缩。
- 使用参数 s 和 θ 将受攻击图像归一化至原始尺寸和方向。
- 对每幅归一化图像,从图像中裁剪出十个 1920 × 1080矩形区域。
- 从矩形区域中提取水印,然后根据水印估计 K = 200比特消息。估计消息的正确性通过比特误码率(BER)来衡量。
有两个竞赛类别:最高容错性和最高图像质量。
–
最高容错性
:估计消息的误码率必须为 BER = 0。在六幅图像中实现最高压缩比者将获得最高容错性奖项。
–
最高图像质量
:每幅隐写图像的误码率必须小于或等于1.0%,最差情况下也应等于或小于2.0%。在所有图像中实现最高平均PSNR者将获得最高图像质量奖项。
3.2 结果
我们描述了用于评估的参数。原始消息 ξ 通过BCH码编码为外码字cout。该 K = 207比特消息由外码字进行编码。由于原始消息长度为 K = 200比特,因此用零填充7比特。当最小汉明距离至少为 d = 6时,码字长度变为 $ N_{\text{BCH}} = 255 $ 比特。外码字cout与 $ N_{\text{BCH}} = 255 $ 比特通过LDPC码编码为内码字 cin。内码字长度为 $ N_{\text{LDPC}} = 1012 $ 比特。我们使用了列重为3、行重为4的校验矩阵。校验位的长度为 B = 25比特。因此,水印的长度为1037比特,每边水印区域的长度为 $ \ell = 33 $。水印通过步长为 Δ = 40的量化索引调制嵌入到图像中。
我们在最高图像质量的基础上评估了我们的方法。表1显示了六幅IHC标准图像的平均压缩比、PSNR和MSSIM。第一次编码中的数值表示第一次 JPEG压缩后的值。在第二次JPEG压缩后,平均压缩比低于4.0%。对于图像质量,PSNR为36.250 dB,超过了30 dB的判据值。同时,MSSIM为0.933。各种攻击下的误码率如表2所示。共有十个矩形区域,表中数值为这十个区域的误码率。‘无攻击’表示仅执行了两次JPEG压缩,未进行缩放或旋转操作。‘缩放’或‘旋转’表示额外施加了缩放或旋转攻击。‘组合’表示同时施加了缩放和旋转攻击。我们的方法在所有攻击下均实现了零错误。
接下来,我们基于最高容错性评估了我们的方法。在误码率BER为= 0且图像质量PSNR超过30 dB的条件下,隐写图像被压缩到尽可能小。表3显示了最高容错性下的平均压缩比、图像质量PSNR和均方结构相似性MSSIM。注意PSNR超过 30 dB。所有图像的压缩比分别为:编号1为2.771 %(1/35),编号2为3.316 % (1/30),编号3为1.800 %(1/55),编号4为1.296 %(1/75),编号5为3.323 % (1/30),编号6为3.294 %(1/30)。我们的方法对JPEG压缩具有鲁棒性。
| 压缩比[%] 第一次编码 | 压缩比[%] 第二次编码 | PSNR [分贝] 第一次编码 | PSNR [分贝] 第二次编码 | 均方结构相似性 第一次编码 | 均方结构相似性 第二次编码 | |
|---|---|---|---|---|---|---|
| 平均值 | 6.535 | 3.967 | 37.854 | 36.250 | 0.954 | 0.933 |
表1. 平均压缩比、PSNR和MSSIM
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 无攻击 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 缩放 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 旋转 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 组合 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 平均值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
表2. 十种高清电视尺寸区域在附加攻击下的平均误码率(%)
| 压缩比[%] 第一次编码 | 压缩比[%] 第二次编码 | 峰值信噪比[分贝] 第一次编码 | 峰值信噪比[分贝] 第二次编码 | 均方结构相似性 第一次编码 | 均方结构相似性 第二次编码 | |
|---|---|---|---|---|---|---|
| 图像1 | 6.608 | 2.771 | 37.523 | 33.304 | 0.961 | 0.907 |
| 图像2 | 6.492 | 3.316 | 36.473 | 34.683 | 0.952 | 0.925 |
| 图像3 | 6.634 | 1.800 | 38.267 | 34.127 | 0.955 | 0.891 |
| 图像4 | 6.309 | 1.296 | 39.666 | 35.066 | 0.949 | 0.870 |
| 图像5 | 6.554 | 3.323 | 38.553 | 36.805 | 0.953 | 0.931 |
| 图像6 | 6.628 | 3.294 | 36.638 | 33.577 | 0.956 | 0.913 |
| 平均值 | 6.538 | 2.633 | 37.853 | 34.594 | 0.954 | 0.906 |
表3. 最高容错性的平均压缩比、峰值信噪比和均方结构相似性
4 结论
我们提出了一种方法,能够针对缩放、旋转及其组合攻击实现零比特误码率。缩放会导致像素丢失,旋转会引起失真,因此水印可能因这些攻击而被错误提取。在我们的方法中,原始图像预先缩小为原尺寸的70%。尽管如此,为了应对可能出现的错误,我们引入了级联码和多数投票机制。在级联码中,BCH码和LDPC码分别作为外码和内码。水印和标记区域在一个段中的布局是我们的原创设计,该布局会影响误码率性能。实验结果表明,对于所有攻击,本方法均实现了误码率= 0 ,当压缩比为1/25时,平均PSNR为36.250 dB。
26

被折叠的 条评论
为什么被折叠?



