为了增强可靠性,对水印信息先做纠错处理,采用bch编码方法。算法的主要工作是寻找合理的参数优化配置,使隐藏效果达到最优。参数主要有:小波分解级数、分段的数据帧长度、数据帧的间距、上下分离的阈值将数据帧的间距设置为数据帧长度的倍数,最大为1,最小为0。期间选择多个系数,结果发现都可以成功实现隐藏。
2.2水印嵌入算法设计
1)水印信息处理。
音频载体分段数至少应该大于,才能满足隐藏要求。
假设每段长为,该段经过小波变换的级分解后,各级小波系数长度分别为:
取低频系数部分,使之频率范围位于(50,l000)内,则需要构造一个组合的低频小波系数集合。以8khz音频为例,实施7级小波分解后,所选择的低频系数部分为:
p的长度非常重要。如果太小了,对隐藏不利;反之,就需要更长的音频载体。所以,音频分段与小波分解具有密切的关系。
3)倒谱变换。
复倒谱变换对于信号序列的均值大于或等于0时,其逆变换可逆;否则不可逆。为此,需要计算指定段信号的均值,若均值小于0则取反。然后对所有指定段进行复倒谱变换。
4)倒谱系数的选取。
去掉首尾波动很大的部分,而选择中间平稳的部分嵌入水印。假设两端各去掉l0个数据,则实际用于隐藏水印的倒谱系数长度为:
5)去均值化处理。
计算剩余部分的均值,然后用每一个倒谱系数减去该均值,得到倒谱系数的相对值。
6)嵌入水印。
给定一个阈值t,采用整体上下拉开的思路,对以上的相对倒谱系数进行修改,得到最终的倒谱系数,从而实现水印的嵌入。
7)重构音频信号。
对嵌入水印的段重构后,实施复倒谱反变换。然后进行小波重构,从而得到含有水印比特的音频段。将所有这些段重构,就获得了含全部水印信息的音频。
2.3水印提取
水印提取过程的前半部分与嵌入过程是一样。在提取出比特序列后,再经过bch解码处理,从而得到隐藏的水印比特序列。水印提取的流程如图3所示。
对获得的倒谱系数去两侧数据,计算剩下的倒谱系数平均值。按照以下规则进行隐藏信息的提取:
在信息传播方面.针对a/d和d/a传播采用『_直通电缆的传输方式,在单机上用电缆将音频输入输出口相连。传输线为音频线1.8m和延长线1.8m,共3.6m。此外,针对手机彩铃传播采用了amr方式。隐藏水印设计了三种方案,如图4所示。
小容量的便于amr处理,大容量的便于实用化。
仿真工具为matlab7.2.使用windowsmediapldrver播放器播放音频载体,使用cooledit pro工具进行录音、编辑和攻击处理。
基本参数选择为:选用harr小波进行7级小波分解后,按照式(4)选取低频系数区域,所得频段在77.5~5o0hz范围。式(7)中的为l0,式(9)中t值的合适范围在0.005~0.025中实验选取。式(3)中的取值为3200非常合适,此时,实际参与计算均值的数据为155。
3.2音频载体的影响
音频载体选择了三种,如表1所示,
上一页 [1] [2] [3] 下一页