如何将黑/白图片编码为“.wav”-file?

时间:2012-03-13 19:20:42

标签: encoding

如何将黑/白图片编码为“.wav”-file?我知道有可能在“速记”的帮助下确定。但我不知道它的算法。有哪些算法?哪些书籍/资料来源最能理解他们的原则?


编辑:

其实我有立体声wav文件。我的任务是解码它的图片。任务说,左声道的频率显示X坐标,右声道的频率显示笛卡尔坐标系的Y坐标。这些点用文本消息组成图片。所以,我必须为此编写程序。我不知道该怎么办。

2 个答案:

答案 0 :(得分:1)

您的耳朵对声音文件中的微小变化不敏感。

Wav文件是UNCOMPRESSED数据,因此它只是一个16-24位字符的文件。你的耳朵不能注意到位之间的细微差别。您需要做的就是定期注入表示数据中图像的位值。

因此,如果您为每1000个数据点插入一个像素,则可以在波形文件中隐藏图像(甚至不加密它)。如果用户播放该文件,则无法听到。

当您将文件保存在远处的计算机或计算机上时,您可以使用能够识别隐藏技术的解码工具。

答案 1 :(得分:1)

使用wav文件的最简单的隐写术版本可能是在波形文件中使用16位采样,但只将15个最高有效位专用于声音。在每个样本的最低位,您将编码黑白图片的一个像素。

重新生成图片需要软件打开波形文件,从每个样本中取出最低位,然后将这些位相互重叠放入(例如)JPEG文件中。

为了正确看待,CD有两个通道包含16位采样,速率为44.1 KHz,因此您只需要大约10秒钟的LSB来编码相当典型的全彩色JPEG(例如,100KB左右)。一个典型的~3分钟流行歌曲的波形文件可以很容易地隐藏15-20张全彩色图片。

编辑:(回复已编辑的答案)。处理起来有点困难。个别样本不能代表任何频率;它只代表给定时间点的振幅。要获得频率,您需要在一段时间内获得大量样本 - 并且您需要知道要转换的确切时间段。

一旦你知道,你基本上对样本进行FFT。这将告诉你所有可能频率的信号的相对优势。据推测,你选择最强的并适当缩放。对另一个通道执行相同操作并在该点绘制像素。