[发明专利]一种基于分布式算术编码的隐马尔科夫相关信源编码方法有效
申请号: | 201310130164.1 | 申请日: | 2013-04-16 |
公开(公告)号: | CN103326731B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 方勇;陈亮;刘亚允 | 申请(专利权)人: | 西北农林科技大学 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 北京方圆嘉禾知识产权代理有限公司11385 | 代理人: | 董芙蓉 |
地址: | 712100 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于分布式算术编码的隐马尔科夫相关信源编码方法,包括以下步骤产生信源;对隐马尔科夫相关信源编码;利用前向算法进行的解码。本发明通过使用DAC来压缩记忆相关的信源,在具体实现中,将信源之间的相关性建模为一个隐马尔科夫过程,实验结果表明,新方案的执行结果接近斯理篇‑伍夫理论界限,较好的解决了现有基于熵编码的SWC技术,重叠区域后,解码端将存在有歧义的码字和SWC对称的问题。本发明较好的利用现有的技术,实验效果好,有着很好的应用价值。 | ||
搜索关键词: | 一种 基于 分布式 算术 编码 隐马尔科夫 相关 信源 方法 | ||
【主权项】:
一种基于分布式算术编码的隐马尔科夫相关信源编码方法,其特征在于,所述基于分布式算术编码的隐马尔科夫相关信源编码方法包括以下步骤:产生信源;对隐马尔科夫相关信源编码;利用前向算法进行的解码;其中,所述产生信源的步骤为:读取HMM文件,确定隐马尔科夫模型;应用隐马尔科夫模型计算观察值序列O;根据偏差概率p,生成信源X;将信源X与观察值序列O进行异或运算,生成边信息Y;其中,所述对隐马尔科夫相关信源编码步骤为:设p是二元信源X的偏差概率,即p=P(xt=1),在经典的算术编码中,信源符号xt被迭代的映射到[0,1]的子区间中,这个子区间的长度与1‑p和p成比例,在分布式算术编码中,分配的子区间会有重叠,即符号xt=0和xt=1分别对应于区间[0,(1‑p)γ]和[1‑pγ,1],定义low和high表示编码区间,range表示整个区间长度,half_range表示区间的一半,first_quarter表示整个区间的四分之一大小,third_quarter表示整个区间的四分之三大小;其中,所述利用前向算法进行的解码步骤为:定义一个结构体node,结构体包括low,high,用来表示概率区间(对于low和high可同时表示“编码区间”和“概率区间”的下界和上界),metric用来表示每个分支的重要程度即分支中各个结点度量的总和,alpha用来记录局部概率at(i),path用来保存解码出的字符,另外定义数组scale[2],其中scale[0]表示当前解码符号为0或1时,边信息对应位置符号为0的总概率,scale[0]= alpha[0][0]+alpha[0][1];scale[1]表示当前解码符号为0或1时,边信息对应位置符号为1的总概率,scale[1]=alpha[1][0]+alpha[1][1];步骤一、根据原始信源X的长度N,分配解码所需的结点空间,并初始化分布式算术码的解码缓冲区;步骤二、在第i次解码过程中,读取边信息当前位置的字符si;步骤三、使用前向算法,对每个结点,计算第i次解码时,产生0分支和1分支的概率,当i=1即在状态处于初始时刻时,局部概率用公式α1(i)=πibi(z1),πi=P(s1=i)表示s1=i时的概率,来计算并用alpha数组记录,当i>1时,局部概率用公式计算,zt表示观察值,b为观察概率,aji表示状态转移概率,公式中变量αt‑1(j)由结构体node内取得,每次计算后,得到本次迭代的alpha[0],alpha[1],scale[0]和scale[1],scale[0]表示当前解码符号为0或1时,边信息对应位置符号为0的总概率,scale[0]=alpha[0][0]+alpha[0][1];scale[1]表示当前解码符号为0或1时,边信息对应位置符号为1的总概率,scale[1]=alpha[1][0]+alpha[1][1];步骤四、计算第i次解码的符号ci,如果码字没有落在重叠区域内,则把当前的符号写入node.path,并将解码符号ci和边信息si进行异或运算,当前点的度量就用到达该点的所有路径的概率之和来表示,也就是scale[0]或者scale[1],如果边信息和当前解码符号相同,yt表示边信息,zt表示信源与边信息的异或,当前点的度量就用scale[0]表示,如果边信息和当前解码符号不同,就用scale[1]表示,并将结点中的局部alpha更新为更新整条分支的重要性,对于第k条分支,如果码字落在重叠区域内,则产生两个分支m和n,这时候node[m].metric表示的是与边信息相同的分支的度量,即当边信息为1时,node[m].metric表示1分支的度量,当边信息为0时,node[m].metric表示0分支的度量,而node[n].metric则相反,表示与边信息相反的分支的度量,对于m分支,其存储的符号与边信息相同,此时所以m分支的整体重要性就用node[m].metric+=log(scale[0])表示,即m分支上当前所有点的scale值的乘积,而n分支的整体重要性就用node[n].metric+=log(scale[1])表示,即n分支上当前所有点的scale值的乘积,并用新的概率alpha[0]更新原node点中node[m].alpha,用新的alpha[1]更新原node点中的node[n].alpha;步骤五、由于解码一次就会产生新的解码区间,所以计算完分支的度量并更新了局部概率后,要更新概率区间和相关的信息;步骤六、对所有分支按照metric值从大到小进行排序,如果分支数大于我们所设定的阈值M,则将多余的分支剪掉,如果i<N,则返回步骤二;否则,解码结束,将分支排序后的第一条分支中path保存的数据作为解码输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北农林科技大学,未经西北农林科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310130164.1/,转载请声明来源钻瓜专利网。