專利名稱:維特比解碼器的解碼電路與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在光盤的PRML(Partial Response Maximum Likelihood,部分響應(yīng)最大似然性)系統(tǒng)中的一種維特比(Viterbi)解碼器的解碼電路與方法,具體來講,涉及在光盤的PRML系統(tǒng)中的這樣一種維特比解碼器的解碼電路與方法,該電路與方法利用RLL碼(Run Length Limited Code,游程長度限制碼)有效解決維特比解碼器的格狀圖經(jīng)縱向整理后復(fù)雜的格狀圖,而且不需要數(shù)量很多的寄存器來處理數(shù)據(jù)。
背景技術(shù):
在光盤如DVD(digital versatile disc,數(shù)字多用盤)的PRML系統(tǒng)中,對于一個具有內(nèi)存的傳輸信道(transmission channel)可以用格狀圖(trellisdiagram)來描述其特性。例如DVD信道的輸入信號EFMP是二進制信號,而信道內(nèi)存長度(channel memory length)為2,因此格狀圖上有4個狀態(tài)(state),每個狀態(tài)有兩條分支(branch)。在每一個狀態(tài)中包含了8條分支,表示此傳輸信道在每次的單位時間中傳出的信號,會是這八個可能信號中的其中一個,至于這八種信號的值,如圖1A的信道模型示意圖所示的,由此信道模型(channel model)可知,在將下列表達式代入1/-1即可得到(“當(dāng)前輸入”+k1*“在第一個內(nèi)存的先前輸入”+k2*“在第二個內(nèi)存的先前輸入”)在圖1A中,k1與k2實施上反應(yīng)出此信道的特性,k1與k2的值可以預(yù)先給定,然后用整型濾波器(shaping filter)來使總體信道的特性趨近于該值。該整型濾波器可以是部分響應(yīng)均衡器(partial response equalizer)。另一種方法是不去改變信道的特性,而是直接估算k1與k2的值,即信號電平估算(signallevelestimation)。不論采取何種方式,總之在圖1B所示的格狀圖中各分支上的對應(yīng)值,將因k1與k2的確定之后而可以確定。
圖2所示為維特比解碼器的方框圖。在圖2中,維特比解碼器200包括分支度量(Branch Metric)單元202、ACS(Add-Compare-Select,加-比較-選擇)單元204與路徑內(nèi)存單元(Path Memory Unit,PMU)206。分支度量單元202接收前級轉(zhuǎn)換器(未繪示)所輸出的數(shù)字信號與參考電平產(chǎn)生單元(未繪示)所輸出的參考電平,由此計算一分支度量,并將此分支度量輸出至ACS204。ACS204根據(jù)該分支度量進行加法、比較與選擇等運算,從而得到一路徑度量(path metric),并且將此路徑度量輸出至路徑內(nèi)存單元206。路徑內(nèi)存單元206接收ACS204所輸出的路徑度量,由此進行收斂、合并與解碼等工作,以得到解碼信號,并且將此解碼信號輸出至后級的解調(diào)器(未繪示)。下面將對維特比解碼器200做更詳細(xì)的說明。
圖3示出維特比解碼器的解碼過程。在圖3中,假如收到三個連續(xù)接收信號(received signals)R1、R2、R3,找到與之對應(yīng)的最有可能的信號,首先針對格狀圖中的每一條分支,維特比解碼器會算出分支度量(由圖2的分支度量單元202執(zhí)行)。計算的方式通常為信號差的平方值或是信號差的絕對值,例如BM00-00=[R1-(-1.8)]2或|R1-(-1.8)|。而所謂某一條路徑的路徑度量就是將此路徑所含的所有分支所對應(yīng)的分支度量加起來,例如圖3中的粗黑線由State00at1T(該下標(biāo)中的符號“at”與圖3中的文字“在”相對應(yīng),下文中亦是如此)經(jīng)過State00at2T再經(jīng)過State00at3T最后到達State00at4T的這條路徑,而路徑度量就是“BM00-00+BM00-01+BM01-11”。
當(dāng)然,在一般情況下路徑不會如此短,如上述的路徑在State00at1T之前應(yīng)該就已經(jīng)走過一段路徑,所以實際上這條路徑正確的路徑度量應(yīng)該是“此路徑累計到State00at1T時的路徑度量”+“BM00-00+BMX+BM01-11”。再觀察格狀圖可知,其實各路徑不斷的相交于各狀態(tài)上,而任意路徑在相交之后的變化其實都是相同的,因此維特比發(fā)現(xiàn)只要在各狀態(tài)選擇此處的最佳路徑繼續(xù)延伸即可,保證最后仍然可算出最佳路徑。但是運算復(fù)雜度卻可因此而大幅降低。這種“各狀態(tài)選擇此處的最佳路徑繼續(xù)延伸”的動作稱為存活路徑選擇(survivorpath selection),而選出來的路徑就是存活路徑。
在圖3中,描述在State00at2T的存活路徑是如何由來自State00at1T的存活路徑與來自State00at1T的存活路徑挑選出來,參考圖3,在State00at2T的survivormetric SM00at2T是根據(jù)下列運算而得到SM00at2T=min{[SM00at1T+BM00-00];[SM10at1T+BM10-00]}這個表達式就是ACS單元。由于ACS單元內(nèi)存在著反饋回路(feedbackloop)(由survivor metric每個狀態(tài)都會再次重算所造成的),使得高速的維特比解碼器不易實現(xiàn),而ACS因此成為速度的瓶頸。
根據(jù)維特比解碼器的演繹,在每次ACS的動作之后,必定可以取得最佳路徑,所以只要不斷的記錄各存活路徑,等到整筆數(shù)據(jù)解碼結(jié)束后,再轉(zhuǎn)移出最佳存活路徑的記錄就可以。但如此有兩個缺點,首先是解碼隱藏路徑會太長,其次,如果路徑太長,則用來存儲器的硬件數(shù)量會很大(此硬件稱為路徑內(nèi)存單元)。
如圖4所示的在格狀圖中使用維特比解碼器的演繹解碼的收斂示意圖所示,維特比演繹有個特性就是在格狀延展過4~6倍信道存儲器(channelmemory)的長度之后,各個存活路徑有99%的機會是與前面的路徑會合并(merge)在一起。因此路徑內(nèi)存單元只需保存最近4~6倍信道存儲器(channelmemory)的數(shù)據(jù)以供撿選即可,過去的數(shù)據(jù)可在逐步解碼之后便可丟棄。因此,只需要有限的資源就可以完成路徑內(nèi)存單元的工作,而常見的方法有混合交換(Shuffle-Exchange)與回溯(Trace-Back)兩種。
圖5所示為格狀圖與混合交換方法的方框圖。在圖5中,混合交換的動作原理非常直覺,就是對于格狀圖上的每一個狀態(tài)配備一套內(nèi)存(通常是寄存器陣列(register array)),如狀態(tài)“00”對應(yīng)于寄存器陣列502,狀態(tài)“01”對應(yīng)于寄存器陣列504,狀態(tài)“10”對應(yīng)于寄存器陣列506,狀態(tài)“11”對應(yīng)于寄存器陣列508,這些寄存器陣列用來記錄此狀態(tài)的存活路徑。
也就是說,隨著時間的前進,在任一特定時刻上各個狀態(tài)所記錄的存活路徑會不斷地由前一時刻的各狀態(tài)所記錄的存活路徑配上新判斷的判斷位(如圖5所示-1.8、-0.8、0.2、1.2、-1.2,-0.2、0.8、1.8等數(shù)值)來更迭。如圖5所示,當(dāng)信號接收數(shù)量經(jīng)過4~6倍信道內(nèi)存左右的長度之后,便假設(shè)這所有的路徑均以收斂到同一點,于是可將收斂得到的數(shù)值當(dāng)成解碼所成為的信號送出。因此,實際上每個寄存器陣列的長度只須4~6倍信道內(nèi)存左右。
如圖6所示格狀圖及回溯方法方框圖所示,回溯的動作原理是將各狀態(tài)(每一個時間點)各狀態(tài)上的判斷位(decision bit)存在“規(guī)則的內(nèi)存”中(例如RAM),即各個狀態(tài)各自規(guī)律的存放其判斷位(例如狀態(tài)“00”存放在RAM第1列,狀態(tài)“01”存放在RAM第2列,以下以此類推),各狀態(tài)間沒有互動,經(jīng)過4~6倍信道內(nèi)存的長度之后,如圖4所示,有合并點(即root)出現(xiàn)。于是可由任意狀態(tài)起,運用存下的判斷位倒推算出前一個狀態(tài),然后依序一路回溯可找到合并點。
然而在實施運用中,不可能每一次解一個合并點都動用如此一次的回溯,而是利用分批作業(yè)的方法,將數(shù)據(jù)安排成“解到合并點之后,然后一路解出一筆數(shù)據(jù)”的組態(tài)。其可用四個動作來描述V(寫入(write-in))、T(追溯(trace))、I(等待(idle))、D(解碼decode))。
如圖7所示回溯方法的四個基本動作的時間空間關(guān)系圖所示,首先以垂直方向來看,內(nèi)存M1在T1時,規(guī)律地將各狀態(tài)的判斷位寫入(V)。接著,在T2由某個狀態(tài)開始回溯到合并點,找到合并點便交給內(nèi)存M4(在格狀上記錄相鄰區(qū)塊,然后在區(qū)塊M4下次就把合并點以后的判斷位解出來(D))。在T3時,內(nèi)存M1的數(shù)據(jù)暫時等待(I),因為離上次寫入(V)時間還未久,因此要等格狀發(fā)生合并的狀況,然后在T4時間,內(nèi)存M1內(nèi)的數(shù)據(jù)終于算是合并。此時,內(nèi)存M2所產(chǎn)生的合并點給內(nèi)存M1以開始進行解碼(D)。
再以水平方向來看,在某個時間點,各存儲器塊分別進行V、D、I、T四個動作?;厮莘椒ǖ膬?yōu)點在于其規(guī)律的動作,同一級(stage)的各個狀況是各自存各自的,因此布局(layout)的困難度降低。缺點是通常以RAM來實現(xiàn),所以用在DVD Player還可以,但用在DVD ROM則嫌太慢,如果用寄存器來增加速度,則因回溯方法是分成四個區(qū)塊同時處理數(shù)據(jù),要付出相當(dāng)高的硬件代價,并不適合較貴的內(nèi)存。
發(fā)明內(nèi)容
因此本發(fā)明提供一種維特比解碼電路與方法,可以解決維特比格狀圖經(jīng)縱向整理后復(fù)雜的格狀圖,而且不需要數(shù)量很多的寄存器來處理數(shù)據(jù)同樣可以達到高速維特比解碼的目的。
本發(fā)明提供一種維特比解碼器的解碼方法,此維特比解碼器具有分支度量單元、加-比較-選擇單元與路徑內(nèi)存單元,此方法的步驟包括首先,對配合維特比解碼器的格狀圖進行縱向整理,以得到一縱向整理格狀圖。接著,根據(jù)游程長度限制碼運算此縱向整理格狀圖,以得到一游程長度限制格狀圖。其次,根據(jù)此游程長度限制格狀圖令分支度量單元計算一當(dāng)前輸入分支度量值。再者,由加-比較-選擇單元計算此當(dāng)前輸入分支度量值、一下次輸入分支度量值與一當(dāng)前狀態(tài)值,以得到一下次狀態(tài)值。以及,以路徑內(nèi)存單元記錄加-比較-選擇單元所計算的結(jié)果,以成為一存活路徑,將記錄完成的存活路徑進行解碼。
本發(fā)明提供另一種維特比解碼器的解碼方法,此維特比解碼器具有分支度量單元、加-比較-選擇單元與路徑內(nèi)存單元,此路徑內(nèi)存單元包括解碼寄存器陣列、追溯寫入寄存器陣列、等待寄存器陣列及加-比較-選擇單元,此方法的步驟包括首先,建立配合維特比解碼器的格狀圖。接著,對配合此維特比解碼器的格狀圖進行縱向整理,以得到一縱向整理格狀圖。然后,根據(jù)一游程長度限制碼運算此縱向整理格狀圖,以得到一游程長度限制格狀圖。其次,根據(jù)此游程長度限制格狀圖令分支度量單元計算一分支度量值。再者,由加-比較-選擇單元計算一當(dāng)前輸入分支度量值、一下次輸入分支度量值與一當(dāng)前狀態(tài)值,以得到一下次狀態(tài)值。接著,由加-比較-選擇單元僅根據(jù)此下次狀態(tài)值設(shè)定一當(dāng)前輸出判斷位與一下次輸出判斷位。再者,根據(jù)此當(dāng)前輸出判斷位與此下次輸出判斷位記錄上次的狀態(tài)值與當(dāng)前的狀態(tài)值上的一判斷位。其次,判斷當(dāng)前的狀態(tài)值與判斷位的關(guān)系,將判斷位寫入適當(dāng)?shù)臓顟B(tài)值。然后,由加-比較-選擇單元送出判斷位至追溯寫入寄存器陣列,并追溯得到一合并值。接著,儲存在解碼寄存器陣列的判斷位到預(yù)定數(shù)量時,解碼寄存器陣列變?yōu)榈却拇嫫麝嚵?。以及,根?jù)合并值解碼原先的等待寄存器陣列所儲存的判斷位。
本發(fā)明提出一種維特比解碼器的解碼電路,此解碼電路具有分支度量單元、加-比較-選擇單元與路徑內(nèi)存單元,分支度量單元用以計算一分支度量值,并輸出此分支度量值至加-比較-選擇單元。加-比較-選擇單元根據(jù)此分支度量值以運算一狀態(tài)值的最佳路徑,并輸出一判斷位。路徑內(nèi)存單元包括一個數(shù)據(jù)流控制器用以接收加-比較-選擇單元所輸出的判斷位,并決定判斷位的輸出流向。一個追溯寫入寄存器陣列接收數(shù)據(jù)流控制器所輸出的判斷位,并追溯得到一合并值。一個等待寄存器陣列對追溯寫入寄存器陣列所追溯得到的合并值以進行解碼。以及,一個解碼寄存器陣列根據(jù)已追溯得到的合并值,將儲存在解碼寄存器陣列的判斷位進行解碼。
因此本發(fā)明提供一種維特比解碼器的解碼電路與方法,利用游程長度限制碼有效解決維特比解碼器的格狀圖經(jīng)縱向整理后復(fù)雜的格狀圖,使ACS可以平行進行加法與比較運算,而且寄存器陣列在不同的時間可兼具其它動作,如此,ACS與PMU不需要數(shù)量很多的寄存器來處理數(shù)據(jù),同樣地可以達到高速維特比解碼器的解碼的目的。
為讓本發(fā)明的上述目的、特征、和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細(xì)說明如下圖式的簡單說明圖1A所示為信道模型示意圖;圖1B所示為格狀圖;圖2所示為維特比解碼器的方框圖;圖3所示為維特比解碼器的解碼演繹;圖4所示為在格狀圖中使用維特比解碼器的演繹解碼的收斂示意圖;圖5所示為格狀圖與混合交換方法的方框圖;圖6所示為格狀圖及回溯方法方框圖;圖7所示為回溯方法的四個基本動作的時間空間關(guān)系圖;圖8所示為本發(fā)明維特比解碼器的方法的流程圖;圖9A所示為原始格狀圖;圖9B所示為將原始格狀圖做橫向整理;圖9C所示為將原始格狀圖做縱向整理;圖10所示為二進制輸入的信道內(nèi)存為3的格狀圖;圖11所示為有RLL(2,10)碼的限制下的格狀圖;圖12所示為將第9圖做縱向整理的結(jié)果;圖13所示為將第9圖做兩次縱向整理的結(jié)果;圖14所示為以第一種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖;圖15所示為以第二種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖;圖16所示為以第三種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖;圖17A所示為回溯方法使用寄存器陣列的電路方框圖;圖17B所示為回溯方法的數(shù)據(jù)流;圖17C所示為回溯方法的另一種數(shù)據(jù)流;以及圖17D所示為在數(shù)據(jù)串加入虛數(shù)據(jù)延遲的示意圖。
附圖中的標(biāo)號說明如下200 維特比解碼器202 分支度量單元204 ACS206 路徑內(nèi)存單元502,504,506,508,1506,1508,1510 寄存器陣列(register array)1400,1500,1600,1712,1716,1718,1722 狀態(tài)恢復(fù)電路(state retrievecircuit)1402,1502,1602 判斷電路(decision circuit)1404,1504,1604狀態(tài)1406,1410,1506,1510,1606,1610多路復(fù)用器(multiplexer)1408,1508,1608 存儲器塊(memory block)1700 回溯電路(trace-back circuit)1702 加-比較-選擇單元(add-compare-select unit)1704 數(shù)據(jù)流控制器(data string controller)1714,1720延遲寄存器(delay register)具體實施方式
圖8所示為本發(fā)明維特比解碼器的方法的流程圖。在圖8中,首先建立配合維特比解碼器的格狀圖(S70)(如圖3所示)。為了解決ACS的瓶頸乃對維特比解碼器的格狀圖做重整,而重整的方法包括橫向整理與縱向整理兩種方式。以圖9A所示的原始格狀圖且n=2為例,在圖9B所示的將原始格狀圖做橫向整理,所謂橫向整理就是將原先n個狀態(tài)的格狀合并為一個狀態(tài),雖然ACS的瓶頸同樣存在,但卻將瓶頸的時間由1T拉長為nT,整個維特比解碼器的速度限制也因此獲得舒解。
圖9C所示的將原始格狀圖做縱向整理。在圖9C中,對配合維特比解碼器的格狀圖進行縱向整理(S72)。因為由縱向整理得到的縱向整理格狀圖,其狀態(tài)的數(shù)目會2的指數(shù)增加,使縱向整理格狀圖變的復(fù)雜,故使用游程長度限制碼來限制某些狀態(tài)不能出現(xiàn),以運算縱向整理格狀圖而得到一游程長度限制格狀圖(S74)。
如圖10所示的二進制輸入的信道內(nèi)存為3的格狀圖所示,此信道與一般常見的PRML信道頗為近似。以圖11所示的有RLL(2,10)碼的限制下的格狀圖為例,將圖10的格狀圖做RLL(2,10)碼的限制,可以發(fā)現(xiàn)圖11的格狀圖已經(jīng)簡化很多。如圖12所示的將圖11做縱向整理的結(jié)果所示,將圖11的格狀圖做縱向整理與RLL(2,10)碼的限制,可以發(fā)現(xiàn)每一級狀態(tài)數(shù)目僅增加為2。如圖13所示的將圖11做兩次縱向整理的結(jié)果所示,將圖11的格狀圖做兩次縱向整理與RLL(2,10)碼的限制,可以發(fā)現(xiàn)格狀圖并未變的太復(fù)雜,但對ACS的瓶頸已經(jīng)大幅放寬。
接著,針對格狀圖中每一條分支,維特比解碼器會計算出分支度量值(由圖2的分支度量單元202執(zhí)行)(如圖8步驟S76)。其次,縱向整理是將維特比解碼器視為一部有限狀態(tài)機器(Finite State Machine,F(xiàn)SM),由有限狀態(tài)機器的特性可知當(dāng)前輸出=函數(shù)(當(dāng)前輸入與當(dāng)前狀態(tài))下次狀態(tài)=函數(shù)(當(dāng)前輸入與當(dāng)前狀態(tài))若將狀態(tài)重新定義,把新的當(dāng)前狀態(tài)看成“原本的當(dāng)前狀態(tài)+原本的當(dāng)前輸入”,即把原本的輸入吸收到狀態(tài)內(nèi),則變成當(dāng)前輸出=僅是下次狀態(tài)的函數(shù)下次狀態(tài)=函數(shù)(當(dāng)前輸入與當(dāng)前狀態(tài))由圖9C可知,由于格狀圖變成具有當(dāng)前輸出=僅是下次狀態(tài)的函數(shù)的特性,因此在找尋存活路徑時(此時候選路徑(candidate path)交會在同一個下次狀態(tài)上,所以他們的輸出信號將會一樣),ACS的瓶頸將會消失。因為,此時連接在此狀態(tài)上的所有分支都有相同的信號值(因為當(dāng)前輸出=僅是下次狀態(tài)的函數(shù),而下次狀態(tài)相同),所以在計算新的路徑度量s(=舊的路徑度量s+分支度量)的同時,就可比較舊的路徑度量s來決定新的路徑度量的大小關(guān)系。
這樣的做法可以繼續(xù)推演,以達到任何系統(tǒng)需要的速度,例如將狀態(tài)重新定義再擴張一倍,把新的當(dāng)前狀態(tài)看成“現(xiàn)在的當(dāng)前狀態(tài)+現(xiàn)在的當(dāng)前輸入+下次的輸入”,即把現(xiàn)在的輸入與下次的輸入吸收到狀態(tài)內(nèi),變成(當(dāng)前輸出;下次輸出)=僅是下次狀態(tài)的函數(shù)(如圖8步驟S78)下次狀態(tài)=函數(shù)(下次輸入、當(dāng)前輸入與當(dāng)前狀態(tài))(如圖8步驟S80)與前述是同樣的道理,雖然此狀況下的輸出變成兩個,但確定所有交會的路徑在這個狀態(tài)的信號值仍然是一樣的。上述的做法是藉由狀態(tài)的再擴張達到更快速的效果,使ACS的瓶頸更加松弛。
本實施例提出回溯的方法,是針對在維特比演繹用游程長度限制碼來找尋格狀圖的最佳路徑,提供所需的路徑內(nèi)存管理機制。如上所述,回溯方法的工作原理就是先規(guī)律的記錄各狀態(tài)的判斷位,然后再借著這些記錄回溯合并點。事實上,只有回溯的過程中,會造成混淆的地方才需要記錄(參考圖8的步驟S82)。
圖14所示為以第一種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖。在圖14中,經(jīng)過游程長度限制碼的限制,隨著一些狀態(tài)的消失,有些分支也消失了。存留下來的狀態(tài)其相互連接關(guān)系變得十分明確。例如,狀態(tài)“1000”必定來自狀態(tài)“1100”,這樣的聯(lián)機根本不需要記錄在回溯方法時,也能明確的逆推得到。
以圖14為例,在記錄判斷位時(寫入(V)的動作),只須使用兩套內(nèi)存而不是八套內(nèi)存。在讀回記錄時(追溯(T)、解碼(D)),狀態(tài)恢復(fù)電路1200中的判斷電路1402取狀態(tài)1404的前三個位的狀態(tài)值,判斷當(dāng)前的狀態(tài)1404的狀態(tài)值與所記錄的判斷位的關(guān)系(即判斷狀態(tài)值是否為合法的狀態(tài)值)(參考圖8的步驟S84)。當(dāng)狀態(tài)1404的前三位為“000”或“111”時,表示要判斷,并藉由先前記錄下來的判斷位繼續(xù)回溯(參考圖8的步驟S86),如狀態(tài)1404的第一個位為“1”,則多路復(fù)用器1406選擇存儲器塊1408上面一排的數(shù)據(jù)輸出至多路復(fù)用器1410,并由判斷電路1402控制多路復(fù)用器1410輸出數(shù)據(jù)至狀態(tài)1404;如狀態(tài)1404的第一個位為“0”,則多路復(fù)用器1406選擇存儲器塊1408下面一排的數(shù)據(jù)輸出至多路復(fù)用器1410,并由判斷電路1402控制多路復(fù)用器1410輸出數(shù)據(jù)至狀態(tài)1404。當(dāng)狀態(tài)1404的前三位既不是“000”也不是“111”時,只需要延伸狀態(tài)1404的第一個位即可,如狀態(tài)1404的第一個位的狀態(tài)值輸出至多路復(fù)用器1410,并由判斷電路1402控制多路復(fù)用器1410輸出數(shù)據(jù)至狀態(tài)1404以產(chǎn)生新的狀態(tài)1404的狀態(tài)值。
圖15所示為以第二種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖,圖16所示的以第三種回溯方法解格狀圖的關(guān)系對應(yīng)圖與狀態(tài)恢復(fù)電路圖。圖15與圖16分別是更復(fù)雜的格狀圖,以下簡單地描述圖15與圖16工作原理。
在圖15中,狀態(tài)恢復(fù)電路1500中的判斷電路1502判斷狀態(tài)1504的前二個位的狀態(tài)值是否合法,當(dāng)狀態(tài)1504的前二位為“00”或“11”時表示合法,如狀態(tài)1504的第一個位與第三個位決定多路復(fù)用器1506選擇存儲器塊1508其中一排的數(shù)據(jù)輸出至多路復(fù)用器1510,并由判斷電路1502控制多路復(fù)用器1510輸出數(shù)據(jù)至狀態(tài)1504。當(dāng)狀態(tài)1504的前二位既不是“00”也不是“11”時表示不合法,則延伸狀態(tài)1504的第一個位的狀態(tài)值兩次并輸出至多路復(fù)用器1510,并由判斷電路1502控制多路復(fù)用器1510輸出數(shù)據(jù)至狀態(tài)1504以產(chǎn)生新的狀態(tài)1504的狀態(tài)值。
同理,在圖16中,狀態(tài)恢復(fù)電路1600中的判斷電路1602判斷狀態(tài)1604的前三個位的狀態(tài)值是否合法,當(dāng)狀態(tài)1604的前三位為“000”或“111”時表示合法,如狀態(tài)1604的第一個位、第四個位與第五個位決定多路復(fù)用器1606選擇存儲器塊1608其中一排的數(shù)據(jù)輸出至多路復(fù)用器1610,并由判斷電路1602控制多路復(fù)用器1610輸出數(shù)據(jù)至狀態(tài)1604。當(dāng)狀態(tài)1604的前三位既不是“000”也不是“111”時表示不合法,則延伸狀態(tài)1604的第一個位的狀態(tài)值并輸出至多路復(fù)用器1610,并由判斷電路1602控制多路復(fù)用器1610輸出數(shù)據(jù)至狀態(tài)1604以產(chǎn)生新的狀態(tài)1604的狀態(tài)值。
圖17A所示為回溯方法使用寄存器陣列的電路方框圖。在圖17A中,回溯電路1700包括加-比較-選擇單元1702,用以運算各個狀態(tài)的最佳路徑并輸出一判斷位。數(shù)據(jù)流控制器1704用以接收加-比較-選擇單元1702所輸出的判斷位,并決定判斷位的輸出流向。寄存器陣列1706用以接收數(shù)據(jù)流控制器1704所輸出的每一筆判斷位,且從寄存器陣列1706移出一筆先前的判斷位,并做追溯的動作以得到一合并值。寄存器陣列1708或寄存器陣列1710等待寄存器陣列1706所追溯得到的合并值以進行解碼,以及,并移出解碼后的判斷位以作為數(shù)據(jù)輸出。
狀態(tài)恢復(fù)電路1712與寄存器陣列1706做雙向數(shù)據(jù)傳輸,并送出數(shù)據(jù)至延遲寄存器1714,延遲寄存器1714接收狀態(tài)恢復(fù)電路1712所送出的數(shù)據(jù),并延遲一段時間后輸出數(shù)據(jù)至狀態(tài)恢復(fù)電路1716,狀態(tài)恢復(fù)電路1716接收延遲寄存器1714所送出的數(shù)據(jù),并與寄存器陣列1710做雙向數(shù)據(jù)傳輸。狀態(tài)恢復(fù)電路1718與寄存器陣列1706做雙向數(shù)據(jù)傳輸,并送出數(shù)據(jù)至延遲寄存器1720,延遲寄存器1720接收狀態(tài)恢復(fù)電路1718所送出的數(shù)據(jù),并延遲一段時間后輸出數(shù)據(jù)至狀態(tài)恢復(fù)電路1722,狀態(tài)恢復(fù)電路1722接收延遲寄存器1720所送出的數(shù)據(jù),并與寄存器陣列1708做雙向數(shù)據(jù)傳輸。
圖17B所示的回溯方法的數(shù)據(jù)流。在圖17B中,參考圖17A,當(dāng)數(shù)據(jù)流控制器1704控制數(shù)據(jù)的流向是往左邊時,則寄存器陣列1710為等待(I)狀況,寄存器陣列1708為解碼(D)狀況,寄存器陣列1708在解碼時并將解碼好的數(shù)據(jù)往左邊一筆一筆地移出(參考圖8的步驟S94)。寄存器陣列1706從左邊寫入(V)一筆一筆的判斷位數(shù)據(jù),并且被寄存器陣列1706移出的數(shù)據(jù)往左邊移入寄存器陣列1708,當(dāng)寄存器陣列1708填滿移入的數(shù)據(jù)時,寄存器陣列1708由解碼(D)狀況變?yōu)榈却?I)狀況(參考圖8的步驟S92)。此時,寄存器陣列1706亦做追溯(T)的動作,以得到合并點供寄存器陣列1710下一次解碼用(參考圖8的步驟S90)。
同理,圖17C所示的回溯方法的另一種數(shù)據(jù)流。在圖17C中,參考圖17A,當(dāng)數(shù)據(jù)流控制器1704控制數(shù)據(jù)的流向是往右邊時,則寄存器陣列1708為等待(I)狀況,寄存器陣列1710為解碼(D)狀況,寄存器陣列1710在解碼時并將解碼好的數(shù)據(jù)往右邊一筆一筆地移出(參考圖8的步驟S94)。寄存器陣列1706從右邊寫入(V)一筆一筆的判斷位數(shù)據(jù),并且被寄存器陣列1706移出的數(shù)據(jù)往右邊移入寄存器陣列1710,當(dāng)寄存器陣列1708填滿移入的數(shù)據(jù)時,寄存器陣列1708由解碼(D)狀況變?yōu)榈却?I)狀況(參考圖8的步驟S92)。此時,寄存器陣列1706亦做追溯(T)的動作,以得到合并點供寄存器陣列1708下一次解碼用(參考圖8的步驟S90)。
圖17D所示的在數(shù)據(jù)串加入虛數(shù)據(jù)延遲的示意圖。在圖17A中,例如,寄存器陣列1706藉由狀態(tài)恢復(fù)電路1712、延遲寄存器1714與狀態(tài)恢復(fù)電路1716傳輸數(shù)據(jù)給寄存器陣列1710,會產(chǎn)生數(shù)據(jù)傳輸延遲現(xiàn)象,必須在寄存器中放入數(shù)個位的虛數(shù)據(jù)(dummy),避免解碼得到的數(shù)據(jù)因傳輸延遲而產(chǎn)生數(shù)據(jù)錯誤。
因此,本發(fā)明的優(yōu)點是提供一種維特比解碼器的解碼電路與方法,利用游程長度限制碼有效解決維特比解碼器的格狀圖經(jīng)縱向整理后復(fù)雜的格狀圖,使ACS可以平行進行加法與比較運算,而且寄存器陣列在不同的時間可兼具其它動作,如此,ACS與PMU不需要數(shù)量很多的寄存器來處理數(shù)據(jù),同樣地可以達到高速維特比解碼器的解碼的目的。
綜上所述,雖然本發(fā)明已以較佳實施例揭露如上,然而這些較佳實施例并非用以限定本發(fā)明,本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍內(nèi),對這些實施例進行各種修改與潤飾,因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種維特比解碼器的解碼方法,該維特比解碼器具有一分支度量單元、一加-比較-選擇單元與一路徑內(nèi)存單元,所述方法包括下列步驟對配合所述維特比解碼器的一格狀圖進行縱向整理,以得到一縱向整理格狀圖;根據(jù)一游程長度限制碼運算所述縱向整理格狀圖,以得到一游程長度限制格狀圖;根據(jù)所述游程長度限制格狀圖,所述分支度量單元計算一當(dāng)前輸入分支度量值;由所述加-比較-選擇單元計算所述當(dāng)前輸入分支度量值、一下次輸入分支度量值與一當(dāng)前狀態(tài),以得到一下次狀態(tài)值;以及以所述路徑內(nèi)存單元記錄所述加-比較-選擇單元所計算的結(jié)果,以得到一存活路徑,將記錄完成的所述存活路徑進行解碼。
2.如權(quán)利要求1所述的維特比解碼器的解碼方法,其中在進行縱向整理之前先建立配合所述維特比解碼器的所述格狀圖。
3.如權(quán)利要求2所述的維特比解碼器的解碼方法,其中采用多次縱向整理方式將配合所述維特比解碼器的所述格狀圖做縱向整理。
4.如權(quán)利要求3所述的維特比解碼器的解碼方法,其中由所述加-比較-選擇單元僅根據(jù)所述下次狀態(tài)值設(shè)定一當(dāng)前輸出判斷位與一下次輸出判斷位。
5.如權(quán)利要求4所述的維特比解碼器的解碼方法,其中根據(jù)所述游程長度限制格狀圖所計算出的所述分支度量值輸入至所述加-比較-選擇單元,以成為所述當(dāng)前輸入分支度量值及所述下次輸入分支度量值二者其中之一。
6.如權(quán)利要求5所述的維特比解碼器的解碼方法,其中所述路徑內(nèi)存單元記錄所述存活路徑的方法使用一混合交換法與一回溯法二者其中之一。
7.如權(quán)利要求6所述的維特比解碼器的解碼方法,其中所述混合交換法是對于配合所述維特比解碼器的所述格狀圖的每一個狀態(tài)配備一套內(nèi)存,以用來記錄到達此狀態(tài)值的所述存活路徑。
8.如權(quán)利要求6所述的維特比解碼器的解碼方法,其中所述回溯法還包括下列步驟根據(jù)所述當(dāng)前輸出判斷位與所述下次輸出判斷位記錄上次的一狀態(tài)值與當(dāng)前的所述狀態(tài)值的一判斷位;判斷當(dāng)前的所述狀態(tài)值與所述判斷位的關(guān)系;將所述判斷位寫入適當(dāng)?shù)乃鰻顟B(tài)值;當(dāng)不是記錄所述判斷位的所述狀態(tài)時,則寫入與所述狀態(tài)的第一個位相同的一延伸位至所述狀態(tài);送出所述判斷位至一追溯寫入寄存器陣列,并追溯得到一合并值;儲存在一解碼寄存器陣列的所述判斷位到預(yù)定數(shù)量時,所述解碼寄存器陣列變?yōu)橐坏却拇嫫麝嚵?;以及根?jù)所述合并值解碼原先的所述等待寄存器陣列所儲存的所述判斷位。
9.一種維特比解碼器的解碼方法,該維特比解碼器具有一分支度量單元、一加-比較-選擇單元與一路徑內(nèi)存單元,該路徑內(nèi)存單元包括一解碼寄存器陣列、一追溯寫入寄存器陣列及一等待寄存器陣列,所述方法的步驟包括建立配合所述維特比解碼器的一格狀圖;將配合所述維特比的所述格狀圖進行縱向整理,以得到一縱向整理格狀圖;根據(jù)一游程長度限制碼運算所述縱向整理格狀圖,以得到一游程長度限制格狀圖;根據(jù)所述游程長度限制格狀圖,所述分支度量單元計算一分支度量值;由所述加-比較-選擇單元計算一當(dāng)前輸入分支度量值、一下次輸入分支度量值與一當(dāng)前狀態(tài)值,以得到一下次狀態(tài)值;由所述加-比較-選擇單元僅根據(jù)所述下次狀態(tài)值設(shè)定一當(dāng)前輸出判斷位與一下次輸出判斷位;根據(jù)所述當(dāng)前輸出判斷位與所述下次輸出判斷位記錄上次的一狀態(tài)值與當(dāng)前的所述狀態(tài)值上的一判斷位;判斷當(dāng)前的所述狀態(tài)與所述判斷位的關(guān)系;將所述判斷位寫入適當(dāng)?shù)乃鰻顟B(tài)值;由所述加-比較-選擇單元送出所述判斷位至所述追溯寫入寄存器陣列,并追溯得到一合并值;儲存在所述解碼寄存器陣列的所述判斷位到預(yù)定數(shù)量時,所述解碼寄存器陣列變?yōu)樗龅却拇嫫麝嚵?;以及根?jù)所述合并值解碼原先的所述等待寄存器陣列所儲存的所述判斷位。
10.如權(quán)利要求9所述的維特比解碼器的解碼方法,其中采用多次縱向整理方式將配合所述維特比解碼器的所述格狀圖做縱向整理。
11.如權(quán)利要求10所述的維特比解碼器的解碼方法,其中根據(jù)所述游程長度限制格狀圖所計算出所述分支度量值輸入至所述加-比較-選擇單元,以成為所述當(dāng)前輸入分支度量值及所述下次輸入分支度量值二者其中之一。
12.一種維特比解碼器的解碼電路,該解碼電路具有一分支度量單元、一加-比較-選擇單元與一路徑內(nèi)存單元,所述分支度量單元用以計算一分支度量值,并輸出所述分支度量值至所述加-比較-選擇單元,所述加-比較-選擇單元根據(jù)所述分支度量值以運算一狀態(tài)值的最佳路徑,并輸出一判斷位,所述路徑內(nèi)存單元包括一數(shù)據(jù)流控制器,用以接收所述加-比較-選擇單元所輸出的所述判斷位,并決定所述判斷位的輸出流向;一追溯寫入寄存器陣列,接收所述數(shù)據(jù)流控制器所輸出的所述判斷位,并追溯得到一合并值;一等待寄存器陣列,對所述追溯寫入寄存器陣列所追溯得到的所述合并值以進行解碼;以及一解碼寄存器陣列,根據(jù)已追溯得到的所述合并值將儲存在所述解碼寄存器陣列的所述判斷位進行解碼。
13.如權(quán)利要求12所述的維特比解碼器的解碼電路,其中所述解碼寄存器陣列所儲存的所述判斷位達到預(yù)定數(shù)量時,所述解碼寄存器陣列變?yōu)樗龅却拇嫫麝嚵小?br>
14.如權(quán)利要求13所述的維特比解碼器的解碼電路,其中當(dāng)所述追溯寫入寄存器陣列追溯得到所述合并值并提供給所述等待寄存器陣列,所述等待寄存器陣列變?yōu)樗鼋獯a寄存器陣列,并根據(jù)所述合并值進行解碼。
15.如權(quán)利要求14所述的維特比解碼器的解碼電路,其中所述追溯寫入寄存器陣列與所述等待寄存器陣列之間還包括一第一狀態(tài)恢復(fù)電路,與所述追溯寫入寄存器陣列進行雙向數(shù)據(jù)傳輸,并可送出數(shù)據(jù);一第一延遲寄存器,接收所述第一狀態(tài)恢復(fù)電路所送出的數(shù)據(jù),并延遲一段時間后輸出數(shù)據(jù);以及一第二狀態(tài)恢復(fù)電路,接收所述第一延遲寄存器所送出的數(shù)據(jù),并與所述等待寄存器陣列進行雙向數(shù)據(jù)傳輸。
16.如權(quán)利要求14所述的維特比解碼器的解碼電路,其中所述追溯寫入寄存器陣列與所述解碼寄存器陣列之間還包括一第三狀態(tài)恢復(fù)電路,與所述追溯寫入寄存器陣列進行雙向數(shù)據(jù)傳輸,并可送出數(shù)據(jù);一第二延遲寄存器,接收所述第三狀態(tài)恢復(fù)電路所送出的數(shù)據(jù),并延遲一段時間后輸出數(shù)據(jù);以及一第四狀態(tài)恢復(fù)電路,接收所述第二延遲寄存器所送出的數(shù)據(jù),并與所述解碼寄存器陣列進行雙向數(shù)據(jù)傳輸。
17.如權(quán)利要求16所述的維特比解碼器的解碼電路,其中所述第一狀態(tài)恢復(fù)電路與所述寄存器陣列中的一存儲器塊及一狀態(tài)寄存器做數(shù)據(jù)存取,所述第一狀態(tài)恢復(fù)電路還包括一第一判斷電路,具有復(fù)數(shù)個判斷信號輸入端可接收所述狀態(tài)寄存器所輸出的數(shù)據(jù),并具有一選擇信號輸出端可輸出一選擇信號;一第一多路復(fù)用器,具有復(fù)數(shù)個輸入端可接收所述存儲器塊的數(shù)據(jù),具有一選擇端可接收所述狀態(tài)寄存器的數(shù)據(jù),并具有一輸出端可輸出數(shù)據(jù);以及一第二多路復(fù)用器,具有輸入端可接收所述狀態(tài)寄存器與所述第一多路復(fù)用器的所述輸出端所輸出的數(shù)據(jù),具有選擇端可接收所述第一判斷電路的所述選擇信號輸出端所輸出的所述選擇信號,并具有輸出端可輸出數(shù)據(jù)至所述狀態(tài)寄存器。
18.如權(quán)利要求16所述的維特比解碼器的解碼電路,其中所述第二狀態(tài)恢復(fù)電路與所述寄存器陣列中的所述存儲器塊及所述狀態(tài)寄存器進行數(shù)據(jù)存取,所述第二狀態(tài)恢復(fù)電路還包括一第二判斷電路,具有判斷信號輸入端可接收所述狀態(tài)寄存器所輸出的數(shù)據(jù),并具有選擇信號輸出端可輸出所述選擇信號;一第三多路復(fù)用器,具有輸入端可接收所述存儲器塊的數(shù)據(jù),具有選擇端可接收所述狀態(tài)寄存器的數(shù)據(jù),并具有輸出端可輸出數(shù)據(jù);以及一第四多路復(fù)用器,具有輸入端可接收所述狀態(tài)寄存器與所述第三多路復(fù)用器的所述輸出端所輸出的數(shù)據(jù),具有選擇端可接收所述第二判斷電路的所述選擇信號輸出端所輸出的所述選擇信號,并具有輸出端輸出數(shù)據(jù)至所述狀態(tài)寄存器。
19.如權(quán)利要求16所述的維特比解碼器的解碼電路,其中所述第三狀態(tài)恢復(fù)電路與所述寄存器陣列中的所述存儲器塊及所述狀態(tài)寄存器進行數(shù)據(jù)存取,所述第三狀態(tài)恢復(fù)電路還包括一第三判斷電路,具有判斷信號輸入端可接收所述狀態(tài)寄存器所輸出的數(shù)據(jù),并具有選擇信號輸出端可輸出所述選擇信號;一第五多路復(fù)用器,具有些輸入端可接收所述存儲器塊的數(shù)據(jù),具有選擇端可接收所述狀態(tài)寄存器的數(shù)據(jù),并具有輸出端可輸出數(shù)據(jù);以及一第六多路復(fù)用器,具有輸入端可接收所述狀態(tài)寄存器與所述第五多路復(fù)用器的所述輸出端所輸出的數(shù)據(jù),具有選擇端可接收所述第三判斷電路的所述選擇信號輸出端所輸出的所述選擇信號,并具有輸出端輸出數(shù)據(jù)至所速狀態(tài)寄存器。
20.如權(quán)利要求16所述的維特比解碼器的解碼電路,其中所述第四狀態(tài)恢復(fù)電路與所述寄存器陣列中的所述存儲器塊及所述狀態(tài)寄存器進行數(shù)據(jù)存取,所述第四狀態(tài)恢復(fù)電路還包括一第四判斷電路,具有判斷信號輸入端可接收所述狀態(tài)寄存器所輸出的數(shù)據(jù),并具有選擇信號輸出端可輸出所述選擇信號;一第七多路復(fù)用器,具有輸入端可接收所述存儲器塊的數(shù)據(jù),具有選擇端可接收所述狀態(tài)寄存器的數(shù)據(jù),并具有輸出端可輸出數(shù)據(jù);以及一第八多路復(fù)用器,具有些輸入端可接收所述狀態(tài)寄存器與所述第七多路復(fù)用器的所述輸出端所輸出的數(shù)據(jù),具有選擇端可接收所述第四判斷電路的所述選擇信號輸出端所輸出的所述選擇信號,并具有輸出端可輸出數(shù)據(jù)至所述狀態(tài)寄存器。
全文摘要
一種維特比解碼器的解碼電路與方法,此維特比解碼器的解碼電路包括一個分支度量單元、一個加-比較-選擇單元與一個路徑內(nèi)存單元、此路徑內(nèi)存單元包括一個數(shù)據(jù)流控制器、一個追溯寫入寄存器陣列、一個等待寄存器陣列及一個解碼寄存器陣列。利用游程長度限制碼有效解決維特比解碼器的格狀圖經(jīng)縱向整理后復(fù)雜的格狀圖,而且寄存器陣列在不同的時間可兼具其它動作,所以不需要數(shù)量很多的寄存器來處理數(shù)據(jù),同樣地可以達到高速維特比解碼器的解碼的目的。
文檔編號H03M13/00GK1476176SQ0213053
公開日2004年2月18日 申請日期2002年8月14日 優(yōu)先權(quán)日2002年8月14日
發(fā)明者郭弘政, 吳文義 申請人:聯(lián)發(fā)科技股份有限公司