一种基于混沌粒子群算法的矢量量化码书构造方法转让专利

申请号 : CN201510522569.9

文献号 : CN105205838B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李强舒勤军付余涛覃杨微范杰羚夏绪玖

申请人 : 重庆邮电大学

摘要 :

本发明请求保护一种基于混沌粒子群算法的矢量量化码书构造方法,具体地说是一种可用于语音压缩编码和图像压缩系统中的基于粒子群的矢量量化器。此方法把粒子群算法与混沌算法相结合用于矢量量化码书的构造,并可将该算法扩展到多级矢量量化器中。由于本发明在粒子群优化算法中融入了混沌优化,加快了粒子群算法摆脱局部极值点的速度,提高了算法的收敛精度,使矢量量化器的性能得到了改善。

权利要求 :

1.一种基于混沌粒子群算法的矢量量化码书构造方法,其特征在于,包括以下步骤:

101、提取语音信号或图像信号的特征参数值,提取的特征参数值作为构造码书的训练矢量;

102、将生成矢量量化码书所需的全部训练矢量X存储在计算机内存中,全部X的集合用S表示;

103、种群初始化,设置迭代算法的最大迭代次数MaxLoop,粒子的个数K,矢量量化级数M,最大速度Vmax,最小速度Vmin;设置粒子的初始速度p[k].v,k=1,2,...,K;设置适应度初值p[k].f,k=1,2,...,K;设置迭代初值m=1,级数初值kkk=1;

104、从步骤102中的全部训练矢量X中,随机提取N个训练矢量组成一个初始码书重复K次,获得K个粒子p[k];根据最邻近准则,每输入一个粒子,将其划分到N个子集 中,即当 时,下式成立:

105、计算新码字 其中 是 的质心,计算

公式如下,numi是集合 中训练矢量的个数;

统计每一个胞腔,即每个子集 包含的训练矢量数,将每一个训练矢量的失真按从大到小排序,对于空胞腔,则将胞腔训练矢量数不为1且失真最大的训练矢量作为新的码字代替空胞腔,同时将此胞腔中的训练矢量数减1;

106、计算各个粒子的适应度

比较适应度p[k].f(m)与p[k].fbest,如果p[k].f(m)小于最优位置的适应度p[k].fbest,则更新p[k].fbest与 比较每个粒子的适应度p[k].fbest与群的最优位置的适应度fgbest,如果p[k].fbest小于fgbest,则更新fgbest与群体最优粒子

107、如果迭代次数m能整除3,则对最优粒子进行混沌优化,在下式中,βi和αi是特征参数第i维的最大值和最小值,μ为控制参量;

zi=μ(1-zi)

p[k].yi=αi+(βi-αi)zi

循环三次,产生3个粒子,保留适应度最小的粒子,并取代当前群体中随机选取的一个粒子;判定迭代次数是否大于MaxLoop,如果大于MaxLoop,则跳到步骤109,否则转到步骤

108,继续执行;

108、更新粒子及粒子的速度;

109、求训练矢量量化残差,输出码字,级数kkk加1,如果kkk>M,结束;如果kkk≤M,重新设置初值,并将训练矢量改为上一级的量化残差矢量。

2.根据权利要求1所述的一种基于混沌粒子群算法的矢量量化码书构造方法,其特征在于,如果矢量量化级数M设为1,设计出来的是单级矢量量化器码书;如果M>1,设计出的是M级矢量量化器码书。

3.根据权利要求1所述的一种基于混沌粒子群算法的矢量量化码书构造方法,其特征在于,粒子群算法中惯性权重因子w的计算公式为:上式中,fg是全局最优适应度,wmax表示最大惯性权重,wmin表示最小惯性权重,fi是当前粒子适应度,MaxLoop是最大迭代次数,m是当前迭代次数。

说明书 :

一种基于混沌粒子群算法的矢量量化码书构造方法

技术领域

[0001] 本发明属于数据压缩领域,具体涉及一种矢量量化方法及矢量量化器,在语音压缩编码及图像压缩系统中具有广泛的应用。

背景技术

[0002] 矢量量化是香农信息论在信源编码理论方面的新发展,将若干个标量数据构成一个矢量,然后在矢量空间中给以整体量化,达到既压缩了数据又不损失太多的信息。因此,矢量量化是一种高效的数据压缩技术,具有压缩比大,解码简单等优点,在语音和图像编码领域有着广泛的应用。矢量量化的基本理论早在二十世纪六七十年代已有人关注,在二十世纪八十年代开始逐步完善起来。实现一个实用的矢量量化器,首先需要解决的是码书的设计。如果码书性能不佳,将影响矢量量化系统的编码质量,如导致解码端语音合成质量或图像重构质量的下降。LBG算法是由Linde、Buzo和Gray于1980年提出的一种经典的码书构造方法,因其具有理论严密、实施简便、收敛快速的特点,在矢量量化领域取得了广泛的应用。但是LBG算法的性能过于依赖初始码书,且容易陷入局部最优。为此,学者们在LBG算法的基础上,提出了很多改进的码书构造算法,如模拟退火码书算法、PNN码书算法、神经网络码书算法、免疫猫群优化码书算法等。本发明是将粒子群算法与混沌算法相结合,提出了一种基于混沌粒子群算法的码书构造方法。该方法能增加解空间的多样性,提高全局搜索能力及收敛精度,同时也能处理空胞腔的问题。
[0003] 混沌是自然界广泛存在的一种非线性现象,混沌变量看似杂乱,但其变化过程含有内在的规律性,被誉为上世纪末最大的发现,正在为推动现代科学进步发挥着重要的作用。目前对混沌尚无严格的定义,一般将由确定性方程得到的具有随机性的运动状态称为混沌,呈现混沌状态的变量称为混沌变量。混沌运动貌似随机,却隐含着精致的内在结构,具有遍历性、随机性和对初始条件敏感性的特点,能在一定范围内按其自身规律不重复地遍历所有状态,因此,利用混沌运动的这些性质可以进行优化搜索。如下的logic方程描述了一个最典型的混沌系统。
[0004] Zn+1=μZn(1-Zn),n=0,1,2,…
[0005] 上式中的μ为控制参量,该值确定后,由任意初值Z0(0,1)可迭代出一个确定的时间序列Z0,Z1,…,Zn。
[0006] 粒子群优化(Particle Swarm Optimization,PSO)算法最初是由Kennedy和Eberhart于1995年受人工生命研究结果的启发,在模拟鸟群觅食过程中的迁徙和群集行为时提出的一种基于群体智能进化的计算技术。由于该算法简单、收敛速度快,并且对目标函数要求较少(如无需梯度信息)等特点,因此发展十分迅速,且在诸多领域得到成功应用。在PSO模型中,优化问题的每个解对应搜索空间中的一只鸟,该“鸟”也称为粒子,每个粒子有一个速度,决定其飞翔的方向和距离。PSO初始化为一群随机粒子,然后粒子开始追随当前的最优粒子运动,直到在整个解空间中搜索找到最优解为止。在每次迭代中,粒子通过追踪两个极值来更新自己,一个是粒子自己找到的最优解,称为个体极值pbest;另一个是整个粒子群找到的最优解,称为全局极值gbest。假设用 表示第i个粒子,其中n是粒子的维数,它经历的最好位置表示为 而整个群体经历的最好位置表示为 粒子i的速度为 按搜寻当前最优粒子原理,粒子i
按(1)式和(2)式来改变速度和位置。
[0007]
[0008]
[0009] 其中,t为当前的迭代次数;c1、c2为学习因子;r1、r2为服从(0,1)分布的随机数,w为惯性权重因子。研究表明:较大的w值有利于跳出局部极小值点,较小的w值有利于算法收敛和提高解的精度。在很多算法中,常采用(3)式计算w的线性递减值。
[0010]
[0011] tmax为设定的最大迭代次数;wmax为最大惯性权重;wmin为最小惯性权重。此外,为使粒子速度不至于过大,可设定速度上限值Vmax。当某一维的速度超过这一设定速度时,就令这一维的速度为Vmax。
[0012] 粒子群优化算法虽然具有原理简单,易于应用的优点,但也有易陷入局部极值点,进化后期收敛速度慢,精度较差等缺点。

发明内容

[0013] 针对粒子群优化算法的不足,提出了一种基于混沌粒子群算法的矢量量化码书构造方法。本发明的技术方案如下:一种基于混沌粒子群算法的矢量量化码书构造方法,其包括以下步骤:
[0014] 101、提取语音信号或图像信号的特征参数值,提取的特征参数值作为构造码书的训练矢量;
[0015] 102、将生成矢量量化码书所需的全部训练矢量X存储在计算机内存中,全部X的集合用S表示;
[0016] 103、种群初始化,设置迭代算法的最大迭代次数MaxLoop,粒子的个数K,矢量量化级数M,最大速度Vmax,最小速度Vmin;设置粒子的初始速度p[k].v,k=1,2,...,K;设置适应度初值p[k].f,k=1,2,...,K;设置迭代初值m=1,级数初值kkk=1;
[0017] 104、从步骤102中的全部训练矢量X中,随机提取N个训练矢量组成一个初始码书重复K次,获得K个粒子p[k];根据最邻近准则,每输入一个粒子,将其划分到N个子集 中,即当 时,下式成立:
[0018]
[0019]
[0020] 105、计算新码字 其中 是 的质心,计算公式如下,numi是集合 中训练矢量的个数;
[0021]
[0022] 统计每一个胞腔,即每个子集 包含的训练矢量数,将每一个训练矢量的失真按从大到小排序,对于空胞腔,则将胞腔训练矢量数不为1且失真最大的训练矢量作为新的码字代替空胞腔,同时将此胞腔中的训练矢量数减1;
[0023] 106、计算各个粒子的适应度
[0024]
[0025] 比较适应度p[k].f(m)与p[k].fbest,如果p[k].f(m)小于最优位置的适应度p[k].fbest,则更新p[k].fbest与 比较每个粒子的适应度p[k].fbest与群的最优位置的适应度fgbest,如果p[k].fbest小于fgbest,则更新fgbest与群体最优粒子
[0026] 107、如果迭代次数m能整除3,则对最优粒子进行混沌优化,在下式中,βi和αi是特征参数第i维的最大值和最小值,μ为控制参量;
[0027]
[0028] zi=μ(1-zi)
[0029] p[k].yi=αi+(βi-αi)zi
[0030] 循环三次,产生3个粒子,保留适应度最小的粒子,并取代当前群体中随机选取的一个粒子;判定迭代次数是否大于MaxLoop,如果大于MaxLoop,则跳到步骤109,否则转到步骤108,继续执行;
[0031] 108、更新粒子及粒子的速度;
[0032] 109、求训练矢量量化残差,输出码字,级数kkk加1,如果kkk>M,结束;如果kkk≤M,重新设置初值,并将训练矢量改为上一级的量化残差矢量。
[0033] 进一步的,如果矢量量化级数M设为1,设计出来的是单级矢量量化器码书;如果M>1,设计出的是M级矢量量化器码书。
[0034] 进一步的,粒子群算法中惯性权重因子w的计算公式为:
[0035]
[0036] 上式中,fg是全局最优适应度,wmax表示最大惯性权重,wmin表示最小惯性权重,fi是当前粒子适应度,MaxLoop是最大迭代次数,m是当前迭代次数。
[0037] 本发明的优点及有益效果如下:
[0038] 本发明充分利用了粒子群算法搜索范围广以及混沌算法具有遍历性的特点,将粒子群算法与混沌算法结合起来,增加解空间的多样性,提高全局搜索能力及收敛精度,同时对空胞腔的问题也作了有效的处理,优化了量化器的性能。本发明能用于语音和图像压缩编码中,具有良好的应用前景和实用价值。

附图说明

[0039] 图1是本发明提供优选实施例基于混沌粒子群的码书构造算法流程图。

具体实施方式

[0040] 以下结合附图,对本发明作进一步说明:
[0041] 把混沌优化思想引入到粒子群优化算法中,提出了一种基于混沌粒子群算法。该算法使得解空间具有多样性,能提高全局搜索能力及收敛精度。采用混沌粒子群算法构造矢量量化码书的步骤如图1所示。
[0042] 在粒子群算法中,惯性权重因子w的大小影响了算法的搜索能力。当w较大时,有利于提高算法的全局搜索能力,但局部搜索能力较弱;当w较小时,可以增强粒子的局部搜索能力,但探索新区域的能力较弱。在标准粒子群算法中,w为定值,这样就无法充分利用粒子的探索能力。在线性递减惯性权重粒子群算法中,w不是固定的,是按照公式(3)进行更新,使得w与迭代次数有关,随着迭代次数增加,w线性减小。相对于标准粒子群算法,该算法虽然在性能上有所改进,但早熟收敛问题依然没有得到根本性解决,尤其是粒子后期的多样性变差,导致收敛速度变慢,极易陷入局部最优。
[0043] 粒子的适应度f是反映粒子当前位置优劣的一个参数,对于某个具有较高适应度的粒子,它所在的局部区域可能存在能够得到更新全局最优的点pbest,即pbest所表示的解优于全局最优gbest。为了使全局最优能够迅速得到更新,即能迅速找到pbest,应该减小粒子的惯性权重因子以增强其局部搜索能力。而对于适应度较低的粒子,当前位置较差,在区域存在优于全局最优解的概率较低,为了跳出当前的区域,应当增大惯性权重因子,以增强全局搜索能力。所以惯性权重因子不仅与迭代次数有关,也与适应度f密切相关,在本发明中,将惯性权重因子w按下面公式进行计算。
[0044]
[0045] 上式中,fg是全局最优适应度,fi是当前粒子适应度,MaxLoop是最大迭代次数,m是当前迭代次数。为了进一步增强粒子的全局搜索能力与收敛精度,对每次搜索出的最优值进行混沌优化。利用混沌运动的遍历性,以当前整个粒子群搜索到的最优位置为基础产生混沌序列,把产生的混沌序列中的最优位置的粒子随机替代当前粒子群中一个粒子的位置。为了降低算法的复杂度,本发明不是每次都进行混沌优化,而是采取每Q次迭代进行一次混沌优化,这样能有效地降低算法复杂度,对最后获得粒子的质量影响不大。
[0046] 最优矢量量化器的构造需要遵循以下两条原则:
[0047] 1、最近邻条件
[0048] 设给定码书C={y0,y1,…,yN-1},尺寸大小为N,则输入矢量空间的最优划分{R0,R1,…,RN-1}应满足
[0049] 2、质心条件
[0050] 对给定的划分{R0,R1,…,RN-1},最优码字yj必须是相应胞腔Rj的“质心”,即yj=cent(Rj)。
[0051] 在本发明实例中,拟对语音特征参数线谱对频率LSF进行三级矢量量化,要构造一个三级LSF码书,其大小分别为256、64、32,所用的训练矢量是采用混合激励线性预测(MELP)编码器从大量中英文语音数据库中提取的LSF参数,矢量维数为10。具体的步骤如下:
[0052] 1)将生成矢量量化码书所需的全部训练矢量X存储在计算机内存中,全部X的集合用S表示;
[0053] 2)设置迭代算法的最大迭代次数MaxLoop=20,粒子的个数K=15,矢量量化级数M=3,最大速度Vmax=150,最小速度Vmin=-150,级数初值kkk=1;
[0054] 3)设置粒子的初始速度p[k].v,k=1,2,...,K;
[0055] 4)设置适应度初值p[k].f,k=1,2,...,K;
[0056] 5)设置迭代初值m=1;
[0057] 6) 从 训练 矢量中 ,随 机 提取 N个 训练 矢量 组成 一个 初 始码 书重复K次,获得K个粒子p[k];
[0058] 7)根据最邻近准则,每输入一个粒子,将其划分到N个子集 中,即当时,下式成立:
[0059]
[0060]
[0061] 8)计算新码字 其中 是 的质心,计算公式如下,numi是集合 中训练矢量的个数。
[0062]
[0063] 9)统计每一个胞腔包含的训练矢量数,将每一个训练矢量的失真按从大到小排序。对于空胞腔,则将胞腔训练矢量数不为1且失真最大的训练矢量作为新的码字代替空胞腔,同时将此胞腔中的训练矢量数减1;
[0064] 10)计算每个粒子的适应度
[0065]
[0066] 11)比较适应度p[k].f(m)与p[k].fbest,如果p[k].f(m)小于p[k].fbest,则更新p[k].fbest与
[0067] 12)比较适应度p[k].fbest与fgbest,如果p[k].fbest小于fgbest,则更新fgbest与群体最优粒子
[0068] 13)如果m能够整除3,则对最优粒子进行混沌优化,下式中βi是LSF第i维的最大值,αi是LSF第i维的最小值,μ为控制参量;
[0069]
[0070] zi=μ(1-zi)
[0071] p[k].yi=αi+(βi-αi)zi
[0072] 循环三次,产生3个粒子,保留适应度最小的粒子,并取代当前群体中随机选取的一个粒子。
[0073] 14)判定迭代次数是否大于MaxLoop,如果大于MaxLoop,则跳到步骤17,否则转到步骤15,继续执行。
[0074] 15)根据以下式子更新粒子及粒子的速度
[0075]
[0076]
[0077] m=m+1
[0078] 16)跳到第7步,继续执行;
[0079] 17)求得训练矢量量化残差,输出码字,级数kkk加1。如果kkk>M,跳到步骤18;如果kkk≤M,重新设置初值,并将训练矢量改为上一级量化的残差。初值设置如下:
[0080] if(kkk=2)
[0081] N=64;
[0082] Vmax=fgbest;Vmin=-fgbest;
[0083] if(kkk=3)
[0084] N=32;
[0085] Vmax=fgbest;Vmin=-fgbest;
[0086] 18)结束
[0087] 以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。