首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DCT密写-在哪里嵌入数据

DCT密写-在哪里嵌入数据
EN

Cryptography用户
提问于 2020-03-24 19:33:21
回答 2查看 86关注 0票数 1

关于DCT隐写术的一个简单问题。您是在通过量化表发送8*8块之前还是之后嵌入数据?

EN

回答 2

Cryptography用户

发布于 2020-03-26 10:42:40

量化表是JPEG压缩或解压缩阶段的一部分,但是对于使用隐写技术,不应该压缩/解压缩图像,因为这些操作修改了DCT系数。

在JPEG文件中隐藏消息的通常过程是:

  1. 从JPEG文件中读取DCT系数。
  2. 修改DCT系数以隐藏消息。
  3. 将DCT系数写入JPEG文件。

因此,压缩需要在隐藏消息之前完成。如果你再次解压缩和压缩图像,你可能会破坏信息。

票数 1
EN

Cryptography用户

发布于 2022-10-14 12:08:28

JPEG包含量化的DCT系数Y_{quantized}。所谓“通过量化表发送一个块”,可能是指每一个DCT块与相应的量化表q的乘法。

Y_{dequantized}=Y_{quantized}\cdot q

要完成Daniel的答案,您可以嵌入量化的DCT系数。例如,您可以使用libjpeg库从JPEG中读取它们。

嵌入到非量化系数中的问题是量化,它是JPEG压缩过程中的有损操作之一。

Y_{quantized~again}=Q\bigg(\frac{Y_{dequantized}}{q}\bigg)

此外,你不能从libjpeg直接得到去量化的系数,因为去量化已经在JPEG压缩的有损部分。但你可以自己计算,如果你想的话。

示例:嵌入量化和非量化的DCT系数

假设您有一个非量化的DCT系数Y_{unquantized} = 42和一个量化值q=9。将系数量化如下(通过四舍五入进行量化)。

Y_{quantized} = Q\bigg(\frac{42}{9}\bigg)\stackrel{Q=round}{=}5

这是存储在JPEG中的值。嵌入到量化系数中是可行的。假设嵌入更改意味着添加一个。

Y_{quantized}^{with~stego}=Y_{quantized}+1=6

如果要将其嵌入到去量化系数中,则如果再次量化,则值将发生变化。

Y_{dequantized}=5\cdot9=45
Y_{dequantized}^{with~stego}=Y_{dequantized}+1=46
Y_{quantized~again}=Q\bigg(\frac{46}{9}\bigg)\stackrel{Q=round}{=}5
Y_{dequantized~again}=5\cdot9=45

量化改变了非量化系数的值,所以你不能再读你的消息了。

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/78418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档