欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

變長(zhǎng)碼有序譯碼法及其可編程電路的制作方法

文檔序號(hào):7534830閱讀:543來(lái)源:國(guó)知局
專利名稱:變長(zhǎng)碼有序譯碼法及其可編程電路的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種變長(zhǎng)碼譯碼方法及其可編程電路。
現(xiàn)代數(shù)據(jù)通信技術(shù)是信息化社會(huì)必需的一種工具,而且人們對(duì)通信傳輸速率的要求也越來(lái)越高。信源編碼通過(guò)數(shù)據(jù)壓縮編碼可以提高通信傳輸速率,因而被廣泛應(yīng)用于語(yǔ)音、圖象、文字、數(shù)據(jù)等通信領(lǐng)域,這種用于數(shù)據(jù)壓縮目的的信源編碼的代碼是變長(zhǎng)碼,對(duì)于變長(zhǎng)碼的譯碼要提高其譯碼速度,首先必須提高識(shí)別變長(zhǎng)碼字的速度。目前國(guó)內(nèi)外廣泛采用的變長(zhǎng)碼譯碼法大都是基于樹形搜索譯碼法,近期,我國(guó)《發(fā)明專利公報(bào)》中公開了一種公開號(hào)為CN1043413A,發(fā)明名稱為“通用變長(zhǎng)碼編譯碼方法和可編程電路”的發(fā)明,其中也涉及一種變長(zhǎng)碼比較譯碼法。上述這些變長(zhǎng)碼的譯碼法,都需要對(duì)碼流中的碼元進(jìn)行逐個(gè)識(shí)別來(lái)譯碼,因此限制了譯碼速度的提高,難以滿足更高速數(shù)據(jù)通信的要求。
為了克服上述不足,本發(fā)明的目的是提供一種變長(zhǎng)碼有序譯碼法及其可編程電路,它是直接對(duì)整個(gè)碼字進(jìn)行識(shí)別來(lái)譯碼,完全擺脫了現(xiàn)有技術(shù)中逐個(gè)識(shí)別碼元的譯碼方法,從而能大幅度地提高譯碼速度。本發(fā)明適用范圍廣,算法簡(jiǎn)單,用電路實(shí)現(xiàn)靈活容易,適合于制作通用可編程變長(zhǎng)碼譯碼集成電路,用軟件或軟、硬件相結(jié)合實(shí)現(xiàn)則具有編程簡(jiǎn)單、靈活、平均運(yùn)行指令數(shù)少等優(yōu)點(diǎn)。
本發(fā)明的目的是通過(guò)下述技術(shù)方案來(lái)實(shí)現(xiàn)的。
對(duì)于一個(gè)變長(zhǎng)碼體系,構(gòu)造一個(gè)與碼字相關(guān)的有序表,在譯碼過(guò)程中,把碼流中以待譯碼字為首的碼元串看成一個(gè)數(shù),通過(guò)確定其與有序表中一個(gè)有序集合的元素之間的大小順序關(guān)系來(lái)識(shí)別被譯碼。有序表是這樣構(gòu)成的在各個(gè)碼字后添加若干個(gè)零構(gòu)成相同位數(shù)lm位(lm不小于最大碼長(zhǎng))的數(shù),再將這些數(shù)按從小到大(或從大到小)的順序進(jìn)行排列組成一個(gè)有序集合,然后將各消息單元和碼長(zhǎng)按照所對(duì)應(yīng)的有序集合中的元素順序進(jìn)行排列,這就構(gòu)成了有序表。碼字識(shí)別過(guò)程是從待譯碼流的首部取lm個(gè)碼元作為一個(gè)lm位數(shù),確定若將該數(shù)插入有序表中的有序集合并使該集合仍然有序時(shí)應(yīng)插在哪一個(gè)元素之后(或之前,不要實(shí)際插入),則這個(gè)元素所對(duì)應(yīng)的代碼就是待譯碼流的第一個(gè)代碼,然后從待譯碼流首部刪去已被譯出碼的碼元,將剩余碼流作為一個(gè)新的待譯碼流,重復(fù)上述過(guò)程,即可譯出第二個(gè)、第三個(gè)碼等等,直到待譯碼流被全部譯完為止。上述有序譯碼法可以通過(guò)一種可編程電路圖8來(lái)實(shí)現(xiàn),如圖8所示,該電路是由刪除電路1、碼宇識(shí)別電路2、控制電路5和存貯器組成的,存貯器是由消息單元存貯器3和碼長(zhǎng)存貯器4組成。刪除電路是具有刪除待譯碼流首部已被譯出碼的碼元并取出剩余待譯碼流前l(fā)m個(gè)碼元的功能的電路,碼字識(shí)別電路就是具有識(shí)別碼字功能的電路,存貯器是用來(lái)存貯消息單元(或消息單元所在地址)和碼長(zhǎng)的,控制電路則協(xié)調(diào)各部分電路之間的工作過(guò)程。待譯碼流以lm個(gè)碼元為一組并行輸入刪除電路,刪除電路將待譯碼流的前l(fā)m個(gè)碼元并行輸出給碼字識(shí)別電路,碼字識(shí)別電路識(shí)別出該lm個(gè)碼元的第一個(gè)碼后,將對(duì)應(yīng)消息單元和碼長(zhǎng)在存貯器中的地址輸入給存貯器,對(duì)應(yīng)消息單元就從存貯器輸出,對(duì)應(yīng)碼長(zhǎng)則進(jìn)給刪除電路,刪除電路完成刪除操作后,再將剩余待譯碼流的前l(fā)m個(gè)碼元送入碼字識(shí)別電路,繼續(xù)進(jìn)行譯碼,當(dāng)刪除電路中剩余待譯碼元不多于lm個(gè)時(shí),就從待譯碼流中取入下一組lm個(gè)碼元來(lái)補(bǔ)充。
以下將通過(guò)具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。設(shè)有信源X,

其中x1,x2,…,xn表示信源的消息單元,P(x)是x出現(xiàn)的概率,符號(hào)集S={s1,s2,…,sR},其中s1,s2,…,SR是用來(lái)構(gòu)成代碼的符號(hào)。通常S由多進(jìn)制R(R≥2)進(jìn)制數(shù)字構(gòu)成,并相應(yīng)地被稱為R進(jìn)制信源編碼。例如在二進(jìn)制信源編碼中S={0,1},在三進(jìn)制信源編碼中S={0,1,2}等等。但是,在S中必有元素“0,”并假定SR是其中最大元素。在給定R的情況下,應(yīng)用某種編碼算法(例如霍夫曼編碼法,香農(nóng)編碼法等等),找出各個(gè)消息單元的代碼,構(gòu)成代碼集C={c1,c2,…,cn},其中每一個(gè)代碼c都是由S中R進(jìn)制的若干個(gè)數(shù)字組成的長(zhǎng)短不一的“數(shù)字串”,即為變長(zhǎng)碼,并滿足字首碼條件,或者說(shuō),具有非延長(zhǎng)碼特性。假設(shè),

圖1表示消息單元集X與代碼集C的對(duì)應(yīng)關(guān)系表,如圖1所示,為了進(jìn)行譯碼,先構(gòu)造有序表。
設(shè)lmax=max{l1,l2…,ln},取滿足lm≥lmax的一個(gè)lm,構(gòu)造集合D={d1,d2…,dn},其中元素di與代碼ci的對(duì)應(yīng)關(guān)系是對(duì)于代碼其中bj(i)∈S(稱bj(i)為碼元),j=1,2,…li(1),有

i=1,2,…n (2)。
因?yàn)閷?duì)于不同的代碼c,式(1)右邊的數(shù)字串不同,并具有非延長(zhǎng)碼特性,所以把集合D中的元素d看成lm位R進(jìn)制數(shù)時(shí),各元素互不相等。據(jù)此,可以將D中元素按從小到大(或從大到小,它們的譯碼原理相同,以下以從小到大順序排列為例)順序排列,得到有序集合D={d′1,d′2,…,d′n},其中d′i∈D,i=1,2,…,n,并且d′i<d′j,對(duì)于i<j,i,j∈{1,2.…,n} (3)然后,以有序集合D′為基礎(chǔ)構(gòu)造一個(gè)譯碼用的有序表,圖2是用于變長(zhǎng)碼譯碼的有序表,如圖2所示,代碼集C′=C′1,C′2,…,C′n}是代碼集C中的代碼按所對(duì)應(yīng)的d′的順序重新排列而得到的,同理,對(duì)應(yīng)消息單元和對(duì)應(yīng)碼長(zhǎng)也是用同樣的方法得到的。
利用這種有序表,變長(zhǎng)碼的有序譯碼法如下由于代表消息單元的碼流是由代碼集合中的代碼不加任何間隔符號(hào)連續(xù)排列而構(gòu)成,而各個(gè)代碼都是R進(jìn)制數(shù)字串,所以接牧到的一則消息的碼流(待譯碼流)是一個(gè)代碼串,也是有限長(zhǎng)的R進(jìn)制數(shù)字串,可以表示為 W=b1b2…bp,其中bi∈S,i=1,2,…,p(4)w能且只能被分割為代碼集合中的一系列代碼,而且分割是唯一的。
其譯碼步驟是 第—步取待譯碼流w中的前l(fā)m個(gè)碼元作為一個(gè)lm位R進(jìn)制數(shù)其前若干位必構(gòu)成某代碼c″。
第二步判定w′≥d′n是否成立,若是,則c″一定是d′n所對(duì)應(yīng)的代碼c′n;若不是,則在有序集合D′中尋找i,使得d′i≤w′<d′i+1 成立(必能找到),即可確定c″一定是d′i所對(duì)應(yīng)的代碼c′i。
以下用兩個(gè)特性證實(shí)上述判斷的正確性,在此之前,先對(duì)這兩個(gè)特性加以證明。
〔特性1〕在有序集合D′中,任意給定一個(gè)元素d′i,都可以在集合D中找到一個(gè)與之相同的元素dj(因?yàn)镈′與D具有相同元素,且是一一對(duì)應(yīng)的),對(duì)于滿足條件

j=1,2,…,n-1的lm位R進(jìn)制數(shù)α,有 α<d′k,對(duì)于k>i,k∈{2,3,…,n}證明用反證法。假設(shè)α≥d′k,則

又因?yàn)閗>i,由式(3)知,d′k>d′i,所以(lm-li)位設(shè)d′k=dg,則其中(lm-lg)位由式(5)和式(6)可以推知,d′k的前l(fā)i位必然為即碼字cj。對(duì)照式(7),可以推知,若lg=lj,則cg與cj相同,故d′k=d′i,與式(3)矛盾;若lg>li,則cg成為ci的延長(zhǎng),或者lg<li,則cj成為cg的延長(zhǎng)。均與原代碼集具有的非延長(zhǎng)碼特性矛盾。故α≥d′k的假設(shè)不成立?!疤匦?”命題正確,證畢。
[特性2]設(shè)u是在某一代碼ci后任意增加若干個(gè)R進(jìn)制數(shù)字而延長(zhǎng)至總長(zhǎng)為lm位的R進(jìn)制數(shù),那么 (1)若u<d′k,則cj不可能是d′k或D′中比d′k大的元素所對(duì)應(yīng)的代碼; (2)若u≥d′k,則ci不可能是D′中比d′k小的元素所對(duì)應(yīng)的代碼。證明根據(jù)上述假設(shè),u可以表示為

其中j=1,2,…,(lm-li) 仍然用反證法證明“特性2”命題之(1)和(2)。
(1)假設(shè)ci是d′k或D′中比d′k大的元素所對(duì)應(yīng)的代碼,顯然有

這與(1)中條件u<d′k矛盾,故假設(shè)不成立。“特性2”命題之(1)正確。
(2)假設(shè)ci是D′中比d′k小的元素所對(duì)應(yīng)的代碼,又因?yàn)?

依“特性1”有u<d′k,這與(2)中條件u≥d′k矛盾,故假設(shè)不成立,“特性2”命題之(2)正確,證畢。
現(xiàn)在來(lái)說(shuō)明譯碼步驟第二步中判斷正確的依據(jù)。
若w′≥d′n,依“特性2”命題之(2),C″不可能是D′中比d′n小的元素所對(duì)應(yīng)的代碼,所以C″一定是d′n所對(duì)應(yīng)的代碼c′n;若d′i≤w′<d′i+1,依“特性2”命題之(1),C″不可能是d′i+1或D′中比d′i+1大的元素所對(duì)應(yīng)的代碼,依“特性2”命題之(2),C″也不可能是D′中比di小的元素所對(duì)應(yīng)的代碼,所以C″一定是d′i所對(duì)應(yīng)的代碼c′i。
因此譯碼步驟第二步的判斷是正確的。
第三步判斷了C″是有序集合D′中一個(gè)確定的d′所對(duì)應(yīng)的代碼C′,就是譯出了第一個(gè)碼;將相應(yīng)的消息單元x′以適當(dāng)方式輸出(或存貯),然后將式(4)中構(gòu)成C′的前l(fā)′(C′的碼長(zhǎng))位刪去,將剩余碼流看成一個(gè)新的代碼串或數(shù)字串w,轉(zhuǎn)到第一步,繼續(xù)進(jìn)行譯碼,直至整個(gè)碼流w被譯完為止。
實(shí)施本發(fā)明涉及有序譯碼法來(lái)大幅度地提高譯碼速度的一個(gè)重要因素在于快速執(zhí)行譯碼步驟的第二步,從數(shù)據(jù)結(jié)構(gòu)觀點(diǎn)來(lái)看,譯碼步驟第二步相當(dāng)于確定將一個(gè)給定的新元素插入一個(gè)有序的線性并列表并使該表仍然有序的插入位置(不要實(shí)際插入),因此可以利用有序表的各種快速插入算法如對(duì)分查找插入算法、分段等差數(shù)列法、散列地址法等,來(lái)快速確定代碼。以下用一個(gè)具體的變長(zhǎng)碼體系來(lái)說(shuō)明其中幾種快速插入算法在有序譯碼法中的應(yīng)用。
設(shè)圖3是一個(gè)具體的二進(jìn)制變長(zhǎng)碼體系中消息單元與碼字對(duì)應(yīng)表。按圖2形式,構(gòu)造用于譯碼的有序表圖4,其中l(wèi)m取8是為了便于8位計(jì)算機(jī)處理,用硬件實(shí)現(xiàn)時(shí)也可取lm=6,圖4中消息單元xi可以用數(shù)字方式存貯消息單元本身或消息單元所在地址。
方法一對(duì)分查找插入算法。
直接采用圖4,用眾所周知的對(duì)分查找插入算法確定若將待譯碼流中前8個(gè)碼元組成的8位二進(jìn)制數(shù)插入有序集合D′時(shí)應(yīng)插在哪一個(gè)元素之后,再按譯碼步驟2即可確定代碼,這時(shí)需存貯圖4中有序集合D′,對(duì)應(yīng)消息單元和對(duì)應(yīng)碼長(zhǎng)三組數(shù)據(jù),代碼總個(gè)數(shù)為n時(shí),識(shí)別一個(gè)碼最多需搜索[log2n]+2(〔A〕表示取不大于A的最大整數(shù))次,當(dāng)最大碼長(zhǎng)較大和碼字總個(gè)數(shù)較多時(shí),譯碼速度的提高較為顯著。對(duì)分查找插入算法的一個(gè)優(yōu)點(diǎn)是占用內(nèi)存少。
方法二分段等差數(shù)列法。
將圖4中的有序集合D′中的元素?cái)U(kuò)展為分段等差數(shù)列如圖5和圖6所示,圖5是用于分段等差數(shù)列法的有序表,圖6是分段首地址指針?biāo)饕?,圖5中增加的元素所對(duì)應(yīng)的消息單元和碼長(zhǎng)與比它小且最相近的已有元素所對(duì)應(yīng)的消息單元和碼長(zhǎng)一致,利用分段等差數(shù)列法,需存貯圖5中消息單元和碼長(zhǎng)及圖6中分段索引地址指針和公差四組數(shù)據(jù)。當(dāng)取待譯碼流中的前8個(gè)碼元作為一個(gè)8位二進(jìn)制數(shù)w′時(shí),代碼識(shí)別步驟如下 (1)取w′前4位作為一個(gè)二進(jìn)制數(shù)w1,以w1為序號(hào)取圖6中的分段索引地址指針w2,判斷對(duì)應(yīng)公差w3是否為零,若是,則w′中第一個(gè)碼就是圖5中序號(hào)為w2的代碼,其對(duì)應(yīng)消息單元和碼長(zhǎng)也相應(yīng)找到。
(2)若不是,取w′中后4位作為一個(gè)二進(jìn)制數(shù),除以公差w3,得到商w4(余數(shù)舍棄),則w′中第一個(gè)碼就是圖5中序號(hào)為(w2+w4)的代碼,其對(duì)應(yīng)消息單元和碼長(zhǎng)也相應(yīng)找到。
利用分段等差數(shù)列法的優(yōu)點(diǎn)是不需搜索,只要經(jīng)過(guò)一步判斷和一步計(jì)算即可確定被譯碼,所占內(nèi)存也不多。
方法三散列地址法。
這是一種用散列地址存貯法確定代碼的方法。將圖4中的有序集合D′中的元素加以擴(kuò)展并按散列地址進(jìn)行存貯,圖7是用于散列地址存貯法的有序表,如圖7所示,增加的元素所對(duì)應(yīng)的消息單元和碼長(zhǎng)與方法二中情況一樣,這時(shí)需按圖7存貯消息單元和碼長(zhǎng)兩組數(shù)據(jù)。當(dāng)取待譯碼流中的前8個(gè)碼元作為一個(gè)8位二進(jìn)制數(shù)w′時(shí),只要將w′右移兩位(左邊補(bǔ)零)得到w5,則w′中的第一個(gè)碼就是圖7中序號(hào)為w5的代碼,其對(duì)應(yīng)消息單元和碼長(zhǎng)也相應(yīng)找到。利用散列地址存貯法是以較多的存貯量換取較高的譯碼速度,它既不需要搜索,也不需要計(jì)算就可確定待譯碼字。
由此可見,本發(fā)明涉及的有序譯碼法是通過(guò)構(gòu)造與碼字相關(guān)的有序表,使得確定被譯碼的過(guò)程轉(zhuǎn)化為確定數(shù)的大小順序關(guān)系的過(guò)程,從而可以利用有序表特有的性質(zhì),采用各種快速插入算法,快速地識(shí)別整個(gè)碼字。
作為實(shí)施本發(fā)明涉及的變長(zhǎng)碼的有序譯碼法的手段之一,圖8給出了可編程變長(zhǎng)碼譯碼電路。
在圖8的譯碼電路中,存貯在存貯單元為定長(zhǎng)lm位(lm不小于最大碼長(zhǎng))的存貯器中的分組(即以lm個(gè)碼元為一組)被譯碼流6,在控制信號(hào)發(fā)生器5發(fā)出的控制信號(hào)8的作用下,取待譯碼流組的前若干組先后并行輸入刪除電路1,刪除電路1是完成譯碼步驟第三步,即刪去碼流首部已被譯出碼的碼元并輸出剩余待譯碼流前l(fā)m個(gè)碼元的一種電路,1的狀態(tài)輸出送給5,當(dāng)1的狀態(tài)指示無(wú)需進(jìn)行刪除或刪除操作完畢時(shí),5產(chǎn)生一個(gè)控制信號(hào),將1的輸出并行輸入碼字識(shí)別電路2,2是完成譯碼步驟第二步,即識(shí)別碼字并輸出被識(shí)別碼所對(duì)應(yīng)的消息單元和碼長(zhǎng)在消息單元存貯器3與碼長(zhǎng)存貯器4(均按有序表中的順序存貯)中的地址的一種電路,2的狀態(tài)輸出給5,當(dāng)2的狀態(tài)指示識(shí)別出一個(gè)碼字時(shí),5產(chǎn)生一個(gè)控制脈沖將2的輸出并行輸入3和4,5再輸出控制脈沖13觸發(fā)外部電路接收從數(shù)據(jù)總線7并行輸出的存貯器3中的對(duì)應(yīng)消息單元,同時(shí)使4中的對(duì)應(yīng)碼長(zhǎng)并行輸入刪除電路1,接著1進(jìn)行刪除操作,如發(fā)現(xiàn)完成刪除操作后,1中剩余碼元不多于lm個(gè),則1輸出一個(gè)脈沖信號(hào)給5,5就將待譯碼流中下一組lm碼元并行輸入1,經(jīng)過(guò)調(diào)整,1又輸出剩余待譯碼流的前l(fā)m個(gè)碼元到2,繼續(xù)進(jìn)行譯碼。
圖8中存貯器3、4中消息單元和碼長(zhǎng)數(shù)據(jù)在譯碼工作之前由數(shù)據(jù)總線7送入,片選信號(hào)9,地址信號(hào)10,讀寫信號(hào)11以及時(shí)鐘信號(hào)12都由外部電路提供。
作為構(gòu)成上述可編程變長(zhǎng)碼譯碼電路的必要因素,圖9、圖10和圖11、圖12分別給出了刪除電路1和碼字識(shí)別電路2的實(shí)現(xiàn)方法各兩種。
圖9的刪除電路中,待譯碼流從首部算起第一組和第二組lm個(gè)碼元由外部控制電路通過(guò)數(shù)據(jù)總線6輸入移位寄存器14和15,復(fù)位信號(hào)20通過(guò)控制信號(hào)發(fā)生器18將lm進(jìn)制減法計(jì)數(shù)器17清零,14的內(nèi)容是待譯碼流的前l(fā)m個(gè)碼元,在18的控制下通過(guò)6輸出;被譯出碼的對(duì)應(yīng)碼長(zhǎng)由外部控制電路通過(guò)6輸入可預(yù)置(lm+1)進(jìn)制減法計(jì)數(shù)器16,啟動(dòng)信號(hào)19通過(guò)18,使時(shí)鐘信號(hào)12送給14、15、16和減法計(jì)數(shù)器17,使之左移或計(jì)數(shù),15的內(nèi)容左移時(shí)進(jìn)入14,當(dāng)16減至零時(shí)輸出狀態(tài)信號(hào)22給18和外部電路,停止移位和計(jì)數(shù),14的內(nèi)容就是剩余待譯碼流的前l(fā)m碼元,再在18控制下通過(guò)6輸出;在移位和計(jì)數(shù)過(guò)程中,若減法計(jì)數(shù)器17從大于零減至零,即輸出脈沖信號(hào)21給18和外部電路,停止移位和計(jì)數(shù),外部控制電路將待譯碼流的下一組碼元通過(guò)數(shù)據(jù)總線6并行輸入15,并用復(fù)位信號(hào)20重新啟動(dòng)移位和計(jì)數(shù)。
圖10的刪除電路中,待譯碼流從首部算起第一組和第二組lm個(gè)碼元通過(guò)數(shù)據(jù)總線6分別并行進(jìn)入一個(gè)由(lm+1)個(gè)寄存器組成的寄存器組23中的第一個(gè)和第(lm+1)個(gè)寄存器,同時(shí)23中第i(i=2,3,…,lm)個(gè)寄存器了第一個(gè)寄存器的第i位至第(lm+1)個(gè)寄存器的第(i-1)位的內(nèi)容。算術(shù)運(yùn)算單元24中累加器初值為0,作為選擇信號(hào)送入23,選擇第一個(gè)寄存器的內(nèi)容在控制信號(hào)發(fā)生器25的控制下并行輸出;當(dāng)代碼被識(shí)別后,外部控制電路通過(guò)6將對(duì)應(yīng)碼長(zhǎng)送入24與累加器中內(nèi)容累加,其結(jié)果若小于lm,則輸出狀態(tài)信號(hào)50給外部電路,并使23中以24中累加器值為序號(hào)的寄存器的內(nèi)容從6并行輸出;若累加結(jié)果不小于lm,則累加器內(nèi)容減去lm,并發(fā)出一個(gè)脈沖信號(hào)到控制信號(hào)發(fā)生器25,25將23中第(lm+1)個(gè)寄存器內(nèi)容賦予第一個(gè)寄存器,再向外部電路發(fā)出一個(gè)脈沖信號(hào)26,外部電路將待譯碼流中下一組lm碼元輸入(lm+1)個(gè)寄存器,再將23中以累加器值為序號(hào)的寄存器內(nèi)容從6輸出。
圖11的碼宇識(shí)別電路中,待譯碼流的前l(fā)m個(gè)元由外部電路通過(guò)數(shù)據(jù)總線34并行輸入寄存器27(存貯前若干碼元)和28(存貯其余碼元),27的內(nèi)容輸出到分段首地址指針存貯器29和分段公差存貯器30,28的內(nèi)容在除法器31中除以30的輸出(即公差),所得商與29的輸出(即首地址)在加法器32中相加,32向外部電路發(fā)出狀態(tài)信號(hào)36,同時(shí)將相加結(jié)果從數(shù)據(jù)總線35并行輸出,控制信號(hào)發(fā)生器33控制上述步驟的順序進(jìn)行。存貯器29、30中首地址和公差值在譯碼工作之前由數(shù)據(jù)總線34送入。
圖12的碼字識(shí)別電路中,待譯碼流的前l(fā)m個(gè)碼元由外部電路通過(guò)數(shù)據(jù)總線39并行輸入移位寄存器37,控制信號(hào)發(fā)生器38發(fā)出控制脈沖給37,使之右移若干位,然后38發(fā)出狀態(tài)信號(hào)40給外部電路,同時(shí)將37中的內(nèi)容從數(shù)據(jù)總線39并行輸出。
在圖9、圖10、圖11、圖12中,片選信號(hào)9,地址信號(hào)10,讀寫信號(hào)11和時(shí)鐘信號(hào)12均由外部電路提供。
本發(fā)明可推廣應(yīng)用到任何變長(zhǎng)碼體系的譯碼。
權(quán)利要求
1.一種變長(zhǎng)碼的譯碼方法,其特征是對(duì)于一個(gè)變長(zhǎng)碼體系,構(gòu)造一個(gè)與碼字相關(guān)的有序表,把碼流中以待譯碼字為首的碼元串看成一個(gè)數(shù),通過(guò)確定其與有序表中一個(gè)有序集合的元素之間的大小順序關(guān)系來(lái)識(shí)別被譯碼,其有序表是在各個(gè)碼字后添加若干個(gè)零構(gòu)成相同位數(shù)lm位(lm不小于最大碼長(zhǎng))的數(shù),再將這些數(shù)按從小到大(或從大到小)的順序排列組成一個(gè)有序集合D′,然后將各消息單元和碼長(zhǎng)按照所對(duì)應(yīng)的有序集合D′中的元素順序進(jìn)行排列而構(gòu)成的。
2.一種變長(zhǎng)碼譯碼電路,其特征是它是由刪除電路(1),碼字識(shí)別電路(2),消息單元存貯器(3),碼長(zhǎng)存貯器(4)以及控制信號(hào)發(fā)生器(5)組成,待譯碼流分組并行進(jìn)入(1),(1)的輸出送入(2),(2)的輸出在(5)的控制下送給(3)和(4),(4)的內(nèi)容送回到(1),(3)的內(nèi)容作為結(jié)果并行輸出。
3.根據(jù)權(quán)利要求1所述的譯碼方法,其特征是在得到有序集合D′=(d′1,d′2,…,d′n}(以從小到大順序?yàn)槔?和有序表后,進(jìn)行譯碼的步驟如下
(1)取待譯碼流w中的前l(fā)m個(gè)碼元作為一個(gè)lm位數(shù)其前若干位必構(gòu)成某代碼c″;
(2)判定w′≥d′n(D′中最大元素)是否成立,若是,則c″一定是d′n所對(duì)應(yīng)的代碼,若不是,則在有序集合D′中尋找i,使得d′i≤w′<di+1,成立,即可確定c″一定是d′i所對(duì)應(yīng)的代碼;
(3)判定了c″是有序集合D′中一個(gè)確定的d′所對(duì)應(yīng)的代碼后,將有序表中的對(duì)應(yīng)消息單元以適當(dāng)方式輸出(或存貯),然后將待譯碼流W中構(gòu)成被譯出碼的前l(fā)′(有序表中的對(duì)應(yīng)碼長(zhǎng))個(gè)碼元?jiǎng)h去,把剩余碼流看成一個(gè)新的待譯碼流W,轉(zhuǎn)到第一步,繼續(xù)進(jìn)行譯碼,直到整個(gè)碼流被譯完為止。
4、根據(jù)權(quán)利要求1和3所述的譯碼方法,其特征是在譯碼步驟(2)中,利用有序表采用對(duì)分查找插入算法來(lái)識(shí)別待譯碼字。
5、根據(jù)權(quán)利要求1和3所述的譯碼方法,其特征是在譯碼步驟(2)中,利用有序表采用分段等差數(shù)列法來(lái)識(shí)別待譯碼字。
6、根據(jù)權(quán)利要求1和3所述的譯碼方法,其特征是在譯碼步驟(2)中,利用有序表采用按散列地址存貯法來(lái)識(shí)別待譯碼字。
7、根據(jù)權(quán)利要求2所述的譯碼電路,其特征是刪除電路(1)是由移位寄存器(14)和(15),可預(yù)置減法計(jì)數(shù)器(16),減法計(jì)數(shù)器(17)以及控制信號(hào)發(fā)生器(18)組成,待譯碼流分組并行進(jìn)入(14)和(15),(14)的內(nèi)容作為結(jié)果并行輸出;被譯出碼的對(duì)應(yīng)碼長(zhǎng)并行進(jìn)入(16),在(18)的控制下,(15)的內(nèi)容串行移入(14),同時(shí)使(16)和(17)計(jì)數(shù),(16)的輸出控制(18)產(chǎn)生控制信號(hào),使(14)的內(nèi)容作為結(jié)果并行輸出,(17)的輸出控制(18)產(chǎn)生控制信號(hào),使待譯碼流的下一組碼元并行進(jìn)入(15)。
8、根據(jù)權(quán)利要求2所述的譯碼電路,其特征是刪除電路(1)是由一個(gè)包含(lm+1)個(gè)寄存器的寄存器組(23)和具有加、減法和比較功能的算術(shù)運(yùn)算單元(24)以及控制信號(hào)發(fā)生器(25)組成,待譯碼流分組并行進(jìn)入(23),已被譯出碼的對(duì)應(yīng)碼長(zhǎng)并行送入(24),(24)的一個(gè)輸出送入(23),以選擇(23)中的一個(gè)寄存器內(nèi)容作為并行輸出;(24)的另一個(gè)輸出觸發(fā)(25)產(chǎn)生控制信號(hào),使待譯碼流的下一組碼元并行進(jìn)入(23)。
9、根據(jù)權(quán)利要求2所述的譯碼電路,其特征是碼字識(shí)別電路(2)是由寄存器(27)和(28),分段等差數(shù)列的分段首地址指針存貯器(29),分段公差存貯器(30),除法器(31),加法器(32)以及控制信號(hào)發(fā)生器(33)組成的用分段等差數(shù)列法識(shí)別碼字的電路,待譯碼流的前l(fā)m個(gè)碼元分為前后兩部分并行分別進(jìn)入(27)和(28),(27)的內(nèi)容輸出到(29)和(30),(28)的內(nèi)容在(31)除以(30)的輸出,其商在(32)與(29)的輸出相加,其結(jié)果并行輸出。
10、根據(jù)權(quán)利要求2所述的譯碼電路,其特征是碼字識(shí)別電路(2)是由移位寄存器(37)和控制信號(hào)發(fā)生器(38)組成,用散列地址存貯法識(shí)別碼字的電路,待譯碼流的前l(fā)m個(gè)碼元并行進(jìn)入(37),(38)的輸出控制(37)進(jìn)行移位,然后(37)的內(nèi)容作為結(jié)果并行輸出。
全文摘要
本發(fā)明提供一種變長(zhǎng)碼有序譯碼法及其可編程電路,它是在一個(gè)變長(zhǎng)碼體系中構(gòu)造一個(gè)與碼字相關(guān)的有序表,在譯碼過(guò)程中,把碼流中以待譯碼字為首的碼元串看成一個(gè)數(shù),通過(guò)確定其與有序表中有序集合的元素之間的大小順序關(guān)系來(lái)識(shí)別被譯碼。本發(fā)明直接對(duì)整個(gè)碼字進(jìn)行識(shí)別來(lái)譯碼,完全擺脫了逐個(gè)識(shí)別碼元的澤碼方法,從而能大幅度地提高譯碼速度。
文檔編號(hào)H03M7/42GK1053335SQ9010893
公開日1991年7月24日 申請(qǐng)日期1990年11月2日 優(yōu)先權(quán)日1990年11月2日
發(fā)明者李翔 申請(qǐng)人:李翔
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鹤山市| 白河县| 北宁市| 喜德县| 虎林市| 鹿邑县| 儋州市| 仲巴县| 黄平县| 京山县| 多伦县| 牡丹江市| 南丹县| 阜宁县| 海原县| 读书| 句容市| 乐山市| 呼和浩特市| 兖州市| 金沙县| 资阳市| 衢州市| 肇源县| 湛江市| 商都县| 万宁市| 宁陕县| 广昌县| 邮箱| 广宁县| 甘德县| 武夷山市| 土默特右旗| 怀柔区| 玉田县| 石狮市| 繁峙县| 潞城市| 黑水县| 左云县|