多输入数据与多输出数据的维特比译码装置与译码方法
技术领域
本发明为一种多输入数据与多输出数据的维特比译码装置(Viterbi decoder)与译码方法,尤指应用于光盘系统的多输入数据与多输出数据的维特比译码装置与译码方法。
背景技术
请参见图1,一常见数字数据记录与读出系统的功能方块示意图,其中u代表一数字数据序列,该数字数据序列u经过一长度限制-不归零编码器(Run-Length Limited and Non-Return to Zero Encoder,以下简称RLL-NRZEncoder)11的编码后,产生适合写入数字数据记录媒体的一记录信号X,而通过一写入装置12来将其写入一数字数据记录媒体10之中,而通过读取头13将该数字数据记录媒体所记录的信号取出,经过一信道传输并通过一均衡器14调整为信号y,随后通过维特比译码器(Viterbi decoder)15的处理,进而还原出格式与记录信号X相同的读取信号X’,而读取信号X’再经过一长度限制-不归零译码器16(RLL-NRZ decoder)的译码后,最后得回一复原数字数据序列u’。而数字数据记录与读出系统的实际例子可为磁盘系统或是光盘系统,以光盘系统为例,上述均衡器14、维特比译码器15与长度限制-不归零译码器16设置于一光驱控制芯片中。
再请参见图2,上述系统中记录信号x转换为信号y的过程示意图,其中由记录信号x(通常以+0.5与-0.5所构成)被读出到送入均衡器14前的过程被简化成一个信道20(Channel)来看待,而其转移函数(transfer function)可定义成不是“Z(D)/X(D)=1+a1*D+a2*D
2+a3*D
3+a4*D
4+...”,而均衡器14的作用是将信号x转换为信号y的转移函数(transfer function)调整成Y(D)/X(D)=1+D、Y(D)/X(D)=1+2*D+D
2或“Y(D)/X(D)=1+D+D
2+D
3,其即所谓将信道20与均衡器14整合成一部分响应信道(partial response channel)。下表所列为部分响应信道的转移函数与目标位准(target level)的对应关系,而目标位准即表示出信号y的理想位准值。
转移函数Y(D)/X(D) |
目标位准 |
1+D,简称PR(1,1) |
-1,0,1 |
1+2*D+D2,简称PR(1,2,1) |
-2,-1,1,2 |
1+D+D2+D3,简称PR(1,1,1,1) |
-2、-1,0,1,2 |
而上述三种部分响应信道之中,PR(1,1)的部分响应信道,因其抗噪声的性能不足而无法实现于实际产品中,故常使用的部分响应信道为PR(1,2,1)与PR(1,1,1,1)。
由于利用维特比算法来还原出读取信号x’的维特比译码器(Viterbidecoder)15需要进行大量数据的储存与运算,因此为了增快处理速度,便发展出如图3所示的双维特比译码器(第一维特比译码器151、第二维特比译码器152)的架构,如此将可分别处理信号y的数据序列中分属奇数与偶数的信号y1与信号y2,进而同时输出两个读取信号x1’与x2’。但因维特比译码器的电路复杂,如此作法将大幅增加光驱控制芯片的面积而造成成本大增,而如何改善上述常用手段的缺失,为本发明的主要目的。
发明内容
本发明的主要目的在于提供一种多输入数据与多输出数据的维特比译码装置与译码方法,将可在不大幅增加芯片面积的情况下,仅用一个维特比译码装置但能一次输出两个甚至更多的读取信号值,达成快速译码,同时也可降低成本。
本发明为一种多输入数据与多输出数据的维特比译码装置,其包括:一分支赋距计算电路,将所连续接收到的多个输入数据,分别与其相对应的多组目标位准值进行分支赋距计算,进而输出多个分支赋距值;一累加-比较-选择单元,电连接于该分支赋距计算电路,接收这些分支赋距值后分别进行累加运算而得多个分支赋距累加值,并分组进行分支赋距累加值大小比较后,输出多个控制信号与多个最小分支赋距累加值;一赋距缓存器,电连接于该累加-比较-选择单元,分别接收并储存这些最小分支赋距累加值,并将其储存值回传以进行下一次的累加运算;一幸存存储单元,连接该累加-比较-选择单元,对应这些控制信号而记录并输出有代表输出数据状态变化的多个可能路径;以及一决定单元,连接于该幸存存储单元与该赋距缓存器,根据这些最小分支赋距累加值,决定幸存存储单元的这些可能路径的组合来作为输出。上述结构中,还可包括一归一化电路,连接累加-比较-选择单元之间,用以当这些最小分支赋距累加值超过一门槛值时,同时进行向下平移的归一化动作。
而上述累加-比较-选择单元则包括:一累加器组,电连接于该分支赋距计算电路,对所有可能的输出数据状态变化路径进行分支赋距的累加动作;一比较器组,电连接于该累加器组,分别将所接收到的分支赋距累加值进行比较,进而分别输出这些控制信号;以及一选择器组,电连接于该累加器组、比较器组及该赋距缓存器,分别对应这些控制信号的选择,而将由该累加器组所接收到的多个分支赋距累加值中的最小分支赋距累加值输出至该赋距缓存器中储存。
上述赋距缓存器是由多个缓存器所构成幸存存储单元是由多个内存元串接而成。
本发明另提供一种多输入数据与多输出数据的维特比译码方法,其包括下列步骤:提供多组目标位准值;将连续接收到的多个输入数据,分别与其相对应的多组目标位准值进行分支赋距计算,进而输出多个分支赋距值;对这些分支赋距值后分别进行累加运算而得到多个分支赋距累加值,并分组进行分支赋距累加值大小比较后,产生多个控制信号与多个最小分支赋距累加值;分别储存这些最小分支赋距累加值且回传以作为下一次的累加运算;以及对应这些控制信号的控制而记录代表输出数据状态变化的多个可能幸存,再根据这些最小分支赋距累加值,决定出这些可能路径的组合作输出。
本发明又提供一种双输入数据与双输出数据的维特比译码装置,其包括:一分支赋距计算电路,将所连续接收到的两个输入数据,分别与其相对应的两组目标位准值进行分支赋距计算,进而输出多个分支赋距值;一累加-比较-选择单元,电连接于该分支赋距计算电路,接收这些分支赋距值后分别进行累加运算而得到多个分支赋距累加值,并分组进行分支赋距累加值大小比较后输出两个控制信号与四个最小分支赋距累加值;一赋距缓存器,电连接于该累加-比较-选择单元,分别接收并储存这些最小分支赋距累加值,并将这些最小分支赋距累加值回传至该累加-比较-选择单元以进行下一次的累加运算;一幸存存储单元,连接该累加-比较-选择单元,对应两个控制信号而记录并输出有代表输出数据状态变化的多个可能路径;以及一决定单元,连接于该幸存存储单元与该赋距缓存器,根据这些最小分支赋距累加值,决定幸存存储单元的两个可能路径的来作为输出。此外上述架构还包括一归一化电路,连接累加-比较-选择单元与赋距缓存器之间,用以当这些最小分支赋距累加值超过一门槛值时,同时进行向下平移的归一化动作。
本发明再提供一种双输入数据与双输出数据的维特比译码方法,其包括:将连续接收到的两个输入数据,分别与其相对应的两组目标位准值进行分支赋距计算,进而输出多个分支赋距值;对这些分支赋距值后分别进行累加运算而得到多个分支赋距累加值,并分组进行分支赋距累加值大小比较后,产生两个控制信号与四个最小分支赋距累加值;分别接收并储存这些最小分支赋距累加值且回传以进行下一次的累加运算;以及对应这些个控制信号的控制而记录代表输出数据状态变化的多个可能路径,再根据这些最小分支赋距累加值,决定两个可能路径的组合作输出。
上述输出数据状态变化的多个可能路径格式为三周期长度限制(3TRun-Length Limited),而其部分响应信道为一PR(1,1,1,1)信道。且这些输入数据的相对应的两组特别设计的目标位准值分别为地区(-2、-1、0、1、2)及(-1.5、-1、0、1、1.5)。
附图说明
本发明得通过下列附图及详细说明,得以更深入的了解:
图1为一常见数字数据记录与读出系统的功能方块示意图。
图2为上述系统中记录信号x转换为信号y的过程示意图。
图3为常用双维特比译码器架构的方块示意图。
图4为本发明实施例中仅用一个维特比译码装置来达成多输入数据与多输出数据的方块示意图。
图5为本发明对于上述多输入数据与多输出数据维特比译码装置所发展出一较佳实施例的简明方块示意图。
图6(a)为表示出以同时处理双输入信号的本发明实例所运用的记录信号x的一阶格状图(1-step trellis)。
图6(b)为本发明实施例中记录信号x进入一PR(1,1,1,1)的部分响应信道后所输出信号y的理想目标位准值对照表。
图7为本发明对于上述双输入数据与双输出数据维特比译码装置所发展出一较佳实施例所示的电路方块实例图。
本发明图式中所包括的各组件列示如下:
数字数据记录媒体10 |
长度限制-不归零编码器11 |
写入装置12 |
读取头13 |
均衡器14 |
维特比译码器15 |
长度限制-不归零译码器16 |
第一维特比译码器151 |
第二维特比译码器152 |
维特比译码装置40 |
分支赋距计算电路51 |
累加-比较-选择单元52 |
幸存存储单元53 |
赋距缓存器54 |
归一化电路55 |
决定单元56 |
累加器组521 |
第一比较器5221 |
第二比较器5222 |
比较器组522 |
第一选择器5231 |
第二选择器5232 |
选择器组523 |
存储单元531、532 |
第一、第二及第三累加器组5211、5212及5213 |
缓存器541、542、543、544 |
具体实施方式
请参见图4,本发明仅用一个维特比译码装置40来达成多输入数据与多输出数据的方块示意图,其主要是可同时接收并处理信号y的数据序列中连续且相邻的信号y(k-n)、...、y(k-1)、y(k),进而可同时输出多个读取信号x’(k-n)、...、x’(k-1)、x’(k),以达到快速译码但不大幅增加电路复杂程度的目的。
再请参见图5,本发明对于上述多输入数据与多输出数据维特比译码装置所发展出一较佳实施例的简明方块示意图,其中分支赋距计算电路51(BranchMetric Calculating Circuit,简称BMCU)接收y(k-n)、...、y(k-1)、y(k)后,进行每个信号y(k-n)、...、y(k-1)、y(k)的分支赋距计算,其产生方式如图7所示,双输入信号y(k)与y(k-1)在响应信道PR(1,1,1,1)下所可能产生的值,分别为(2,1,0,-1,-2)与(1.5,1,0,-1,-1.5)(此值产生部分将在6(b)图中作进一步说明),因此以y(k)与y(k-1)与可能对应值(2,1,0,-1,-2)与(1.5,1,0,-1,-1.5),两者相减后进行平方来作为多个分支赋距值,如图7中的(y(k)-2)2、(y(k)-1)2等,然后将此多个分支赋距值输出至累加-比较-选择单元52(Adder-Comparator-SelectorUnit,简称ACSU),以分别进行累加运算而得到多个分支赋距累加值,并分组进行分支赋距累加值大小比较后,输出多个控制信号与多个最小分支赋距累加值。其中多个控制信号输至一幸存存储单元(Survivor Memory Unit)53,而多个最小分支赋距累加值则被输至一赋距缓存器(Metric Register)54,并将其储存值回传至该累加-比较-选择单元52以进行下一次的累加运算,但为避免累加值不断增加而使赋距缓存器54产生溢位的现象,因此在累加-比较-选择单元52与赋距缓存器54之间可加设一归一化电路55(Normalizing Circuit),用以当累加值超过一门槛值时,对所有累加值同时进行一向下平移的归一化动作,即同时减去一个固定值而避免累加值过大的情形。至于幸存存储单元53系受这些控制信号的控制而储存有当时与前几个时间点(即k、k-1、...、k-n)的读取信号x的可能状态变化幸存,最后经由决定单元56根据赋距缓存器54中所储存的这些最小分支赋距累加值,进而决定出多个读取信号x’(k)、x’(k-1)、...、x’(k-n)并予以输出。
由于光盘系统所传输连续数据具有三周期长度限制(3T Run-LengthLimited)的编码格式,所以在所传送信号时例如以00011100001111方式,我们可看出0与1只要一出现就会有3个或3个以上连续出现,因此不会允许一个或两个相同位单独出现,如...101...、...1001...、...0110...或是...010...,此外为简化如图6(a)上方所示X(k-4)、X(k-3)、X(k-2)、X(k-1)、X(k)在状态转换的复杂度,在此我们直接以图6(a)下方的同时处理双输入信号的本发明实例所运用记录信号X的一阶格状图(1-step trellis),即由四个(两组)记录信号状态X(k-3)、X(k-2)与X(k-1)、X(k)进行状态转换(state transition),由于上述三周期长度限制(3T Run-Length Limited)的编码格式,所以如X(k-2)、X(k-3)为(0,0)时,无法有X(k)、X(k-1)为(0,1),因其传输连续数据为0100,有一个或两个相同位单独出现的情形。因此由6图(a)中我们可看出只有8种不同状态转换。
接着我们将上述8种不同状态转换,以表格方式显示于图6(b),并于图6(b)上载有记录信号进入一PR(1,1,1,1)的部分响应信道后所输出信号y(k)与y(k-1)的理想目标位准值对照表。其中上述记录信号状态X(k-3)、X(k-2)与X(k-1)、X(k)中位“0”与“1”代表分别以-0.5与0.5电压值,所以在输出信号y(k)=x(k)+x(k-1)+x(k-2)+x(k-3)(其中x(k-3)x(k-2)与x(k-1)、x(k)为电压输出值),而y(k-1)=x(k-1)+x(k-2)+x(k-3)+x(k-4),
但因本例并未记录到x(k-4)的值,因此取其可能值(0.5或-0.5)的平均m(m=0),故y(k-1)=x(k-1)+x(k-2)+x(k-3)+m=x(k-1)+x(k-2)+x(k-3)。因此如6图(b),将位”0”与”1”以-0.5与0.5带入y(k)=x(k)+x(k-1)+x(k-2)+x(k-3)与y(k-1)=x(k-1)+x(k-2)+x(k-3)后,可得出y(k)与y(k-1)有(2,1,0,-1,-2)与(1.5,1,0,-1,-1.5)各种不同理想目标位准值产生。
而根据上述式子所得出的y(k)与y(k-1)的理想目标位准值,便可以如图7所示的电路方块实例图来实现图5中的分支赋距计算电路51、累加-比较-选择单元52、幸存存储单元53与赋距缓存器54。其中分支赋距计算电路51接收到的y(k)与y(k-1)并分别计算其相对应的两组理想目标位准值(y(k)=-2、-1、0、1或2,而y(k-1)=-1.5、-1、0、1或1.5),然后以其差值平方后输出至累加-比较-选择单元52,而累加-比较-选择单元52中包括有一累加器组521、一比较器组522(第一比较器5221与第二比较器5222所组成)以及一选择器组523(第一选择器5231与第二选择器5232所组成)。其中该累加器组521系分别对应图6(a)中所示的所有可能的状态变化路径进行分支赋距的累加动作。举例来说,第一累加器5211所累加得到的分支赋距累加值系代表00转变至00的分支赋距累加值(其输入为(y(k)+2)^2、(y(k-1)+1.5)^2以及赋距缓存器54所回传储存值),而第二累加器5212所累加得到的分支赋距累加值系代表01转变至00的分支赋距累加值,至于第三累加器5213所累加得到的分支赋距累加值系代表由11转变至00的分支赋距累加值。而由第一比较器5221与第二比较器5222则分别将所接收到的分支赋距累加值进行比较,进而分别输出第一控制信号与第二控制信号至第一选择器5231与第二选择器5232,对应第一、第二控制信号的选择,而将所接收到的多个分支赋距累加值中的最小分支赋距累加值输出至由四个缓存器541、542、543及544所构成的赋距缓存器54中储存,并将其储存值回传至该累加-比较-选择单元以进行下一次的累加运算。举例来说,第一比较器5221系接收上述第一累加器5211、第二累加器5212与第三累加器5213所输出的三个分支赋距累加值进行比较,进而发出双位的该第一控制信号以使第一选择器5231输出三个分支赋距累加值中的最小者至缓存器541中储存。
至于由存储单元531、532所组成的幸存存储单元53系受控制信号的控制而储存有当时与前几个时间点(例如k、k-1、...、k-3)的读取信号X’的可能状态变化路径,最后经由决定单元56根据该缓存器541、542、543及544中所分别储存的这些最小分支赋距累加值,进而一次决定一组双位的读取信号值(例如00、01、10或是11)予以输出,此外,决定单元56也可通过不同方式决定,例如利用幸存存储单元53中所存在最多数一组双位的读取信号值(例如00、01、10或是11)予以输出。
综上所述,运用本发明的技术,将可在不大幅增加芯片面积的情况下,仅用一个维特比译码装置但能一次输出两个甚至更多的读取信号值,达成快速译码的本发明主要目的,故本发明可被广泛地应用于磁盘系统或是光盘系统的控制芯片组中。