基于级联码的鲁棒水印方法

用于缩放和旋转攻击的级联码水印方法

摘要

我们提出了一种基于级联码的水印方法,并依据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 嵌入过程

示意图0

图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所示的网格模式嵌入。每个标记的值为一。

示意图1

嵌入标记后,水印被嵌入到水印区域中,如图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像素。默认评估流程总结如下。

  1. 生成的水印被嵌入到原始图像中。
  2. 对于图像编码,执行第一次JPEG压缩,文件大小应小于 1/15原始尺寸。
  3. 对于初步压缩,执行第二次JPEG压缩,文件大小应小于 1/25原始尺寸。为了保持相同的压缩比,此处使用的质量因子(QF)将被保存。峰值信噪比(PSNR)应高于30 dB。图像质量还通过均方结构相似性(MSSIM)[15]进行评估。
  4. 对图像施加一种附加攻击,包括缩放、旋转或它们的组合。缩放比例为 $ s = {70, 90, 110, 130\%} $,旋转角度为 $ \theta = {3, 6, 9, 12^\circ} $,它们的组合为 $ (s, \theta) = {(90,3),(90,9),(110,3),(110,9)} $。这些参数需用于评估检查,并且解码器已知这些所用参数。
  5. 受攻击图像使用与初步压缩相同的QF进行压缩。
  6. 使用参数 s 和 θ 将受攻击图像归一化至原始尺寸和方向。
  7. 对每幅归一化图像,从图像中裁剪出十个 1920 × 1080矩形区域。
  8. 从矩形区域中提取水印,然后根据水印估计 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。

【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)内容概要:本文研究了一种基于机器学习(ML)和离散小波变换(DWT)的电能质量扰动分类方法,并提供了Matlab实现方案。首先利用DWT对电能质量信号进行多尺度分解,提取信号的时频域特征,有效捕捉电压暂降、暂升、中断、谐波、闪变等常见扰动的关键信息;随后结合机器学习分类器(如SVM、BP神经网络等)对提取的特征进行训练与分类,实现对不同类型扰动的自动识别与准确区分。该方法充分发挥DWT在信号去噪与特征提取方面的优势,结合ML强大的模式识别能力,提升了分类精度与性,具有较强的实用价值。; 适合人群:电气工程、自动化、电力系统及其自动化等相关专业的研究生、科研人员及从事电能质量监测与分析的工程技术人员;具备一定的信号处理基础和Matlab编程能力者更佳。; 使用场景及目标:①应用于智能电网中的电能质量在线监测系统,实现扰动类型的自动识别;②作为高校或科研机构在信号处理、模式识别、电力系统分析等课程的教学案例或科研实验平台;③目标是提高电能质量扰动分类的准确性与效率,为后续的电能治理与设备保护提供决策依据。; 阅读建议:建议读者结合Matlab代深入理解DWT的实现过程与特征提取步骤,重点关注小波基选择、分解层数设定及特征向量构造对分类性能的影响,并尝试对比不同机器学习模型的分类效果,以全面掌握该方法的核心技术要点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值