專利名稱:高速可變長度碼解碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可變長度碼(VLC)解碼裝置,更具體地,涉及一種改進的VLC解碼裝置,它能通過在每個時鐘周期上解碼二個碼字提供高速的解碼操作。
可變長度編碼是一種常用于無損失數(shù)據(jù)壓縮的技術(shù)。該技術(shù)基于數(shù)據(jù)的統(tǒng)計出現(xiàn)率將固定長度數(shù)據(jù)轉(zhuǎn)換成可變長度碼字。碼字長度這樣地選擇,即較短的碼字用來表示更頻繁出現(xiàn)的數(shù)據(jù),而較長的碼字被選擇來表示較少頻繁出現(xiàn)的數(shù)據(jù)。通過對所有可能的源碼字庫適當(dāng)?shù)胤峙淇勺冮L度碼字,使可變長度碼字的平均字長變得短于原始數(shù)據(jù)的字長,由此使其可以獲得數(shù)據(jù)壓縮。
在這方面,霍夫曼(Huffman)碼方案是一種在公知數(shù)據(jù)統(tǒng)計中通用的構(gòu)成最小冗余可變長度碼的方法。一般地,編碼過程可以通過使用輸入數(shù)據(jù)來對表尋址的查找表過程來實施。碼字及字長信息作為表內(nèi)容被存儲,并通過使用緩沖器以恒定數(shù)據(jù)速率序貫地輸出到數(shù)據(jù)通道中。
但是,在接收編碼或壓縮數(shù)據(jù)的接收端上,解碼程度變得很復(fù)雜。由于可變的長度,每個碼字在能被解碼前必須由接收位串被分割成源符號。因此,可編長度解碼器的設(shè)計比可變長度編碼器困難得多。
具有多種公知的裝置可用于對可變長度碼字流解碼。在其中,最常用的是使用樹系搜索算法的VLC解碼器,例如是在美國專利US4,889,149(公告日1990年2月6日授于Gary Kahan)中公開的一種解碼器。在該裝置中,可變長度碼用碼字作為樹葉(也稱端節(jié)點)的樹來表示。解碼處理開始于碼樹的根部并由接收到的位流引導(dǎo)以跟隨在每個節(jié)點上兩個樹支中的一個。當(dāng)達到一個樹葉時,碼字的端部被檢測出來并從其余的位流中分割出來。這種類型的解碼裝置包括一個相應(yīng)于樹的邏輯電路及一個在碼樹上移動的控制電路。但是這種方案可能速度慢,尤其對于長碼字,因為對于每個解碼符號需要通過碼樹逐位地搜索。
基于查找表的VLC解碼器公開在美國專利US。5,173,695(公告日1992年12月22日授于Ming-Ting Sun等人)中及US5,245,338(授于Ming-Ting Sun)中。這些解碼器包括兩個級聯(lián)鎖存電路,每個具有等于最大碼字長度的位容量,該電路存儲由一個輸入緩沖存儲器提供的連續(xù)位,以便以固定長度數(shù)據(jù)段存儲待被解碼位流;連接兩個鎖存電路的桶形移位器,用以提供其長度等于最大碼字長度的滑動解碼窗口;累加器,它累計按模計算的最大碼字長度,序貫解碼可變長度碼字的長度;查找表存儲裝置,用于輸出與包含在滑動解碼窗口輸出中的可變長度碼字相對應(yīng)的固定長度字及用于輸出可變長度碼字的長度。當(dāng)在每個時鐘周期期間碼字被解碼時,它的長度被累加及桶形移位器的解碼窗口被移位以從下一待解碼的碼字的第一位開始。當(dāng)在時鐘周期中累計長度超過最大碼字長度時,這將表示在第二鎖存電路中的所有位均被解碼,在第一鎖存電路中的位被傳送到第二鎖存電路中并從輸入緩沖存儲器將下一固定數(shù)據(jù)位段讀入到第一鎖存電路中。
在上述的解碼器結(jié)構(gòu)中,操作速度被包括查找表存儲器、桶形移位器及累加器的主要路徑中的元件的操作延時所限制。并且,它的操作速度還被其在每個時鐘周期上僅解碼一個碼字的有限能力進一步地受到阻礙。
因此,本發(fā)明的主要目的是提供一種通過利用時鐘信號的下降沿及上升沿能解碼各時鐘信號的兩碼字,從而提高其操作速度的VLC解碼裝置。
根據(jù)本發(fā)明,一種VLC解碼裝置,用于以半時鐘速率對自一輸入緩沖器提供的順序的可變長度碼字進行解碼,該輸入緩沖存儲有待以具有兩倍于該可變長度碼字的最大長度的長度的固定長度段被解碼的一輸入位流,該裝置包括第一及第二鎖存電路,用于存儲輸入緩沖器中輸入位流的順序的固定長度段;第一桶形移位器,被連接至第一及第二鎖存電路并具有用于自第一及第二鎖存電路的順序的固定長度段中的位產(chǎn)生一第一窗口輸出序列的第一輸出窗口,該第一窗口輸出序列的位長度等于可變長度碼字的最大長度且該第一輸出窗口直接響應(yīng)一窗口控制信號而被移位過第一及第二鎖存電路中的位;第二桶形移位器,被連接至第一桶形移位器并具有用于自包含在第一窗口輸出序列中及提供給其的在先解碼輸出序列中的位產(chǎn)生一第二窗口輸出序列的第二輸出窗口,該第二窗口輸出序列的位長度等于長度碼字長度等于可變長度碼字的最大長度,該第二輸出窗口直接響應(yīng)一碼字長度而被移位;一中繼電路,用于將第二窗口輸出序列鎖存半個時鐘周期并產(chǎn)生被鎖存的第二窗口輸出序列作為解碼輸出序列;第一存儲器,被耦合至該中繼電路并用于響應(yīng)于一前綴碼產(chǎn)生一碼字長度及一前綴碼長度,該前綴碼由開始于解碼輸出序列的第一位位置的可變長度碼字的高階P位組成,P的最大值為一小于可變長度碼字的最大長度的整數(shù);第三桶形移位器,被連接至該中繼電路及第一存儲器具有用于自解碼輸出序列中的位產(chǎn)生一第三窗口輸出序列作為碼值的第三輸出窗口,該第三窗口輸出序列的位長度為一小于可變長度碼字的最大長度的整數(shù),第三輸出窗口直接響應(yīng)于前綴碼長度而被移位;第二存儲器,被連接至第一存儲器及第三桶形移位器并用于響應(yīng)于碼字長度及碼值產(chǎn)生一固定長度字;及一累加單元,用于將碼字長度加至先前累加的碼字長度以產(chǎn)生表示相加的及累加的碼字長度的窗口控制信號,當(dāng)累加的碼字長度大于可變長度碼字的最大長度的兩倍時,該累加單元生成一讀信號以取出存儲在輸入緩沖器中的下一個固定長度段,該下一個固定長度段被存儲在第一鎖存電路中且先前存儲在第一鎖存電路中的固定長度段被傳送至第二鎖存電路。
從下面結(jié)合附圖給出的優(yōu)選實施例的描述中,本發(fā)明的上述與其它目的與特征將是顯而易見的,附圖中
圖1示出了根據(jù)本發(fā)明的VLC解碼裝置的概圖;圖2描繪了用于說明圖1中所示的VLC解碼裝置的工作過程的所使用的輸入位流;及圖3提供了用于說明圖1中所示的VLC解碼裝置的工作過程的示范性圖。
參照圖1,示有根據(jù)本發(fā)明的一優(yōu)選實施例的VLC解碼器的方框圖。為說明的目的,假定待被解碼的可變長度碼字的最大長度為8位。該VLC解碼器對一以連續(xù)的位流輸入至其的連續(xù)的可變長度碼字進行解碼并在一固定的符號時鐘輸出與其相應(yīng)的被解碼的固定長度碼字到引線213上。
在數(shù)據(jù)信道51上接收的串行數(shù)據(jù)流被輸入至一輸入緩沖存儲器50,該輸入緩沖存儲器50以固定長度數(shù)據(jù)段的形式存儲該可變長度碼字的串行數(shù)據(jù)流并在一時鐘瞬間,例如響應(yīng)于引線411的讀信號的一時鐘信號CLK的上升時鐘瞬間,順序地輸出固定長度數(shù)據(jù)段,例如,16位段到引線111上,其中該數(shù)據(jù)段的位長度兩倍于可變長度碼字的最大位長度且該時鐘信號具有下降沿和上升沿的時鐘瞬間類型。
鎖存電路101被連接至輸入緩沖存儲器50并用于順序地接收來自緩沖存儲器50的引線111上的固定長度數(shù)據(jù)段。鎖存電路102被連接至鎖存電路101并用于接收先前保存在鎖存電路101中的固定長度數(shù)據(jù)段。鎖存電路101和102是被控制的鎖存器,僅在一CARRY(進位)信號出現(xiàn)在它們的控制輸入端上時CLK的一時鐘瞬間上的鎖存在它們輸入端上的數(shù)據(jù),其中該被鎖存的數(shù)據(jù)被保留在它們的輸出端直至產(chǎn)生下一個CLK的時鐘瞬間。在本發(fā)明的優(yōu)選實施例中,輸入緩沖存儲器50、及鎖存電路101和102在時鐘信號的不同的時鐘瞬間類型上執(zhí)行其操作。正如將要描述的那樣,鎖存電路101和102在當(dāng)累加單元500生成一CARRY信號到引321時,例如在CLK的下降時鐘瞬間上讀取在其輸入端的數(shù)據(jù)。當(dāng)需要提供一新數(shù)據(jù)段時,一READ信號在引線411上被激活。當(dāng)在引線411上的該READ信號被激活時,下一個數(shù)據(jù)段在CLK的時鐘信號的上升沿上自緩沖存儲器50取出到引線111上。響應(yīng)于一CARRY信號,并在下一個CLK的下降時鐘瞬間,鎖存電路101鎖存引線111上的下一個數(shù)據(jù)段;先前保存在鎖存電路101中的數(shù)據(jù)段被鎖存入鎖存電路102中。鎖存電路102這樣一直保留時間順序早于保留在鎖存電路101中的數(shù)據(jù)段的數(shù)據(jù)段。
鎖存電路101及102的數(shù)據(jù)段及引線111上的輸入緩沖存儲器50的輸出被輸入至第一桶形移位器103,該第一桶形移位器103具有提供至其輸入端的連續(xù)的48位的數(shù)據(jù)流,并具有跨越輸入至其的該48位的一8位可滑動的輸出窗口,該窗口由表示來自累加單元500的引線319上的累加的碼字長度的一窗口控制信號所控制。當(dāng)該窗口控制信號在引線319上被激活時,第一桶形移位器103的8位輸出窗口被直接移位以將下一個序列數(shù)據(jù)段置入第一桶形移位順103中。在當(dāng)?shù)谝煌靶我莆黄?03中的數(shù)據(jù)流的第一16位被讀出至第二桶形移位器104時產(chǎn)生的在引線321上的CARRY信號被激活時,響應(yīng)于下降沿的時鐘瞬間,鎖存電路101中的先前的數(shù)據(jù)段被鎖存入鎖存電路102作為一再先前數(shù)據(jù)段,且引線111上的當(dāng)前數(shù)據(jù)段被鎖存入鎖存電路101作為先前的數(shù)據(jù)段。而且,在下一個上升沿的時鐘瞬間,下一個16位數(shù)據(jù)段被從輸入緩沖存儲器50取出以出現(xiàn)在第一桶形移位器103的輸入位位置33-48上作為當(dāng)前數(shù)據(jù)段。來自第一桶形移位器103的輸出,即第一窗口輸出序列是一8位序列的三個輸入數(shù)據(jù)段,即自鎖存電路102和101輸出的再先前數(shù)據(jù)段和先前數(shù)據(jù)段,和自緩沖存儲器50輸出的當(dāng)前數(shù)據(jù)段;并經(jīng)引線117被提供給16位輸入第二桶形移位器104。在先前時鐘瞬間產(chǎn)生的一解碼輸出序列也經(jīng)引線127被饋至第二桶形移位器104以產(chǎn)生下一個輸出序列。
具有跨越輸入至其的16位的8位可滑動輸出窗口并由來自存儲裝置200的引線211上的碼字長度所控制的第二桶形移位器104用于通過利用其可滑動輸出窗口輸出一第二窗口輸出序列到引線119上,該可滑動的輸出窗口被滑動至由引線211上的碼字長度所確定的是新的位置。來自第二桶形移位器104的第二窗口輸出序列被提供至包括有兩鎖存電路106和107,及一多路器(MUX)108的中繼電路105。該中繼電路105將第二窗口輸出序列鎖存半個時鐘的持續(xù)時間并經(jīng)引線127提供該鎖存的第二窗口輸出序列給存儲裝置200作為解碼輸出序列。更具體地,來自第二桶形移位器104的在一時鐘瞬間產(chǎn)生的在引線119上的該第二窗口輸出序列在下一個時鐘瞬間被鎖存入中繼電路105中的鎖存電路106或107。鎖存電路106和107在時鐘信號的不同的時鐘瞬間類型上例如,分別在CLK的下降及上升時鐘瞬間鎖存入其輸入端上的數(shù)據(jù)。中繼電路105中的MUX108將交替地響應(yīng)下降時鐘瞬間來自鎖存電路106及響應(yīng)上升時鐘瞬間來自鎖存電路107的第二窗口輸出序列作為解碼輸出序列經(jīng)引線127提供給存儲裝置200和第二及第三桶形移位器104和203。
被耦合至中繼電路105的存儲裝置200用于響應(yīng)開始于該解碼輸出序列的第一位位置的可變長度碼字產(chǎn)生一固定長度字,并用于產(chǎn)生對應(yīng)于該被解碼的可變長度碼字的碼字長度。在本發(fā)明的優(yōu)選實施例中,存儲裝置200包括第一及第二查尋表201和202,各查尋表可由一可編程邏輯陣列(PLA)來實現(xiàn)。第一查尋表201被用于進行前綴解碼以產(chǎn)生一碼字長度和一前綴碼長度,而第二查尋表202被用于進行后綴解碼以產(chǎn)生一解碼的字。第一查尋表201包括一前綴碼表、一前綴碼長度表及一被解碼的字長度表。各可變長度碼字的前綴碼被表示為前綴碼表中的一項,其中各前綴碼由各碼字的高階P位組成,該高位P比特能表示各碼字的長度且P的最大值為一小于可變長度碼字的最大長度的一整數(shù)即8,前綴碼表中的各表項具有一8位的長度,并以可變(即從1至P,如5位)長度的實際前綴碼開始。由于具有5位的最大長度的代碼庫中的前綴碼小于8位,跟隨實際前綴碼的表項中的位位置被指示為“不計較”位置。當(dāng)來自中繼電路中的MUX108的一序列與存儲在前綴碼表中的一個位模式相匹配時,一碼字的長度被檢測。這樣,例如,如果前綴碼表中的一個前綴碼的位模式是“11”,其8位表項將為“11XXXXXX”,其中各“X”表示“不計較”。如果來自MUX108的8位序列具有一模式“11011010”則會在頭兩位上發(fā)生匹配。當(dāng)引線127上的解碼輸出序列與前綴碼表中的一項相匹配時,被解碼的字長表及前綴碼長度表中相應(yīng)的項被激活。被解碼的字長表和前綴碼長度表分別提供碼字長度和對應(yīng)于前綴碼表中與該可變長度碼字匹配的前綴碼的前綴碼長度到引線211和215上。該在下一個時鐘瞬間經(jīng)引線211提供給第二桶形移位器104的碼字長度被用于控制第二桶形移位器104的可滑動輸出窗口的移位。引線215上的前綴碼長度被提供給第三桶形移位器203。該第三桶形移位器203具有一跨越由引線127自MUX108輸入其的8位的一3位可滑動輸出窗口,并通過利用其位置由來自第一查尋表201在引線215上的前綴碼長度所控制的該可滑動的輸出窗口輸出一第三窗口輸出序列作為一碼值到引線217上。該引線217上的碼值被提供給第二查尋表202。引線211上的碼字長度也被輸入至第二查尋表202。該第二查尋表202包括一后綴碼表、一碼字長度表和一被解碼字表,各可變長度碼字的碼字長度被表示為碼字長度表中的一項;且各可變長度碼字碼字的后綴碼被表示為后綴碼表中的一項,其中各后綴碼由各碼字的低階Q位組成,Q的最大值等于從可變長度碼字的最大長度中減去P后的值。后綴碼表中的各表項具有3位的長度,并從一可變的,即從1至Q比特長度的實際后綴碼開始。如果實際后綴碼具有一小于3位的長度,跟隨該實際后綴碼的表項中的位位置被指示為“不計較”位置。在本發(fā)明的優(yōu)選實施例中,一可變長度碼字由P位前綴碼和Q位后綴碼組成。當(dāng)引線211上的碼字長度和引線217上的碼值與存儲在各碼字長度表和后綴碼表中的一個位模式相匹配時,一個固定長度字被檢測。例如,如果后綴碼表中的一個后綴碼的位模式為“01”,其3位表項將為“01X”,其中“X”表示“不計較”。如果引線217上的碼值有一模式“011”,則在頭兩位上發(fā)生匹配。如上所述,當(dāng)引線211上的碼字長度和引線217上的碼值分別與碼字長度和后綴碼表中的項相匹配時,被解碼字表中的相應(yīng)項被激活。該被解碼字表輸出與碼字長度表及后綴碼表中匹配的碼字長度和后綴碼相對應(yīng)的固定長度字到引線213上。
同時,引線211上的碼字長度被提供給累加單元500,該累加單元500用于累加被解碼的碼字長度并生成窗口控制信號到引線319上,該窗口控制信號表示累加的碼字長度并被用于控制第一桶形移位器103。該累加單元500包括一加法單元300和一鎖存單元400,其中加法單元300包括兩個鎖存電路1301及302,兩個加法器303及304,和一MUX305,且鎖存單元400包括一累加鎖存器401和一鎖存電路402。在本發(fā)明的優(yōu)選實施例中,鎖存電路301及302在彼此不同類型的時鐘瞬間工作;累加鎖存器401在與鎖存電路301相同類型的時鐘瞬間工作;且鎖存電路402在與鎖存電路302相同類型的時鐘瞬間執(zhí)行其工作。因此,例如在各下降時鐘瞬間,在加法器303,鎖存在鎖存電路301中的在引線311上的碼字長度被加至來自累加鎖存器401在引線413上的先前累加的模16字長度且相加的5位碼字長度經(jīng)引線315被提供給MUX305,而在各上升時鐘瞬間,在加法器304,鎖存在鎖存電路302中的在引線313上的碼字長度被加至鎖存在鎖存電路402中在引線415上的先前累加的碼字長度上并將相加的5位碼字長度經(jīng)引線317提供給MUX305。在MUX305,相加的5位碼字長度作為窗口控制信號被依次輸出至引線319上。該引線319上的5位窗口控制信號在各下降時鐘瞬間被鎖存入累加鎖存器401并在各上升時鐘瞬間被鎖存入鎖存電路402。接收累加的碼字長度的累加鎖存器401在各下降時鐘瞬間提供接收的數(shù)據(jù)的最高位(MSB)作為READ(讀)信號到引線411上并經(jīng)引線413將該數(shù)據(jù)的其它位作為先前累加的模16字長提供給加法器303。表示新的累加碼字長度的窗口控制信號也被提供給第一桶形移位器103以控制其可滑動的輸出窗口的位置。該5位窗口控制信號的最高位(MSB)在各上升和下降時鐘瞬間作為CARRY信號通過引線321被提供給鎖存電路101及102。當(dāng)累加的碼字長度大于或等于“16”時,窗口控制信號的MSB為“1”且一CARRY信號出現(xiàn)在引線321上。在下一個下降時鐘瞬間,該MSB“1”作為一READ信號出現(xiàn)在位于累加鎖存器401的輸出端上的引線411上。響應(yīng)該READ信號,緩沖器50取出下一個數(shù)據(jù)段并輸出其至引線111上。響應(yīng)該CARRY信號,引線111上的數(shù)據(jù)段被輸入鎖存電路101,且鎖存電路101的內(nèi)容被傳送入鎖存電路102。
參照圖2及3中表格所示的例子可更易于理解圖1中解碼器的操作。如圖2所示,假設(shè)圖1中所示的自數(shù)據(jù)信道51輸入至輸入緩沖存儲器50的數(shù)據(jù)流由位流“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii……”組成,如圖2所示,其中“Aa”表示第一可變長度碼字中的兩位,“A”及“a”分別是該第一可變長度碼字的前綴碼和后綴碼;“Bbb”表示第二可變長度碼字中的三位,“B”及“b”分別是該第二可變長度碼字的前綴碼和后綴碼。
參照圖3,在下降沿的第一時鐘瞬間之前,16比特鎖存電路101及102被以二進制數(shù)“11111111 11111111”初始化,中繼電路105的輸出被以“11111111”初始化且累加單元500被初始化以使CARRY信號和READ信號都為“1”。具體地,在該第一時鐘瞬間再之前的下降沿時鐘瞬間上,引線211上的第一查尋表201的被初始化的輸出為“8”以使第二桶形移位器104有一“8”的起始移位;且引線217上的前綴碼長度輸出被初始化為“0”,以便第三桶形移位器203有“0”的起始移位,累加鎖存器401被以二進制數(shù)“11000”初始化,并且,因而READ信號為“1”及累加的的模16字長為8。由于鎖存電路402也被以“11000”初始化,累加的碼字長度為“16”。由于鎖存在鎖存電路301中的碼字長度為初始化值“8”且累加的模16字長為“8”,引線319上的表示新累加的碼字長度的窗口控制信號為“16”。在第一時鐘瞬間之前的上升沿時鐘瞬間,引線211及217上的第一查尋表201、累加鎖存器401、鎖存電路301及402的輸出保留它們的初始值,而通過將鎖存在鎖存電路302中的初始化碼字長度8與來自鎖存電路402的先前累加的碼字長度“16”相加使窗口控制信號變?yōu)椤?4”。隨著READ信號為“1”,由16位“AaBbbCcc cDDdddEE”組成的第一數(shù)據(jù)段被從輸入緩沖存儲器50取出到引線111上。在此時,鎖存電路101和102的輸出。桶形移位器103和104的輸出為初始化值,在圖3中被表示為“11111111 11111111”和“11111111”,及第二查尋表202的輸出為一在圖3中表示為“X”的噪聲值。
在下降沿的第一時鐘瞬間,由于先前的CARRY信號為“1”,引線111的數(shù)據(jù)段“AaBbbCcc cDDdddEE”被鎖存在鎖存電路101中。通過將鎖存在鎖存電路301中的碼字長度“8”加到來自累加鎖存器401的先前累加的模數(shù)16字長“8”上,使窗口控制信號變?yōu)椤?6”。由于引線319上的窗口控制信號為“16”,CARRY信號仍保留為“1”,且第一桶形移位器103將輸入至其的48位數(shù)據(jù)段,即“11111111 11111111AaBbbCcc cDDdddEE AaBbbCcc cDDdddEE”中的一第17-24位的序列,即“AaBbbCcc”經(jīng)引線117輸出給第二桶形移位器104。自中繼電路105的輸出序列有其初始化值且第一查尋表201的碼字長度輸出仍保留初始的“8”,以使第二桶形移位器104將其輸入數(shù)據(jù)段,即“11111111 AaBbbCcc”中的第一9-16位的序列,即“AaBbbCcc”通過引線119輸出給中繼電路105。鎖存電路102包含其初始化值,且第二查尋表202的被解碼字包含噪聲值。
在上升沿的第二時鐘瞬間,READ信號保持為“1”,其中下一個數(shù)據(jù)段“EeeeFFFF fffGGGGG”自輸入緩沖存儲器50被輸出至引線111上。通過將鎖存在鎖存電路302中的碼字長度“8”與鎖存在鎖存電路402中的先前累加的碼字長度“16”相加使窗口控制信號變?yōu)椤?4”。由于引線319上的窗口控制信號為“24”,CARRY信號保持“1”且第一桶形移位器103將自輸入至其的數(shù)據(jù)段“11111111 11111111 AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG”中的序列“cDDdddEE”輸出至第二桶形移位器104。在第一下降時鐘瞬間先前被保存在延遲電路105中的序列“AaBbbCcc”作為解碼輸出序列經(jīng)引線127被提供給第一查尋表201,及第二和第三桶形移位器104和203。第一查尋表201識別頭一位,即解碼輸出序列“AaBbbCcc”中的“A”并輸出對應(yīng)于在其中識別的前綴碼項的前綴碼長度,即“1”及被解碼的碼字長度,例如“2”到引線215和211。引線211上的解碼的碼字長度“2”然后被耦合至第二查尋表202和第二桶形移位器104,其中第二輸出窗口被移位以包括輸入數(shù)據(jù)段,即“AaBbbCcc cDDdddEE”中的第3-10位。因此,8位序列“BbbCcccD”被耦合至中繼電路105。引線215上的前綴碼長度“1”被耦合至第三桶形移位器203,該第三桶形移位器203將輸入至其的解碼輸出序列,即“AaBbbCcc”中的3位序列“aBb”傳送給第二查尋表202作為碼值。第二查尋表202識別該解碼的碼字長度“2”和碼值“aBb”,并將對應(yīng)于識別的碼字長度其中的后綴碼項的固定長度及被解碼字,例如“A”輸出至引線213上。
在下降沿的第三時鐘瞬間,由于先前的CARRY信號為“1”,引線111上的數(shù)據(jù)段“EeeeFFFF fffGGGGG”被鎖存在鎖存電路101中;且先前保存在鎖存電路101中的數(shù)據(jù)段“AaBbbCcc cDDdddEE”被鎖存在鎖存電路102中。通過將先前的解碼碼字長度“2”與先前累加的模16字長“8”相加使窗口控制信號變?yōu)椤?0”。由于引線319上的窗口控制信號為“10”,CARRY信號變?yōu)椤?”,且第一桶形移位器103將數(shù)據(jù)段“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG EeeeFFFF fffGGGGG”中的序列“DdddEEEe”輸出至第二桶形移位器104。在第二上升時鐘瞬間被先前保存在中繼電路105中的輸出序列“BbbCcccD”被提供給第一查尋表201,及第二和第三桶形移位器104和203。第一查尋表201識別解碼輸出序列“BbbCcccD”中的頭一位,即“B”并將對應(yīng)于其中的識別的前綴碼項的前綴碼長度,即“1”和解碼的碼字長度,例如“3”輸出至引線215和211。引線211上的解碼的碼字長度“3”然后被耦合至第二查尋表202和第二桶形移位器104,該第二桶形移位器104將“BbbCcccD DdddEEEe”中的序列“CcccDdd”輸出至中繼電路105。引線215上的前綴碼長度“1”被耦合至第三桶形移位器203,其中第三輸出窗口被移位以包含解碼輸出序列“BbbCcccD”中的第2-4位。因此,碼值“bbc”被耦合至第二查尋表202。第二查尋表202識別解碼的碼字長度“3”及碼值“bbc”,并將對應(yīng)于識別的碼字長度及其中的后綴碼項的固定長度解碼的字,例如“B”輸出至引線213上。
在上升沿的第四個時鐘瞬間,READ信號保持“1”,其中下一個數(shù)據(jù)段“gggHHHHH hhhIIiii”自輸入緩沖存儲器50被輸出至引線111。通過將先前的解碼的碼字長度“3”與先前累加的碼字長度“10”相加使窗口控制信號變?yōu)椤?3”。由于引線319上的窗口控制信號為“13”,CARRY信號保持“0”,且第一桶形移位器103自“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIii”產(chǎn)生序列“dEEEeeeF”至第二桶形移位器104。在第三下降時鐘瞬間被先前保存在中繼電路105中的輸出序列“CcccDDdd”被耦合至第一查尋表201、及第二和第三桶形移位器104和203。第一查尋表201識別解碼輸出序列“CcccDDdd”中的頭一位,即“C”并將解碼的碼字長度,例如“4”和與其中識別的前綴碼項相對應(yīng)的前綴碼長度“1”輸出至引線211和215上。引線211上的解碼的碼字長度“4”然后被耦合至第二查尋表202及第二桶形移位器104,該第二桶形移位器產(chǎn)生“CcccDDdd dEEEeeF”中的序列“DDdddEEE”給中繼電路105。引線215上的前綴碼長度“1”被耦合至第三桶形移位器203,該第三桶形移位器203自“CcccDDdd”產(chǎn)生碼值“CCC”給第二查尋表202。第二查尋表202識別解碼的碼字長度“4”,及碼值“CCC”。并將與識別的碼字長度和其中的后綴碼項相對應(yīng)的固定長度解碼字,例如“C”輸出至引線213。
在下降沿的第五時鐘瞬間,由于先前的CARRY信號為“0”,READ信號變?yōu)椤?”且輸入至第一桶形移位器103的三個數(shù)據(jù)段保持不變。通過將先前的解碼的碼字長度“4”與先前累加的模16字長“13”相加使窗口控制信號變?yōu)椤?7”。由于引線319上的窗口控制信號為“17”,CARRY信號變?yōu)椤?”,且第一桶形移位器103將“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii”中的序列“eeeFFFFf”輸出至第二桶形移位器104。在第四上升時鐘瞬間被先前保存在中繼電路105中的輸出序列“DDdddEEE”被饋至第一查尋表201、及第二和第三桶形移位器104和203。第一查尋表201識別解碼輸出序列“DDdddEEE”中的頭兩位,即“DD”并將解碼的碼字長度,例如“5”及與其中的識別的前綴碼項相對應(yīng)的前綴碼長“2”輸出至引線211及215上。引線211上的解碼的碼字長度“5”然后被耦合至第二查尋表202及第二桶形移位器104,該第二桶形移位器104輸出自“DDdddEEE eeeFFFFF”中的序列“EEEeeeFF”給中繼電路105。引線215上的前綴碼長度“2”被耦合至第三桶形移位器203,該第三桶形移位器203將“DDdddEEE”中的碼值“ddd”傳送給第二查尋表202。第二查尋表202識別解碼的碼字長度“5”及碼值“ddd”,并將對應(yīng)于識別的碼字長度和其中的后綴碼項的固定長度解碼的字輸出至引線213上。
在上升沿的第六時鐘瞬間,READ信號保持“0”,其中輸入至第一桶形移位器103的三個數(shù)據(jù)段保持不變。通過將先前的解碼的碼字長度“5”與先前累加的碼字長度“17”相加使窗口控制信號變?yōu)椤?2”。由于引線319上的窗口控制信號為“22”,CARRY信號保持“1”,且第一桶形移位器103將“AaBbbCcc cDDdddEE EeeeFFFF fffGGGGG gggHHHHH hhhIIiii”中的序列“FFfffGGG”傳送給第二桶形移位器104。在第五下降時鐘瞬間被先前保存在中繼電路105中的輸出序列“EEEeeeFF”被提供給第一查尋表201、及第二和第三桶形移位器104和203。第一查尋表201識別解碼輸出序列“EEEeeeFF”中的頭三位,即“EEE”并將解碼的碼字長度,例如“6”和與其中識別的前綴碼項相對應(yīng)的前綴碼長“3”輸出至引線211和215上,引線211上的解碼的碼字長度“6”然后被耦合至第二查尋表202及第二桶形移位器104,該第二桶形移位器104將“EEEeeeFF FFfffGGG”中的序列“FFFFfffG”輸出至中繼電路105。引線215上的前綴碼長度“3”被耦合至第三桶形移位器203,該第三桶形移位器203將“EEEeeeFF”中的碼值“eee”傳送給第二查尋表202。第二查尋表202識別解碼的碼字長度“6”,及碼值“eee”,并將與識別的碼字長度和其中的后綴碼項相對應(yīng)的固定長度解碼字,例如“E”輸出至引線213上。
在下降沿的第七時鐘瞬間,由于先前的CARRY信號為“1”,引線111上的數(shù)據(jù)段“gggHHHHH”被鎖存在鎖存電路101中;且當(dāng)前保存在鎖存電路101中的數(shù)據(jù)段“EeeeFFFF fffGGGGG”被鎖存在鎖存電路102中。通過將先前的解碼的碼字長度“6”與先前累加的模16字長“6”相加使窗口控制信號變?yōu)?2。由于引線319上的窗口控制信號為“12”,CARRY信號變?yōu)椤?”,且第一桶形移位器103將數(shù)據(jù)段“EeeeFFFFfffGGGGG gggHHHHH hhhIIiii gggHHHHH hhhIIiii”中的序列“GGGGgggH”輸出給第二桶形移位器104。在第六上升時鐘瞬間,被保存在中繼電路中的輸出序列“FFFFfffG”被提供給第一查尋表201、及第二和第三桶形移位器104和203。第一查尋表201識別“FFFFfffG”中的頭四位,即“FFFF”并將解碼的碼字長度,例如“7”和與其中識別的前綴碼項對應(yīng)的前綴碼長度,即“4”輸出至引線211和215上。引線211上的解碼的碼字長度“7”然后被耦合至第二查尋表202及第二桶形移位器104,該第二桶形移位器104將“FFFFfffG GGGGgggH”中的序列“GGGGggg”輸出給中繼電路105。前綴碼長度“4”被提供給第三桶形移位器203,該第三桶形移位器203將“FFFFfffG”中的碼值“fff”傳送給第二查尋表202,第二查尋表202識別解碼的碼字長度“7”,及碼值“fff”,并將與識別的碼字長度及其中的后綴碼項對應(yīng)的固定長度解碼的字,例如“F”輸出到引線213上。
如上所看到的,容易理解到本發(fā)明的VLC解碼裝置各時鐘信號的時鐘瞬間執(zhí)行解碼操作,從而有利地實現(xiàn)了高速解碼操作。
雖然已相對于特定的實施例描述了本發(fā)明,熟悉本技術(shù)的人員顯而易見可以作出各種改變與修正,而不脫離下述權(quán)利要求書中所定義的本發(fā)明范圍。
權(quán)利要求
1.一種用于以半時鐘速率解碼自一輸入緩沖器提供的順序的可變長度碼字的可變長度碼解碼裝置,其中該輸入緩沖器存儲待被以兩倍于該可變長度碼字的最大長度的長度進行解碼的輸入位流,所述裝置包括第一及第二位存儲裝置,用于存儲輸入緩沖器輸入位流的順序的固定長度段;第一移位裝置,被連接至第一及第二位存儲裝置并具有一用于產(chǎn)生來自第一及第二位存儲裝置的順序固定長度段中的位的第一窗口輸出序列的第一輸出窗口,該第一窗口輸出序列的位長度等于可變長度碼字的最大長度且該第一輸出窗口直接響應(yīng)于一窗口控制信號被移位過第一及第二位存儲裝置中的位;第二移位裝置,被連接至第一移位裝置并具有一用于產(chǎn)生來自包含在第一窗口輸出序列及提供給其的先前解碼輸出序列中的位的第二窗口輸出序列的第二輸出窗口,該第二窗口輸出序列的位長度等于可變長度碼字的最大長度,所述第二輸出窗口直接響應(yīng)于碼字長度被移位;中繼裝置,用于將第二窗口輸出序列鎖存在半個時鐘周期并產(chǎn)生鎖存的第二窗口輸出序列作為解碼輸出序列;第一存儲裝置,被耦合至延遲裝置并用于響應(yīng)一前綴碼產(chǎn)生一碼字長度和一前綴碼長度,該前綴碼由起始于解碼輸出序列的第一位位置的可變長度碼字的高階P位組成,P的最大值為一小于該可變長度碼字的最大長度的整數(shù);第三移位裝置,被連接至為繼裝置及第一存儲裝置并具有一用于產(chǎn)生一來自解碼輸出序列中的位的第三窗口輸出序列作為一碼值的第三輸出窗口,該第三窗口輸出序列的位長度為一小于可變長度碼字的最大長度的整數(shù),所述第三輸出窗口直接響應(yīng)于前綴碼長度被移位;第二存儲裝置,被連接至第一存儲裝置及第三移位裝置并用于響應(yīng)碼字長度及碼值產(chǎn)生一固定長度字;及累加裝置,用于將碼字長度與先前累加的碼字長度相加以產(chǎn)生表示相加的及累加的碼字長度的窗口控制信號,當(dāng)累加的碼字長度大于兩倍的可變長度碼字的長度時,所述累加裝置產(chǎn)生一讀信號以抽取存儲在輸入存儲器中的下一個固定長度段,該下一個固定長度段被存儲在第一位存儲裝置中及先前存儲在第一位存儲裝置中的固定長度段被傳送給第二位存儲裝置。
全文摘要
解碼順序的可變長度碼字的可變長度碼解碼裝置,包括響應(yīng)窗口控制信號產(chǎn)生第一窗口輸出序列的第一桶形移位器;響應(yīng)解碼碼字長度產(chǎn)生第二窗口輸出序列的第二桶形移位器;將第二窗口輸出序列鎖存半個時鐘周期并提供其作為解碼輸出序列的中繼電路;響應(yīng)可變長度碼字的前綴碼產(chǎn)生解碼的碼字長度及一前綴碼長度的第一查尋表存儲器;響應(yīng)前綴碼長度產(chǎn)生一碼值的第三移位器;響應(yīng)解碼的碼字長度及該碼值產(chǎn)生固定長度字的第二查尋表存儲器;及產(chǎn)生窗口控制信號的累加單元。
文檔編號H03M7/40GK1136236SQ96103500
公開日1996年11月20日 申請日期1996年3月18日 優(yōu)先權(quán)日1995年3月16日
發(fā)明者孫永碩 申請人:大宇電子株式會社