建立可变长度错误代码的方法和设备

申请号 CN200380101881.6 申请日 2003-10-14 公开(公告)号 CN1706102A 公开(公告)日 2005-12-07
申请人 皇家飞利浦电子股份有限公司; 发明人 C·拉米;
摘要 本 发明 涉及可变长度纠错(VLEC)码技术,其中主要步骤为:定义所有需要的参数,产生具有固定长度L1的码,在集合W中存储这样获得的距离码字最小发散距离d[min]的所有可能的L1-元组(如果这样得到的新集合W不是空的,一个额外的比特被附加在所有字的末端),删除W中所有不与所有码字满足距离标准的字,并且验证最后集合W的所有字满足另一个距离标准。假设大多数好的码没有长度的跳变,根据本发明的方法能够减少已检查的VLEC码的集合。在这个假设之下,定义了一种新的构造方法,称为“无洞最优化”,其中避免了在集合W的每个字的末端增加多于一个比特。该新的 算法 没有考虑非常不太可能的码结构,从而允许在复杂度方面获益。
权利要求

1、一种建立可变长度错误代码的方法,所述方法包括以下步骤:
(1)初始化所需要的参数:码字的最小和最大长度分别为L1和 Lmax、每个码字之间的自由距离dfree(所述距离dfree对于VLEC码C来 说是在所有任意扩展码集合中的最小汉明距离),所需的码字数量S;
(2)产生(步骤11)固定长度码C,其长度为L1、最小距离为bmin, bmin=min{bk;k=1,2,...,R},bk=与码C的码字长度Lk相关的距离并 且被定义为在C中具有长度Lk的所有码字之间的最小汉明距离,R=C 中不同码字长度的数量,所述产生步骤11创建n比特长距离为d的字 的集合W;
(3)在集合W中列出和存储(步骤21)所有可能的与C的码字距 离为dmin的L1-元组(所述距离dmin对于VLEC码C来说是C的所有可能 的不同长度码字对之间的所有发散距离的最小值),并且,如果所述 集合W不是空的,那么就通过在所有字的末端附加一个额外比特来加 倍W中的字的数量,从而所述存储步骤将该集合W替换为新的集合, 该新的集合具有比前一个集合多两倍的字,并且这些字的每一个的长 度是L1+1;
(4)删除(步骤31)集合W中不与C的所有码字满足cmin距离的 所有字,所述距离cmin是码C的最小发散距离;
(5)在没有发现字或者达到最大比特数量的情况下,减小(步骤 41)距离的约束以便找到更多的字;
(6)控制集合W的所有字是距离为bmin的,然后将找到的字加到 码C(步骤34);
(7)如果(步骤35)没有达到所需的码字数量,就重复步骤(1) 到(6)(即步骤21到35),直到该方法发现不可能继续或者已经找 到了所需的码字数量;
(8)如果C的码字数量大于S,基于VLEC码结构计算(阶段A4) 通过使用信源概率对每个码字长度加权而获得的平均长度AL,如果它 低于ALmin,那么所述AL变成ALmin,其中ALmin=AL的最小值,相应的 码结构被保留在存储器中;
并且,所述建立方法使得至多一个比特被添加到集合W中每个字 的末端。
2、一种设备,用来执行根据权利要求1的可变长度错误代码建立 方法。

说明书全文

发明领域

本发明涉及一种建立可变长度错误代码的方法,所述方法包括以 下步骤:

(1)初始化所需要的参数:码字的最小和最大长度分别为L1和 Lmax、每个码字之间的自由距离dfree(所述距离dfree对于VLEC码C来 说是在所有任意扩展码的集合中的最小汉明距离),所需的码字数量 S;

(2)产生长度为L1、最小距离为bmin的固定长度码C,bmin=min{bk; k=1,2,....,R},bk=与码C的码字长度Lk相关的距离并且被定义为在C 中具有长度Lk的所有码字之间的最小汉明距离,R=C中不同码字长度 的数量,所述产生步骤创建了n比特长的距离为d的字集W;

(3)在集合W中列出和存储所有可能的与C的码字距离为dmin的 L1元组(L1-tuples)(所述距离dmin对于VLEC码C来说是C的所有 可能的不同长度码字对之间的所有发散(diverging)距离的最小值), 并且,如果所述集合W不是空的,那么就通过在所有字的末端附加一 个额外比特来加倍W中的字的数量,从而所述存储步骤将该集合W替 换为新的集合,该新集合具有比前一个集合多两倍的字,并且这些字 的每一个的长度是L1+1;

(4)删除集合W中与C的所有码字不满足cmin距离的所有字,所 述距离cmin是码C的最小收敛(converging)距离;

(5)在没有发现字或者达到最大比特数量的情况下,减小距离约 束以便找到更多的字;

(6)控制集合W的所有字是距离为bmin的,然后将找到的字加到 码C;

(7)如果没有达到所需的码字数量,就重复步骤(1)到(6), 直到该方法发现不可能继续或者已经找到了所需的码字数量;

(8)如果C的码字数量大于S,基于VLEC码结构计算通过使用信 源概率对每个码字长度加权而获得的平均长度AL,如果它低于ALmin, 那么所述AL变成ALmin,其中ALmin=AL的最小值,并且相应的码结构 被保留在存储器中。

发明背景

图1显示的经典通信链结构包括,对来自信源S的信号进行编码 的信源编码器1(SCOD),接下来是信道编码器2(CCOD)和,在编码 信号传送之后通过信道3获得编码信号,信道解码器4(CDEC)和信源 解码器5(SDEC)。该解码信号将发送给接收机。由于其压缩能,可 变长度码(VLC)被传统地使用在信源编码中,并被应用到相关信道编 码技术中从而与实际传送信道效果(诸如衰减、噪声等等)做斗争。 然而,因为信源编码试图消除冗余而信道编码却试图重新引入冗余, 所以研究如何有效地协调这些技术从而改善整个系统,同时将复杂度 保持在可接受的平。
在研究中提出的解决方案中,可变长度纠错(VLEC)码表现了可 变长度的同时提供纠错能力的优点,但是对于短字母来说,建立这些 码是相当费时的(并且对于更长的字母信源来说甚至是禁止的),结 构复杂度也是一个缺点,以下将了解。
首先,必须回忆一些经典VLC的定义和特性。码C是S个码字的 集合{c1,c2,c3,...,ci,...cs},对于其中的每一个定义了长度li=|ci|,其 中l1≤l2≤l3≤...≤li≤...≤ls而没有任何一般性的损耗。码C中不同码字 长度的数量被称为R,显然R≤S,这些长度表示为L1,L2,L3,...Li,...LR, 其中L1<L2<L3<......LR。然后可变长度码或VLC,其结构表示为(s1@L1, s2@L2,s3@L3,.......,sR@LR),它对应于长度为L1的s1个码字、长 度为L2的s2个码字、长度为L3的s3个码字、......长度为LR的sR个 码字。当使用VLC时,对于给定的信源,其压缩效率与从所述信源传 送符号所需的比特数量有关。用来估计有效性的度量标准通常是码的 平均长度AL(即,传送一个字所需的比特数量的平均值),当每个符 号ai映射到码字ci时,通过以下关系式(1)给出所述平均长度:
AL = Σ i = 1 i = s l i · P ( a i ) · · · ( 1 )
该关系式等价于关系式(2):
AL = Σ i = 1 R L i · ( Σ j = r ( i ) + 1 j = r ( i + 1 ) P ( a i ) ) · · · ( 2 )
其中,对于数据源A,S个信源符号被表示为{a1,a2,a3,...,as},P(ai) 是这些符号每一个相应的出现概率,其中∑P(ai)=1(从i=1到i=S)。 如果ALmin表示平均长度AL的最小值,那么就很容易看出当达到ALmin 时,符号就以下面的方法索引:P(a1)≥P(a2)≥P(a3)≥...≥ P(ai)≥...P(as)。为了对数据以接收机能够对编码信息解码的方式编 码,那么VLC必须满足下面的性质:非奇异的(所有的码字是独特的, 即,没有多于一个信源符号被分配给一个码字)和唯一可解码的(即, 可能将任何码字串准确无误地映射回正确的信源符号,而没有差错)。
在回顾VLC码的一些通常特性时介绍和描述有用的各种距离将有 助于回忆起在VLEC编码理论中使用的纠错特性的概念:
(a)汉明加权和距离:如果w是长度为n的字,其中w=(w1, w2,...wn),那么w的汉明加权,或简称为加权,就是w中非零符号的数 量W(w):
W ( w ) = Σ i = 1 i = n w i | | w i | | · · · ( 3 )
并且,如果w1和w2是具有相同长度n的字,其中wi=(wi1,wi2,...win), i=1或2,那么w1和w2之间的汉明距离(或简称为距离)是w1和w2 不同的位置的数量(例如,对于二进制的情况,容易得出:
H(w1,w2)=W(w1+w2)           (4)
其中加法是模2运算)。然而,汉明距离的定义被限制在固定长度码, 其他的定义将在考虑VLEC码之前定义。
(b)将fi=w1i w2i......wni成为VLEC码C的n个字的串联,然后集 合FN={fi:|fi|=N}被称为N阶的C的扩展码。
(c)最小距离(block distance)和总最小块距离:与VLEC 码C的码字长度Lk相关的最小块距离bk被定义为C的具有相同长度为 Lk的所有独特码字之间的最小汉明距离:
bk=min{H(ci,cj):ci,cj∈C,i≠j,|ci|=|cj|=Lk}  k=1,...,R  (5) 并且,所述VLEC码C的总最小块距离bmin,即每个可能长度为Lk的最 小块距离值,由下式定义:
bmin=min{bk:k=1,...R}    (6)
(d)发散距离和最小发散距离:VLEC码C的两个不同长度的码字 c i = x i 1 x i 2 . . . . x i l i c j = x j 1 x j 2 . . . . x j l 1 之间的发散距离,其中ci,cj∈C,li=|cj|和 lj=|cj|,li>lj,由下式定义:
D ( c i , c j ) = H ( x i 1 x i 2 . . . x i l i , x j 1 x j 2 . . . . x jl j ) · · · ( 7 )
即,这也是lj长度码字和更长码字的lj长度前缀之间的汉明距离,所述 VLEC码C的最小发散距离dmin是C的具有不相等长度的所有可能码字 对之间的所有发散距离的最小值:
dmin=min{D(ci,cj):ci,cj∈C,|ci|≠|cj|}    (8)
(e)收敛距离和最小收敛距离:VLEC码C的不同长度的两个码字 c i = x i 1 x i 2 . . . . x i l i c j = x j 1 x j 2 . . . . x j l i 之间的收敛距离,其中|ci|=li>|cj|=lj,由下 式定义:
C ( c i , c j ) = H ( x i l 1 - l j + 1 x i l 1 - l j + 2 . . . . x i l 1 , x j 1 x j 2 . . . . x j l j ) · · · ( 9 )
即,这也是lj长度码字和更长码字的lj长度前缀之间的汉明距离,所述 VLEC码C的最小收敛距离dmin是C的具有不相等长度的所有可能码字 对之间的所有收敛距离的最小值:
cmin=min{C(ci,cj):ci,cj∈C,|ci|≠|cj|}               (10)
(f)自由距离:码的自由距离dfree是从某些共同状态Si发散并再 收敛到另一共同状态Sj的所有任意长度路径集合中的最小汉明距离, 其中j>i:
dfree=min{H(fi,fj):fi,fj∈FN,N=1,2,......,∞}    (11)
根据VLC所使用的结构模型,因此可以用下面符号来描述VLEC码 C的结构:
S1@L1,b1;S2@L2,b2;......;SR@LR,bR;dmin,cmin       (12) 其中,有si个长度为Li具有最小块距离bi的码字,对于所有的 i=1,2...R,(之前介绍过,R是不同码字长度的数量)并且具有最小 发散和收敛距离dmin和cmin。VELC码最重要的参数是它的自由距离 dfree,该自由距离大大影响了它在纠错能力方面的性能,VLEC码的自 由距离由下式限制:
dfree>min(bmin,dmin+cmin)             (13)
回忆这些定义,将更容易说明VLEC码结构的现有技术。第一种类 型VLEC码,称为α-激励码(prompt code),1974年引入,和该家族 的扩展,称为αt1,t2,...,tR-激励码,都具有同样的重要特性:如果一个表示 为比其他任何码字cj更接近于ci的字集α(ci),其中j≠i,那么α(ci)中没 有序列是另一个α(cj)中序列的前缀。这些码的构造非常简单,并且可 由各个长度的码字的数目来调整该构造算法,这能够为给定的信源和 给定的dfree找到最佳激励码。然而,该最佳码在压缩性能方面的表现 很差。
最近的构造允许从固定长度线性分组码的生成矩阵构造VLEC码, 在文件“Variable-length error-correcting codes”by V.Buttigieg, Ph.D.Thesis,University of Manchester,England,1995中提出 来了。所谓的码-反码(code-anticode)构造,这种算法依赖于行组合 和列置换在最右边一列形成反码。一旦获得码-反码生成矩阵,那么就 简单地通过矩阵乘法获得VLEC码。
但是该技术有几个缺点。首先,没有明确的方法来找到所需的行 组合和列置换以获得反码。另外,该构造没有考虑信源统计特性,从 而就经常显示其自身的次最佳(可以通过在VLEC码上的后处理找到带 有较小平均长度的码)。同样在该文件中,作者然后提出了一种改进 的方法,被称为启发式方法(Heuristic method),该方法基于计算 机搜索来建立VLEC码,从而为指定的信源和给定的对抗误码保护给出 更好的已知压缩率,即,码C具有指定的总最小块、发散和收敛距离 (也就是dfree的最小值)和与信源统计特性匹配的码字长度,从而为 所选的自由距离和指定信源获得最小平均码字长(实际操作中,采用 bmin=dmin+cmin=dfree,和:dmin=[dfree/2])。
该启发式方法使用了以下参数:码字的最小长度L1、码字的最大 长度Lmax、每个码字之间的自由距离dfree、所需的码字数量S。以下将 参考流程图2到4来描述该启发式方法主要的步骤。
为了开始计算机搜索(“开始”),那么首先必须指定所有所需 的参数:L1(最小码字长度,必须至少等于或大于所需的最小发散距 离),Lmax(最大码字长度)、码字之间的各种不同距离(dfree、bmin、 dmin、cmin),和S(给定信源所需的码字数量)、和当选择这些参数时 设置的一些关系式:
Ll≥dmin
bmin=dfree
dmin+cmin=dfree
然后执行该算法的第一阶段,附图标记为11:它包括产生长度为 L1以及最小距离为bmin具有最大码字数量的固定长度码(最初放在C 中)。该阶段实际上是初始化,例如使用以下方法执行:图5所示的 贪婪算法(GA)、图7所示的多数表决算法(majority voting algorithm)(MVA),或新提出的表示为GAS(分步贪婪算法)的变 型,包括上述两个方法的变型(GAS包括GAS所使用的搜索方法,其中 不删除一半码字,只删除该组的最后一个码字)。这两个算法有助于 创建长度为n比特且距离为d的集合W(实际上,应当注意,MVA比GA 找到更多的字,但是它需要太多的时间而压缩能力却只有小小的改 进,如图6和8的表格所示,分别与GA和MVA相比较,该集合W是使 用图9表格定义的26个符号英文信源的不同的dfree值所得到的最佳编 码结构。
该算法的第二个阶段,对应于图2中附图标记为21-24的单元 (21+22=操作过程“A0”;23+24=操作过程“A2”),包括:在称为 W的集合中列出和存储所有可能的距C中码字距离为dmin的L1-元组。 如果dmin≥bmin,那么W是空的。如果其中所有字对当前码来说满足最小 发散距离的集合W不是空的(回复“否”到测试22:|W|=0?),那么通 过将字的长度增加1个比特,即先将一个“0”再将一个“1”附加到W 中所有字的最右边位置,W中的字的数量被加倍(步骤24);除非超 出比特数量的最大值(回复“是”到测试23)。在所述步骤24的输出 端,该修改后的集合W具有了比之前W多两倍数量的字,每个字的长 度是L1+1。
对应于单元31到35(即图2中的操作过程“A3”),该算法的第 三阶段包括:删除(步骤31)集合W中所有不与C所有的码字满足cmin 距离(最小发散距离)的字(即,在新的W中仅保留和存储满足所述 最小发散距离的字,其他的被丢弃)。在这一点上,新的集合W是由 这样的字集成的集合:当与C的码字相比,这些字与C的码字满足所 需的最小发散和收敛距离(dmin和cmin距离)。如果该新集合W不空(回 复“否”到测试32:|W|=0?),在W中选择(步骤33)最大数量的字 以满足最小块距离,从而保证集合W中具有相同长度的所有字具有至 少等于bmin的最小距离。在步骤33的终点,使用GA或MVA实现的(注 意到在这种情况下,GA或者MVA所使用的初始集合是当前W而不是n- 元组集合),这样获得的字被加到(步骤34)已经存在于C中的码字。
如果在步骤21(回复“是”到测试22:|W|=0?)的终点没有字被 找到(即W是空的)或者如果达到或者超过最大比特数量(回复“是” 到测试23),那么就进入该算法的第4阶段(图3所示的步骤41到 46,并且在所述图中表示为操作过程“A1”),该阶段用来通过如下 操作阻止该过程,即通过插入更多选择的自由,更具体而言是将额外 的比特(同时几个比特)附加到W的所有字,这样新的集合包括比旧 的集合更多的字。如果在最后的组中有足够的码字(连续测试41和 42,用来验证在最后组中的码字的数量,如果有之前的组的话),它 们中的一些被从所述组(上述的)中删除,该删除允许减少距离约束 并且找到比以前更多的码字。事实上,上述经典的启发式方法开始于 具有短长度的最大数量的码字,把它们映射为具有高概率的符号并试 图获得好的压缩率,但有的时候,小长度集合的大小与所需的码字数 量S不具可比性。在这一点上,少许码字容易提供更多的自由度并能 满足这样的条件,即关于对码的距离和符号数量的初始要求。重复该 删除过程直到它对每个长度都保持一个码字的最大值。如果在步骤31 的终点W是空的(回复“是”到测试32:|W|=0?),那么重复步骤23, 24,31,32。如果没有达到所需的码字数量(回复“否”到在该第三 阶段终点提供的测试35),那么必须重复步骤21到24和31到35, 直到所述的步骤发现不可能找到字或者不可能达到所需的码字数量。
如果已经达到所需的码字数量,即,C的码字数量等于或大于S(回 复“是”到测试35),这样获得的VLEC码的结构被使用在第五部分, 包括步骤51到56(如图4所示,并且在所述图中用操作过程“A4”表 示),从而计算平均长度AL。通过对每个码字的长度使用信源的概率 加权,并且将其与当前最佳的一个相比来完成该部分。如果该VLEC码 的所述平均长度AL低于AL的最小化值(=ALmin),该AL变成ALmin, 并且该新的AL值和相应的码结构被保留在存储器(步骤51)中。在算 法中,这些步骤51和接下来的(第5部分;操作过程“A4”)的步骤 允许返回到前一组,而所述算法的其他阶段总是对当前组执行。该反 馈操作的步长是一,即该反馈动作被认为是穷举性的。
为了继续该最佳VLEC码的搜索,需要避免保持相同的结构,这会 导致算法中的循环。当前码的最后加入的组被删除(步骤52,53), 较短长度码字的删除能够发现找到长度更长的码字(测试54:组中的 码字数量是否大于1?),前一组的一些码字(对于GVA是一半的数量; 对于MVA是“最佳”的一个)被删除(步骤55),从而在步骤21的开 始处循环(步骤56)该算法(参考图2),并找到不同的VLEC结构(被 删除码字的数量依赖于使用的哪种方法选择字:如果使用GA方法并且 希望获得线性码,就需要删除一半的码字,而使用MVA方法只删除一 个码字,即最佳的那个码字,即允许在下一组中发现更多码字的那个 码字)。
然而,所描述的启发式方法经常考虑非常不太可能的码结构或者 处理这样的情况(为了不错过任何东西):在所述方法的实现中有很 高的复杂度,而且这相当费时,并且因此被禁止。
发明概述
本发明的目的在于提出一种改进的构造方法,从而可能通过避免 这些缺点而在复杂度上获益。
为此,本发明涉及一种建立可变长度错误代码的方法,如在本说 明书第一段的描述中所定义的,所述建立方法在于至多一个比特被加 到集合W的每个字的末尾。
本发明的另一个目的在于提供一种执行上述建立可变长度错误代 码的方法的设备。

附图说明

本发明将通过示例的方法并结合以下附图来描述:
-图1描述了传统的通信信道;
-图2到4是显示被称为启发式方法的建立VLEC码的传统方法的 主要步骤的一个流程图的3个部分;
-图5显示了图2到4的方法的初始化所使用的算法(称为贪婪 算法,或GA),图6是个表格,为使用图5的算法的启发式结构构造 的信源给出的各种VLEC码;
-图7显示了图2到4的方法的初始化所使用的另一种算法(称 为多数表决算法,即MVA),图8是另一个表格,为使用图7的算法的 启发式结构构造的信源给出的各种VLEC码;
-图9是一个表格,为26个符号的英文信源给出信源符号及其概 率之间的对应关系。
-图10和11根据本发明的单个流程图的两个部分,显示了图2- 4所示的传统方法的改进方法的实现。
-图12是另一个表格,为在图6和8的表格所考虑的同样的26 个符号的英文信源给出不同的VLEC码,并使用GAS;
-图13是另一个表格,为在图12中的相同信源给出各种VLEC 码,并使用前面提到的GAS和根据本发明的建立方法。
发明详述
仿真显示,使用经典的启发式方法,几乎所获得的最佳代码中没 有一个有洞(hole),即在其结构长度内的长度跳变。因此提出,根 据本发明,考虑到最好的码不带有长度的跳变,从而相应地减少被检 查VLEC码的集合(这也就减少了仿真时间和方法实现的复杂度,而不 用对AL做太多的修改)。根据这个设想,根据本发明,通过避免在集 合W的每个字的末端添加多于1个比特来修改该方法。
相应的实现(改进的启发式构造方法,具有无洞优化)显示在图 10和11中,这两个图显示了与系统对应的流程图的两部分,该系统允 许执行根据本发明的改进的方法(与图2到4中相同的单元被指定了 相同的附图标记)。
与图2到4的流程图主要的不同在于以下各个方面:
(a)首先,就经典启发式技术来说,对于实现改进的方法无用的 部分被取消了;
(b)如果在步骤31的终点W是空的(回复“是”到测试32; |W|=0?),那么下一阶段现在(参考图10)不是步骤(23,24,31, 32)的重复,而是建立(替换所述的重复)直接连接91到电路的输入 端(图11中),执行操作过程55(在重复步骤21到24和31到35 之前,删除一些码字,或者删除最佳码字),所述操作过程55因此, 如前所述,其后跟随着操作过程21以及下述操作。
(c)该方法的第4阶段现在被简化为一个步骤,操作过程41(图 11),即测试“最后组的码字数量=1?”。如果回复是“否”,那么 考虑到执行所述操作过程55,与步骤55的输入端的直接链接101被建 立,然后是操作21等等。如果回复是“是”,与操作过程52到54的 集合的输入端的连接102被建立。
当使用GAS方法来选择码字时,对26个符号的英文信源使用该解 决方案(被称为“无洞优化方法”)得到的结果显示在图12的表格中。 可以看出,与图13所示的结果相比,虽然该结果对于dfree=3来说不是 完全地最佳(该码结构在长度L=11处有个洞),但是当考虑到对于 其他dfree值来说严格地没有衰退并且在2,5和4之间有时间增益时, AL增加实际上是可接受的。当将该解决方案与图7的解决方案相比, 也可以使用该评论,其中MVA复杂性效应是清楚的。同样地,将无洞 优化应用到GA方法用来选择码字,对于dfree=3来说用轻微的AL增加 代价获得时间的增益。最后,图5在另一方面显示了当前解决方案提 供可接受时间增益的更好的AL,无洞优化几乎完全补偿了由GAS引入 的复杂度。
QQ群二维码
意见反馈