产生数据流的设备和方法和读取数据流的设备和方法

文档序号:7508188阅读:333来源:国知局
专利名称:产生数据流的设备和方法和读取数据流的设备和方法
技术领域
本发明与用可变长度码字进行编码的技术有关,具体地说,本发明涉及产生和读取对在传输中出现的差错不敏感即鲁棒(robust)的用可变长度码字编码的数据流。
背景技术
现代的例如遵从MPEG层3标准的音频编码或解码方法可以将音频信号的数据率压缩到例如1/12(即压缩因子为12),而不会使音频信号的质量有明显的下降。为了实现这样高的数据率的压缩,通过对音频信号采样得到一个离散时间样点序列。如在该技术领域所知的那样,这个离散时间样点序列经窗处理后,得到一系列经窗处理的时间样点块。一个在时间上加窗的样点块用滤波器组、变型离散余弦变换(MDCT)或其他适当的措施变换到频域,得到一些频谱值,这些频谱值作为一个整体就是这个离散时间样点块确定的这段时间的音频信号的频域表示。通常,以50%的交叠产生时间块,通过MDCT变换到频域,由于MDCT的特性,例如1024个离散时间样点总是产生1024个频谱值。
众所周知,人耳的感觉取决于音频信号本身的瞬时频谱。这个关系遵从所谓的心理声学模型,用这个模型可以为一段时间计算出一些取决于瞬时频谱的遮蔽门限。遮蔽意味着一个特定的音或频谱分量在例如一个相邻的频谱范围具有比较高的能量的情况下会受到掩盖。为了尽可能尽可能精确地量化变换后得得出的频谱值,可以利用遮蔽这个现实。目的是一方面避免再解码得到的音频信号内有听得到的干扰,另一方面也可以在这种情况下用尽可能少的比特来编码或量化音频信号。所希望的是,量化引入的干扰,即量化噪声,低于遮蔽门限,从而成为听不见的。按照已知的方法,将这些频谱值分成一些所谓的比例因子频带(scale factor band),这些频带应该相应于人耳的临界频带,即频率组。在一个比例因子组内的各个频谱值乘以一个比例因子,执行对一个比例因子频带的各个频谱值整体定标。然后对用比例因子定标的这些比例因子频带进行量化,产生量化的频谱值。当然,分成比例因子频带并不是关键性的。然而,它用于MPEG层3标准或MPEG 2 AAC(高级音频编码)标准。
数据压缩的一个非常重要的方面是对量化后的频谱值进行熵编码。熵编码通常用霍夫曼(Huffman)编码。霍夫曼编码是一种可变长度编码,也就是说,一个需编码的值的码字长度取决于这个值的出现概率。在逻辑上,霍夫曼编码对最可几的字符赋予最短的码,即最短的码字,从而可以实现很好的冗余度压缩。一个普遍所知的用普通长度编码的例子是莫尔斯(Morse)码。
在音频编码领域,用霍夫曼码对量化的频谱值编码。一种现代的例如按照MPEG 2 AAC标准工作的音频编码器用不同的霍夫曼码表对这些量化的频谱值编码,这些霍夫曼码表由一定的准则分配给频谱各段。在这个过程中,2个或4个频谱值总是一起编码成一个码字。
遵从MPEG 2 AAC的方法与遵从MPEG层3的方法之间的一个差别是将不同的比例因子频带,即不同的频谱值,组合成任何个数的频谱段。采用AAC,一个频谱段包括至少四个频谱值,最好是四个以上的频谱值。因此,这些频谱值的整个频率范围分割成一些相邻的段,一段表示一个频带,而所有的段一起覆盖了整个频率范围,它是变换后的这些频谱值的叠加。
在MPEG层3方法中,从多个所谓的“霍夫曼表”中将一个可以实现最大的冗余度压缩的表分配给一个段。在AAC方法的比特流中,通常包括1024个频谱值,现在就是这些频谱值按频率递升次序排列的霍夫曼码字。有关在各频率段中所用的表的信息在辅助信息中传送。这种情况如图6所示。
图6示出了包括10个霍夫曼码字的比特流的示范性情况。在一个码字总是由一个频谱值形成的情况下,这可以是对10个频谱值编码得到的结果。然而,通常总是将2个或4个频谱值一起编码成一个码字,这样图6就示出了包括20个或40个频谱值的编码比特流的一部分。在各霍夫曼码字包括2个频谱值的情况下,标号为1的码字表示开头两个频谱值,码字1的长度比较短,意味着开头两个频谱值(即两个频率最小的系数)较为经常地出现这。然而,标号为2的码字具有比较长的长度,这意味着在编码音频信号中的第三和第四个频谱系数这样的值较少出现,因此用比较多的比特编码。此外,从图6可见,表示频谱系数5和6、7和8、9和10的编号为3、4、5的码字也较为经常地出现,因为这些码字的长度也比较短。对于编号为6至10的这些码字同样也可以作这样的分析。
如已经提到的那样,从图6可以清楚地看到,在考虑比特流由已知的编码设备产生的情况下,这些编码频谱值的霍夫曼码字在这个比特流中按频率线性递增方式排列。
霍夫曼码的一个主要缺点是在信道不理想的情况下会出现差错传播。例如,假设图6中的码字2受到了干扰。这很可能也改变了这个错误的码字2的长度,因此使它与正确的长度不同。在图6这个例子中,在码字2由于受到干扰而长度改变的情况下,一个解码器就不再能确定码字3至10(几乎表示整个音频信号)的开始点。这意味着在受到干扰的码字之后的所有其他码字不再能正确地编码,因为不知道这些码字的开始点,而由于这个差错选择了不正确的开始点。
作为差错传播问题的一种解决方案,欧洲专利No.0 612 156建议将一部分可变长度的码字排列在一个格栅(raster)内,而将其余的码字分布在剩下的空隙内,因此不需要完全译码或者在传输有错的情况下可以更为容易地发现排列在栅格点上的码字的开始点。
确实,这种已知方法通过重排码字对差错传播提供了某些改善措施。对于某些码字,可以占用比特流中的一些固定位置,而剩余的空隙可用于剩下的码字。这并不需要任何额外的比特,但是防止了在有差错的情况下差错在这些重排的码字之间传播。
在本申请提交日期后公布的德国专利申请19 747 119.6-31建议不是就将任何码字置在栅格点上,而是将从心理声学看来是重要的码字,即对音频信号有明显影响的那些频谱值的码字,置于栅格点上。诸如由这样的编码器产生的可变长度码字数据流示于图5。如在图6中那样,该数据流也包括10个码字,其中打上了阴影线的是优先码字。第一优先码字安排成在第一格栅点100处开始,第二优先码字安排成在第二格栅点101处开始,第三优先码字安排成在第三格栅点102处开始,第四优先码字安排成在第四格栅点103处开始,而第五优先码字安排成在第五格栅点104处开始。第一段105由栅格点100和101限定。类似,第二段106、第三段107、第四段108和最后段109也相应这样限定。由图5可见,前两段105和106的长度与下两段107和108的不同,还与最后段109的不同。然后,将非优先码字6、7、8、9和10接在这些优先码字之后填满数据流。如图5所示,在这种后发表的方法中,非优先码字相继插入已经写有优先码字的栅格。具体地说,非优先码字6插在优先码字1后。在这段105还剩下的空间内充以接着的非优先码字7,而非优先码字7的剩余部分,即7b,写入下一空闲空间,即写入段107内,紧接优先码字3。对于非优先码字8至10,也是这样处理。
图5所示的这种后发表的方法的优点是,优先码字1至5得到保护,不受差错传播影响,因为它们的开始点与栅格点一致,因此是已知的。
例如,在优先码字2在传输中受到损害的情况下,用图6所示的现有技术很可能解码器就不能对任何其余的码字3至10正确解码。然而,用图5所示的方法,下一个码字,即优先码字3,在栅格点102处开始,因此解码器无论如何都能发现码字3的开始点。因此,用图5所示的方法,无论怎样也不会出现序列性差错(sequence error),而只有优先码字2会受到损害。因此,这种方法为处在栅格点的优先码字提供了有效保护。
然而,对于非优先码字来说,却没有得到有效保护。参照图5,如果非优先码字6受到损害,使得解码器得出一个短一个比特的错误码字6,这将导致不再能对码字7正确解码,因为正确的码字6的最后一个比特将被解释为下一个码字7的开始点。因此,码字6的差错将很可能由于序列性差错导致不再能对后面的任何码字正确解码,即使这些码字并没有受到传输差错的有害影响。
发明概述本发明的目的是使可变长度码字具有更好的差错鲁棒(error-robust)。
这个目的由按照权利要求1提出的产生数据流的设备、按照权利要求12提出的读取数据流的设备、按照权利要求18提出的产生数据流的方法和按照权利要求19提出的读取数据流的方法来实现。
本发明基于认识到在不只在一个写方向而且还在另一个写方向写数据流时数据流对传输差错,具体地说是对可变长度码字的序列性差错的鲁棒性(robustness)可以有决定性的增强。在大多数情况下,一个数据流总是有一个开始点和一个结束点。在现有技术中,在最简单的情况下,数据流是从开始点开始一直写到结束。这样就有可能在第一个码字内的一个传输差错会导致整个数据流不再能正确解码,即使是所有其他码字都是正确传输的。按照本发明,一个数据流可以写成第一半从数据流的开始点开始写,而第二半从数据流的结束点开始写。即使从这个简单的例子也可以看到,在数据流的第一半内的传输差错不再会影响到数据流的第二半使其也由于序列性差错而不能正确解码。这是因为解码器知道数据流的后一半必须从数据流的结束点开始,确切地说沿相反的读方向,继续读取。因此,只是由于使写方向/读方向反向而实际上不用额外的代价就可以获得一定的差错鲁棒性。
如已经提到的那样,利用栅格点将可变长度码字写入数据流可以使解码器解码的序列性差错受到限制,因为按规定,确定的码字在栅格点开始。为了使差错鲁棒性最高,原则上希望使栅格尽可能窄,从而使解码器可以发现尽可能多的码字的正确开始点。但是,增多栅格点,即减小段长,如所知的那样,将导致越来越少的具有可变长度的码字可以完全装入栅格内,从而需要采取一些措施将不能完全装入栅格的那些码字的末端部分写入其他的栅格,以便在解码时能正确检测。这导致在增多栅格点、缩短段长时要增加额外的代价。
在现有技术中,码字只沿单个写方向从栅格点开始写,如结合图5和6所说明的那样。按照本发明,码字现在也沿相反的写方向从栅格点开始写,这使可以在栅格点开始写的码字数加倍,在最佳情况下基本上不需任何额外的代价。通过用一个装置沿一个第一写方向从一个基准点开始写而用另一个装置沿一个与第一写方向相反的第二写方向从另一个基准点开始写来写数据流,就不仅能利用一个基准点的“一侧”而且能利用一个基准点的两侧来增强差错鲁棒性,即防止传播差错或序列性差错的能力。根据实现的方式,例如可以每隔一个码字沿相同的方向写,而其余各码字可以沿另一个方向写。另一方面,可以将可变长度码字例如按照它们的优先权划分成一些不同的码字组,使得例如第一组的所有码字都沿第一写方向从栅格点开始写,而第二组的所有码字都可以沿第二写方向从栅格点开始写。
此外,码字的剩余部分可以沿与码字的开始部分相同的写方向或者相反的写方向写。显然,必须采取一些措施使解码器,即读数据流的设备,可以始终完全知道在写数据流时的写方向。这可以明确设定,或者作为可变长度码字数据流的辅助信息传输。对于段长也可以这样,段长可以是相等的,或者在整个数据流上是可改变的,当前段长当然也可以在解码器内明确设定,或者也可以作为辅助信息与可变长度码字一起传输。


下面将结合附图详细说明本发明的优选实施例。在这些附图中图1示出了本发明的一种写一个差错鲁棒的数据流的设备;图2示出了本发明的一种读一个差错鲁棒的数据流的设备;图3示出了本发明的方法在三个可变长度码字组情况下的程序图;图4示出了例示本发明的方法读按照图3产生的数据流的程序图;图5示出了一种已知设备产生的优先码字遭受差错传播的数据流;图6示出了一个执行了按优先码字和非优先码字排列的数据流。
实施例详述在详细说明图1前,应指出的是,用可变长度码字编码在这个技术领域中也称为熵编码。熵编码的一个典型例子是所谓的霍夫曼编码。原则上,在霍夫曼编码中,对需编码的这些信息码元进行统计检验后,确定对于经常出现的信息码元用比不经常出现的信息码元短的码字。在完全的霍夫曼码中,所有的码字都终止于一个码树的端或分支。例如,一个霍夫曼解码器串行读入一个霍夫曼码字的数据流,每读入一个比特就跳转至这个规定的码树的一个分支,直到若干次(与码字的比特数即码字长度相应)跳转后,到达一个没有任何分支的分支端,就得出一个码字。于是,解码器知道下一个比特就是一个新码字的开始。这个过程按需要一直重复到数据流完全读入。每当霍夫曼编码器跳回开始点,即码树的根,在它的起始点就给出一个码字。由于码字的长度隐含地由码字本身或者在编码器和在解码器内已知的码树规定,因此可以看到,会导致数据流内一个比特翻转的干扰将误导解码器在码树中的跳转,从而最后得到一个不同的即错误的码字,这个错误码字很可能具有与正确码字不同的长度。在这种情况下,解码器得出错误码字后,将跳转回来,按后面的比特重新在码树内从一个分支点移动到另一个分支点。然而,这个解码器不可能避免序列性差错,除非它偶然得出一个正确的“码端”。
因此,为了保证差错鲁棒的传输,必须执行防错,如本发明所作的那样。实际上,按照本发明设计的产生可变长度码字数据流的设备可以起着霍夫曼编码器的发送或输出级的作用,而读取可变长度码字数据流的设备可以起着霍夫曼解码器的接收或输入级的作用。由此可见,本发明不仅适用于霍夫曼编码器,而且也适用于任何容易出现序列性差错的有可变长度码字的码。
图1示出了按照本发明设计的设备10,在可变长度码字加到输入端14上输入设备10时,它在输出端12上产生一个差错鲁棒的数据流。这种设备包括一个沿一个第一写方向从一个第一基准点开始写的第一装置16和一个沿一个第二写方向从一个第二基准点开始写的第二装置16。根据设备10的复杂性,可变长度码字可以如图1所示加到装置16和18上,由一个简单的分支点20和一个相应的合并点22写。装置16和18确定选择哪些码字沿哪个方向写和/或码字的哪些部分沿哪个方向写。代替节点20,也可以用一个多路分用器将一些特定的码字(例如一个码字组中的码字)提供给第一装置16而将另一些特定的码字提供给第二装置18。同样,合并点22可以用一个多路复用器实现,多路复用差错鲁棒的数据流12。也可以用其他受相应控制为装置16和18提供可变长度码字的器件,这对于熟悉该技术的人员来说在看本说明时是很清楚的。
图2示出了读差错鲁棒的数据流的设备30,设备30是一个与图1所示的产生数据流的设备10互补的设备。设备30包括一个输入端32,差错鲁棒的数据流在通过例如一个无线电链路传输后加到这个输入端32上,以便在开始点34上重新得出已加到图1中的设备10的输入端14上的可变长度码字。读数据流的设备30包括一个沿第一方向从第一基准点开始读的第一装置36和一个沿第二方向从第二基准点开始读的第二装置38。
显然,设备30也有一个分支点40和一个合并点42,根据例如一个明确设定的算法或者可以与差错鲁棒的数据流一起从发送方(即图1的设备10)发送给接收方(即图2的设备30)的辅助信息将差错鲁棒的数据流馈入装置36和38。
图3以一个例子为例示出了本发明的写可变长度码字的方法。在这个例子中,有15个可变长度码字30,这些码字分成有6个码字1至6的第一组、也有6个码字7至12的第二组和有剩下的3个码字13至15的第三组。如图3所示,码字30具有可变长度。
按照本发明的一个优选实施例,段长(即段的长度)比第一组内最长的码字的长度还长一些。第一组的码字排列在栅格点41至46上,其中,对于最后段No.6,一个栅格点用虚线表示,这个栅格点并不使用,然而,由于数据流的终端47实际上也可以认为是一个栅格点,用虚线表示的这个栅格点因此是冗余的栅格点。第一段No.6因此比其他段都长,然而,这对于本发明来说是无关紧要的。一般说来,这些段可以具有任何长度,可以在数据流内改变,当然解码器必须知道当前段的长度,从而可以利用本发明的优点。
首先,在步骤a)将第一组的码字写入数据流,产生一个由碎片组成的数据流31,第一组的码字如图3中符号化表示写入方向的箭头48所示从左至右写入相应各段。由于段长度选择成比第一组内最长的码字还长,因此步骤a )只需要一次试写。在这些段较短的情况下,可能因此需要多次试写。
然后在步骤b)将第二组的码字写入数据流31。为了获得高的差错鲁棒性(error robustness),第二组的码字不是像第一组的码字那样从左至右而是从右到左分别从第二栅格点开始(例如对于第一段从栅格点42开始)写,如相应的写方向箭头所示。写第二组的码字按照预定指配规则进行,在所选的这个例子中,第二组的第一个码字写入与第一组的第一个码字相同的段,然而始终要在这段还有空间的情况下才行。由第一次试写产生的数据流32表明在第一段内只有可以写入码字7的开始部分那么多的空间。
与将码字7的第二部分写入第二段的现有技术相反,将码字7的第二半(即7b)存储起来,在第二次试写中按照解码器也必须知道的预定条例写入数据流。图3清楚地示出了在第二段内码字2与8之间还有足够的空间可以让码字No.7的最后部分插入。在没有足够的空间的情况下,这个码字的第三部分可以插入段3。因此,在图3中,将码字7插入数据流的预定条例是在每个情况下用一个段继续进行。当然,也可以用两个段或三个段或者更多段继续进行,使得在下一次试写中第二部分7b可以写入不是第二段而是第三段、第五段等。用来容纳码字7的第二部分的各段的次序可以任意。然而,这必须对解码器是透明的,使得这个重排的数据流可以重读取。
然后,将第三组的码字13至15插入所得到的仍由碎片组成的数据流33。与步骤b)类似,最好用相同的指配规则进行,使得第三组的第一个码字分配给第一段、第三组的第二个码字分配给第二段、第三组的第三个码字分配给第三段等等。这个指配规则对于第三组完全是任意的,也可以与第二组的指配规则不同,按照本发明将一个组的各个码字分配给不同的段。类似,各个组的写的方向也可以任意选择。最好采用交替的写方向次序。然而,也可以将两个相邻的组用相同的写方向写入。原则上,在一个组内写方向也可以改变。
在步骤c)中,第一次试写只是将码字15的第一部分插入,产生一个由碎片组成的数据流34。码字13、14和码字15的第二部分15b存储起来,在第二、第三、第四、第五和第六次试写中插入,其中在第二次试写中码字15的第二部分15b可以插入第四段(产生数据流35),在第三次试写中第四段不再能容纳什么,于是在第四次试写中将码字14的开始部分插入(产生数据流36),码字14的最后部分14b可以在第五次试写中插入(产生数据流37),而最后在第六次也就是最后一次试写中可以将第三组的第一个码字插入第六段,从而产生在这里所示的例子的差错鲁棒数据流38。图3所示的方法保证了这种差错鲁棒数据流的长度完全与这些可变长度码字的长度相应,对于数据压缩的熵解码是自明的。然而,本发明并不局限于具有最小长度的差错鲁棒数据流,因为差错鲁棒性不受可能出现的填充比特的影响。
从图3所示的鲁棒数据流可见,码字8的开始点即栅格点43完全与码字7的结束点无关。而且,码字9的开始点即栅格点44完全与码字8的结束点无关。此外,应指出的是,由于反向写入的规则,例如第一段内码字1的导致错误的码字比正确的码字1短一个比特的数据差错不会破坏码字7a的开始部分,因为后者是从右到左而不是从左至右写入的。在从左至右写入的情况下,解码器会取最初正确的码字1剩下的这个比特作为码字7的开始比特,这将产生一个从1至7的序列性差错。然而,这个序列性差错不会传播至8,因为码字8完全地完全与码字7无关,选择成从右到左写入。在码字8的写入次序等于第一组的码字的写入次序的情况下,这个差错也不会从7传播到8,因为码字8按指配规则在第二部分7b前写入,与码字2邻接,因此不受错误部分7b的影响。
图4通过一个适当的例子示出读取差错鲁棒数据流38的设备的操作。首先,在步骤a)从差错鲁棒数据流提取第一组的码字。为此,本发明的可以与一个霍夫曼解码器连接的设备从第一栅格点41开始读取第一组的码字1、从第二栅格点42开始读取第一组的码字2等等,直到读取了第一组内的所有码字1至6。显然,读取数据流的设备选择与产生数据流的设备所用的相同的方向。
接着,在步骤b)从剩下的数据流50提取第二组的码字。于是,解码器跳至第一段的第二栅格点42,得出第二组的码字7的开始部分7a(第一段现在已读空),但是它不是就读第二部分7b,而是将第一部分7a先存储起来,再从第二段的第二栅格点开始读取第二组的第二个码字,等等。结果得到一个剩余的数据流51,其中第一段已经完全出空。由于解码器并不马上就连续读取码字7,而是始终根据产生数据流的设备所用的指配规则逐段读取,因此保证了已经说明的差错鲁棒性,大大减少了序列性差错的传播。
在第二次试提取第二组的码字中,按照现有的写入方向在第二段内读取码字7的第二部分7b,得到只剩下第三组的码字的数据流52,而第二段已出空。在步骤c)提取第三组的码字,首先在第一次试读中确定码字15的开始部分,然而不将它存储起来,因为发现在第三段内码字15没有结束。于是,第三段出空。在第二次试读中,可以发现码字15读完。然而,从数据流54可见,在段3内搜索码字14和在段4内搜索码字15都没有成功。于是,在第四次试读中,在第五段内搜索到码字14。然而,码字14没有结束,因此将开始部分14a存储起来,在第五次试读中检验剩余的数据流55,完全读取,在最后的第六次试读中,数据流56现在只有第六段和只有码字13。
虽然在前面的例子中只是用将码字分成一个开始部分和一个最后部分作为例子来说明,但是原则上可以用任何类型的划分。只要解码器知道第二组或第三组和其它组的码字分别指配给不同的段的情况,就可以保证差错鲁棒解码。而且,将码字的最后部分安排入数据流显然可以是任意的,只要解码器或解码器上游写入电路确切知道编码器执行的预定条例。
为了再次强调本发明的优点和/或工作情况,再对图3中的差错鲁棒数据流38进行一些说明。在考虑栅格点41和42之间的第一段时,可以看到码字1从左至右从第一栅格点41开始写入,如由图下箭头清楚示出的那样。然而,码字7的第一部分7a从右到左从第二栅格点42开始写入。如果两个码字1和7或7a都只是从左至右写入数据流,码字7的开始点或码字7的开始部分7a的开始点就取决于码字1的结束点。因此,在码字1内的传输差错几乎不可避免地在码字7内引起序列性差错。然而,如果按照本发明,将码字7沿相反的写方向从第二栅格点42开始写入,码字7的开始点或码字7的开始部分7a的开始点就不再取决于码字1,而由格栅或栅格点42确定。解码器将始终知道这个开始点,这就是码字1内的差错不会在码字7内引起差错的原因。从图3中的差错鲁棒数据流38可以看到,码字7的第一部分7a和第二部分7b都在相同的写方向写入。然而,这并非强制性的。当然,码字7的第二部分7b也可以从左至右在第二码字2的结束点开始写入。
如果栅格点选择成使这些段长度比第一组内的最长码字还长,例如从图3的数据流31可以看到,就没有一个段会被第一组的码字完全填满。在这种情况下,可以使在栅格点开始写的码字的数目实际上加倍,而不需要提供任何一个额外的栅格点。
权利要求
1.一种产生一个包括两个基准点(41-47)的可变长度码字数据流(38)的设备(10),所述设备包括一个将一个码字的至少一部分沿一个第一写方向从一个第一基准点开始写入所述数据流的第一装置(16);一个将一个码字的至少一部分在一个与所述第一写方向相反的第二方向从另一个基准点开始写入所述数据流的第二装置(18)。
2.如权利要求1所述的设备,其中所述数据流的两个基准点分别为所述数据流的开始点(41)和结束点(47)。
3.如权利要求1所述的设备,其中所述第一写装置(16)配置成写一个码字的一个开始部分,而所述第二写装置(18)配置成写同一个码字的剩余部分的至少一部分。
4.如权利要求1所述的设备,其中所述数据流包括许多作为基准点的栅格点(41-46),这些栅格点规定了一个格栅,而两个相邻的栅格点限定了一个段,所述第一写装置(16)配置成在一个段的第一栅格点开始写入一个第一码字,而所述第二写装置(18)配置成在这个段的第二基准点开始写入一个第二码字。
5.如权利要求1所述的设备,其中所述数据流包括许多作为基准点的栅格点,这些栅格点规定了一个格栅,而两个相邻的栅格点限定了一个段,所述第一写装置(16)配置成在第一段的第一栅格点写一个第一码字的一个开始部分和在下一段的第一栅格点写一个第二码字的一个开始部分,而所述第二写装置(18)配置成分别从第二段的第二基准点开始写第一码字的其余部分和从再下一段的第二基准点开始写第二码字的其余部分。
6.如任何以上权利要求中所述的设备,其中所述这些码字分成多个码字组,所述第一写装置(16)配置成将第一组的每个码字从一个段的第一基准点开始写入数据流,而第二写装置(18)配置成将第二组的每个码字从一个相应的段的第二基准点开始写入数据流。
7.如权利要求6所述的设备,其中所述第二写装置(18)配置成从所述第一写装置(16)已经写入的段的第二基准点开始写,如果第二组的相应码字比这段内的未占用的空间还长,就将第二组的这个码字的适合未占用的空间的这部分写入这段,而将其余部分存储起来。
8.如权利要求6或7所述的设备,其中所述第二写装置(18)配置成只在第一组的所有码字都已经写入数据流后激活。
9.如权利要求8所述的设备,其中所述第二写装置(18)配置成将码字的剩余部分在作为一个基准点的第二组的一个码字的结束点后写入数据流。
10.如权利要求6至9中任何一项所述的设备,其中所述第二组的码字按照一个预定的指配规则分配给各段,使得第二组的每个码字分配给一个不同的段,而所述第二写装置(18)配置成如果第二组的一个码字不能完全写入所分配的段就在它用第二组的其他码字处理了所有剩余的段后再将剩余部分写入另一个没有被完全占用的段。
11.如权利要求4至10中任何一项所述的设备,其中所述码字分成至少三个组,所述第一写装置(16)配置成从各段的第一栅格点开始写第一组的码字,所述第二写装置(18)配置成从各段的另一个栅格点开始写第二组的码字,所述第一或第二写装置(16,18)还配置成分别从第一和第二组的码字的结束点开始写第三组。
12.一种读取一个包括两个基准点的数据流(32)的设备(30),一个码字的至少一部分沿一个第一或第二写方向从这两个基准点开始写入数据流,所述设备包括一个在一个与第一写方向相应的第一读方向从第一基准点开始进行读取的第一装置(36);以及一个在一个与第一读方向相反的第二读方向从第二基准点开始进行读取的第二装置(38)。
13.如权利要求12所述的设备,其中所述数据流包括许多作为基准点的栅格点,这些栅格点规定了一个格栅,两个相邻的栅格点限定了一个段,所述数据流包括多个码字组,第一码字组沿第一方向写入而第二码字组沿第二方向写入,第二组的码字按照一个预定的指配规则分配给数据流的各段,使得一个组的每个码字分配给一个不同的段,所述设备还包括一个控制装置(40),用来将在栅格点开始的第一组的码字提供给第一读装置(36)和将第二组的码字提供给第二读装置(38),其中,按照预定的指配规则跳至相应的栅格点,如果在一个基准点发现没有码字,就按照指配规则验证第二组的码字是否出现在相应的栅格点,在读取了第二组的所有码字后,按照预定规则跳至一个不同的栅格点,以便完全得出第二组的所有码字。
14.如权利要求13所述的设备,其中一个读装置如果在一个段内读取的只是一个码字的开始部分,就将这个开始部分存储起来。
15.如任何以上权利要求所述的设备,其中所述码字为霍夫曼码字。
16.如任何以上权利要求所述的设备,其中所述码字表示信息码元,而所述第一组的码字表示比第二组或其它组的码字重要的信息码元。
17.如权利要求16所述的设备,其中所述信息码元为一个音频信号的频谱值,而所述第一组的码字为从心理声学观点看来是重要的那些频谱值,需要予以保护,以免受到数据流传输差错引起的差错传播的影响。
18.一种产生一个包括两个基准点(41)至(47)的可变长度码字数据流(38)的方法(10),所述方法包括下列步骤将一个码字的至少一部分沿一个第一写方向从一个第一基准点开始写入数据流;将一个码字的至少一部分沿一个与所述第一写方向相反的第二写方向从另一个基准点开始写入数据流。
19.一种读取一个包括两个基准点的数据流(32)的方法(30),一个码字的至少一部分分别沿一个第一和第二写方向从这两个基准点开始写入数据流,所述方法包括下列步骤沿一个与第一写方向相应的第一读方向从所述第一基准点开始进行读取;以及沿一个与第一读方向相反的第二读方向从第二基准点开始进行读取。
全文摘要
熵编码器包括一个产生包括两个基准点的可变长度码字数据流的设备(10),这个设备包括一个将一个码字的至少一部分沿一个第一写方向从一个第一基准点开始写入数据流的第一装置(16)和一个将一个码字的至少一部分沿一个与第一写方向相反的第二写方向从另一个基准点开始写入数据流的第二装置(18)。具体地说,在用一个具有多个段的格栅将可变长度码字写入数据流时,在最佳情况下,可以在栅格点开始写入的码字的数目可以加倍,从而使可变长度码字数据流对于序列性差错的传播是鲁棒的。
文档编号H03M7/40GK1343390SQ00804929
公开日2002年4月3日 申请日期2000年1月17日 优先权日1999年2月23日
发明者拉尔夫·斯皮尔施内德, 马丁·迪茨, 丹尼尔·霍姆, 雷恩霍尔德·贝姆 申请人:弗兰霍菲尔运输应用研究公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1