CN1682450A - 用于对可变长度的软输入代码字序列进行信源译码的方法和装置 - Google Patents
用于对可变长度的软输入代码字序列进行信源译码的方法和装置 Download PDFInfo
- Publication number
- CN1682450A CN1682450A CNA038215152A CN03821515A CN1682450A CN 1682450 A CN1682450 A CN 1682450A CN A038215152 A CNA038215152 A CN A038215152A CN 03821515 A CN03821515 A CN 03821515A CN 1682450 A CN1682450 A CN 1682450A
- Authority
- CN
- China
- Prior art keywords
- variable
- length
- soft
- path
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 28
- 230000001186 cumulative effect Effects 0.000 claims description 30
- 238000013459 approach Methods 0.000 claims description 5
- 238000012958 reprocessing Methods 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000008676 import Effects 0.000 claims 2
- 238000004364 calculation method Methods 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 claims 1
- 238000012805 post-processing Methods 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 241000122235 Junco hyemalis Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 102220042338 rs200918108 Human genes 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3977—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sequential decoding, e.g. the Fano or stack algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
- H03M13/6318—Error control coding in combination with data compression using variable length codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种用于将可变长度的软输入代码字序列(y[1:T])信源译码成软输出比特序列(Lv[1:T])的方法,所述可变长度的软输入是输入依照VLC码字表编码的代码字序列(y[1:T])。该方法包括:为所述可变长度的软输入代码字序列的硬输出比特序列的顺序估计而实施堆栈译码算法的第一阶段(100),包括存储堆栈中所含的和用堆栈译码算法生成的中间数据;以及对所存储的中间数据进行后处理以便生成软输出比特序列(Lv[1:T])的第二后续阶段(102),为每个比特提供一个软输出(L(x[t]))。
Description
发明领域
本发明涉及一种用于将可变长度的软输入代码字序列信源译码成软输出比特序列的方法。
这种方法可以用在例如象视频或音频通信系统这类使用可变长度码的任何系统中。
发明背景
视频通信系统典型地包括:信源编码系统、信道和信源译码系统。信源编码系统生成可变长度代码字序列,并经由信道将它们发送到信源译码系统,所述信源译码系统由于共享代码而对它们进行译码。
因为其压缩能力而在视频编码标准中广泛使用的可变长度码对信道误码是非常敏感的。事实上,当一些比特被信道改变时,在接收机一侧可发生同步丢失,这可能导致显著的符号差错率。这种现象已经导致去引入经过修改的可变长度码,举例而言,比如像自同步霍夫曼码、可逆可变长度码。
另一种解决方案是通过在链中插入纠错码来在比特流中重新引入冗余。后一种解决方案的关键点就在于:在译码一侧上适当地使用残余的信源冗余。作为译码器的隐式信道保护的一种形式来考虑,可以同样利用这种冗余来提供可变长度码信源的纠错能力。
最近的工作展示了能够使用的低复杂度的近似MAP(最大后验概率,Maximum A Posteriori)译码器,所述译码器提供了近乎与一切现有的软译码算法相同的性能,而同时却呈现出接近硬译码情况的复杂度。在[ICC’02学报当中的L.Perros-Meilhac和C.Lamy.的“Huffmanntree based metric derivation for a low-complexity sequentialsoft VLC decoding(用于低复杂度顺序软VLC译码的基于霍夫曼树的量度导出)”,第2卷,第783-787页,美国纽约,2002年4月-5月]中公开了这类译码器。
即使存在MAP算法且在纠错方面提供了非常好的结果,但是它们非常复杂。从另一侧面来说,比如在[Buttigieg:“Variable-lengtherror-correcting codes(可变长度纠错码)”PhD论文,曼彻斯特大学,英国,1995年]中公开的堆栈算法不太复杂并且能够达到相似的性能。然而,它们基本上都是符号级译码算法,因此不是非常适合于提供关于比特的可靠性信息的算法。
本发明的目的是,提供一种在比特级上和VLC码低复杂度上工作的、用于对可变长度的软输入代码字序列进行信源译码的方法。
发明概要
本发明的主题是如权利要求1中所定义的用于对可变长度的软输入代码字序列进行信源译码的方法。
另外,还提供了如权利要求10中所定义的用于对可变长度的软输入代码字序列进行译码的信源译码器。
在其它权利要求中公开了附加的特征。正如我们将进一步详细地看到的那样,这种方法具备提供关于译码序列的可靠性信息(或软输出)的优点,其允许按路径的量度值的递增次序来选择树中的路径。由此,通过只搜索有用的代码字,所提出的方法在CPU成本、复杂度和时间方面是非常有效的,因为不再考虑译码树中的许多其它的路径。这样在形成中的软输出便允许在VLC编码器已经与另一个编码器级联时执行迭代联合译码。
附图简要说明
通过阅读下列说明书,将更好地理解本发明,下列说明书仅仅是作为示例并参照附图而给出的,在附图中:
-图1是传输链的一般示意图,所述传输链包括根据本发明的编码器和译码器;
-图2是与在图1的编码器和译码器中所用的可变长度代码字序列相关联的VLC码字表;
-图3是图1的联合译码器的详图,该联合译码器包括根据本发明的译码器;
-图4是根据本发明的软输入软输出可变长度代码字序列译码方法的流程图;
-图5是与图2的VLC表相关联的树的表示;
-图6、7和8是根据本发明的、与在译码方法的实施期间所创建的图2的VLC表相关联的级联码树的表示;和
-图9和10是示出与其它方法进行比较的、根据本发明的方法的性能的图。
发明详述
在图1上示出了用于在卷积码和可变长度码之间联合译码的传输链。
这个传输链包括发射机1和接收机2。
在该传输链中使用可变长度码(VLC)来缩减所发送的比特流的长度。
所述发射机1包括可变长度信源10,该信源适合于根据所选取的VLC码字概率来输出随机VLC符号序列。
在VLC信源的输出端,所述发射机1包括可变长度编码器12、伪随机交织器14、系统卷积(CC)编码器16、凿孔器18和BPSK调制器20。
在VLC编码器12中对随机VLC符号序列进行编码,所述VLC编码器适合于将接收到的符号映射到用x[1:T]表示的T位的VLC序列,其中所述接收到的符号例如编组成R个符号的分组。正如其本身已知的那样,遵循由VLC表发布的规则来创建比特序列x[1:T]。在图2中给出了VLC表的一个示例。
在该VLC表中,如下地定义代码C。使代码字与符号Si相关联,代码字具有预定的长度。代码字的值同时也代表能够由相关联的符号Si采用的值。此外,对于每个代码字而言,关联一个出现概率P(Sk)。
然后,由交织器14变换每个序列x[1:T]的顺序以得到交织序列x[1:T]。
这个交织序列
被给出作为到系统卷积编码器16的输入。最终,由凿孔器18来凿孔位于CC编码器16的输出端上的、用v[1:Txn/k]表示的编码序列,以便获得想要的传输速率,由BPSK调制器20来对所述编码序列进行调制并且经由具备方差σ2的信道来发送。
所述接收机2包括:解调器30、最终的解凿孔器32和迭代译码器或联合译码器34。
所述解凿孔器32适合于将零值样本引入接收到的序列中,以替代通过凿孔操作而从编码序列中删除的样本。接着,由迭代译码器34来对用z[1:Txn/k]表示的解凿孔序列进行译码,这一流程在图4中详细描述。
如图3所示,根据本发明,所述迭代译码器34包括:软输入软输出(SISO)CC译码器42和软输入软输出(SISO)VLC译码器44。在46(相应的48)中对由CC(相应的VLC)译码器提供的可靠性信息进行交织,并且利用该可靠性信息来改善VLC(相应的CC)译码器的译码。
例如,在[L.Bahl、J.Cocke、F.Jelinek和J.Raviv.的“Optimaldecoding of linear codes for minimizing symbol error rate(用于最小化符号差错率的线性码的最佳译码)”,关于信息理论的IEEE学报,20:284-287,1974年3月]中公开了所述SISO CC译码器42。
为了对序列y[1:T]进行译码,并且正如其本身已知的那样,所述SISO VLC译码器44适合于以后验比Λ(x[t])的对数形式来计算软输出:
所述VLC SISO译码器44将通过考虑它具有的、有关VLC编码器的先验知识来导出关于比特Λ(x[t])的可靠性信息。在这种情况下,先验知识将存在于VLC树结构中,该VLC树结构是由VLC表、符号的出现概率P(Sk)和用SSI表示的任何其它信源辅助信息(side information)导出的,其中所述任何其它信源辅助信息可能比如是相关序列的符号的数量。
在下文中给出了迭代译码方法的概述。
1.初始化Φ(0)[t]=0.
2.对于迭代r=1,2,...,I,其中I是迭代的总次数
·通过把解凿孔后的接收序列z[1:Txn/k]用作为观测值,把φ(r-1)[1:T]用作为先验概率比,而应用SISO CC译码器来计算
·计算
其中1≤t≤T,
·计算
其中1≤t≤T,
·通过把y(r)[1:T]用作为观测值,而应用SISO VLC译码器44来计算ΛV (r)[t],
·计算
其中1≤t≤T,并且
·计算
其中1 ≤t≤T。
更确切地说,所述迭代译码过程如下地进行:在第r次迭代中,所述CC译码器的输入存在于在前面的迭代中得到的解凿孔序列z[1:Txn/k]和用
表示的交织序列的先验概率比φ(r-1)[1:T]当中。所述CC译码器42提供
输出序列。
在该相同的第r次迭代中,所述VLC译码器44把从CC译码器输出序列导出的观测值序列y(r)[1:T]、VLC符号的先验概率以及任何其它可用的信源辅助信息SSI作为输入,并且提供ΛC (r)[1:T]输出序列。
为了让每个译码器都利用迭代过程的优势,必须要在两个译码器之间交换独立的信息,即所谓的非固有信息。EC (r)[t]和EV (r)[t]被定义为分别由CC译码器42和VLC译码器44提供的关于比特t的非固有信息。
对r≥1而言,
其中将EV (0)[t]设置成等于零。
用σ2/2缩放的CC非固有信息EC (r)[1:T]序列被用作为VLC译码器的第r次迭代的观测值,由此得到
所述被交织的VLC非固有信息
被用作为CC译码器42的第r+1次迭代的先验概率比估计值,
所述SISO VLC译码器44实现软输入软输出(SISO)堆栈方法,该堆栈方法的算法在图4中公开了。
所述方法分两个主要阶段来进行:
-硬译码阶段100,用于估计硬发送的VLC序列;和
-后处理阶段102,用于导出软的值。
所述方法的第一个主要阶段100在于:对一个“庞大的”树应用堆栈顺序译码算法,该树是通过将所考虑的霍夫曼树级联若干次直至达到例如所考虑的序列中的比特数量和符号数量,而形成的。
硬译码阶段100的第一步111在于:通过定义节点之间的关系来创建结构树并计算与树的每个分支相关联的先验概率。在图5上示出了与图2的VLC码相对应的一元(unitary)霍夫曼树。
这样的树包括多个:
-节点N,多个对应于可能的代码字或符号Si的节点;
-分支B,量度M是与每个分支B相关联的。分支B由两个节点N组成,换言之从一个节点N可以创建一或两个分支,即一个“左”分支和一个“右”分支;一个分支具有相关的比特值0或1;
-路径,路径代表译码后的比特序列。
一条路径包括多个分支B,并且从初始节点N00开始到一个后续节点,该后续节点可以是符号Si。
除此之外,树具有不同的级,最初的一级是0级。
在步骤112,定义堆栈。在硬译码阶段100的每一步骤存储这个堆栈,以便稍后在后处理阶段102期间加以使用。
所述堆栈包括:
-包含所选的“路径”的矩阵,即形成这些路径的节点索引的序列,
-整型的矢量,其为堆栈中的每条路径存储直至当前时刻的、已译码的比特的数量,
-整型的矢量,其为堆栈中的每条路径存储直至当前时刻的、已译码的符号的数量,和
-浮点型的矢量,其为堆栈中的每条路径存储相关的累积量度。
通过在堆栈中放置具有量度0的初始节点N00来初始化堆栈。把初始节点N00看作是译码堆栈中的顶部路径。
在步骤113,计算顶部路径的最后一个节点的后续分支的量度。
当顺序译码方法对不同长度的序列进行比较时,使用特定量度。对于集合Np中的每个节点1,在时间t关联到通向这个节点的分支的量度定义如下:
m(1,y[t])=-logP(y[t]|v(1))-logpt(1)+logP0(y[t])
·Np:具有前驱(predecesor)的节点集,
·pt(1)(1∈Np):该分支在时间t到达节点1的先验概率;
·v(1)(1∈Np):到达节点1的分支的值,v(1)∈{0,1};
·P0(y[t]):法诺-马赛(Fano-Massey)量度,其允许公正地比较不同长度的序列。
为简明起见,实际上将由分支的先验概率p(1)逼近项pt(1)。可以根据VLC表的树表达和假定译码器已知的代码字概率直接得到此最后的量,就如[数据压缩讨论会(DCC’00)的学报当中的L.Guivarch、J.-C.Carlach和P.Siohan.的“Joint source-channel soft decoding ofHuffman codes with turbo-codes(利用涡轮码的霍夫曼码的联合信源信道软译码)”,第83-91页,Snowbird,美国犹他州,2000年3月]中所解释的那样。
在步骤114,执行测试以判断扩展路径是否到达符号节点。扩展路径存在于与可能的后续分支相级联的当前路径中。
如果通过扩展路径到达这样一个符号节点,那么就在步骤115增加关联到这条路径的符号的数量。
符号数量的增加在于:在通过扩展路径所到达的符号节点上,把所考虑的与VLC码相对应的一元霍夫曼树与所述初始节点相级联。
在步骤116,从堆栈中删除掉顶部路径。顶部路径是在堆栈的第一行中所涉及到的路径。它也是具有最小累积量度的堆栈的路径。
接着,在步骤117,在堆栈中插入所述扩展路径。
计算每一个新顶部路径的累积量度并将其存储在堆栈中。所述累积量度等于随着被增加以获得扩展路径的分支量度而增长的先前顶部路径的累积量度。
在步骤118,选择新的顶部路径。所选的新顶部路径是在列于该堆栈上的这些路径当中具有最小累积量度的堆栈的路径。
接下来,在步骤121,检查是否核实了停止条件。所述停止条件例如是:顶部路径包含原始序列的比特数量和符号数量。
如果在步骤121核实了停止条件,那么就执行步骤122。
否则,重复步骤114以及其随后的步骤。
在硬译码阶段100期间,在每一步骤都存储堆栈的内容。
在对应于后处理阶段102的步骤122,由在硬译码阶段100中所考虑的、并被存储在堆栈中的路径的累积量度导出软输出值。后处理阶段算法将在稍后公开。
在下文中给出了硬译码阶段100的一个说明性示例。
步骤111:通过定义节点之间的关系、计算与每条分支相关联的先验概率来创建结构树。
步骤112:初始化堆栈
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
0 | N00 | PTH00 | 0 | 0 |
步骤113:计算最后一个节点N00的后续分支的量度。
如下地来计算它们:
M(N00-N10)=M10
M(N00-N11)=M11。
步骤114:到达节点N10的扩展路径到达符号节点。由此,对节点N10实施步骤115。
步骤115:在所到达的符号节点N10上,将所考虑的一元霍夫曼树与初始节点相级联。在图6中示出了该结果树。
步骤116和117:从堆栈中删除顶部路径PTH00,并且在堆栈中插入扩展路径。
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
0 | N00 | PTH00 | 0 | 0 |
M10 | N00-N10 | PTH10 | 1 | 1 |
M11 | N00-N11 | PTH11 | 1 | 0 |
步骤118:选择新的顶部路径,即具有最小累积量度的路径。
(我们假定最小累积量度为M11)
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
M11 | N00-N11 | PTH11 | 1 | 0 |
M10 | N00-N10 | PTH10 | 1 | 1 |
步骤121:假定停止条件未被核实。
步骤113:顶部路径的最后一个节点为N11。
如下地计算顶部路径的最后一个节点的后续分支的量度:
M(N11-N20)=M20
M(N11-N21)=M21。
步骤114:到达节点N20和N21的扩展路径到达符号节点,由此,对节点N20和N21实施步骤115。
步骤115:在所到达的符号节点N20和N21上,将所考虑的一元霍夫曼树与初始节点相级联。在图7中示出了该结果树。
步骤116和117:
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
M11 | N00 N11 | PTH11 | 1 | 0 |
M10 | N00-N10 | PTH10 | 1 | 1 |
M11+M20 | N00-N11-N20 | PTH20 | 2 | 1 |
M11+M21 | N00-N11-N21 | PTH21 | 2 | 1 |
步骤118:选择新的顶部路径,即:具有最小累积量度的路径。
(我们假定最小累积量度为M11+M21)。
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
M11+M21 | N00-N11-N21 | PTH21 | 2 | 1 |
M10 | N00-N10 | PTH10 | 1 | 1 |
M11+M20 | N00-N11-N20 | PTH20 | 2 | 1 |
步骤121:假定停止条件未被核实。
步骤113:顶部路径的最后一个节点为N21=N00。如下地计算顶部路径的最后一个节点的后续分支的量度:
M(N21-N34)=M’10
M(N21-N35)=M’11。
步骤114:到达节点N34的扩展路径到达符号节点,由此,对N34实施步骤115。
步骤115:如图8中所示,在所到达节点N34上,将所考虑的一元霍夫曼树与初始节点N00相级联。
步骤116和117:从堆栈中删除顶部路径PTH21并插入扩展路径。
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
M11+M21 | N00-N11-N21 | PTH21 | 2 | 1 |
M10 | N00-N10 | PTH10 | 1 | 1 |
M11+M20 | N00-N11-N20 | PTH20 | 2 | 1 |
M11+M21+M’10 | N00-N11-N21-N34 | PTH34 | 3 | 2 |
M11+M21+M’11 | N00-N11-N21-N35 | PTH35 | 3 | 1 |
步骤118:选择新的顶部路径,即具有最小累积量度的路径。
(我们假定最小累积量度为M11+M20)。
累积量度 | 节点 | 路径 | 比特数量 | 符号数量 |
M11+M20 | N00-N11-N10 | PTH20 | 2 | 1 |
M10 | N00-N10 | PTH10 | 1 | 1 |
M11+M21+M’10 | N00-N11-N21-N34 | PTH34 | 3 | 2 |
M11+M21+M’11 | N00-N11-N21-N35 | PTH35 | 3 | 1 |
重复如上所公开的步骤直到在步骤121核实了停止条件为止。
一旦顺序译码过程结束,就进行后处理并生成软输出。于是必须从已利用堆栈译码算法检查并存储的路径中提取出这些软输出。
第一种解决方案提出按下式来逼近对数似然比Λ(x[t]):
Λ(x[t])=μ(t,0))-μ(t,1),
其中μ(t,1)(相应的μ(t,0))是堆栈中、第t个估计的比特是1(相应的0)的所有路径的最小累积量度。
如果P*是译码过程所选择的路径,那么若
的话,我们就有:
μ(t,i)=μP*。
因此,对于每个时间t,只须确定带有到估计序列的补码位的路径的最小累积量度即可。
在第二种解决方案中,不仅要考虑相对于第t个估计比特的值0和1的最佳路径,而且还要考虑利用堆栈算法存储的路径中的所有量度。因此,按下式来逼近对数似然比Λ(x[t]):
Λ(x[t])=log(∑e-μPi/∑e-μPi)
1≤i≤r 1≤i≤r
TPi>=t TPi>=t
Pi[t]=1
图9和10示出了同其它用于对可变长度的序列进行信源译码的方法进行比较的、根据本发明的方法的性能。
·考虑了以下方法:硬方法,它是常规的硬输入VLC算法,没有任何先验知识,
·KMAP,即MAP算法,它在于利用有关符号数量的确切先验知识来按帧进行VLC码的最大后验译码。
·SOSA1表示使用第一种解决方案以生成软输出值的软输出堆栈算法。
·SOSA2表示使用第二种解决方案以生成软输出值的软输出堆栈算法。
在通信链中考虑下列代码:在表1中给定的VLC码C,随后是带有编码比特的卷积码CCA,其中该编码比特通过使用表2中定义的凿孔表来凿孔。在帧误码率(FER)和信噪比(SNR)方面给出了结果。
概率 | C | |
S1 | 0.33 | 00 |
S2 | 0.30 | 11 |
S3 | 0.18 | 010 |
S4 | 0.10 | 101 |
S5 | 0.09 | 0110 |
平均长度 | 2.47 |
表1:在模拟实验中使用的短VLC码。
1 1 1 1 1 1 1 1 1
1 1 0 1 1 0 1 1 1
表2:在模拟实验中使用的凿孔表:凿孔率R=8/9。
图9首先说明了在用于各种迭代的VLC译码器44的输出端上的相对于同一个链的SOSA1和SOSA2算法这两者的性能。将堆栈的大小设置为20。所提出的两种不同的解决方案总地说来是等效的,SOSA2或许有非常小的优势。
图10示出了在用于各种迭代的VLC译码器44的输出端上的相对于同一个链的KMAP和SOSA2算法之间的性能比较。正如早先研究这些算法的硬输出版本所预见的那样,特别是[在ICC′02的学报中的L.Perros-Meilhac和C.Lamy.的“Huffmann tree based metricderivation for a low-complexitys equential soft VLC decoding(用于低复杂度的顺序软VLC译码的基于霍夫曼树的量度导出)”,第2卷,第783-787页,美国纽约,2002年4月-5月],对于第一次迭代而言,两者性能都相似。然而,在4次迭代之后、对于FER=10-3,利用KMAP算法获得的约0.8分贝的增益用SOSA2算法不能完全达到,后者只提供了约0.3分贝的增益。
堆栈算法只比KMAP算法差约0.5分贝而复杂度要低得多。
然而,将这些结果与当用传统硬VLC译码器(因此无迭代)替代所述接收机中的SISO VLC译码器时将获得的结果进行比较,发现通过迭代过程提供的增益是很显著的。
Claims (12)
1.一种用于将可变长度的软输入代码字序列(y[1:T])信源译码成软输出比特序列(ΛV[1:T])的方法,
所述可变长度的软输入是输入依照VLC码字表编码的代码字序列(y[1:T]),
所述方法特征在于,其包括:
A.为所述可变长度的软输入代码字序列的硬输出比特序列的顺序估计而实施堆栈译码算法的第一阶段(100),包括存储堆栈中所含的和用堆栈译码算法生成的中间数据;和
B.对所存储的中间数据进行后处理以便生成软输出比特序列(ΛV[1:T])的第二后续阶段(102),为每一个比特提供一个软输出(Λ(x[t]))。
2.根据权利要求1所述的方法,其特征在于,实施堆栈译码算法的第一阶段(100)包括以下步骤:
-创建与所述VLC码字表相关联的一元树(111),所述一元树包括由分支链接的节点,路径是由从该树的初始节点到各个节点的分支定义的;
-通过利用路径的堆栈来从该一元树的初始节点开始实施下列子步骤,该堆栈具有当前的顶部路径,每条路径都是与累积量度相关联的,执行所述实施过程直到核实了一组停止条件为止:
·计算继当前顶部路径的当前节点之后的每条分支的量度M(113);
·如果当前顶部路径的最后一个节点对应于代码字(114),则通过至少在当前顶部路径的最后一个节点上放置该一元树的初始节点来将该一元树与当前树相级联(155);
·从堆栈中删除当前顶部路径(116);
·在堆栈中插入由当前顶部路径和后续分支构成的新扩展路径(117),为每条扩展路径而将新扩展路径的累积量度计算为当前顶部路径的量度增加相关的后续分支的量度;以及
·根据关联到路径的累积量度来选择新的当前顶部路径(118)。
3.根据权利要求2所述的方法,其特征在于,在时间t关联到通向节点1的分支的量度定义如下:
m(1,y[t])=-logP(y[t]|v(1))-logpt(1)+logP0(y[t])
其中:
·Np:具有前驱的节点集,
·pt(1)(1∈Np):该分支在时间t到达节点1的先验概率;
·v(1)(1∈Np):到达节点1的分支的值,v(1)∈{0,1};
·P0(y[t]):法诺-马赛量度,其允许公正地比较不同长度的序列。
4.根据权利要求2或3所述的方法,其特征在于:所选的新当前顶部路径是被插入堆栈的路径当中具有最小累积量度的路径。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述停止条件组包括这样的事实:当前顶部路径包含可变长度的软输入代码字序列(y[1:T])的比特数量和代码字数量。
6.根据在前权利要求2-5任一项所述的方法,其特征在于,对所存储的中间数据进行后处理的第二后续阶段(102)包括这样的步骤:按如下公式来为每一个比特逼近每个软输出Λ(x[t]):
Λ(x[t])=μ(t,0)-μ(t,1)
其中μ(t,1)是堆栈中、第t个估计的比特为1的所有路径的最小累积量度,而μ(t,0)是堆栈中、第t个估计的比特为0的所有路径的最小累积量度。
7.根据在前权利要求2-5任一项所述的方法,其特征在于,对所存储的中间数据进行后处理的第二后续阶段(102)包括这样的步骤:按如下公式来为每一个比特逼近每个软输出Λ(x[t]):
Λ(x[t])=log(∑e-μPi/∑e-μPi)
1≤i≤r 1≤i≤r
TPi>=t TPi>=t
其中Pi(i∈[1,...,r])是存储在堆栈中的r条经检查的路径,而μPi是路径Pi的累积量度,TPi是路径Pi的长度,以及pi(t)是与路径Pi相对应的硬比特序列的第t个硬比特。
8.一种用于译码器的计算机程序产品,包括一组指令,当把该组指令加载到所述译码器中时,令所述译码器执行权利要求1-7任一项所述的方法。
9.一种用于计算机的计算机产品,包括一组指令,当把该组指令加载到所述计算机中时,令所述计算机执行权利要求1-7任一项所述的方法。
10.一种用于将可变长度的软输入代码字序列(y[1:T])信源译码成软输出比特序列(Λv[1:T])的译码器,
所述可变长度的软输入是输入依照VLC码字表编码的代码字序列(y[1:T]),
其特征在于它包括:
用于为所述可变长度软输入的输入代码字序列的硬输出比特序列的顺序估计而实施堆栈译码算法的装置,包括用于存储堆栈中所含的和用堆栈译码算法而生成的中间数据的储存器装置;和
用于对所存储的中间数据进行后处理以便生成软输出比特序列(ΛV[1:T])的装置,为每个比特提供一个软输出(Λ(x[t]))。
11.一种用于对Tx n/k个比特的可变长度的软输入序列(z[1:Txn/k])进行迭代译码的方法,包括针对每次迭代r而重复下列步骤:
-通过应用信道译码方法、使用该可变长度的软输入序列(z[1:Txn/k])和为前一次迭代(r-1)而计算的先验概率比(φ(r-1)[1:T])作为输入,来计算可变长度的软输出比特序列
-依靠通过应用信道译码方法而提供的可变长度的软输出比特序列 来计算可变长度的软输入代码字序列(y(r)[t]);
-依靠通过应用信道译码方法而提供的可变长度的软输出比特序列 ,并通过应用根据权利要求1-7任一项所述的信源译码方法、使用可变长度的软输入代码字序列(y(r)[t])作为输入,来计算可变长度的软输出比特序列(ΛV (r)[t]);以及
-依靠被所述信源译码方法应用的该可变长度的软输入比特序列(ΛV (r)[t])来计算先验概率比(φ(r)[1:T])。
12.一种用于对可变长度的软输入序列(z[1:Tx n/k])进行迭代译码的接收机,包括用于针对每次迭代r而重复执行下列步骤的装置:
-通过应用信道译码方法、使用可变长度的软输入序列(z[1:Tx n/k])和为前一次迭代(r-1)而计算的先验概率比(φ(r-1)[1:T])作为输入,来计算可变长度的软输出比特序列
-依靠通过应用信道译码方法而提供的可变长度的软输出比特序列 来计算可变长度的软输入代码字序列(y(r)[t]);
-依靠通过应用信道译码方法而提供的可变长度的软输出比特序列 ,并通过应用根据权利要求1-7任一项所述的信源译码方法、使用可变长度的软输入代码字序列(y(r)[t])作为输入,来计算可变长度的软输出比特序列(ΛV (r)[t]);以及
-依靠被所述信源译码方法应用的该可变长度的软输入比特序列(ΛV (r)[t])来计算先验概率比(φ(r)[1:T])。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02292223.1 | 2002-09-11 | ||
EP02292223 | 2002-09-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1682450A true CN1682450A (zh) | 2005-10-12 |
Family
ID=31985143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038215152A Pending CN1682450A (zh) | 2002-09-11 | 2003-09-04 | 用于对可变长度的软输入代码字序列进行信源译码的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7249311B2 (zh) |
EP (1) | EP1540829A1 (zh) |
JP (1) | JP2005538640A (zh) |
KR (1) | KR20050039873A (zh) |
CN (1) | CN1682450A (zh) |
AU (1) | AU2003256018A1 (zh) |
WO (1) | WO2004025840A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102783154A (zh) * | 2010-02-26 | 2012-11-14 | 捷讯研究有限公司 | 采用双码集的编码和解码方法和设备 |
CN107483059A (zh) * | 2017-07-31 | 2017-12-15 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1867051A4 (en) * | 2005-04-04 | 2008-03-19 | Research In Motion Ltd | SYSTEM AND METHOD FOR ENCODING AND DECODING INFORMATION SIGNALS |
US7978793B2 (en) * | 2008-02-06 | 2011-07-12 | Freescale Semiconductor, Inc. | Method for generating soft decision signal from hard decision signal in a receiver system |
FR2930861B1 (fr) * | 2008-05-05 | 2012-10-19 | Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst | Procede de decodage d'un signal mettant en oeuvre une construction progressive d'un arbre de decodage, produit programme d'ordinateur et signal correspondants |
US20100031130A1 (en) * | 2008-08-04 | 2010-02-04 | Legend Silicon Corp. | Forward error correction (fec) and variable length code (vlc) joint decoding |
US8942282B2 (en) * | 2010-04-12 | 2015-01-27 | Qualcomm Incorporated | Variable length coding of coded block pattern (CBP) in video compression |
TW201143306A (en) * | 2010-05-19 | 2011-12-01 | Hon Hai Prec Ind Co Ltd | Method for storing information of nodes in a huffman tree and method for decoding data using an array of the huffman tree |
US20110310976A1 (en) * | 2010-06-17 | 2011-12-22 | Qualcomm Incorporated | Joint Coding of Partition Information in Video Coding |
US9258015B2 (en) * | 2013-12-23 | 2016-02-09 | Apple Inc. | Decoder with selective iteration scheduling |
US20160080004A1 (en) * | 2014-09-11 | 2016-03-17 | Kabushiki Kaisha Toshiba | Memory controller and decoding method |
RU2595955C1 (ru) * | 2015-09-14 | 2016-08-27 | Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "ВОЕННАЯ АКАДЕМИЯ СВЯЗИ имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ совместного сжатия и помехоустойчивого кодирования |
US10389388B2 (en) | 2017-12-28 | 2019-08-20 | Apple Inc. | Efficient LDPC decoding with predefined iteration-dependent scheduling scheme |
US12052033B2 (en) | 2022-07-13 | 2024-07-30 | Apple Inc. | Scheduling of iterative decoding depending on soft inputs |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62105531A (ja) * | 1985-11-01 | 1987-05-16 | Kokusai Denshin Denwa Co Ltd <Kdd> | 逐次復号誤り訂正方式 |
US6246347B1 (en) * | 1997-10-27 | 2001-06-12 | Philips Electronics North America Corporation | Controller for a variable length decoder |
DE19860531C1 (de) * | 1998-12-30 | 2000-08-10 | Univ Muenchen Tech | Verfahren zur Übertragung codierter digitaler Signale |
IL133896A0 (en) * | 2000-01-06 | 2001-04-30 | Telescicom Ltd | Method and system for encoding data for transmission channels |
DE60215807T2 (de) * | 2001-05-22 | 2007-09-13 | Koninklijke Philips Electronics N.V. | Verfahren zur decodierung einer sequenz von codeworten variabler länge |
EP1449306B1 (en) * | 2001-11-13 | 2005-11-16 | Koninklijke Philips Electronics N.V. | Method of decoding a variable-length codeword sequence |
-
2003
- 2003-09-04 EP EP03795146A patent/EP1540829A1/en not_active Ceased
- 2003-09-04 US US10/527,107 patent/US7249311B2/en not_active Expired - Fee Related
- 2003-09-04 CN CNA038215152A patent/CN1682450A/zh active Pending
- 2003-09-04 AU AU2003256018A patent/AU2003256018A1/en not_active Abandoned
- 2003-09-04 WO PCT/IB2003/003870 patent/WO2004025840A1/en active Application Filing
- 2003-09-04 JP JP2004535765A patent/JP2005538640A/ja not_active Withdrawn
- 2003-09-04 KR KR1020057003985A patent/KR20050039873A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102783154A (zh) * | 2010-02-26 | 2012-11-14 | 捷讯研究有限公司 | 采用双码集的编码和解码方法和设备 |
CN102783154B (zh) * | 2010-02-26 | 2015-07-15 | 黑莓有限公司 | 采用双码集的编码和解码方法和设备 |
CN107483059A (zh) * | 2017-07-31 | 2017-12-15 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
CN107483059B (zh) * | 2017-07-31 | 2020-06-12 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2005538640A (ja) | 2005-12-15 |
EP1540829A1 (en) | 2005-06-15 |
WO2004025840A1 (en) | 2004-03-25 |
US20060061498A1 (en) | 2006-03-23 |
KR20050039873A (ko) | 2005-04-29 |
US7249311B2 (en) | 2007-07-24 |
AU2003256018A1 (en) | 2004-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1256812C (zh) | 透平编码器和信道编码方法 | |
CN1682450A (zh) | 用于对可变长度的软输入代码字序列进行信源译码的方法和装置 | |
CN1252962C (zh) | 用于数据通信系统的速率匹配设备和方法 | |
CN1100391C (zh) | 具有防差错的可变长度编码 | |
CN1836394A (zh) | 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法 | |
CN1507714A (zh) | 对存在码间干扰并在多路发送和接收中进行按位交织编码的数字数据流进行编码/解码的方法及相应系统 | |
CN1539204A (zh) | 具有多重标度选择的Turbo解码器 | |
CN1185796C (zh) | 改进的非规则低密度奇偶校验码纠错译码方法 | |
CN1593011A (zh) | 适合数据压缩的方法和设置 | |
CN1558556A (zh) | 非规则低密度奇偶校验码的系统码设计方法及其通信系统 | |
CN1252935C (zh) | 基于低密度奇偶检验编码的信源信道联合编码方法 | |
US8749408B1 (en) | Methods for simplified MMI VQ based HARQ buffer reduction for LTE | |
CN1311578A (zh) | 卷积编码码字的软判定解码 | |
CN1802796A (zh) | 用于多用户检测的通信方法和设备 | |
CN1744475A (zh) | 通过冗余和迭代处理进行信号处理的方法和系统 | |
CN1968024A (zh) | 一种卷积码译码方法 | |
CN1303763C (zh) | 用于降低rs码编译码复杂度的方法 | |
CN1400738A (zh) | 适应多状态的调制的发送机、接收机、方法、程序和信号 | |
CN1593013A (zh) | 可变长度码字序列的解码方法 | |
CN1209885C (zh) | Turbo编码BPSK调制系统的迭代解调解码方法及装置 | |
EP2686964B1 (en) | Decoding method, decoding device and corresponding computer program product | |
CN1294706C (zh) | 对于具有输出外信息的编码调制系统的迭代解调解码方法及装置 | |
CN1571282A (zh) | 纠错编码方法、编码方法、相应的编码和解码装置 | |
US8782501B2 (en) | Error correction encoding method, decoding method and associated devices | |
JP2006060296A (ja) | 連接符号システムおよび連接符号処理方法、復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |