一种基于GDHT-III域的一维分段编码信号快速解码方法转让专利

申请号 : CN201110211841.3

文献号 : CN102355269B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 舒华忠伍家松王膂

申请人 : 东南大学

摘要 :

本发明公开了一种基于GDHT-III域的一维分段编码信号快速解码方法,属于信号处理技术领域。本发明将长度为N/3的信号序列{an},{bn}和{cn},n=0,1,…,N/3–1,的GDHT-III域系数{Ak},{Bk}和{Ck},k=0,1,…,N/3–1,转换为长度为N的原始编码信号序列{xm},m=0,1,…,N–1,的GDHT-III域系数{Xi},i=0,1,…,N–1,其中{Xi}的计算分成3的倍数输出索引{X3k},3的倍数余1输出索引{X3k+1}和3的倍数余2输出索引{X3k+2}三个部分分别进行计算,从而减少了GDHT-III变换次数,降低了解码过程的计算复杂度。较之现有技术,本发明方法不仅具有较低的复杂度,解码实时性更好,而且具有更少的信号失真。

权利要求 :

1.一种基于GDHT-III域的一维分段编码信号快速解码方法,所述分段编码信号是通过将长度为N的原始信号序列等分成三段长度为N/3的信号序列,然后分别对这三段信号序列进行GDHT-III变换得到其相应的GDHT-III域系数,最后对这三组GDHT-III域系数分别进行量化、熵编码处理得到,其特征在于,所述快速解码方法包括以下步骤:步骤1、对分段编码信号进行反熵编码、反量化处理,得到恢复的三组GDHT-III域系数;

步骤2、设步骤1得到的三组GDHT-III域系数分别为{Ak}、{Bk}和{Ck},k=0,1,…,N/3–1,分 别按 照下 式计 算序 列{X3k}、{X3k+1}、{X3k+2},其 中k=0,1,…,N/3–1:X3k+1=Ak-Bk+Ck,k=0,1,…,N/3–1

其中,Zk通过将以下的ZN/3-1-k反褶转换得到,

式中, 和 分别表示对括号中的信号序列作长度为N/3的正向和

反向GDHT-III变换,θn=2πn/N是旋转因子;

步骤3、将序列{X3k}、{X3k+1}、{X3k+2}中的元素依次串联组合得到序列{Xi};其中k=0,1,…,N/3–1;i=0,1,…,N–1;序列{Xi}即为长度为N的原始信号序列的GDHT-III域系数。

说明书 :

一种基于GDHT-III域的一维分段编码信号快速解码方法

技术领域

[0001] 本发明涉及一种信号解码方法,尤其涉及一种基于GDHT-III域的一维分段编码信号快速解码方法,属于信号处理技术领域。

背景技术

[0002] 编解码是数字信号处理技术中极其重要的部分,编码是指将一个输入信号转换为代码,这种代码是被优化过的以利于传输或储存,解码则是编码的反向过程。编解码过程通常由编解码装置完成。通常的信号编码过程通常包括时域正变换、量化、熵编码这几个过程,解码过程包括反熵编码、反量化以及频域反变换。
[0003] 离散哈特莱变换(Discrete Hartley Transform:DHT)是数字信号处理中一种重要的数学工具,它可以描述离散信号的时域与频域的关系,在数字信号处理中有着非常重要的地位。作为DHT的扩展,广义的离散哈特莱变换(Generalized Discrete Hartley Transform:GDHT)可以应用于更加广泛的领域。GDHT有四种形式,分别是GDHT-I(即DHT),GDHT-II,GDHT-III和GDHT-IV。GDHT核函数本身固有的实数映射性质,使得其非常适合于处理实信号序列。
[0004] 输入序列{xm},m=0,1,…,N–1的GDHT-III定义为
[0005]
[0006] 其反变换(IGDHT-III)定义为
[0007]
[0008] 其中N是序列长度并且casα=cosα+sinα.下面的讨论中我们忽略式(1)中的归一化因子1/N,因为其只是一个常数除法计算。比如:对于N=2l,l≥2,其只需要做简单的移位操作。
[0009] GDHT-III(及IGDHT-III)作为DFT(及IDFT)的一种替换在处理实信号的压缩编解码则具有其独特的优势:第一、其核函数是实函数,当输入为实信号时,只需要进行实数运算,因此较DFT具有更低的计算复杂度;第二,其正、反变换具有完全相同的形式,因此可以用同一模块实现正、反变换。
[0010] 在现有基于GDHT-III变换的编解码方法中,需要发送的信号{xm}长度通常比较长,所以需要对信号进行分段编码发送,其中一种常见的情况是将{xm}等分成三段{an},{bn}和{cn},即an=xn,bn=xn+N/3,cn=xn+2N/3,n=0,1,…,N/3–1。首先将{an},{bn}和{cn}分别经过GDHT-III变换得到其相应的变换域系数{Ak},{Bk}和{Ck},然后对这些系数进行量化、熵编码等处理后得到系数{A′k},{B′k}和{C′k}传送至接收端。在解码时,首先对接收到的系数{A′k},{B′k}和{C′k}分别进行反熵编码和反量化等处理得到恢复的系数{Ak},{Bk}和{Ck},其中涉及的关键问题是如何通过{Ak},{Bk}和{Ck}计算出{Xi}(其中{Xi}是{xn}的长度为N的GDHT-III的系数)?因为信号的编解码对实时性的要求相当高,所以在保证质量的情况下,要求复杂度越低越好。现有方法是先将输入的长度为N/3的GDFT-II域系数{Ak},{Bk}和{Ck}分别通过IGDHT-III反变换回时域得到原来的时域信号{an},{bn}和{cn},然后将这三个序列串联组合成{xm},再计算长度为N的序列{xm}的GDHT-III的系数{Xi}。由此可以知道,传统的方法需要计算三个长度为N/3的IGDHT-III和一个长度为N的GDHT-III,需要较高的计算复杂度,从而在一定程度上影响了解码的实时性。

发明内容

[0011] 本发明所要解决的技术问题在于克服现有基于GDHT-III域的一维分段编码信号解码方法所存在的计算复杂度高、解码实时性差的技术问题,提供一种基于GDHT-III域的一维分段编码信号快速解码方法,该方法具有较低的计算复杂度,解码实时性较好。
[0012] 本发明采用以下技术方案:
[0013] 一种基于GDHT-III域的一维分段编码信号快速解码方法,所述分段编码信号是通过将长度为N的原始信号序列等分成三段长度为N/3的信号序列,然后分别对这三段信号序列进行GDHT-III变换得到其相应的GDHT-III域系数,最后对这三组GDHT-III域系数分别进行量化、熵编码处理得到,所述快速解码方法包括以下步骤:
[0014] 步骤1、对分段编码信号进行反熵编码、反量化处理,得到恢复的三组GDHT-III域系数;
[0015] 步骤2、设步骤1得到的三组GDHT-III域系数分别为{Ak}、{Bk}和{Ck},k=0,1,…,[0016] N/3–1,分别按照下式计算序列{X3k}、{X3k+1}、{X3k+2},其中k=0,1,…,N/3–1:
[0017] X3k+1=Ak-Bk+Ck,k=0,1,…,N/3–1
[0018]
[0019]
[0020] 其中,
[0021]
[0022]
[0023] 式中, 和 分别表示对括号中的信号序列作长度为N/3的正向和反向GDHT-III变换,θn=2πn/N是旋转因子;
[0024] 步骤3、将序列{X3k}、{X3k+1}、{X3k+2}中的元素依次串联组合得到序列{Xi};其中k=0,1,…,N/3–1;i=0,1,…,N–1;序列{Xi}即为长度为N的原始信号序列的GDHT-III域系数。
[0025] 相比现有技术,本发明方法具有的计算复杂度较低,解码的实时性更好。本发明方法还具有更少的信号失真,这是因为通常来说,信号经过GDHT-III变换后紧接着会进行量化的步骤,而用量化后的系数利用IGDHT-III会导致信号的失真。失真后的信号再进行GDHT-III变换将会使误差进一步加大。因此,为了减少信号的失真,我们要尽量较少IGDHT-III和GDHT-III的个数。传统的方法需要进行三次IGDHT-III和三次GDHT-III,而本发明方法只需要两次IGDHT-III和两次GDHT-III。因此本发明方法具有更少的信号失真。

附图说明

[0026] 图1为现有方法进行分段编码的流程示意图;
[0027] 图2为现有方法进行分段解码的流程示意图;
[0028] 图3为本发明的基于GDHT-III变换的快速解码方法的信号流图;其中带箭头的线段旁边的数字表示传输因子(相当于乘法器),“⊕”表示加法器。“反褶”表示将信号序列{ZN/3-1-k}转换成{Zk},k=0,1,....,N/3-1。

具体实施方式

[0029] 下面结合附图对本发明的技术方案进行详细说明:
[0030] 图1显示了传统的分段编码的流程,首先将要发送的信号{xm}等分成三段{an},{bn}和{cn},即an=xn,bn=xn+N/3,cn=xn+2N/3,n=0,1,…,N/3–1,并分别对{an},{bn}和{cn}进行GDHT-III变换得到其相应的系数{Ak},{Bk}和{Ck},k=0,1,…,N/3–1,然后对这些系数进行量化、熵编码处理后得到系数{A′k},{B′k}和{C′k},将之传送至接收端或储存在介质中。
[0031] 图2显示了传统方法进行分段解码的流程,首先对接收到的系数{A′k},{B′k}和{C′k}分别进行反熵编码和反量化处理得到恢复的系数{Ak},{Bk}和{Ck},并对这些系数分别通过IGDHT-III得到原来的时域信号{an},{bn}和{cn},然后将这三个序列串联组合成{xm},再计算长度为N的序列{xn}的GDHT-III的系数{Xi}。采用传统方法时,如果输入{xm}是实信号,其计算复杂度为
[0032]III III
[0033] 其中M (N)和A (N)分别是计算长度为N的实数GDHT-III所需要的乘法数和加法数。
[0034] 图3给出了用本发明方法进行N点实数信号解码的具体实现流图,其中输入是长度为N/3的实数信号{an},{bn}和{cn}的GDHT-III域系数{Ak},{Bk}和{Ck};输出是长度为N的实数信号{xm}的GDHT-III域系数{Xi},i=0,1,…,N–1图中通过{X3k},{X3k+1}和{X3k+2}k=0,1,…,N/3–1,三个部分来表达。
[0035] 采用本发明方法进行解码时,将一个长度为N的GDHT-III分解为三个长度为N/3的GDHT-III来计算,即将输出{Xi}的计算分成3的倍数输出索引{X3k},3的倍数余1输出索引{X3k+1}和3的倍数余2输出索引{X3k+2}三个部分分别计算。
[0036] 索引部分{X3k+1}按照下式得到
[0037]
[0038]
[0039]
[0040]
[0041] 索引部分{X3k}和{X3k+1}按照如下两个步骤进行计算:
[0042] 第一步:构造并计算中间量Yk和Zk,k=0,1,…,N/3–1令
[0043] Yk=X3k+X3k+2,k=0,1,…,N/3–1
[0044] Zk=X3k-X3k+2,k=0,1,…,N/3–1
[0045] 则Yk和Zk按照下式得到
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056] 其中k=0,1,…,N/3–1, 和 分别表示对括号中的信号序列作长度为N/3的正向和反向GDHT-III变换,θn=2πn/N是旋转因子。
[0057] 第二步:通过中间量Yk和Zk,计算索引部分{X3k}和{X3k+2}
[0058] {X3k}和{X3k+2}可以分别由下式得到
[0059] k=0,1,…,N/3–1
[0060]
[0061] 将序列{X3k}、{X3k+1}、{X3k+2}中的元素依次串联组合即可得到长度为N的原始信号序列的GDHT-III域系数{Xi}。
[0062] 采用本发明方法解码时,如果输入{xm}是实信号,其计算复杂度为:
[0063]
[0064] 其中MIII(N)和AIII(N)分别是计算长度为N的实数GDHT-III所需要的乘法数和加法数。
[0065] 下表1显示了采用本发明方法与采用传统方法解码时的计算复杂度对比(输入为实数信号)。
[0066]
[0067] 表1
[0068] 从表1中可以看出,本发明的解码方法比传统方法更加有效。对于实数输入信号,当序列长度N从12增加到192时,本发明方法比传统方法节省了17%到26%的计算复杂度。同时,由于本发明使用了较少次数的GDHT-III/IGDHT-III变换,因此具有更少的信号失真。