两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

解碼設(shè)備的制作方法

文檔序號:2818891閱讀:507來源:國知局
專利名稱:解碼設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及解碼數(shù)據(jù)流的解碼設(shè)備,特別涉及解碼包括霍夫曼編碼數(shù)據(jù)的數(shù)據(jù)流的解碼設(shè)備。
近來,解碼霍夫曼編碼的比特流(數(shù)據(jù)流)的解碼設(shè)備已被廣泛地利用。在這種解碼設(shè)備中使用的解碼方法一般分類成兩種類型。一種類型的解碼方法把重點放在節(jié)省存儲器上。另一種類型的解碼方法把重點放在提高解碼速度上。在說明這種解碼方法之前,首先說明編碼方法。
圖11表示在霍夫曼編碼中使用的霍夫曼編碼手冊1100的實例。該霍夫曼編碼手冊1100的左列1101表示待作霍夫曼編碼的輸入值。在圖11所示的實例中,輸入值的范圍從0至63?;舴蚵幋a手冊1100的中間列1102表示與各個輸入值對應(yīng)的霍夫曼碼?;舴蚵幋a手冊1100的右列1103表示與各個霍夫曼碼對應(yīng)的碼長。在霍夫曼編碼中,輸入值出現(xiàn)的頻率越高,分配給輸入值的霍夫曼碼就越短。相反地,輸入值出現(xiàn)的頻率越低,分配給輸入值的霍夫曼碼就越長。
例如,霍夫曼編碼手冊1100的第一行1104表示對輸入值0分配的霍夫曼碼(01110),霍夫曼碼的碼長為5比特。編碼設(shè)備接收和編碼輸入值0,并輸出產(chǎn)生的霍夫曼碼(01110)。編碼設(shè)備不需要與霍夫曼碼一起輸出表示霍夫曼碼碼長的信息。這是因為具有從霍夫曼碼(01110)的最左邊數(shù)字開始但短于霍夫曼碼(01110)的相同數(shù)字序列的任何碼都不能包括在霍夫曼編碼手冊1100中。有5位或更多位碼長的所有其它霍夫曼碼不包括作為以其它霍夫曼碼的最左邊數(shù)字開始的數(shù)字序列的霍夫曼碼(01110)。因此,當(dāng)解碼設(shè)備解碼霍夫曼碼(01110)時,解碼設(shè)備不需要特別表示霍夫曼碼(01110)的碼長為5比特的信息。因此,霍夫曼碼(01110)本身可以包括表示與輸入值(0)對應(yīng)的霍夫曼碼的信息和表示霍夫曼碼的碼長(5)的信息。
由于此原因,可以按鄰近方式產(chǎn)生霍夫曼碼,以產(chǎn)生從編碼設(shè)備輸出的比特流。
下面,說明把重點放在節(jié)省存儲器的普通解碼方法。圖12表示用于解碼用圖11所示的霍夫曼編碼手冊1100編碼的數(shù)據(jù)的解碼表1200。按從最短的霍夫曼碼的碼長開始的順序,重新排列霍夫曼編碼手冊1100的行,由此獲得解碼表1200。解碼表1200的左列1102A表示霍夫曼碼。中間列1103A表示霍夫曼碼的碼長。右列1201表示解碼霍夫曼碼的結(jié)果。由圖12可知,在第一行1202上有三比特(000)碼長的霍夫曼碼是最短的霍夫曼碼。解碼霍夫曼碼(000)的結(jié)果是“9”,該結(jié)果對應(yīng)于圖11所示的霍夫曼編碼手冊1100的第十行1105(輸入值“9”)。
由圖12還可看出,在最低行1203上具有10比特的霍夫曼碼(1111111111)是最長的霍夫曼碼之一。解碼霍夫曼碼(1111111111)的結(jié)果是“63”,該結(jié)果對應(yīng)于圖11所示的霍夫曼編碼手冊1100的第64行1106(輸入值“63”)。
下面說明在解碼設(shè)備中使用解碼表1200的霍夫曼解碼。
解碼表1200的第一行1202(最上邊的行)表示碼長為三?;谠摯a長,讀取比特流的前三比特。解碼設(shè)備確定比特流數(shù)據(jù)的前三比特是否與第一行1202上的霍夫曼碼(000)匹配。
如果匹配成功(即發(fā)現(xiàn)匹配),那么解碼設(shè)備輸出“9”作為解碼的結(jié)果,并將比特流中的讀取位置位移三比特。因此,完成一個霍夫曼解碼操作。
如果匹配不成功,那么考慮解碼表1200的下一行1204。第二行1204的碼長為四。因此,讀取比特流中的跟著已讀取的三比特后面的附加的一比特(1=4-3)。
然后,確定讀取的四比特數(shù)據(jù)是否與第二行1204上的霍夫曼碼(0010)匹配。
如果匹配成功,那么輸出“17”作為解碼的結(jié)果。比特流的讀取位置位移一比特。從而完成一個霍夫曼解碼操作。
如果匹配不成功,那么查看解碼表1200的下一行1205。第三行1205的碼長為4。因此,不讀取比特流的新比特。然后,確定當(dāng)前讀取的四比特數(shù)據(jù)是否與第三行1205上的霍夫曼碼(0011)匹配。
以這種方式,重復(fù)匹配步驟,直至順序讀取的比特流數(shù)據(jù)與解碼表1200中包括的任何霍夫曼碼匹配。當(dāng)解碼設(shè)備發(fā)現(xiàn)有匹配數(shù)據(jù)的霍夫曼碼的行時,解碼設(shè)備輸出該行右列上的值,作為解碼操作的結(jié)果。
在上述解碼方法中使用的解碼表在規(guī)模上很小。這是因為這種解碼表僅需要與輸入值(0至63)的數(shù)相同的行數(shù)。但是,在該解碼方法中,在匹配步驟中要多次存取解碼表,直至發(fā)現(xiàn)匹配的霍夫曼碼。這需要很長的處理時間。
下面,說明把重點放在提高解碼速度上的普通解碼方法。
圖13表示用于解碼利用圖11所示的霍夫曼編碼手冊1100編碼的數(shù)據(jù)的解碼表1300。圖13表示的解碼方法實例使用具有十比特寬度的地址。地址的比特寬度(10比特)對應(yīng)于圖11所示的霍夫曼編碼手冊1100中霍夫曼碼的最長碼長(10比特)。
解碼設(shè)備利用10比特數(shù)據(jù)作為地址讀取比特流的10比特數(shù)據(jù)和存取解碼表1300。在解碼表1300中,包括地址(0000000000)至(0001111111)的區(qū)域1301表示碼長為三和解碼操作的結(jié)果是“9”。前三比特為霍夫曼碼(000)的10比特數(shù)據(jù)必定在地址(0000000000)至(0001111111)中?;舴蚵a(000)對應(yīng)于值“9”。在這種情況下,解碼設(shè)備輸出“9”,作為基于圖13所示的解碼表1300的對應(yīng)于前三比特(000)的解碼結(jié)果。該區(qū)域1301表示碼長為三的區(qū)域。因此,解碼設(shè)備將讀取位置位移三比特,并從該讀取位置讀取10比特數(shù)據(jù)。利用10比特數(shù)據(jù)作為一次存取,存取圖13所示的解碼表1300。因此,完成下一個霍夫曼解碼操作。
上述解碼方法可以高速度地實現(xiàn)。通過對解碼表的一次存取便可完成各霍夫曼解碼操作。但是,與把重點放在節(jié)省存儲器上的解碼方法相比,把重點放在提高解碼速度上的解碼方法需要大規(guī)模的解碼表。
如上所述,把重點放在節(jié)省存儲器上的解碼方法需要很長的處理時間。而注意力集中在提高解碼速度上的解碼方法需要大的解碼表,從而不能實現(xiàn)存儲器的節(jié)省。
例如,與MPEG2-AAC標(biāo)準(zhǔn)一致的最近音頻解碼設(shè)備需要解碼采用十二個不同霍夫曼碼手冊編碼的霍夫曼碼。在這種情況下,如果所有霍夫曼編碼手冊都設(shè)有圖13所示的用于高速解碼的解碼表,那么就需要大量的存儲器。另一方面,MPEG2-AAC標(biāo)準(zhǔn)需要多個信道和具有高采樣率的高保真音頻。使用圖12所示的節(jié)省存儲器的解碼表需要大量的處理操作。
按照本發(fā)明的一個方案,解碼數(shù)據(jù)流的解碼設(shè)備包括包括第一區(qū)域和第二區(qū)域的解碼表;第一解碼器;和第二解碼器。第一區(qū)域限定具有預(yù)定比特數(shù)的第一數(shù)據(jù)和解碼具有小于或等于該預(yù)定比特數(shù)的第一數(shù)據(jù)一部分的結(jié)果之間的關(guān)系。第二區(qū)域限定連接第一數(shù)據(jù)與帶有附加比特的第二數(shù)據(jù)而獲得的連接數(shù)據(jù)和解碼該連接數(shù)據(jù)的結(jié)果之間的關(guān)系。第一解碼器從數(shù)據(jù)流中讀取第一數(shù)據(jù);根據(jù)第一區(qū)域解碼第一數(shù)據(jù)的該部分;確定第一數(shù)據(jù)該部分的解碼是否完成;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼完成時,輸出第一數(shù)據(jù)該部分的解碼結(jié)果。當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,第二解碼器從數(shù)據(jù)流中讀取第二數(shù)據(jù);將第一數(shù)據(jù)與第二數(shù)據(jù)連接,產(chǎn)生連接數(shù)據(jù);根據(jù)第二區(qū)域解碼連接數(shù)據(jù);并輸出該連接數(shù)據(jù)的解碼結(jié)果。
在本發(fā)明的一個實施例中,解碼設(shè)備還包括多個解碼表;和選擇多個解碼表中的一個解碼表的選擇器。根據(jù)對多個解碼表中的每一個選擇的頻率,預(yù)先確定作為與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù)的預(yù)定數(shù)。
在本發(fā)明的一個實施例中,按這樣的方式確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù),即第一解碼器完成第一數(shù)據(jù)該部分解碼的概率等于或大于預(yù)定的概率。
在本發(fā)明的一個實施例中,第一區(qū)域包括第一字段和第二字段,第一字段用于表示第一數(shù)據(jù)該部分的碼長或表示未完成對第一數(shù)據(jù)該部分解碼的碼;而第二字段用于表示第一數(shù)據(jù)該部分的解碼結(jié)果。利用第一數(shù)據(jù)作為地址存取第一區(qū)域。第二區(qū)域包括表示連接數(shù)據(jù)的第三字段;表示連接數(shù)據(jù)碼長的第四字段;和表示解碼連接數(shù)據(jù)的結(jié)果的第五字段。
按照本發(fā)明的另一方面,解碼數(shù)據(jù)流的解碼設(shè)備包括包括第一區(qū)域和第二區(qū)域的解碼表;第一解碼器;和第二解碼器。第一區(qū)域限定具有預(yù)定比特數(shù)的第一數(shù)據(jù)和解碼具有小于或等于該預(yù)定比特數(shù)的第一數(shù)據(jù)一部分的結(jié)果之間的關(guān)系。第二區(qū)域限定具有附加比特的第二數(shù)據(jù)和解碼連接數(shù)據(jù)的結(jié)果之間的關(guān)系,而連接數(shù)據(jù)通過第一數(shù)據(jù)與第二數(shù)據(jù)的連接來獲得。第一解碼器從數(shù)據(jù)流中讀取第一數(shù)據(jù);根據(jù)第一區(qū)域解碼第一數(shù)據(jù)的該部分;確定第一數(shù)據(jù)該部分的解碼是否完成;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼完成時,輸出解碼第一數(shù)據(jù)部分的結(jié)果;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,規(guī)定第二區(qū)域的地址。當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,第二解碼器從數(shù)據(jù)流中讀取第二數(shù)據(jù);根據(jù)第一解碼器和第二數(shù)據(jù)規(guī)定的地址輸出連接數(shù)據(jù)的解碼結(jié)果。
在本發(fā)明的一個實施例中,解碼設(shè)備還包括多個解碼表;和選擇多個解碼表中的一個解碼表的選擇器。根據(jù)對多個解碼表中的每一個選擇的頻率,預(yù)先確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù)。
在本發(fā)明的一個實施例中,按這樣的方式確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù),即第一解碼器完成第一數(shù)據(jù)該部分解碼的概率等于或大于預(yù)定的概率。
在本發(fā)明的一個實施例中,第一區(qū)域包括第一字段和第二字段,第一字段表示第一數(shù)據(jù)該部分的碼長或表示未完成對第一數(shù)據(jù)該部分解碼的碼;而第二字段表示第一數(shù)據(jù)該部分的解碼結(jié)果或規(guī)定第二區(qū)域地址的指示器。利用第一數(shù)據(jù)作為地址存取第一區(qū)域。第二區(qū)域包括表示第二數(shù)據(jù)的第三字段;表示第二數(shù)據(jù)碼長的第四字段;和表示解碼連接數(shù)據(jù)的結(jié)果的第五字段。
在本發(fā)明的一個實施例中,第一解碼器規(guī)定與第二數(shù)據(jù)對應(yīng)的地址,該地址在與第一數(shù)據(jù)有關(guān)的多個地址中具有最短長度。
在本發(fā)明的一個實施例中,數(shù)據(jù)流包括多個霍夫曼碼。第一解碼器和第二解碼器解碼多個霍夫曼碼。
以下說明本發(fā)明的作用。
按照本發(fā)明的解碼設(shè)備,根據(jù)解碼表的第一區(qū)域解碼包含于具有預(yù)定比特數(shù)的第一數(shù)據(jù)中的第一數(shù)據(jù)的該部分。解碼表的第一區(qū)域表示第一數(shù)據(jù)和第一數(shù)據(jù)該部分的解碼結(jié)果之間的關(guān)系。由于此原因,通過對表的一次存取,可解碼具有短于或等于預(yù)定數(shù)的第一數(shù)據(jù)的相對短的該部分。因此,可以高速地解碼相對短的碼。
另一方面,當(dāng)?shù)谝粩?shù)據(jù)未被解碼時,還讀取第二數(shù)據(jù)。第二數(shù)據(jù)與第一數(shù)據(jù)連接,以產(chǎn)生具有比特大于預(yù)定數(shù)的連接數(shù)據(jù)。根據(jù)解碼表的第二區(qū)域,解碼該連接數(shù)據(jù)。該第二區(qū)域表示連接數(shù)據(jù)和連接數(shù)據(jù)的解碼結(jié)果之間的關(guān)系,從而使得用于解碼具有大于預(yù)定數(shù)的比特的長碼的解碼表的規(guī)模最小。
如上所述,適當(dāng)選擇預(yù)定數(shù)時,按高速解碼短碼,用于解碼長碼的解碼表的規(guī)模最小化。解碼設(shè)備可以高速地進(jìn)行解碼,同時節(jié)省存儲器。特別地,當(dāng)本發(fā)明的解碼設(shè)備用于解碼已經(jīng)霍夫曼編碼的比特流時,由于短的霍夫曼碼有高出現(xiàn)頻率而長霍夫曼碼有低出現(xiàn)頻率,所以解碼設(shè)備可以高速地進(jìn)行解碼,同時節(jié)省存儲器。
因此,這里說明的本發(fā)明可以使解碼設(shè)備具備這樣的優(yōu)點,該解碼設(shè)備既可實現(xiàn)存儲器節(jié)省,也可實現(xiàn)高速處理,該解碼設(shè)備例如還可以用于與MPEG2-AAC編碼格式一致的音頻解碼設(shè)備。
對于本領(lǐng)域技術(shù)人員來說,通過閱讀和理解參照附圖的以下詳細(xì)說明,本發(fā)明的這些和其它優(yōu)點將變得明確。
圖1是表示本發(fā)明實例1的解碼設(shè)備結(jié)構(gòu)的圖。
圖2是表示輸入至本發(fā)明解碼設(shè)備的比特流的實例圖。
圖3是表示在MPEG2-AAC編碼格式中頻帶和頻譜數(shù)之間相應(yīng)關(guān)系的圖。
圖4是表示本發(fā)明實例1的第一解碼表的圖。
圖5是表示相對于第二霍夫曼編碼手冊的普通解碼表的圖。
圖6是表示本發(fā)明實例1的第二解碼表的圖。
圖7A是表示本發(fā)明解碼設(shè)備的第一霍夫曼解碼器操作的流程圖。
圖7B是表示本發(fā)明解碼設(shè)備的第二霍夫曼解碼器操作的流程圖。
圖8是表示本發(fā)明實例2的解碼設(shè)備結(jié)構(gòu)的圖。
圖9是表示本發(fā)明實例2的第一解碼表的圖。
圖10是表示本發(fā)明實例2的第二解碼表的圖。
圖11是表示在霍夫曼編碼中使用的第一霍夫曼編碼手冊的圖。
圖12是表示把重點放在節(jié)省存儲器上的普通解碼系統(tǒng)中使用的解碼表的圖。
圖13是表示把重點放在提高速度上的普通解碼系統(tǒng)中使用的解碼表的圖。
以下,參照


本發(fā)明的實例。
(實例1)在實例1中,說明解碼比特流(數(shù)據(jù)流)的解碼設(shè)備,在該比特流中,利用多個霍夫曼編碼手冊進(jìn)行霍夫曼編碼。實例1的解碼設(shè)備可以用作與MPEG2-AAC編碼格式一致的音頻解碼設(shè)備。
在說明實例1的解碼設(shè)備之前,先說明待輸入實例1的解碼設(shè)備的比特流。
圖2表示待輸入實例1的解碼設(shè)備的比特流10的結(jié)構(gòu)。如圖2所示,比特流10包括索引(index)部分12和跟隨索引部分12的數(shù)據(jù)部分14。索引部分12識別在編碼輸入值中已由編碼設(shè)備使用的霍夫曼編碼手冊。數(shù)據(jù)部分14包括多個編碼的輸入值(即霍夫曼碼)。
索引部分12包括多個索引數(shù)12a。每個索引數(shù)12a對應(yīng)于在編碼輸入值中已經(jīng)使用的一個霍夫曼編碼手冊。例如,在MPEG2-AAC編碼格式中,利用編號為第一至第十二的十二個不同的霍夫曼編碼手冊編碼輸入值。在這種情況下,索引數(shù)12a有與十二個霍夫曼編碼手冊對應(yīng)的從1至12范圍的值。
數(shù)據(jù)部分14包括多個數(shù)據(jù)部分14a。各數(shù)據(jù)部分14a包括利用由對應(yīng)的索引數(shù)12a(HCB1、HCB3、HCB12、…、HCB6)識別的霍夫曼編碼手冊編碼的至少一個輸入值(即霍夫曼碼)。
例如,在MPEG2-AAC編碼格式中,在比特流10中,索引部分12包括49個索引數(shù)12a,數(shù)據(jù)部分14包括49個數(shù)據(jù)部分14a。例如,各數(shù)據(jù)部分14a包括與四個輸入值對應(yīng)的四個霍夫曼碼。在該數(shù)據(jù)部分14a中包括的四個霍夫曼碼已經(jīng)利用相同的霍夫曼編碼手冊編碼。
由于在MPEG2-AAC編碼格式中將要傳送的數(shù)據(jù)被分成49個頻帶和使用對例如包含于各頻帶中的四個頻譜(四個輸入值)最佳的霍夫曼編碼手冊,所以上述比特流有這類結(jié)構(gòu)。再有,在MPEG2-AAC編碼格式中,比特流10包括與總共1024個頻譜(輸入值)對應(yīng)的霍夫曼碼。
圖3表示當(dāng)1024個頻譜包含于MPEG2-AAC編碼格式的49個頻帶中的情況下頻帶和頻譜數(shù)之間的對應(yīng)表300。在圖3中,左列301表示49個頻帶。右列302表示在左列301上表示的頻帶中包括的頻譜數(shù)。
下面說明用于解碼具有上述結(jié)構(gòu)的比特流10的解碼設(shè)備。
圖1表示本發(fā)明實例1的解碼設(shè)備1000的結(jié)構(gòu)。解碼設(shè)備1000包括用于檢測比特流10中的索引數(shù)12a的索引檢測設(shè)備103;第一解碼表100-1至第m解碼表100-m(其中,m是任意整數(shù),表示在解碼設(shè)備1000中包括的表的數(shù)量);和表選擇設(shè)備104,用于選擇第一解碼表100-1至第m解碼表100-m中的一個表。
第一解碼表100-1至第m解碼表100-m對應(yīng)于在編碼中使用的各個霍夫曼編碼手冊。例如,在MPEG2-AAC編碼格式中,使用十二個霍夫曼編碼手冊,以致解碼設(shè)備1000可以包括編號為第一至第十二的相應(yīng)的十二個解碼表。
解碼表100-1至100-m的各表包括第一區(qū)域R1和第二區(qū)域R2。用具有預(yù)定比特寬度的地址指示第一區(qū)域R1。用具有超過該預(yù)定比特寬度的比特寬度的地址指示第二區(qū)域R2。下面詳細(xì)說明解碼表。
解碼設(shè)備1000還包括第一霍夫曼解碼器105、第二霍夫曼解碼器106和輸出選擇設(shè)備107。第一霍夫曼解碼器105解碼具有比特數(shù)小于或等于預(yù)定數(shù)Nj(其中,Nj是由索引數(shù)j限定的任意整數(shù),而該索引數(shù)j為滿足1≤j≤m的任意整數(shù))的短的霍夫曼碼。第二霍夫曼解碼器106解碼具有比特數(shù)超過預(yù)定數(shù)Nj的長的霍夫曼碼。輸出選擇設(shè)備107選擇和輸出由第一霍夫曼解碼器105和第二霍夫曼解碼器106解碼的結(jié)果。
第一霍夫曼解碼器105根據(jù)從索引檢測設(shè)備103輸出的索引數(shù)j確定預(yù)定數(shù)Nj,從比特流10中讀取具有比特預(yù)定數(shù)Nj的數(shù)據(jù)(以下稱為預(yù)定比特數(shù)的數(shù)據(jù)x)。當(dāng)預(yù)定比特數(shù)的數(shù)據(jù)x包括具有比特數(shù)小于或等于預(yù)定數(shù)Nj的相對短的霍夫曼碼時,第一霍夫曼解碼器105利用上述解碼表的第一區(qū)域R1解碼短的霍夫曼碼。
另一方面,當(dāng)?shù)谝换舴蚵獯a器105未完成霍夫曼解碼時,第二霍夫曼解碼器106讀取比特流10中的在預(yù)定比特數(shù)的數(shù)據(jù)x之后的附加數(shù)據(jù)y。第二霍夫曼解碼器106將附加數(shù)據(jù)y與預(yù)定比特數(shù)的數(shù)據(jù)x連接,以獲得連接的數(shù)據(jù)x|y,利用解碼表的第二區(qū)域R2解碼連接數(shù)據(jù)x|y。
上述解碼設(shè)備解碼利用多個霍夫曼編碼手冊編碼的比特流。盡管當(dāng)比特流已經(jīng)利用單一的霍夫曼編碼手冊編碼時,但正如將要認(rèn)識到的那樣,解碼設(shè)備1000的索引檢測設(shè)備103和表選擇設(shè)備104不是必需的。此外,在這種情況下,正如將要認(rèn)識到的那樣,僅需要與單一霍夫曼編碼手冊對應(yīng)的一個解碼表。
如上所述,利用不同的解碼處理,解碼設(shè)備1000解碼相對短的霍夫曼碼(即具有出現(xiàn)頻率高的霍夫曼碼)和相對長的霍夫曼碼(即具有出現(xiàn)頻率低的霍夫曼碼)。下面詳細(xì)說明在實例1的解碼設(shè)備1000中使用的解碼表。
圖4表示第一解碼表100-1。第一解碼表100-1用于解碼已用霍夫曼編碼手冊編碼的比特流,該手冊由索引數(shù)j(=1)標(biāo)識。在實例1中,為了說明解碼設(shè)備1000,圖11所示的霍夫曼編碼手冊1100被用作第一霍夫曼編碼手冊。
如圖4所示,第一解碼表100-1包括第一區(qū)域R1和第二區(qū)域R2。第一區(qū)域R1包括具有從第0地址(000000)至第63(26-1)地址(111111)范圍的六比特寬度的地址。第二區(qū)域R2包括具有從第64地址(1000000)至第104地址(1101000)范圍的七比特寬度的地址。
第一區(qū)域R1的地址比特寬度等于由第一霍夫曼解碼器105從比特流10中讀取的預(yù)定比特數(shù)數(shù)據(jù)x(即預(yù)定數(shù)Nj)的比特數(shù)。在實例1中,第一區(qū)域R1中地址的比特寬度為六比特。當(dāng)?shù)谝换舴蚵獯a器105檢測索引數(shù)1時,解碼器105確定預(yù)定數(shù)Nj(j=1)為六。因此,從比特流10中讀取六比特數(shù)據(jù)。
在圖4所示的第一解碼表100-1中,第一區(qū)域R1和第二區(qū)域R2在左列401和402(地址列)上有地址,在右列403和404(數(shù)據(jù)列)上有數(shù)據(jù)。數(shù)據(jù)列403和404存儲與各地址對應(yīng)的數(shù)據(jù)。
第一區(qū)域R1的數(shù)據(jù)列403包括第一字段405(數(shù)據(jù)列403的左列)和第二字段406(數(shù)據(jù)列403的右列)。第一字段405存儲將要解碼的霍夫曼碼的碼長。具體地說,當(dāng)預(yù)定比特數(shù)的數(shù)據(jù)x有六比特時,第一區(qū)域R1的地址x中的第一字段405存儲L比特的長度,該長度在六比特數(shù)據(jù)x的最高有效位(MSB)側(cè),對應(yīng)于第一霍夫曼編碼手冊(圖11中示出)中包括的霍夫曼碼,其中,L是滿足1≤L≤6的任意整數(shù),表示碼長。第二字段406存儲解碼霍夫曼碼的結(jié)果。
例如,第一字段405在地址(000000)至地址(000111)中存儲相同的值“3”。六比特數(shù)據(jù)(000000)至(000111)是六比特的所有可能數(shù)據(jù),該數(shù)據(jù)在其MSB側(cè)包括霍夫曼碼(000)。第二字段406在地址(000000)至地址(000111)中存儲相同的值“9”,其中,“9”是解碼霍夫曼碼(000)的結(jié)果。包括地址(000000)至地址(000111)的區(qū)域407對應(yīng)于圖12所示的普通解碼表1200(對應(yīng)于第一霍夫曼編碼手冊)的第一行1202(即對應(yīng)于霍夫曼碼(000)的行)。
此外,例如,第一字段405在地址(110011)中存儲值“6”。第二字段406在地址(110011)中存儲值“42”。六比特數(shù)據(jù)(110011)僅是六比特的可能數(shù)據(jù),該數(shù)據(jù)在其MSB側(cè)(即整個數(shù)據(jù)(110011))包括霍夫曼碼(110011)。解碼霍夫曼碼(110011)的結(jié)果是“42”。因此,地址(110011)408對應(yīng)于圖12所示的解碼表1200的第23行1206(即對應(yīng)于霍夫曼碼(110011)的行)。
此外,例如,第一字段405在地址(110100)409中存儲超過“6”的值“15”。這表示六比特數(shù)據(jù)(110100)未完成霍夫曼碼。在實例1中,存儲超過預(yù)定數(shù)N1(=6)的整數(shù)“15”。只要數(shù)據(jù)可以表示六比特數(shù)據(jù)未完成霍夫曼碼,那么可以使用任何數(shù)據(jù)。例如,除了數(shù)字外,可以使用負(fù)整數(shù)或符號。此外,第二字段406存儲未完成的符號(--)。這是因為六比特數(shù)據(jù)(110100)未完成霍夫曼碼和沒有解碼操作的結(jié)果。該未完成符號可以是可與解碼的標(biāo)準(zhǔn)結(jié)果區(qū)別的任何數(shù)據(jù)。地址(110100)對應(yīng)于圖12所示的解碼表1200的第24行1207和第25行1208(即對應(yīng)于霍夫曼碼(1101000)和(1101001)的行)。
另一方面,解碼表100-1的第二區(qū)域R2包括具有七比特寬度的地址。第二區(qū)域R2的數(shù)據(jù)列404包括第三字段410、第四字段411和第五字段412。在圖4中,數(shù)據(jù)列404的左列是第三字段410;中間列是第四字段411;而右列是第五字段412。
第二區(qū)域R2的第三字段410存儲碼長大于六的包含于第一霍夫曼編碼手冊1100(圖11所示)中的霍夫曼碼。第四字段411存儲霍夫曼碼的碼長。第五字段412存儲解碼霍夫曼碼的結(jié)果。這些存儲數(shù)據(jù)霍夫曼碼的長度增加的順序被存儲在第64地址413(地址(1000000))至第104地址414(地址(1101000)中。
在解碼表100-1的第二區(qū)域R2的第一行的第64地址413(地址(1000000))中的第三字段410、第四字段411和第五字段412例如分別存儲霍夫曼碼(1101000)、碼長“7”和解碼操作的結(jié)果“41”。這些存儲數(shù)據(jù)對應(yīng)于圖12所示的解碼表的第24行1207(即對應(yīng)于霍夫曼碼(1101000)的行)的內(nèi)容。隨后,第65地址415(地址(1000001))至第104地址414(地址(1101000))存儲圖12所示的解碼表的第25行1208(即對應(yīng)于霍夫曼碼(1101001))至第64行1203(即對應(yīng)于霍夫曼碼(1111111111))的各個內(nèi)容。
下面說明第二解碼表100-2。第二解碼表100-2有與上述第一解碼表100-1相似的結(jié)構(gòu)。
圖6表示第二解碼表100-2。解碼表100-2用于解碼已用與索引數(shù)2對應(yīng)的第二霍夫曼編碼手冊編碼的霍夫曼碼。
圖5表示按增加霍夫曼碼長度的順序重新排列第二霍夫曼編碼手冊(未示出)的行所獲得的普通解碼表500。解碼表500的左列501表示霍夫曼碼。中間列502表示霍夫曼碼的碼長。右列503表示解碼霍夫曼碼的結(jié)果。
由圖6可看出,第二解碼表100-2包括第一區(qū)域R1和第二區(qū)域R2。第一區(qū)域R1包括具有第0地址601(0000000)至第127(=27-1)地址602(1111111)范圍的七比特寬度的地址。第二區(qū)域R2包括具有第128地址603(10000000)至第178地址619(10110010)范圍的八比特寬度的地址。
第一區(qū)域R1的地址的比特寬度等于數(shù)據(jù)的比特數(shù)(即預(yù)定數(shù)N2),當(dāng)檢測的索引數(shù)j為2時,該數(shù)據(jù)由第一霍夫曼解碼器105從比特流中被讀取。在實例1的第二解碼表100-2中,第一區(qū)域R1中地址的比特寬度為七比特。
與第一解碼表100-1類似,在第二解碼表100-2中,第一區(qū)域R1的數(shù)據(jù)列606包括第一字段607和第二字段608。第二區(qū)域R2的數(shù)據(jù)列610包括第三字段611、第四字段612和第五字段613。
假設(shè)x’是具有七比特的數(shù)據(jù),第一區(qū)域R1的地址x’的第一字段607存儲L比特長度,該長度的比特在七比特數(shù)據(jù)(地址)x’的MSB側(cè),對應(yīng)于包含于第二霍夫曼編碼手冊中的霍夫曼碼(其中,L是滿足1≤L≤7的任意整數(shù),表示碼長)。第二字段608存儲解碼霍夫曼碼的結(jié)果。
例如,第一字段607在地址601(0000000)至地址614(0111111)中存儲相同的值“1”。第二字段608在地址601(0000000)至地址614(0111111)中存儲相同的值“0”。七比特數(shù)據(jù)(0000000)至(0111111)是七比特的所有可能的數(shù)據(jù),該數(shù)據(jù)包括在其MSB側(cè)的霍夫曼碼(0),“0”是解碼霍夫曼碼(0)的結(jié)果。地址601(0000000)至地址614(0111111)對應(yīng)于圖5所示的解碼表500中的第一行504(即對應(yīng)于霍夫曼碼(0)的行)。
此外,例如第一字段607在地址615(1110100)存儲值“7”。第二字段608在地址615(1110100)存儲值“3”。七比特數(shù)據(jù)(1110100)的最有效的七比特(即整個數(shù)據(jù)(1110100))完成霍夫曼碼(1110100)。解碼該霍夫曼碼(1110100)的結(jié)果是“3”。因此,地址615(1110100)對應(yīng)于圖5所示的解碼表500的第13行505(即對應(yīng)于霍夫曼碼(1110100)的行)。
此外,例如,第一字段607在地址616(1110101)存儲超過“7”的值“15”。這表示七比特數(shù)據(jù)(1110101)不能完成霍夫曼碼。與第一解碼表100-1類似,除了數(shù)字外,可以使用負(fù)整數(shù)或符號作為這樣的值。此外,第二字段608存儲未完成符號(一)。這是因為沒有解碼七比特數(shù)據(jù)(1110101)的結(jié)果。與第一解碼表100-1類似,該未完成符號可以是與解碼的標(biāo)準(zhǔn)結(jié)果區(qū)別的任何數(shù)據(jù)。地址616(110101)對應(yīng)于圖5所示的解碼表500的第14行506和第15行507(即對應(yīng)于霍夫曼碼(11101010)和(11101011)的行)。
在圖6所示的解碼表100-2中,第二區(qū)域R2的第三字段611(數(shù)據(jù)列610的左列)存儲碼長大于七的包含于第二霍夫曼編碼手冊中的霍夫曼碼。第四字段612(數(shù)據(jù)列610的中間列)存儲霍夫曼碼的碼長。第五字段613(數(shù)據(jù)列610的右列)存儲解碼霍夫曼碼的結(jié)果。這些存儲的數(shù)據(jù)以霍夫曼碼長度增加的順序被存儲在第128地址603(地址(10000000))至第178地址619(地址(10110010)中。
在第二解碼表100-2的第二區(qū)域R2的第一行的第128地址(地址603(10000000))的第三字段611、第四字段612和第五字段613例如分別存儲霍夫曼碼(11101010)、碼長“8”和解碼操作的結(jié)果“19”。這些存儲數(shù)據(jù)對應(yīng)于圖5所示的解碼表500的第14行(即對應(yīng)于霍夫曼碼(11101010)的行)的內(nèi)容。隨后,在第129地址(地址604(10000001))至第178地址619(地址(10110010))存儲圖5所示的解碼表500的第15行(即對應(yīng)于霍夫曼碼(11101011))至第64行(即對應(yīng)于霍夫曼碼(111111111111))的各自內(nèi)容。
實例1的解碼設(shè)備1000還有取決于用于編碼的霍夫曼編碼手冊數(shù)的更多解碼表。與上述解碼表100-1和100-2類似,這些解碼表也可以包括第一區(qū)域R1和第二區(qū)域R2。第一區(qū)域R1的地址寬度可以對各解碼表單獨地限定。解碼表可以不包括第二區(qū)域R2。下面說明如何確定解碼表的地址寬度。
以下,說明利用上述解碼表的實例1的解碼設(shè)備1000的操作。
再參照圖1,已霍夫曼編碼的比特流10被輸入索引檢測設(shè)備103、第一霍夫曼解碼器105和第二霍夫曼解碼器106中。在圖1中,粗線箭頭表示數(shù)據(jù)的流動,而細(xì)線箭頭表示控制信號的流動。
索引檢測設(shè)備103檢測來自比特流10(圖12所示)的索引數(shù)j和將索引數(shù)j輸出給表選擇設(shè)備104(其中,j是滿足1≤j≤m的任意整數(shù);m是表示在解碼設(shè)備1000中包括的解碼表數(shù)的任意整數(shù))。表選擇設(shè)備104基于接收的索引數(shù)j選擇第j解碼表。例如,當(dāng)由索引檢測設(shè)備103檢測的索引數(shù)是“1”時,表選擇設(shè)備104選擇第一解碼表100-1。
索引檢測設(shè)備103還將索引數(shù)j輸出給第一霍夫曼解碼器105。第一霍夫曼解碼器105根據(jù)索引數(shù)j確定表示從比特流10中讀取的數(shù)據(jù)的比特數(shù)的數(shù)Nj(其中,Nj是由j確定的任意整數(shù))。預(yù)定數(shù)Nj的值被確定得等于在由表選擇設(shè)備104選擇的第j解碼表中的第一區(qū)域R1的地址寬度。例如,當(dāng)檢測索引數(shù)j是“1”時,第一霍夫曼解碼器105確定預(yù)定數(shù)N1為“6”。該值等于第一解碼表100-1的第一區(qū)域R1的地址寬度。在實例1中,在第一霍夫曼解碼器105中預(yù)定索引數(shù)j和預(yù)定數(shù)Nj之間的關(guān)系。為此,第一霍夫曼解碼器105根據(jù)接收的索引數(shù)j預(yù)定預(yù)定數(shù)Nj。根據(jù)接收的索引數(shù)j確定預(yù)定數(shù)Nj的方法不限于此。可以在第一霍夫曼解碼器105的外面設(shè)置根據(jù)接收的索引數(shù)j確定預(yù)定數(shù)Nj的另一設(shè)備。
然后,第一霍夫曼解碼器105根據(jù)預(yù)定數(shù)Nj從比特流10中讀取具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)x。接著,利用由表選擇設(shè)備104選擇的第j解碼表的第一區(qū)域R1對讀取的預(yù)定比特數(shù)數(shù)據(jù)x進(jìn)行霍夫曼解碼。具體地說,通過比較讀取的具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)x與第一區(qū)域R1中包括的具有Nj比特寬度的地址,第一霍夫曼解碼器105進(jìn)行解碼。
第一霍夫曼解碼器105解碼具有比特數(shù)小于或等于預(yù)定數(shù)Nj的相對短的霍夫曼碼,該霍夫曼碼可包括在具有Nj比特的預(yù)定比特數(shù)的數(shù)據(jù)x中。這是因為解碼表的第一區(qū)域R1限定預(yù)定比特數(shù)數(shù)據(jù)x和包含于預(yù)定比特數(shù)數(shù)據(jù)x中的解碼霍夫曼碼的結(jié)果之間的關(guān)系。對于包括短碼的數(shù)據(jù)來說,對解碼表的一次存取就足夠了。因此,可高速進(jìn)行這種短霍夫曼碼的解碼。
如上所述,當(dāng)相對短的霍夫曼碼已被解碼時,第一霍夫曼解碼器105將表示利用預(yù)定比特數(shù)數(shù)據(jù)x完成一次霍夫曼解碼操作的完成信號CPT(即具有值“真”的完成信號)輸出給第二霍夫曼解碼器106和輸出選擇設(shè)備107。第一霍夫曼解碼器105還將解碼的結(jié)果輸出給輸出選擇設(shè)備107。
另一方面,當(dāng)未完成對具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)x的解碼時,第一霍夫曼解碼器105將表示未完成解碼的完成信號CPT(即具有值“偽”的完成信號)輸出給第二霍夫曼解碼器106和輸出選擇設(shè)備107。第一霍夫曼解碼器105還將讀取的具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)x輸出給第二霍夫曼解碼器106。
當(dāng)上述完成信號為“偽”時,第二霍夫曼解碼器106從比特流10中讀取跟隨預(yù)定比特數(shù)數(shù)據(jù)x的附加數(shù)據(jù)y。第二霍夫曼解碼器106將附加數(shù)據(jù)y與從第一霍夫曼解碼器105中接收的預(yù)定比特數(shù)數(shù)據(jù)x進(jìn)行連接,產(chǎn)生連接數(shù)據(jù)x|y(比特連接)。利用第j表的第二區(qū)域R2第二霍夫曼解碼器106對連接數(shù)據(jù)x|y進(jìn)行霍夫曼解碼,并將解碼結(jié)果輸出給輸出選擇設(shè)備107。具體地說,第二霍夫曼解碼器106進(jìn)行匹配測試,在該測試中,對連接數(shù)據(jù)x|y與第二區(qū)域R2的第三字段410中表示的霍夫曼碼進(jìn)行比較。按地址順序,重復(fù)該匹配測試,直至連接數(shù)據(jù)x|y與在第二區(qū)域R2中包括的任何霍夫曼碼匹配。在這種處理中,如果需要,可連續(xù)地讀取附加數(shù)據(jù)。
第二霍夫曼解碼器106解碼具有其比特大于預(yù)定數(shù)Nj的相對長的霍夫曼碼。這是因為解碼表的第二區(qū)域R2限定附加數(shù)據(jù)與預(yù)定比特數(shù)數(shù)據(jù)連接的連接數(shù)據(jù)與解碼連接數(shù)據(jù)的結(jié)果之間的關(guān)系。限定該關(guān)系的第二區(qū)域R2等于或小于與被解碼的霍夫曼碼數(shù)具有相同行數(shù)的地址空間。因此,可以減小解碼表的整體規(guī)模。
當(dāng)完成信號為“真”時,輸出選擇設(shè)備107輸出從第一霍夫曼解碼器105接收的解碼操作的結(jié)果作為輸出信號,當(dāng)完成信號為“偽”時,輸出從第二霍夫曼解碼器106接收的解碼操作的結(jié)果作為輸出信號。因此,完成一次霍夫曼解碼操作。
隨后,霍夫曼解碼設(shè)備1000重復(fù)上述操作,以連續(xù)地解碼比特流10。其中,比特流10的數(shù)據(jù)部分14a(參見圖2)可以包括已經(jīng)利用相同的霍夫曼編碼手冊編碼的多個霍夫曼碼。因此,不必每完成一次霍夫曼編碼操作就檢測索引數(shù)來改變解碼表。在解碼設(shè)備1000中預(yù)定包含于規(guī)定數(shù)據(jù)部分14a中的霍夫曼碼數(shù)。為此,在解碼設(shè)備1000中,利用相同的解碼表解碼規(guī)定數(shù)的霍夫曼碼之后,用表選擇設(shè)備104改變將要采用的解碼表。
用計算機(jī)程序可執(zhí)行第一霍夫曼解碼器105和第二霍夫曼解碼器106的上述功能。下面將具體地說明這種計算機(jī)程序的操作。其中,假設(shè)由索引檢測設(shè)備103檢測的索引數(shù)為“1”,即選擇第一解碼表100-1(圖4所示)。
圖7A是表示利用第一霍夫曼解碼器105進(jìn)行解碼處理(第一解碼處理)的流程圖。
如圖7A所示,在步驟52中,從讀取位置(RP)讀取比特流10中的具有六比特(j=1和Nj=N1=6)的預(yù)定比特數(shù)數(shù)據(jù)x。
在步驟54中,讀取第一解碼表100-1的第一區(qū)域R1的地址x中的數(shù)據(jù)序列Z。其中,在地址x的數(shù)據(jù)序列Z中,Z1是在數(shù)據(jù)序列Z的第一字段405中表示的數(shù)據(jù)(即霍夫曼碼的碼長或表示霍夫曼解碼未完成的數(shù)據(jù)),而Z2是在數(shù)據(jù)序列Z的第二字段406中表示的數(shù)據(jù)(即表示解碼操作結(jié)果的數(shù)據(jù))。
當(dāng)讀取的預(yù)定比特數(shù)的數(shù)據(jù)x是(000001)時,第一霍夫曼解碼器105讀取解碼表100-1的第一區(qū)域R1的地址(000001)中的數(shù)據(jù)。由圖4所示的解碼表100-1可看出,第一字段存儲值“3”(Z1=3)。第二字段存儲值“9”(Z2=9)。因此,讀取的具有六比特的預(yù)定比特數(shù)數(shù)據(jù)x在完成霍夫曼碼的其MSB側(cè)有三比特(000)。獲得解碼操作結(jié)果是“9”的信息。
然后,確定在讀取的六比特數(shù)據(jù)x中包括的具有六比特或更少的霍夫曼碼是否已經(jīng)進(jìn)行霍夫曼解碼(即具有六比特的預(yù)定比特數(shù)的數(shù)據(jù)完成霍夫曼碼)。這可以通過對預(yù)定比特數(shù)數(shù)據(jù)x的比特數(shù)“6”(=N1)與霍夫曼碼的碼長Z1進(jìn)行比較來進(jìn)行(步驟56)。如果Z1≤6,六比特數(shù)據(jù)x完成霍夫曼碼。如果Z1>6,那么六比特數(shù)據(jù)x未完成霍夫曼碼。在上述實例中,由于Z1(3)≤6,所以確定六比特數(shù)據(jù)x完成一次霍夫曼解碼操作。
當(dāng)六比特數(shù)據(jù)x完成一次霍夫曼解碼操作時,第一霍夫曼解碼器105輸出具有值“真”的完成信號CPT(步驟58)。
在這種情況下,存儲于第二字段406中的值Z2還被輸出作為解碼的結(jié)果(步驟60),根據(jù)存儲在第一字段中的數(shù)據(jù)Z1,將比特流10的讀取位置(RP)位移Z1比特(步驟62)。在上述實例中,在步驟60中輸出解碼操作的結(jié)果“9”,在步驟62中將比特流10的讀取位置位移三比特。
因此,完成一次霍夫曼解碼操作。隨后,解碼處理返回步驟52,進(jìn)行下次霍夫曼解碼操作。
另一方面,與上述實例不同,當(dāng)步驟52中讀取的第一個六比特數(shù)據(jù)x是(111000)時,讀取第一解碼表100-1的地址413(111000)(步驟54)。由圖4所示的第一解碼表100-1可看出,第一字段405在地址(111000)中存儲值“15”(Z1=15)。在這種情況下,在步驟56中,由于Z1(=15)大于6,所以確定預(yù)定比特數(shù)的數(shù)據(jù)(111000)未完成霍夫曼碼(即未進(jìn)行預(yù)定比特數(shù)數(shù)據(jù)的霍夫曼解碼)。
在這種情況下,第一霍夫曼解碼器105輸出具有值“偽”的完成信號CPT(步驟64),然后將讀取位置(RP)移動6比特(步驟66),并將預(yù)定比特數(shù)的數(shù)據(jù)x輸出給第二霍夫曼解碼器106(步驟68)。隨后,第二霍夫曼解碼器106進(jìn)行解碼(步驟70)。
第一霍夫曼解碼器105按上述方式進(jìn)行解碼。下面說明當(dāng)利用第一霍夫曼解碼器105未完成對預(yù)定比特數(shù)數(shù)據(jù)x的解碼時,利用第二霍夫曼解碼器106進(jìn)行規(guī)定的解碼操作(步驟70)。
圖7B是表示利用第二霍夫曼解碼器106進(jìn)行解碼(第二解碼處理)的流程圖。由圖7A所示的流程圖的步驟68和66可看出,第二霍夫曼解碼器106接收六比特數(shù)據(jù)(N1=6)。比特流的讀取位置(RP)位移六比特(即已經(jīng)被完全讀取的六比特數(shù)據(jù)x的位置)。
如圖7B所示,在步驟72中,規(guī)定第二區(qū)域R2的被讀取行的參數(shù)被初始化為零。“i=0”表示解碼表100-1的第二區(qū)域R2的第一行413(圖4)。換句話說,在由第二霍夫曼解碼器106進(jìn)行的解碼中,解碼表100-1的第二區(qū)域R2的第一行413總被最先讀取。
因此,圖4所示的解碼表100-1的第二區(qū)域R2第一行413(即對應(yīng)于地址(1000000)的行)中的Z=ROM B
被讀取(步驟74)。在第二區(qū)域R2的地址(1000000)中的數(shù)據(jù)序列Z中,Z3表示在數(shù)據(jù)序列Z的第三字段410中說明的數(shù)據(jù)(即具有碼長大于六比特的霍夫曼碼);Z4表示在數(shù)據(jù)序列Z的第四字段411中說明的數(shù)據(jù)(即霍夫曼碼的碼長);而Z5表示在數(shù)據(jù)序列Z的第五字段412中說明的數(shù)據(jù)(即解碼結(jié)果)。其中,假設(shè)霍夫曼碼(1101000)、碼長“7”和解碼操作的結(jié)果“41”被讀取作為Z3、Z4和Z5。
根據(jù)第四字段411中說明的數(shù)據(jù)Z4,確定比特數(shù)Z4’(步驟76),該比特數(shù)Z4’規(guī)定從比特流10中將要讀取的附加數(shù)據(jù)的比特數(shù)。從碼長Z4中減去已經(jīng)讀取的預(yù)定比特數(shù)數(shù)據(jù)x的比特數(shù)Nj的值獲得Z4’。其中,Z4’=1(=7-6)。
從比特流10中讀取跟隨具有六比特的預(yù)定比特數(shù)數(shù)據(jù)x的具有一比特(Z4’=1)的附加數(shù)據(jù)y(步驟78)。這是因為第二霍夫曼解碼器106已經(jīng)獲得第一霍夫曼解碼器105讀取和輸出的六比特數(shù)據(jù)x。
然后,具有六比特的預(yù)定比特數(shù)的數(shù)據(jù)與具有一比特的附加數(shù)據(jù)y連接,產(chǎn)生具有七比特的連接數(shù)據(jù)x|y(步驟80)。
然后,確定七比特連接數(shù)據(jù)x|y是否與第三字段410中存儲的霍夫曼碼Z3匹配(步驟82)。當(dāng)匹配成功時,第四字段412的值Z5作為解碼結(jié)果輸出(步驟84)。讀取位置RP還位移Z4’=1(步驟86)。因此,第二霍夫曼解碼器106完成一次霍夫曼解碼操作(步驟88)。該處理返回圖7A所示的流程圖的步驟52,進(jìn)行下次霍夫曼解碼操作。
另一方面,在步驟82中,當(dāng)連接數(shù)據(jù)x|y與在上述第三字段410中存儲的霍夫曼碼Z3不匹配時,表示第二區(qū)域R2的將要讀取行的參數(shù)i增加1(步驟90)。
隨后,解碼處理返回步驟74,下一行(i=1)上(即對應(yīng)于圖4所示的第一解碼表100-1的第二區(qū)域R2的地址(1000001)的行)的數(shù)據(jù)Z=ROM B[1]被讀取。隨后,按照與上述步驟類似的步驟,確定連接數(shù)據(jù)x|y是否與霍夫曼碼Z3匹配。
其中,由圖4所示的第一解碼表100-1可看出,在地址(1000000)中第一行的數(shù)據(jù)Z4的值和在地址(1000001)中第二行的數(shù)據(jù)Z4的值分別有相同的值“7”。因此,被讀取的附加數(shù)據(jù)是相同的數(shù)據(jù)。在這種情況下,在圖7B所示的流程圖中,可以省略產(chǎn)生連接數(shù)據(jù)的步驟76至80。至此,確定前面行上的Z4值是否與當(dāng)前讀取行上的Z4值匹配的步驟可以設(shè)置在步驟74和步驟76之間。另外,制備這樣的數(shù)據(jù)指示行,在該行中,數(shù)據(jù)Z4根據(jù)前面行的數(shù)據(jù)Z4的值改變其值;僅在表的指示行參數(shù)i的值等于這種數(shù)據(jù)時,才可以執(zhí)行步驟76至80。
從第二區(qū)域R2的行中讀取數(shù)據(jù)序列Z。如果需要,根據(jù)讀取數(shù)據(jù)序列Z的第四字段411的數(shù)據(jù)Z4,可從比特流10中讀取附加數(shù)據(jù)y。從而產(chǎn)生連接數(shù)據(jù)。從第二區(qū)域R2的第一行413(對應(yīng)于最短的霍夫曼碼)至最下面的行414(對應(yīng)于最長的霍夫曼碼)重復(fù)這些操作,直至連接數(shù)據(jù)x|y在步驟82中與霍夫曼碼Z3匹配。當(dāng)匹配成功時,數(shù)據(jù)序列的第五字段值Z5作為解碼的結(jié)果被輸出(步驟84)。
再參照圖6所示的第二解碼表100-2,說明當(dāng)索引檢測設(shè)備103從比特流10中檢測索引數(shù)為2時的解碼設(shè)備1000的操作。檢測索引數(shù)2時的操作基本上與檢測索引數(shù)1時的上述操作相同。因此,對于與索引數(shù)1檢測相同情況的說明可用于這種情況。
再參照圖1,將比特流10輸入至索引檢測設(shè)備103、第一霍夫曼解碼器105和第二霍夫曼解碼器106。索引檢測設(shè)備103從輸入比特流10中讀取索引數(shù)2。表選擇設(shè)備104根據(jù)索引檢測設(shè)備103的輸出(j=2)選擇第二解碼表100-2。
第一霍夫曼解碼器105從比特流10中讀取與索引數(shù)2對應(yīng)的具有預(yù)定比特數(shù)N2=7的預(yù)定比特數(shù)數(shù)據(jù)x。然后,第一霍夫曼解碼器105利用第二解碼表100-2解碼預(yù)定比特數(shù)的數(shù)據(jù)x。當(dāng)?shù)谝换舴蚵獯a器105完成解碼時,第一霍夫曼解碼器105將表示解碼結(jié)果的解碼信號輸出給輸出選擇設(shè)備107。當(dāng)解碼未完成時,第一霍夫曼解碼器105將讀取的預(yù)定比特數(shù)的數(shù)據(jù)x輸出給第二霍夫曼解碼器106。第一霍夫曼解碼器105還將表示利用預(yù)定比特數(shù)數(shù)據(jù)x是否完成一次霍夫曼解碼操作的完成信號CPT輸出給輸出選擇設(shè)備107。
第一霍夫曼解碼器和第二霍夫曼解碼器的操作按以下方式進(jìn)行。
第一霍夫曼解碼器105讀取具有七比特的預(yù)定比特數(shù)數(shù)據(jù)x’,和讀取由上述表選擇設(shè)備104選擇的第二解碼表100-2的第一區(qū)域R1中包括的地址x’中的數(shù)據(jù)。例如,當(dāng)x’的值為(0000001)時,讀取地址617(0000001)。由圖6所示的第二解碼表100-2可看出,值“1”存儲在第一區(qū)域R1的數(shù)據(jù)序列的第一字段607中。值“0”存儲在第二字段608中。這對應(yīng)于圖5所示的解碼表500的第一行504的內(nèi)容。在這種情況下,預(yù)定比特數(shù)數(shù)據(jù)x’的七比特的最有效的一比特(0)完成霍夫曼碼,以致輸出表示值“真”的完成信號CPT。第二字段608中存儲的值(0)作為解碼信號被輸出。根據(jù)第一字段607中存儲的值(1),比特流10的讀取位置位移一比特。
另一方面,當(dāng)讀取的具有七比特的預(yù)定比特數(shù)數(shù)據(jù)x’例如為(1111000)時,第一霍夫曼解碼器105讀取第二解碼表100-2的第一區(qū)域R1的地址618(1111000)。其中,在第一字段607中,存儲超過“7”的值“15”。這表示預(yù)定比特數(shù)數(shù)據(jù)(1111000)未完成霍夫曼碼。換句話說,第一霍夫曼解碼器105根據(jù)第二解碼表100-2的第一區(qū)域R1對預(yù)定比特數(shù)的數(shù)據(jù)x’未進(jìn)行霍夫曼解碼。
在這種情況下,第一霍夫曼解碼器105輸出具有值“偽”的完成信號CPT。。第一霍夫曼解碼器105還將讀取的具有七比特的預(yù)定比特數(shù)的數(shù)據(jù)x’輸出給第二霍夫曼解碼器106。然后,比特流10的讀取位置位移七比特。隨后,第二霍夫曼解碼器106進(jìn)行第二解碼處理。
當(dāng)完成信號CPT為“偽”時,第二霍夫曼解碼器106從第128地址603(10000000)中連續(xù)地讀取第二解碼表100-2的第一區(qū)域R2的數(shù)據(jù)序列。讀取的數(shù)據(jù)序列包括具有碼長大于七比特的霍夫曼碼、霍夫曼碼的碼長和解碼霍夫曼碼的結(jié)果。從第128地址603(10000000)按霍夫曼碼的碼長順序存儲這些數(shù)據(jù)序列。其中,第三字段611存儲霍夫曼碼。第四字段612存儲霍夫曼碼的碼長。第五字段613存儲解碼霍夫曼碼的結(jié)果。第二霍夫曼解碼器106根據(jù)讀取的數(shù)據(jù)序列的第四字段612中存儲的數(shù)據(jù)從比特流10中讀取附加數(shù)據(jù)y。
在這種情況下,第四字段612存儲值“8”,以便從比特流10中讀取作為附加數(shù)據(jù)y的一個新比特,并且讀取位置位移一比特。這是因為第一霍夫曼解碼器105已經(jīng)讀取七比特數(shù)據(jù)。
第一霍夫曼解碼器105將七比特的預(yù)定比特數(shù)數(shù)據(jù)x與附加數(shù)據(jù)y連接。然后,確定連接數(shù)據(jù)是否與第三字段611中存儲的數(shù)據(jù)匹配。直至匹配成功,按照上述步驟,從表100-2的第二區(qū)域R2中連續(xù)地讀取數(shù)據(jù)序列,如果需要,從比特流10中讀取附加數(shù)據(jù)。當(dāng)匹配成功時,第五字段613的值作為解碼的結(jié)果輸出。
當(dāng)完成信號CPT為“真”時,輸出選擇設(shè)備107輸出第一霍夫曼解碼器105的解碼信號,而當(dāng)完成信號CPT為“偽”時,輸出第二霍夫曼解碼器106的解碼信號。
在上文中,說明了從比特流10中檢測索引數(shù)為1或2的情況。顯然,當(dāng)檢測另一索引數(shù)j時,利用第j解碼表,以類似的操作解碼霍夫曼碼。
如上所述,在實例1的解碼設(shè)備1000中,根據(jù)解碼表的第一區(qū)域R1,由第一霍夫曼解碼器105解碼具有比特數(shù)小于或等于包含于比特流10中的預(yù)定比特數(shù)的霍夫曼碼。另一方面,根據(jù)解碼表的第二區(qū)域R2,由第二霍夫曼解碼器106解碼具有比特數(shù)大于預(yù)定比特數(shù)的霍夫曼碼。因此,通過對表的一次存取就可高速地解碼出現(xiàn)頻率高和比特數(shù)相對小的短霍夫曼碼,同時利用表內(nèi)相對小的空間范圍可解碼出現(xiàn)頻率低和比特數(shù)相對大的長霍夫曼碼。
在實例1中,預(yù)定數(shù)Nj(即由第一霍夫曼解碼器105讀取的比特數(shù)和解碼表的第一區(qū)域R1的地址寬度)例如對N1設(shè)定為六,而對N2設(shè)定為七。例如,根據(jù)以下原因進(jìn)行這種設(shè)定。
當(dāng)預(yù)定數(shù)Nj的值大時,第一解碼表100-1的第一區(qū)域R1的地址寬度也大。使用該區(qū)域R1解碼的霍夫曼碼的數(shù)量增加。顯然通過對表的一次存取可解碼這些霍夫曼碼。在這種情況下,被高速解碼的霍夫曼碼數(shù)量因此增加。
另一方面,當(dāng)預(yù)定數(shù)N1的值小時,利用第一區(qū)域R1高速解碼的霍夫曼碼數(shù)量也小,盡管解碼表的整體規(guī)模降低,由此節(jié)省存儲器。這是因為第一區(qū)域R1需要多個地址(例如,000000至000111),用以解碼其比特數(shù)(例如,三)小于包括于讀取的具有N1比特的預(yù)定比特數(shù)數(shù)據(jù)中的N1(例如,六)的霍夫曼碼;而第二區(qū)域R2僅需要具有與霍夫曼碼的數(shù)相同行數(shù)的地址空間。N1的減小值可以相對降低第一區(qū)域R1的規(guī)模和擴(kuò)大第二區(qū)域R2的規(guī)模。結(jié)果,包括第一區(qū)域R1和第二區(qū)域R2的解碼表的整體規(guī)模變得很小。
按照這種觀點,考慮到將要以高速解碼霍夫曼碼的數(shù)量和解碼表的規(guī)模,將N1設(shè)定為合適的值。通過考慮在霍夫曼編碼手冊中包括的各霍夫曼碼的出現(xiàn)頻率,可以根據(jù)統(tǒng)計特性來確定該值。特別地,當(dāng)解碼霍夫曼編碼的比特流時,最好使具有出現(xiàn)頻率高的短霍夫曼碼包括在第一區(qū)域R1中,從而可按高速進(jìn)行處理。盡管在第二區(qū)域R2中包括的具有低出現(xiàn)頻率的長霍夫曼碼不能高速地解碼,但第二區(qū)域R2可以節(jié)省存儲器。
當(dāng)解碼設(shè)備有多個解碼表時,預(yù)定數(shù)N1和N2可以按以下規(guī)則來確定。例如,當(dāng)它被統(tǒng)計證實上述第一霍夫曼編碼手冊的出現(xiàn)頻率低于第二霍夫曼編碼手冊的出現(xiàn)頻率時(即第二霍夫曼編碼手冊具有相對高的出現(xiàn)頻率),最好可以按高速對已經(jīng)用第二霍夫曼編碼手冊進(jìn)行霍夫曼編碼的比特流進(jìn)行解碼。在這種情況下,使用具有相對大值的N2提高利用第一區(qū)域R1通過對表的一次存取完成霍夫曼碼的概率,產(chǎn)生高速處理。在這種情況下,由圖6所示的解碼表100-2可看出,第一區(qū)域R1有七比特的地址寬度,因而需要128地址的空間。
另一方面,當(dāng)?shù)谝换舴蚵幋a手冊的出現(xiàn)頻率低時,解碼利用第一霍夫曼編碼手冊已經(jīng)進(jìn)行霍夫曼編碼的比特流的概率低,從而一般不需要高速處理。因此,小的預(yù)定數(shù)N1可以導(dǎo)致表規(guī)模的降低。如圖4所示,第一解碼表100-1的第一區(qū)域R1的地址寬度例如是六比特。因此,盡管通過對表的一次存取完成一次霍夫曼解碼操作的概率降低,但第一區(qū)域R1僅需要64地址的空間。
其中,應(yīng)該指出,當(dāng)預(yù)定數(shù)Nj被設(shè)定為極端值,例如對于與具有出現(xiàn)頻率低的霍夫曼編碼手冊對應(yīng)的解碼表來說為零時,通過對表的一次存取完成一次霍夫曼解碼操作的概率明顯下降,從而解碼可能需要大量的處理負(fù)載。此外,當(dāng)Nj被設(shè)定為小于將要解碼的霍夫曼碼可以具有的最小比特數(shù)的值時,基本上沒有僅利用第一區(qū)域R1就可進(jìn)行解碼的霍夫曼碼。在這種情況下,使用第一區(qū)域R1和第二區(qū)域R2實質(zhì)上并不具有可以獲得高速解碼和節(jié)省存儲器的優(yōu)點。因此,Nj最好至少被設(shè)定為等于或大于霍夫曼碼的最小比特數(shù)的值。
如上所述,預(yù)定數(shù)Nj的值可以根據(jù)第j霍夫曼編碼手冊即對應(yīng)于第j解碼表的出現(xiàn)頻率來確定。換句話說,當(dāng)選擇第a霍夫曼編碼手冊的頻率等于或大于選擇第b霍夫曼編碼手冊的頻率時,可以確定Nj(1≤j≤m)滿足Na≥Nb,其中,a、b和j是整數(shù),而且1≤a≤m和1≤b≤m。
另一方面,預(yù)定數(shù)Nj可以按這樣的方式來確定,第一霍夫曼解碼器105解碼在預(yù)定比特數(shù)的數(shù)據(jù)x中包括的相對短的霍夫曼碼的概率等于或大于預(yù)定的概率。為此,假設(shè)PC是在利用第c霍夫曼編碼手冊進(jìn)行霍夫曼編碼中具有碼長XC比特或更小的霍夫曼碼的出現(xiàn)概率,預(yù)定數(shù)NC可以預(yù)定等于獲得等于或大于一預(yù)定值的概率PC的XC,其中,c是滿足1≤c≤m的整數(shù)。概率PC例如可以被設(shè)定為約90%。在這種情況下,根據(jù)統(tǒng)計特性按這樣的方式確定各解碼表的預(yù)定數(shù)Nj的值,利用各解碼表的第一區(qū)域R1完成解碼的概率約為90%。對已經(jīng)利用任何霍夫曼編碼手冊進(jìn)行編碼的比特流來說,預(yù)定數(shù)Nj的適當(dāng)選擇可以用至少預(yù)定的概率進(jìn)行高速霍夫曼解碼。換句話說,預(yù)定比特數(shù)的數(shù)據(jù)可以用至少預(yù)定的概率來解碼。這可以避免這樣的情況,由于需要大量的處理性能,致使解碼設(shè)備不能令人滿意地運(yùn)轉(zhuǎn)。
由于上述理由,在實例1中,第一解碼表100-1的預(yù)定數(shù)N1和第二解碼表100-2的預(yù)定數(shù)N2被分別設(shè)定為六和七。這些預(yù)定數(shù)根據(jù)使用的霍夫曼編碼手冊、解碼表等可以設(shè)定為任意數(shù)。
如上所述,在實例1的解碼設(shè)備1000中,當(dāng)利用與具有出現(xiàn)頻率高的霍夫曼編碼手冊對應(yīng)的解碼表進(jìn)行霍夫曼解碼時,如果可能,那么通過對表的一次存取完成霍夫曼解碼。當(dāng)利用與具有出現(xiàn)頻率低的霍夫曼編碼手冊對應(yīng)的解碼表進(jìn)行霍夫曼解碼時,通過對表的多次存取但使用盡量少的存儲器來完成霍夫曼解碼。實例1可以提供一解碼設(shè)備,在該解碼設(shè)備中,通過對表的一次存取高速解碼具有出現(xiàn)頻率高的霍夫曼碼,而通過對表的多次存取但使用盡量少的存儲器解碼具有出現(xiàn)頻率低的霍夫曼碼。
(實例2)在實例2中,說明解碼比特流10(圖2中所示)的解碼設(shè)備,在該解碼設(shè)備中,與實例1類似,利用多個霍夫曼編碼手冊進(jìn)行霍夫曼編碼。
圖8表示本發(fā)明實例2的解碼設(shè)備2000的結(jié)構(gòu)。解碼設(shè)備2000包括檢測比特流10中索引數(shù)j的索引檢測設(shè)備203;第一解碼表200-1至第m解碼表200-m;和選擇第一解碼表200-1至第m解碼表200-m中的一個表的表選擇設(shè)備204。
與實例1的解碼表100-1至100-m類似,第一解碼表200-1至第m解碼表200-m對應(yīng)于在編碼中使用的各個霍夫曼編碼手冊。解碼表200-1至200-m的各表包括第一區(qū)域R1和第二區(qū)域R2。下面詳細(xì)說明解碼表。
解碼設(shè)備2000還包括第一霍夫曼解碼器205、第二霍夫曼解碼器206和輸出選擇設(shè)備207。第一霍夫曼解碼器205解碼其比特數(shù)小于或等于預(yù)定數(shù)的短的霍夫曼碼。第二霍夫曼解碼器206解碼其比特數(shù)超過預(yù)定數(shù)Nj的長的霍夫曼碼。輸出選擇設(shè)備207選擇和輸出由第一霍夫曼解碼器205和第二霍夫曼解碼器206解碼的結(jié)果。
第一霍夫曼解碼器205解碼其比特數(shù)小于或等于預(yù)定數(shù)的碼長相對短的霍夫曼碼,該預(yù)定數(shù)包含于已利用解碼表的第一區(qū)域R1從比特流10中讀取的預(yù)定比特數(shù)數(shù)據(jù)x中。當(dāng)實例2的第一霍夫曼解碼器205未解碼霍夫曼碼時,與實例1的第一霍夫曼解碼器105不同,第一霍夫曼解碼器205將規(guī)定解碼表的第二區(qū)域R2地址的地址指示器(pointer)ap輸出給第二霍夫曼解碼器206,而不是輸出預(yù)定比特數(shù)的數(shù)據(jù)x。
另一方面,當(dāng)?shù)谝换舴蚵獯a器205未完成霍夫曼解碼時,第二霍夫曼解碼器206從比特流10中讀取跟隨預(yù)定比特數(shù)的數(shù)據(jù)x的附加數(shù)據(jù)y。與實例1的第二霍夫曼解碼器106不同,第二霍夫曼解碼器206并不連接附加數(shù)據(jù)y與預(yù)定比特數(shù)數(shù)據(jù)x來獲得連接數(shù)據(jù)。根據(jù)解碼表的第二區(qū)域R2,利用從第一霍夫曼解碼器205輸出的地址指示器ap規(guī)定的地址和附加數(shù)據(jù)y第二霍夫曼解碼器206根據(jù)解碼表的第二區(qū)域R2進(jìn)行解碼。
實例2的解碼設(shè)備2000還解碼利用單個霍夫曼編碼手冊已經(jīng)編碼的比特流。在這種情況下,任意地省略索引檢測設(shè)備203和表選擇設(shè)備204。僅需要一個與單個霍夫曼編碼手冊對應(yīng)的解碼表。
如上所述,利用解碼表的不同區(qū)域,解碼設(shè)備2000解碼相對短的霍夫曼碼和相對長的霍夫曼碼。下面,詳細(xì)說明在實例2的解碼設(shè)備2000中使用的解碼表。
圖9表示實例2的第一解碼表200-1。第一解碼表200-1用于解碼已利用第一霍夫曼編碼手冊編碼的比特流,用在比特流10中包括的索引數(shù)1識別該霍夫曼編碼手冊。
在實例2中,圖11所示的霍夫曼編碼手冊1100還用作第一霍夫曼編碼手冊。因此,第一解碼表200-1對應(yīng)于圖4所示的實例1的第一解碼表100-1。
如圖9所示,第一解碼表200-1包括第一區(qū)域R1和第二區(qū)域R2。第一區(qū)域R1包括從第0地址901(000000)至第63(26-1)地址902(111111)范圍的具有六比特寬度的地址。第二區(qū)域R2包括從第64地址903(1000000)至第104地址904(1101000)范圍的具有七比特寬度的地址。第一區(qū)域R1和第二區(qū)域R2分別在左側(cè)上有地址列905和907,在右側(cè)上有數(shù)據(jù)列906和908。數(shù)據(jù)列906和908存儲與各地址對應(yīng)的數(shù)據(jù)。
第一區(qū)域R1的數(shù)據(jù)列906包括第一字段909(數(shù)據(jù)列906的左列)和第二字段910(數(shù)據(jù)列906的右列)。第一字段909存儲將要解碼的霍夫曼碼的碼長。具體地說,當(dāng)預(yù)定比特數(shù)的數(shù)據(jù)x有六比特時,在第一區(qū)域R1的地址x中的第一字段909存儲L比特的長度,該L比特在六比特數(shù)據(jù)x的MSB側(cè),并且對應(yīng)于在第一霍夫曼編碼手冊(圖11示出)中包括的霍夫曼碼(其中,L是滿足1≤L≤6的任意整數(shù),表示碼長)。第二字段910存儲解碼霍夫曼碼的結(jié)果或地址指示器(下一個地址)。
例如,第一字段909在地址901(000000)至地址911(000111)中存儲相同的值“3”。第二字段910在地址(000000)至地址(000111)中存儲相同的值“9”。六比特數(shù)據(jù)(000000)至(000111)是六比特的所有可能數(shù)據(jù),該數(shù)據(jù)包括在其MSB側(cè)的霍夫曼碼(000)。解碼霍夫曼碼(000)的結(jié)果是“9”。地址901(000000)至地址911(000111)對應(yīng)于圖12所示的普通解碼表1200的第一行1202(即對應(yīng)于霍夫曼碼(000)的行)。
此外,例如,第一字段909在地址912(110011)中存儲值“6”。第二字段910在地址912(110011)中存儲值“42”。六比特數(shù)據(jù)(110011)僅是六比特的可能數(shù)據(jù),該數(shù)據(jù)在其MSB側(cè)(即整個數(shù)據(jù)(110011))包括霍夫曼碼(110011)。解碼霍夫曼碼(110011)的結(jié)果是“42”。因此,地址912(110011)對應(yīng)于圖12所示的解碼表1200的第23行1206(即對應(yīng)于霍夫曼碼(110011)的行)。
如上所述,實例2的第一解碼表200-1有與實例1的解碼表100-1類似的結(jié)構(gòu),在該解碼表中,各六比特數(shù)據(jù)行(即與地址901(000000)至地址912(110011)對應(yīng)的行)包括任何霍夫曼碼。
此外,例如,第一字段909在地址913(110100)中存儲超過預(yù)定數(shù)Nj(=6)的值“15”,其中,與實例1相似,未完成六比特數(shù)據(jù)(110100)的霍夫曼碼。但是,第二字段910存儲(1000000)作為地址指示器。這使實例2的第一解碼表200-1的第一區(qū)域R1不同于圖4所示的實例1的第一解碼表100-1的第一區(qū)域R1。
該地址指示器規(guī)定解碼表200-1的第二區(qū)域R2中的一個地址。當(dāng)?shù)谝换舴蚵獯a器205未完成霍夫曼解碼時,第二霍夫曼解碼器206確定地址,根據(jù)從第一霍夫曼解碼器205輸出的地址指示器ap,首先從該地址讀取該數(shù)據(jù)列。
具體地說,地址指示器ap指示第二區(qū)域R2的一個地址,該地址涉及解碼霍夫曼碼的第二區(qū)域R2的數(shù)據(jù)列中的數(shù)據(jù),在該數(shù)據(jù)中,其最有效的六比特是由第一霍夫曼解碼器205讀取的具有六比特的預(yù)定比特數(shù)數(shù)據(jù)。實際上,地址指示器ap指示與用于解碼這種霍夫曼碼的最短霍夫曼碼的數(shù)據(jù)有關(guān)的地址。例如,地址x(x是六比特數(shù)據(jù))中的第二字段910的地址指示器規(guī)定區(qū)域的終點,在該區(qū)域中,存儲與在其最有效的六比特數(shù)據(jù)為x的第一霍夫曼編碼手冊中包括的霍夫曼碼之中具有最短碼長的霍夫曼碼有關(guān)的數(shù)據(jù)序列。因此,在實例2中,解碼表按這樣的方式來構(gòu)成,即第二霍夫曼解碼器206不總首先讀取第二區(qū)域R2的第一行903(即對應(yīng)于地址(1000000)的行),但僅涉及第二區(qū)域R2的一個區(qū)域,在該區(qū)域中,可以解碼已由第一霍夫曼解碼器205讀取的包括預(yù)定比特數(shù)的數(shù)據(jù)的霍夫曼碼。
另一方面,與實例1的解碼表100-1類似,解碼表200-1的第二區(qū)域R2包括具有七比特寬度的地址。解碼表200-1的第二區(qū)域R2的數(shù)據(jù)列908包括第三字段914、第四字段915和第五字段916。
第二區(qū)域R2的第三字段914存儲與包含在第一霍夫曼編碼手冊1100(圖11中示出)中的霍夫曼碼對應(yīng)的具有碼長大于六的數(shù)據(jù)。在實例2中,從霍夫曼碼中刪除與各霍夫曼碼的最有效的N1(=6)比特對應(yīng)的預(yù)定比特數(shù)數(shù)據(jù)x,同時自動地存儲霍夫曼碼(霍夫曼部分碼)其余部分的霍夫曼部分碼。第四字段915存儲從霍夫曼碼的碼長(即在第三字段914中說明的霍夫曼部分碼的碼長)中減去N1(=6)得到的值。第五字段916存儲連接預(yù)定比特數(shù)的數(shù)據(jù)x與附加數(shù)據(jù)y而獲得的解碼霍夫曼碼的結(jié)果。這些存儲的數(shù)據(jù)以霍夫曼碼長度增加的順序存儲在第64地址903(地址(1000000))至第104地址904(地址(1101000))中。第二區(qū)域R2的第三字段914的部分917表示在要被解碼的霍夫曼碼中包括的最有效的N1比特數(shù)據(jù)(預(yù)定比特數(shù)的數(shù)據(jù)x)。盡管為了說明該表,該部分917設(shè)置在圖9中,但實際的表不需要該部分917。
例如,在解碼表200-1的第二區(qū)域R2的第一行的第64地址903(地址(1000000))中的第三字段914、第四字段915和第五字段916分別存儲霍夫曼碼(0)、霍夫曼部分碼的碼長“1”和解碼操作的結(jié)果“41”。這些存儲的數(shù)據(jù)對應(yīng)于圖12所示的解碼表1200的第24行1207(即對應(yīng)于霍夫曼碼(1101000)的行)的內(nèi)容。隨后,第65地址918(地址(1000001))至第104地址904(地址(1101000))分別存儲圖12所示的解碼表1200的第25行1208(即對應(yīng)于霍夫曼碼(1101001)的行)至第64行1203(即對應(yīng)于霍夫曼碼(1111111111)的行)的內(nèi)容。
其中,特別說明如上述那樣構(gòu)成的第一區(qū)域R1和第二區(qū)域R2之間的關(guān)系。
例如,參照第一解碼表200-1的第一區(qū)域R1的地址913(110100),在地址(110100)的第一字段909說明表示未完成霍夫曼解碼的值“15”;而第二字段919說明地址指示器(1000000)。第二區(qū)域R2有說明與包括預(yù)定比特數(shù)的數(shù)據(jù)(110100)的霍夫曼碼有關(guān)的數(shù)據(jù)的區(qū)域(目標(biāo)區(qū)域),該霍夫曼碼也是第一區(qū)域R1的地址(即霍夫曼碼包括(110100),作為其最有效的六比特)。例如,與第一區(qū)域R1的地址(110100)對應(yīng)的目標(biāo)區(qū)域包括兩行903和918(即地址(1000000)和(1000001))。
在這種情況下,目標(biāo)區(qū)域中的任何地址都有七比特。如果考慮第二霍夫曼解碼器206的操作,那么目標(biāo)區(qū)域中的最上面的行(即目標(biāo)區(qū)域的終點)最好由地址指示器來規(guī)定。因此,在地址913(110100)的第二字段910中的地址指示器被設(shè)定為(1000000)。
例如,參照第一區(qū)域R1的地址902(111111),該地址中的第二字段910說明地址指示器(1011111)。其中,第二區(qū)域R2有目標(biāo)區(qū)域,該區(qū)域表示與包括預(yù)定比特數(shù)數(shù)據(jù)(111111)的霍夫曼碼有關(guān)的數(shù)據(jù),該霍夫曼碼也是第一區(qū)域R1的地址(即霍夫曼碼包括(111111),作為其最有效的六比特)。該目標(biāo)區(qū)域包括地址919(1011111)至地址904(1101000)。
類似地,按這樣的方式設(shè)定第二字段910的地址指示器至(1011111),即地址指示器涉及目標(biāo)區(qū)域的最短的霍夫曼碼,并指示最上面行的地址(即目標(biāo)區(qū)域終點的行)。
下面說明第二解碼表200-2。第二解碼表200-2有與上述第一解碼表200-1相似的結(jié)構(gòu)。
圖10表示第二解碼表200-2。解碼表200-2用于解碼已利用與索引數(shù)2對應(yīng)的第二霍夫曼編碼手冊編碼的霍夫曼碼。在實例2中,假設(shè)第二霍夫曼編碼手冊(未示出)與實例1中的霍夫曼編碼手冊相似。第二解碼表200-2對應(yīng)于圖6所示的實例1的第二解碼手冊100-2。如上所述,圖5表示以霍夫曼碼長增加的順序重新排列第二霍夫曼編碼手冊(未示出)的行獲得的普通解碼表500。解碼表500的左列501表示霍夫曼碼。中間列502表示霍夫曼碼的碼長。右列503表示解碼霍夫曼碼的結(jié)果。
從圖10可看出,第二解碼表200-2包括第一區(qū)域R1和第二區(qū)域R2。第一區(qū)域R1包括第0地址1001(0000000)至第127(=27-1)地址1002(1111111)范圍的具有七比特寬度的地址。第二區(qū)域R2包括第128地址1003(10000000)至第178地址1004(10110010)范圍的具有八比特寬度的地址。
與第一解碼表200-1類似,在第二解碼表200-2中,第一區(qū)域R1包括第一字段1005和第二字段1006。第二區(qū)域R2包括第三字段1007、第四字段1008和第五字段1009。
假設(shè)x’是具有七比特的數(shù)據(jù),在第一區(qū)域R1的地址x’中的第一字段1005存儲L比特的長度,該L比特在七比特數(shù)據(jù)(地址)x ’的MSB側(cè),對應(yīng)于在第二霍夫曼編碼手冊中包括的霍夫曼碼(其中,L是滿足1≤L≤7的任意整數(shù),表示碼長)。第二字段1006存儲解碼霍夫曼碼的結(jié)果。
例如,第一字段1005在地址1001(0000000)至地址1010(0111111)中存儲相同的值“1”。第二字段1006在地址1001(0000000)至地址1010(0111111)中存儲相同的值“0”。七比特數(shù)據(jù)(0000000)至(0111111)是七比特的所有可能的數(shù)據(jù),該數(shù)據(jù)包括作為其最有效的一個比特的霍夫曼碼(0)?!?”是解碼霍夫曼碼(0)的結(jié)果。地址1001(0000000)至地址(0111111)對應(yīng)于圖5所示的解碼表500的第一行504(即對應(yīng)于霍夫曼碼(0)的行)。
此外,例如,第一字段1005在地址1011(1110100)中存儲值“7”。第二字段1006在地址1011(1110100)中存儲值“3”。七比特數(shù)據(jù)(1110100)的最有效七比特(即整個數(shù)據(jù)(1110100))完成霍夫曼碼(1110100)。解碼霍夫曼碼(1110100)的結(jié)果是“3”。因此,地址1011(1110100)對應(yīng)于圖5所示的解碼表500的第13行505(即對應(yīng)于霍夫曼碼(1110100)的行)。
此外,例如,第一字段1005在地址1012(1110101)中存儲超過“7”的值“15”。這表示七比特數(shù)據(jù)(1110101)未完成霍夫曼碼。第二字段1006說明在第二解碼表200-2的第二區(qū)域R2中規(guī)定地址的地址指示器(10000000)。與上述解碼表200-1中所示的地址指示器相似,該地址指示器指示第二區(qū)域R2的一個地址。
具體地說,地址指示器表示在第二區(qū)域R2中說明的數(shù)據(jù)中的一個地址,該第二區(qū)域涉及解碼霍夫曼碼的數(shù)據(jù),該霍夫曼碼最有效的七比特是已由第一霍夫曼解碼器205讀取的具有七比特的預(yù)定比特數(shù)的數(shù)據(jù)。特別地,地址指示器指示與用于解碼這類霍夫曼碼的最短霍夫曼碼的數(shù)據(jù)有關(guān)的地址(即目標(biāo)區(qū)域的終點)。
另一方面,解碼表200-2的第二區(qū)域R2包括具有八比特寬度的地址。與實例1中的解碼表相似,解碼表200-2的第二區(qū)域R2的數(shù)據(jù)列分別包括第三字段1007、第四字段1008和第五字段1009。
第二區(qū)域R2的第三字段1007存儲與在第一霍夫曼編碼手冊1100(圖11示出)中包括的霍夫曼碼對應(yīng)的具有碼長大于七的數(shù)據(jù)。從霍夫曼碼中刪除與各霍夫曼碼的最有效的N2(=7)比特對應(yīng)的預(yù)定比特數(shù)數(shù)據(jù)x,同時自動地存儲霍夫曼碼的其余部分(霍夫曼部分碼)。第四字段1008存儲從霍夫曼碼的碼長中減去N2(=7)產(chǎn)生的值(即在第三字段1007中說明的霍夫曼部分碼的碼長)。第五字段1009存儲解碼霍夫曼碼的結(jié)果。這些存儲的數(shù)據(jù)以霍夫曼碼長度增加的順序存儲在第128地址1003(地址(10000000))至第178地址1004(地址(10110010))中。第二區(qū)域R2的第三字段1007的部分1013指示包含于要被解碼的霍夫曼碼中的最有效N2(=7)比特數(shù)據(jù)(預(yù)定比特數(shù)的數(shù)據(jù)x’)。過程的實際表不需要說明部分1013。
例如,在第128地址1003(解碼表200-2的第二區(qū)域R2的第一行的地址(10000000))中的第三字段1007、第四字段1008和第五字段1009分別存儲霍夫曼碼(0)、霍夫曼部分碼(0)的碼長和解碼操作的結(jié)果“19”。這些存儲數(shù)據(jù)對應(yīng)于圖5所示的解碼表500的第14行506的內(nèi)容(即與霍夫曼碼(11101010)對應(yīng)的行))。隨后,第129地址1005(地址(10000001))至第178地址1004(地址10110010)存儲圖5所示的解碼表500的第15行507(即對應(yīng)于霍夫曼碼(11101011))至第64行(即對應(yīng)于霍夫曼碼(111111111111))的各自內(nèi)容。
例如,參照第二解碼表200-2的第一區(qū)域R1的地址1012(1110101),在地址1012(1110101)中的第一字段1005說明表示未完成霍夫曼解碼的值“15”;第二字段1006說明地址指示器(10000000)。第二區(qū)域R2有說明相對于包括預(yù)定比特數(shù)的數(shù)據(jù)(1110101)的最短霍夫曼碼數(shù)據(jù)的區(qū)域(目標(biāo)區(qū)域),作為也是第一區(qū)域R1地址的其最有效的七比特。最上面的行(即目標(biāo)區(qū)域的終點)有地址(10000000)。
例如,參照第二解碼表200-2的第一區(qū)域R1的地址1002,在該地址中的第二字段1006說明地址指示器(10100100)。其中,第二區(qū)域R2有目標(biāo)區(qū)域,說明與包括預(yù)定比特數(shù)的數(shù)據(jù)(1111111)的最短霍夫曼碼有關(guān)的數(shù)據(jù),作為其最有效的七比特。最上面行的地址為(10100100)。
根據(jù)與實例1中所述原因相同的原因(例如,統(tǒng)計特性),在解碼設(shè)備2000中預(yù)定預(yù)定數(shù)Nj(例如,在實例2中,N1=6和N2=7)。
下面說明解碼設(shè)備2000的操作。
再參照圖8,將已霍夫曼編碼的比特流10輸入至索引檢測設(shè)備203和第一霍夫曼解碼器205及第二霍夫曼解碼器206中。在圖8中,粗線箭頭表示數(shù)據(jù)的流動,而細(xì)線箭頭表示控制信號的流動。
索引檢測設(shè)備203檢測來自比特流10的索引數(shù)j,將索引數(shù)j輸出給表選擇設(shè)備204(其中,j是滿足1≤j≤m的任意整數(shù);而m是表示在解碼設(shè)備2000中包括的解碼表的數(shù)目的任意整數(shù))。表選擇設(shè)備204根據(jù)接收的索引數(shù)j選擇第j解碼表。例如,當(dāng)索引檢測設(shè)備203檢測的索引數(shù)為“1”時,表選擇設(shè)備204選擇第一解碼表200-1。
索引檢測設(shè)備203還將索引數(shù)j輸出給第一霍夫曼解碼器205。根據(jù)索引數(shù)j,第一霍夫曼解碼器205確定表示從比特流10中將要讀取的數(shù)據(jù)的比特數(shù)的預(yù)定數(shù)Nj(其中Nj是由j確定的任意整數(shù))。預(yù)定數(shù)Nj的值在由表選擇設(shè)備204選擇的第j解碼表中被確定為等于第一區(qū)域R1的地址寬度。例如,當(dāng)檢測的索引數(shù)j為“1”時,第一霍夫曼解碼器205確定預(yù)定數(shù)N1為“6”。在實例2中,在第一霍夫曼解碼器205中預(yù)定索引數(shù)j和預(yù)定數(shù)Nj之間的關(guān)系。基于接收的索引數(shù)j確定預(yù)定數(shù)Nj的方法不限于此。
然后,第一霍夫曼解碼器205根據(jù)預(yù)定數(shù)Nj從比特流10中讀取具有Nj比特的預(yù)定比特數(shù)的數(shù)據(jù)x。隨后,利用第j解碼表的第一區(qū)域R1霍夫曼解碼讀取的預(yù)定比特數(shù)數(shù)據(jù)x。具體地說,通過比較被讀取的具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)與在第一區(qū)域R1中包括的具有Nj比特寬度的地址,第一霍夫曼解碼器205進(jìn)行解碼。
例如,當(dāng)檢測的索引數(shù)j為“1”和讀取具有六比特數(shù)據(jù)的預(yù)定比特數(shù)的數(shù)據(jù)x為(000001)時,第一霍夫曼解碼器205讀取在第一解碼表200-1的第一區(qū)域R1的地址920(000001)中的數(shù)據(jù)。從圖9所示的解碼表可看出,第一字段909存儲值“3”。第二字段910存儲值“9”。因此,可以獲得這樣的信息,讀取六比特數(shù)據(jù)x的最有效的三比特完成霍夫曼碼并獲得解碼數(shù)據(jù)x的結(jié)果“9”。
如上所述,當(dāng)相對短的霍夫曼碼被解碼時,第一霍夫曼解碼器205將表示利用預(yù)定比特數(shù)的數(shù)據(jù)x完成一次霍夫曼解碼操作的具有“真”值的完成信號CPT輸出給第二霍夫曼解碼器206和輸出選擇設(shè)備207。第一霍夫曼解碼器205還將解碼的結(jié)果輸出給輸出選擇設(shè)備207。將比特流10的讀取位置位移對應(yīng)于第一字段909中說明的解碼過的霍夫曼碼的碼長的比特數(shù)。
再有,在實例2中,第一霍夫曼解碼器205解碼包括小于或等于在具有Nj比特的預(yù)定比特數(shù)的數(shù)據(jù)x中包含的預(yù)定數(shù)Nj的相對短的霍夫曼碼。這是因為第一區(qū)域R1限定在預(yù)定比特數(shù)的數(shù)據(jù)x和在預(yù)定比特數(shù)的數(shù)據(jù)x中包括的解碼霍夫曼碼結(jié)果之間的關(guān)系。這種解碼處理僅需要對解碼表進(jìn)行一次存取。因此,這種短霍夫曼碼可以高速解碼。
例如,當(dāng)檢測的索引數(shù)j等于“1”和讀取具有六比特的預(yù)定比特數(shù)的數(shù)據(jù)x是(110100)時,第一霍夫曼解碼器205讀取在第一解碼表200-1的第一區(qū)域R1的地址913(110100)中的數(shù)據(jù)。從圖9所示的解碼表200-1中可看出,第一字段909存儲值“15”。第二字段910存儲地址指示器(1000000)。在這種情況下,由于第一字段909中的值“15”大于預(yù)定數(shù)N1(=6),所以確定預(yù)定比特數(shù)的數(shù)據(jù)(110100)未完成霍夫曼碼。
另一方面,當(dāng)未完成對具有Nj比特的預(yù)定比特數(shù)數(shù)據(jù)x的解碼時,第一霍夫曼解碼器205將表示解碼未完成的具有“偽”值的完成信號CPT輸出給第二霍夫曼解碼器206和輸出選擇設(shè)備207。第一霍夫曼解碼器205還將解碼表200-1的第二字段910中說明的地址指示器ap輸出給第二霍夫曼解碼器206。讀取位置位移預(yù)定數(shù)Nj比特。
在實例2的解碼設(shè)備2000中,與實例1不同,已經(jīng)由第一霍夫曼解碼器205讀取的預(yù)定比特數(shù)的數(shù)據(jù)x本身未輸出給第二霍夫曼解碼器206。以后,當(dāng)預(yù)定比特數(shù)的數(shù)據(jù)x未被第一霍夫曼解碼器205解碼時,第二霍夫曼解碼器206就開始操作。
當(dāng)完成信號CPT表示“偽”時,第二霍夫曼解碼器206讀取從第一霍夫曼解碼器205接收的由地址指示器ap規(guī)定的地址中解碼表的第二區(qū)域R2的數(shù)據(jù)列。
然后,基于已經(jīng)讀取的數(shù)據(jù)列的第四字段915中說明的數(shù)據(jù)(即霍夫曼碼部分的碼長)從比特流10中讀取跟隨預(yù)定比特數(shù)數(shù)據(jù)x的附加數(shù)據(jù)y。
利用第j解碼表的第二區(qū)域R2,第二霍夫曼解碼器206霍夫曼解碼附加數(shù)據(jù)y,將解碼的結(jié)果輸出給輸出選擇設(shè)備207。具體地說,第二霍夫曼解碼器206進(jìn)行匹配測試,在該測試中,附加數(shù)據(jù)y與第二區(qū)域R2的第三字段914中說明的霍夫曼部分碼進(jìn)行比較。
當(dāng)匹配成功時,第二霍夫曼解碼器206將在第五字段916中說明的數(shù)據(jù)作為解碼結(jié)果輸出給輸出選擇設(shè)備207。
另一方面,當(dāng)匹配不成功時,第二霍夫曼解碼器206讀取在與當(dāng)前行(即與地址指示器ap規(guī)定的地址對應(yīng)的行)相鄰的解碼表的第二區(qū)域R2的行上的數(shù)據(jù)。然后,進(jìn)行相似的匹配測試。匹配測試從地址指示器規(guī)定的地址開始重復(fù),直至附加數(shù)據(jù)y匹配霍夫曼部分碼。在該處理中,如果需要,新的附加數(shù)據(jù)被連續(xù)地讀取。
當(dāng)檢測的索引數(shù)j為“1”和由第一霍夫曼解碼器205從比特流10中讀取的六比特數(shù)據(jù)為(111110)時,第一霍夫曼解碼器205輸出在第一區(qū)域R1的地址(111110)的第二字段910中說明的地址指示器(1011010)。根據(jù)地址指示器,第二霍夫曼解碼器206讀取第二區(qū)域R2的地址922(1011010)中的數(shù)據(jù)。其中,第三字段914存儲霍夫曼部分碼(00),第四字段915存儲碼長(2),而第五字段916存儲解碼操作的結(jié)果“15”。根據(jù)在第四字段915中存儲的數(shù)據(jù),第二霍夫曼解碼器206從比特流10中讀取具有兩比特的附加數(shù)據(jù)y。
例如,假設(shè)最近讀取的兩比特附加數(shù)據(jù)y為(11)。在地址922(1011010)中的第三字段914存儲(00),作為與附加數(shù)據(jù)(11)不匹配的霍夫曼部分碼。
然后,第二霍夫曼解碼器206讀取在第二區(qū)域R2的地址922(1011010)下面一行地址923(1011011)中存儲的數(shù)據(jù)。其中,第四字段915存儲(2),以便不從比特流10中重新讀取附加數(shù)據(jù)y。這是因為兩比特附加數(shù)據(jù)已經(jīng)從比特流10中讀取。
在這種情況下,第二區(qū)域R2的地址923中的第三字段914存儲與附加數(shù)據(jù)(11)不匹配的(01)。
然后,第二霍夫曼解碼器206讀取在第二區(qū)域R2的地址923(1011011)下面一行地址924(1011100)中存儲的數(shù)據(jù)。其中,第四字段915存儲(2),以便不從比特流10中重新讀取附加數(shù)據(jù)y。在這種情況下,第二區(qū)域R2的地址924中的第三字段914存儲仍不匹配附加數(shù)據(jù)(11)的(10)。
然后,第二霍夫曼解碼器206讀取在第二區(qū)域R2的地址924(1011100)下面一行地址925(1011101)中存儲的數(shù)據(jù)。其中,第四字段915存儲(3),以便不從比特流10中新讀取具有一(=3-2)比特的附加數(shù)據(jù)。比特流10的讀取位置位移一比特。這是因為當(dāng)?shù)刂?22(1011010)中的數(shù)據(jù)被讀取時,已經(jīng)讀取兩比特附加數(shù)據(jù)。
假設(shè)已經(jīng)新讀取的具有一比特的另一附加數(shù)據(jù)y為(0)(即整個附加數(shù)據(jù)為(110))。其中,地址925(1011101)中的第三字段914表示匹配附加數(shù)據(jù)y的(110)。
另一方面,假設(shè)另一附加數(shù)據(jù)y為(1)(即整個附加數(shù)據(jù)為(111))。在這種情況下,當(dāng)帶有地址926(1011110)的下一行被讀取時,匹配將成功。
當(dāng)按這種方式匹配成功時,輸出第五字段916中的值,作為解碼操作的結(jié)果。
當(dāng)完成信號為“真”時,輸出選擇設(shè)備207輸出從第一霍夫曼解碼器205接收的解碼操作的結(jié)果,作為輸出信號,當(dāng)完成信號為“偽”時,輸出從第二霍夫曼解碼器206接收的解碼操作的結(jié)果,作為輸出信號。
以這種方式,可以解碼包括預(yù)定比特數(shù)的數(shù)據(jù)和附加數(shù)據(jù)的連接數(shù)據(jù)。從上述說明中可知,在實例2中實際上不產(chǎn)生連接數(shù)據(jù)。
與實例1類似,上述第一霍夫曼解碼器205和第二霍夫曼解碼器206的操作可以通過計算機(jī)程序來完成。實例2的計算機(jī)程序按照在以下各點與圖7A和7B所示的流程圖不同的流動來進(jìn)行。
具體地說,在圖7A所示的流程圖的由第一霍夫曼解碼器205進(jìn)行處理的步驟68中,將第二字段910中的數(shù)據(jù)Z2輸出給第二霍夫曼解碼器206,而不是輸出預(yù)定比特數(shù)的數(shù)據(jù)x。
在由第二霍夫曼解碼器206進(jìn)行的處理中,不需要計算在圖7B所示的流程圖的步驟76和78中讀取的附加數(shù)據(jù)y的比特數(shù)Z4。代替這種計算,從讀取位置RP中讀取具有Z4比特的附加數(shù)據(jù)y。此外,不需要進(jìn)行在圖7B所示的流程圖的步驟80和823中所示的產(chǎn)生連接數(shù)據(jù)x|y和比較連接數(shù)據(jù)x|y與Z3,附加數(shù)據(jù)y本身僅與Z3比較。
如上所述,在實例2中可以獲得更簡單的解碼。
下面對由索引檢測設(shè)備203檢測的索引數(shù)為“2”時的情況進(jìn)行說明。
當(dāng)已經(jīng)檢測出索引數(shù)2時,表選擇設(shè)備204選擇第二解碼表200-2(圖10),而第一霍夫曼解碼器205確定預(yù)定數(shù)N2為“7”。
當(dāng)已經(jīng)由第一霍夫曼解碼器205讀取的具有七比特的預(yù)定比特數(shù)數(shù)據(jù)x’為(0000001)時,第一霍夫曼解碼器205讀取在第二解碼表200-2的第一區(qū)域R1的地址(0000001)中的數(shù)據(jù)。從圖10所示的第二解碼表200-2中可看出,第一字段1005存儲值“1”。第二字段1006存儲值“0”。因此,獲得這樣的信息,七比特數(shù)據(jù)x’通過最有效的一比特(0)完成霍夫曼碼,且解碼操作的結(jié)果為“0”。
在這種情況下,第一霍夫曼解碼器205將表示一個霍夫曼解碼操作用指定的比特數(shù)據(jù)完成的具有值“真”的完成信號CPT輸出給第二霍夫曼解碼器206和輸出選擇設(shè)備207。第一霍夫曼解碼器205將在第二字段1006中存儲的解碼操作的結(jié)果“0”輸出給輸出選擇設(shè)備207。根據(jù)第一字段1005中表示的數(shù)據(jù),比特流10的讀取位置位移一比特。
另一方面,當(dāng)已經(jīng)讀取的具有七比特的預(yù)定比特數(shù)的數(shù)據(jù)x’為(1111101)時,第二解碼表200-2的第一區(qū)域R1的地址1013中的數(shù)據(jù)被讀取。其中,從圖10所示的第二解碼表200-2中可看出,第一字段1005存儲值“15”。第二字段1006存儲地址指示器(10010110)。在這種情況下,第一字段1005中的值“15”大于預(yù)定的數(shù)N2(=7),因此確定利用預(yù)定比特數(shù)數(shù)據(jù)(1111101)未完成霍夫曼解碼。
在這種情況下,第一霍夫曼解碼器205將表示解碼未完成的具有值“偽”的完成信號CPT輸出給第二霍夫曼解碼器206和輸出選擇設(shè)備207。第一霍夫曼解碼器205將在第二解碼表200-2的第一區(qū)域R1的第二字段1006中說明的地址指示器(10010110)輸出給第二霍夫曼解碼器206。此外,讀取位置位移預(yù)定數(shù)七比特。
利用地址指示器,第二霍夫曼解碼器206讀取第二區(qū)域R2的地址1014(10010110)中的數(shù)據(jù)。其中,第三字段1007存儲霍夫曼部分碼(00),第四字段1008存儲碼長(2),而第五字段1009存儲解碼操作“50”的結(jié)果。根據(jù)在第四字段1008中存儲的數(shù)據(jù),第二霍夫曼解碼器206從比特流10中讀取具有兩比特的附加數(shù)據(jù)y。
例如,假設(shè)最新讀取的兩比特附加數(shù)據(jù)y為(10)。地址1014(10011010)中的第三字段1007存儲(00),作為未匹配附加數(shù)據(jù)(10)的霍夫曼部分碼。
然后,第二霍夫曼解碼器206讀取在第二區(qū)域R2的地址1014(10010110)下面一行的地址1015(10010111)中存儲的數(shù)據(jù)。其中,第四字段1008存儲(2),以便不從比特流10中新讀取附加數(shù)據(jù)y。這是因為兩比特附加數(shù)據(jù)(10)已經(jīng)從比特流10中讀取。
在這種情況下,第二區(qū)域R2的地址1015中的第三字段1007存儲未與附加數(shù)據(jù)(10)匹配的(01)。
然后,第二霍夫曼解碼器206讀取在第二區(qū)域R2的地址1015(10010111)下面一行的地址1016(10011000)中存儲的數(shù)據(jù)。其中,第四字段1008存儲(3),以便從比特流10中新讀取具有一比特(=3-2)的附加數(shù)據(jù)y。比特流10的讀取位置位移一比特。這是因為當(dāng)?shù)刂?014(10010110)中的數(shù)據(jù)被讀取時,兩比特附加數(shù)據(jù)(10)已經(jīng)被讀取。
假設(shè)具有已經(jīng)新讀取的一比特的另一附加數(shù)據(jù)y為(0)(即整個附加數(shù)據(jù)y為(100))。其中,地址1016(10011000)中的第三字段1007表示匹配附加數(shù)據(jù)y的(100)。
另一方面,假設(shè)另一附加數(shù)據(jù)y為(1)(即整個附加數(shù)據(jù)y為(101))。在這種情況下,當(dāng)具有地址1017(10011001)的下一行被讀取時,匹配將成功。
當(dāng)按這種方式匹配成功時,第五字段1009中的值被輸出,作為解碼操作的結(jié)果。
當(dāng)完成信號CPT為“真”時,輸出選擇設(shè)備207輸出第一霍夫曼解碼器205的解碼信號,當(dāng)完成信號CPT為“偽”時,就輸出第二霍夫曼解碼器206的解碼信號。
如上所述,在實例2中,與實例1類似,當(dāng)利用與具有高出現(xiàn)頻率的霍夫曼編碼手冊對應(yīng)的解碼表進(jìn)行霍夫曼解碼時,如果可能,由對表的一次存取完成霍夫曼解碼。當(dāng)利用與具有低出現(xiàn)頻率的霍夫曼編碼手冊對應(yīng)的解碼表進(jìn)行霍夫曼解碼時,由對表的多次存取完成霍夫曼解碼,但盡量使用小的存儲器。實例2可以提供霍夫曼解碼,在該霍夫曼解碼中,通過對表的一次存取按高速度解碼具有高出現(xiàn)頻率的霍夫曼碼(即碼長短),而通過對表的多次存取解碼具有低出現(xiàn)頻率的霍夫曼碼(即碼長長),但盡量使用小的存儲器。
在實例2的解碼設(shè)備2000中,表示霍夫曼部分碼的第二區(qū)域R2的第三字段中說明的數(shù)據(jù)可通過從霍夫曼碼中刪除最有效的Nj比特來獲得。在表示霍夫曼碼的碼長的第四字段中說明的數(shù)據(jù)可通過從原來的霍夫曼碼的碼長中減去Nj來獲得。結(jié)果,第二區(qū)域R2需要較少的容量。
在實例2的解碼設(shè)備2000中,第二區(qū)域R2中的匹配測試需要附加數(shù)據(jù)和具有更小比特數(shù)的霍夫曼部分碼。因此,這可以按比解碼更長霍夫曼碼時更高的速度來進(jìn)行。在實例2中,根據(jù)在第一區(qū)域R1中包括的地址指示器來確定被最初讀取的地址,從而省略讀取解碼所不需要的數(shù)據(jù)列部分的步驟。這進(jìn)一步提高了解碼的效率。
按照本發(fā)明,利用解碼表的不同區(qū)域,分別解碼在具有小于或等于預(yù)定比特數(shù)數(shù)據(jù)中包括的相對短的碼和在具有比預(yù)定數(shù)量更大比特數(shù)據(jù)中包括的相對長的碼。這種技術(shù)可以使相對短的碼按高速度來解碼,而解碼相對長的碼的表有盡量小的存儲器。因此,該解碼設(shè)備可以按高速度進(jìn)行解碼,同時節(jié)省存儲器。
特別地,當(dāng)本發(fā)明的解碼設(shè)備用于解碼霍夫曼碼的解碼設(shè)備時,此解碼設(shè)備可以高速度同時節(jié)省存儲器地進(jìn)行解碼。
對于本領(lǐng)域技術(shù)人員來說,在不脫離本發(fā)明范圍和精神的情況下,顯然可以容易地進(jìn)行各種改進(jìn)。因此,所附權(quán)利要求書的范圍不限于上述說明所述的范圍,而為各權(quán)利要求所廣泛建立的范圍。
權(quán)利要求
1.一種解碼數(shù)據(jù)流的解碼設(shè)備,包括包括第一區(qū)域和第二區(qū)域的解碼表;第一解碼器;和第二解碼器,其中第一區(qū)域限定具有預(yù)定比特數(shù)的第一數(shù)據(jù)和解碼具有小于或等于該預(yù)定比特數(shù)的第一數(shù)據(jù)的一部分的結(jié)果之間的關(guān)系;第二區(qū)域限定連接第一數(shù)據(jù)與帶有附加比特的第二數(shù)據(jù)而獲得的連接數(shù)據(jù)和解碼連接數(shù)據(jù)的結(jié)果之間的關(guān)系;第一解碼器從數(shù)據(jù)流中讀取第一數(shù)據(jù);根據(jù)第一區(qū)域解碼第一數(shù)據(jù)的該部分;確定第一數(shù)據(jù)該部分的解碼是否完成;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼完成時,輸出第一數(shù)據(jù)該部分的解碼結(jié)果;和當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,第二解碼器從數(shù)據(jù)流中讀取第二數(shù)據(jù);將第一數(shù)據(jù)與第二數(shù)據(jù)連接,產(chǎn)生連接的數(shù)據(jù);根據(jù)第二區(qū)域解碼連接數(shù)據(jù);并輸出該連接數(shù)據(jù)的解碼結(jié)果。
2.如權(quán)利要求1的解碼設(shè)備,還包括多個解碼表;和選擇多個解碼表中的一個解碼表的選擇器;其中根據(jù)對多個解碼表中的每一個選擇的頻率,預(yù)先確定作為與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù)的預(yù)定數(shù)。
3.如權(quán)利要求1的解碼設(shè)備,其中,按這樣的方式確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù),即第一解碼器完成第一數(shù)據(jù)該部分解碼的概率等于或大于預(yù)定的概率。
4.如權(quán)利要求1的解碼設(shè)備,其中第一區(qū)域包括第一字段,用于表示第一數(shù)據(jù)該部分的碼長或表示未完成對第一數(shù)據(jù)該部分解碼的碼;和第二字段,用于表示第一數(shù)據(jù)該部分的解碼結(jié)果;利用第一數(shù)據(jù)作為地址存取第一區(qū)域;和第二區(qū)域包括表示連接數(shù)據(jù)的第三字段;表示連接數(shù)據(jù)碼長的第四字段;和表示解碼連接數(shù)據(jù)的結(jié)果的第五字段。
5.一種解碼數(shù)據(jù)流的解碼設(shè)備,包括包括第一區(qū)域和第二區(qū)域的解碼表;第一解碼器;和第二解碼器;其中第一區(qū)域限定具有預(yù)定比特數(shù)的第一數(shù)據(jù)和解碼具有小于或等于該預(yù)定比特數(shù)的第一數(shù)據(jù)的一部分的結(jié)果之間的關(guān)系;第二區(qū)域限定具有附加比特的第二數(shù)據(jù)和解碼連接數(shù)據(jù)的結(jié)果之間的關(guān)系,而連接數(shù)據(jù)通過第一數(shù)據(jù)與第二數(shù)據(jù)的連接來獲得;第一解碼器從數(shù)據(jù)流中讀取第一數(shù)據(jù);根據(jù)第一區(qū)域解碼第一數(shù)據(jù)的該部分;確定第一數(shù)據(jù)該部分的解碼是否完成;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼完成時,輸出第一數(shù)據(jù)該部分的解碼結(jié)果;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,規(guī)定第二區(qū)域的地址;當(dāng)?shù)谝粩?shù)據(jù)該部分的解碼未完成時,第二解碼器從數(shù)據(jù)流中讀取第二數(shù)據(jù);根據(jù)由第一解碼器規(guī)定的地址和第二數(shù)據(jù)輸出連接數(shù)據(jù)的解碼結(jié)果。
6.如權(quán)利要求5的解碼設(shè)備,還包括多個解碼表;和選擇多個解碼表中的一個解碼表的選擇器;其中根據(jù)對多個解碼表中的每一個選擇的頻率,預(yù)先確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù)。
7.如權(quán)利要求5的解碼設(shè)備,其中,按這樣的方式確定與多個解碼表中的每一個對應(yīng)的第一數(shù)據(jù)的比特數(shù),即第一解碼器完成第一數(shù)據(jù)該部分解碼的概率等于或大于預(yù)定的概率。
8.如權(quán)利要求5的解碼設(shè)備,其中第一區(qū)域包括第一字段,用于表示第一數(shù)據(jù)該部分的碼長或表示未完成對第一數(shù)據(jù)該部分解碼的碼;和第二字段,用于表示第一數(shù)據(jù)該部分的解碼結(jié)果或規(guī)定第二區(qū)域地址的指示器;利用第一數(shù)據(jù)作為地址存取第一區(qū)域;和第二區(qū)域包括表示連接數(shù)據(jù)的第三字段;表示連接數(shù)據(jù)碼長的第四字段;和表示解碼連接數(shù)據(jù)的結(jié)果的第五字段。
9.如權(quán)利要求5的解碼設(shè)備,其中,第一解碼器規(guī)定與第二數(shù)據(jù)對應(yīng)的地址,該第二數(shù)據(jù)具有與第一數(shù)據(jù)有關(guān)的多個地址中的最短長度。
10.如權(quán)利要求1的解碼設(shè)備,其中,數(shù)據(jù)流包括多個霍夫曼碼;和第一解碼器和第二解碼器解碼多個霍夫曼碼。
全文摘要
解碼數(shù)據(jù)流的解碼設(shè)備包括:包括第一區(qū)域和第二區(qū)域的解碼表;第一解碼器;第二解碼器。第一解碼器從數(shù)據(jù)流中讀取第一數(shù)據(jù);根據(jù)第一區(qū)域解碼第一數(shù)據(jù)的該部分;確定第一數(shù)據(jù)該部分的解碼是否完成;第一數(shù)據(jù)該部分的解碼完成時,輸出第一數(shù)據(jù)該部分的解碼結(jié)果。第一數(shù)據(jù)該部分的解碼未完成時,第二解碼器從數(shù)據(jù)流中讀取第二數(shù)據(jù);將第一數(shù)據(jù)與第二數(shù)據(jù)連接產(chǎn)生連接的數(shù)據(jù);根據(jù)第二區(qū)域解碼連接數(shù)據(jù)并輸出該連接數(shù)據(jù)的解碼結(jié)果。
文檔編號G10L19/00GK1268810SQ0010570
公開日2000年10月4日 申請日期2000年3月30日 優(yōu)先權(quán)日1999年3月30日
發(fā)明者宮阪修二, 藤田剛史, 末吉雅弘, 川村明久, 松本正治, 片山崇, 阿部一任, 西尾孝祐 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新宾| 探索| 秀山| 本溪市| 比如县| 宁陵县| 凌海市| 上犹县| 通州区| 宜章县| 内江市| 平昌县| 开封市| 清远市| 北碚区| 芜湖县| 清水河县| 甘南县| 会理县| 三亚市| 呼和浩特市| 徐州市| 清原| 东山县| 石景山区| 三河市| 邓州市| 上栗县| 鱼台县| 石楼县| 来凤县| 永寿县| 克拉玛依市| 中牟县| 连山| 微山县| 于都县| 肥东县| 大安市| 灌阳县| 叙永县|