專利名稱:霍夫曼解碼方法和霍夫曼解碼裝置的制作方法
技術領域:
本發(fā)明涉及一種解碼方法,尤其涉及霍夫曼(huffman)解碼方法。
背景技術:
霍夫曼編碼被廣泛地使用于數(shù)據(jù)壓縮與電信的領域中,包括例如,JPEG 圖像文件、MPEG影音文件的壓縮。 一般在待壓縮的原始數(shù)據(jù)中,相同的符 號(例如A、 B、 C等等)會有重復發(fā)生的情形,而霍夫曼編碼的基本原則是使 用長短不同的可變字碼(codeword)來代表原始數(shù)據(jù)中的每個符號(symbol)。其 中出現(xiàn)次數(shù)多的符號的可變字碼的長度比出現(xiàn)次數(shù)少的可變字碼的長度小。 例如在原始數(shù)據(jù)為ABCBCDCDDD的情況中,代表符號A的可變字碼是, 例如"11111111",而B的可變字碼是"00000" , C的可變字碼是"lll", 而代表D的可變字碼是"00"。其中因為D的出現(xiàn)次數(shù)最多,所以代表D 的可變字碼的長度(即位數(shù))最短,而A的出現(xiàn)次數(shù)最少,因此A的可變長度 字碼的長度是所有符號中是最長的,以此達成數(shù)據(jù)壓縮的效果。
經(jīng)過霍夫曼編碼之后的文件必需經(jīng)過解壓縮的程序才能讓使用者取得 原始的數(shù)據(jù)內容。經(jīng)由霍夫曼編碼后的文件通過對應的霍夫曼表而被解碼。 請參閱圖1,其為已知解碼所需的霍夫曼表,包括地址(Address)字段、符號 字段、尺寸(Size)字段以及可變長度字碼字段等字段。其中地址字段代表可變 長度字碼所在的存儲器地址,符號字段代表原始的被編碼的符號,尺寸字段 則代表可變長度字碼的位數(shù)量,而可變長度字碼則代表被編碼的符號的霍夫 曼碼。以圖1中的符號J為例,其所對應的可變長度字碼為"0110110", 共7個位,因此尺寸為7。當輸入的待解碼數(shù)據(jù)為"0110110"時,霍夫曼解 碼器根據(jù)此霍夫曼表解碼出"0110110"對應的符號為J,尺寸為7。
已知有一種被稱為二元樹(Binary tree)搜尋法的霍夫曼解碼方法,如美國 第6,621,429號專利所公開的內容。二元樹搜尋法將霍夫曼表轉換為二元樹 的結構。在二元樹中,每一節(jié)點(Node)僅具兩條路徑可走,由最上層的節(jié)點 往下方延伸,形成樹的形狀,每一節(jié)點具有左右兩分支,因此稱為二元樹。
請參閱圖2,其為對應圖1的已知霍夫曼表格式的二元樹示意圖,其中不同 的霍夫曼表會構建出不同的二元樹。如圖2所示,解碼器從輸入的被壓縮比 特流中一次讀取一個位,根據(jù)讀取進來的位數(shù)據(jù)來決定往哪個方向走,當輸 入的數(shù)據(jù)位為1 (高邏輯電位)時,往右邊的路徑前進,相反的,其數(shù)據(jù)為
0 (低邏輯電位)的話,往左邊的路徑前進,直至走到葉節(jié)點(Leaf)為止,其 中葉節(jié)點為儲存對應于此位數(shù)據(jù)的符號。在搜尋到所輸入的該位所對應的符 號后,繼續(xù)讀取下一位數(shù)據(jù),并重復前述步驟進行解碼。
例如,輸入的壓縮比特流的數(shù)據(jù)為"011101",以此例配合圖2來說明, 在節(jié)點11中,根據(jù)所讀取的壓縮比特流的第一個位數(shù)據(jù)為"0",因此往左 邊的路徑走而來到節(jié)點12,接著被讀取的第二個位數(shù)據(jù)為"1",因此往右 邊的路徑走而到達節(jié)點13,依照此原則,可搜尋到節(jié)點20右分支的葉節(jié)點, 在此葉節(jié)點中儲存的符號為F,則表示輸入"011101"經(jīng)過解碼后,可得到 符號F。在搜尋到葉節(jié)點后,壓縮比特流的數(shù)據(jù)繼續(xù)被讀取,由節(jié)點11再度 開始搜尋,如此反復搜尋至壓縮比特流的全部位數(shù)據(jù)被解碼完畢為止。
由于二元樹搜尋法每次只能針對一個位進行解碼,因此解碼的速度很 慢,在需要處理大量的壓縮文件的情況下并不適合使用此方法。因此需要一 種解碼速度較快的霍夫曼解碼方法。
發(fā)明內容
本發(fā)明的目的在于提供一種霍夫曼解碼方法,用以縮短解碼所需的處理 時間。
本發(fā)明提出 一種霍夫曼解碼方法,用以對壓縮比特流進行解碼而輸出 對應比特流的多個尺寸符號碼,其中壓縮比特流包括多個位,該方法包括 取得對應壓縮比特流的霍夫曼表,其中
霍夫曼表包括多個霍夫曼碼以及多個尺寸符號碼且每一該霍夫曼碼包 含可變長度字碼,而每一霍夫曼碼對應尺寸符號碼,其中每一尺寸符號碼包 括尺寸碼以及符號碼;
根據(jù)多個尺寸碼而獲得多個遮幕碼;
分別使用多個遮幕碼對壓縮比特流的依序被輸入的16個位進行遮幕處 理而產(chǎn)生多個遮幕處理結果;
分別對多個遮幕處理結果與多個該霍夫曼碼進行邏輯運算而獲得多個 新霍夫曼碼,其中每一新霍夫曼碼包含可變長度字碼;
判斷壓縮比特流的該16位與多個新霍夫曼碼中的哪一個新霍夫曼碼相 同;以及
輸出對應可變長度字碼的尺寸符號碼。
在優(yōu)選實施例中,遮幕碼由16個二進制位所組成并包含有效位部以 及無效位部,其中有效位部的位數(shù)量等于尺寸碼所代表的數(shù)量。
在優(yōu)選實施例中,在有效位為0時,無效位為l,遮幕處理是與門運 算(AND gate)而邏輯運算是或門運算(ORgate)。
在優(yōu)選實施例中,在有效位為l時,無效位為0,遮幕處理是或門運 算而邏輯運算是與門運算。
本發(fā)明還提出一種霍夫曼解碼裝置,用以對壓縮比特流進行解碼而輸出 壓縮比特流所對應的多個尺寸符號碼,其中每一尺寸符號碼包括尺寸碼以及 符號碼,該霍夫曼解碼裝置包括
霍夫曼表獲取和處理單元,用以取得對應壓縮比特流的霍夫曼表并產(chǎn)生
多個遮幕碼,其中
霍夫曼表包括多個霍夫曼碼、多個尺寸符號碼且每一霍夫曼碼包含可變 長度字碼,以及每一尺寸碼代表可變長度字碼的位數(shù)量,其中該每一遮幕碼
依據(jù)每一多個尺寸碼而獲得;
霍夫曼存儲器,連接于霍夫曼表獲取和處理單元,用以儲存多個霍夫曼
碼;
尺寸符號存儲器,連接于霍夫曼表獲取和處理單元,用以儲存多個尺寸 符號碼;
遮幕存儲器,連接于霍夫曼表獲取和處理單元,用以儲存多個遮幕碼; 壓縮比特流處理單元,連接于該遮幕存儲器,用以接收該壓縮比特流,
并分別使用多個該遮幕碼對壓縮比特流的依序被接收的16位進行遮幕處理
而產(chǎn)生多個遮幕處理結果
霍夫曼碼處理單元,連接于霍夫曼表獲取和處理單元,用以使多個遮幕
處理結果與多個霍夫曼碼進行邏輯運算而產(chǎn)生多個新霍夫曼碼且每一新霍
夫曼碼包括可變長度字碼;
霍夫曼解碼單元,連接于霍夫曼碼處理單元,用以比較壓縮比特流的16 位與哪一個新霍夫曼碼相符,并輸出新霍夫曼碼所對應的尺寸符號碼。
由于本發(fā)明一次處理多組霍夫曼表數(shù)據(jù)的對比,相較于一次只能對一個 位解碼的已知二元樹搜尋法,確實能大幅提升解碼的速度。
通過下列附圖和說明,獲得對本發(fā)明的更深入的了解
圖l是已知的霍夫曼表示意圖。
圖2是已知二元樹搜尋法的二元樹示意圖。
圖3(a)是本發(fā)明數(shù)據(jù)格式的示意圖。
圖3(b)是本發(fā)明霍夫曼表的實施例示意圖。
圖3(c)是本發(fā)明解碼裝置的第一實施例的電路方塊示意圖。
圖3(d)是本發(fā)明解碼裝置的第二實施例的電路方塊示意圖。
其中,附圖標記說明如下
11、 12、 13、 14、 15、 16、 17、 18、 19、 20、 21節(jié)點 A、 B、 C、 D、 E、 F、 G、 H、 I、 J、 K、 L符號
300霍夫曼解碼裝置
301總線
302總線接口
303霍夫曼表獲取和處理單元
304霍夫曼存儲器
305尺寸符號碼
306遮幕存儲器
307壓縮比特流處理單元
308霍夫曼碼處理單元
309霍夫曼解碼單元
310數(shù)據(jù)碼
311多階段處理單元
320霍夫曼碼 330 尺寸符號碼 3301符號碼 3302尺寸碼
350 遮幕碼
360 壓縮比特流
370 遮幕處理結果
380 新霍夫曼碼
具體實施例方式
根據(jù)前述有關已知技術描述的內容,在進行霍夫曼解碼時需要使用霍夫 曼表。 一般的作法是在霍夫曼解碼器中預先構建霍夫曼表以作為解碼的依 據(jù),以JPEG文件為例,通常在解碼器中構建以JPEG文件為標準的霍夫曼 表,此種標準JPEG霍夫曼表中具有大多數(shù)JPEG文件的可變長度字碼,可 X寸大部分的JPEG壓縮數(shù)據(jù)進行解碼。但有時編碼者會根據(jù)特別的需求使用 牛寺殊編碼法來編碼,如此將使得標準JPEG霍夫曼表不足以滿足所有JPEG 文件的解碼需求,因此編碼者會自行設計特定的霍夫曼表。此特定的霍夫曼 表被儲存在此JPEG文件的報頭(Header)中,而解碼器在進行解碼時經(jīng)由總線 A人JPEG文件中下載此特殊編碼的霍夫曼表至解碼器內來進行解碼工作。請 參閱圖3(a),其為本發(fā)明所使用的霍夫曼表的數(shù)據(jù)碼的格式示意圖。在本 發(fā)明中設定霍夫曼表的數(shù)據(jù)碼310為32個位。如圖3(a)所示,數(shù)據(jù)碼310 前2個位用以定義色度(Chroma)、亮度(Luma)、交流(AC)以及直流(DC)。接 下來的20個位則為霍夫曼碼320,其中每個霍夫曼碼320包含一個可變長度 字碼。而接下來的5個位為符號碼3301,而符號碼之后的5個位為尺寸碼 3302。在本實施例中可將符號碼3301以及尺寸碼3302結合為尺寸符號碼 330。在本發(fā)明實施例中,僅取霍夫曼碼320的20個位中的16個位來說明, 其原因在于, 一般常用的霍夫曼碼為16個位。而本發(fā)明的霍夫曼碼320可 廣充至處理20個位的霍夫曼碼,使本發(fā)明遇16位以上的霍夫曼碼也可進行 角軍碼,使用性更高。
請參閱圖3(b),其為本發(fā)明實施例的霍夫曼表示意圖,其包含地址字 li、符號字段、尺寸字段以及霍夫曼碼字段等字段。其中地址字段、符號字
段及尺寸字段等字段的意義同已知,故不再贅述,而已知霍夫曼表中的可變 長度字碼在本發(fā)明中則是指每一霍夫曼碼中的前1個或前多個位。本發(fā)明所 設計的霍夫曼表和已知霍夫曼表的不同在于本發(fā)明的霍夫曼表將可變長度 字碼字段由霍夫曼碼的字段取代。其意義在于,將不同長度的可變長度字碼 包含于統(tǒng)一為16個位的霍夫曼碼中,使解碼器在不知道可變長度字碼的長 度的情況下仍然可進行解碼。此外,尺寸碼在本發(fā)明中不只代表著可變長度 字碼在霍夫曼碼中的長度,更是本發(fā)明所提出的遮幕碼的重要依據(jù)。其中遮 冪碼由有效位部以及無效位部所組成,且有效位部的位數(shù)目由尺寸碼所決 定。在本發(fā)明中,霍夫曼碼由可變長度字碼以及有效位所組成。圖3的實施
例設定有效位為"0",無效位為"1",再加上地址"0"的尺寸碼為"1", 除了可變長度字碼"1"之外,其余的15個位為有效位"0",因此,所對 應的霍夫曼碼為"1000,0000,0000,0000"。反之,若設定有效位為"1",無 效位為"0",此時霍夫曼碼為"1111,111U 11U111"。
請參閱圖3(c),其為本發(fā)明霍夫曼解碼裝置的第一實施例的電路方塊示 意圖。圖3(c)中表示了總線301以及霍夫曼解碼裝置300。其中總線301用 以傳輸包含于壓縮文件,如JPEG文件,的報頭中形成本發(fā)明霍夫曼表的數(shù) 據(jù)碼310,以便讓霍夫曼解碼裝置300能取得該數(shù)據(jù)碼310。而霍夫曼解碼 裝置300包括總線接口 302,霍夫曼表獲取和處理單元303,霍夫曼存儲 器304,尺寸符號存儲器305,遮幕存儲器306,壓縮比特流處理單元307, 霍夫曼碼處理單元308以及霍夫曼解碼單元309。
其中,總線接口 302用以連f妾該總線301以及霍夫曼解碼裝置300?;?夫曼表獲取和處理單元303用以將所獲得的數(shù)據(jù)碼310分類為霍夫曼碼320、 符號碼3301以及尺寸碼3302(符號碼3301與尺寸碼3302可結合,即尺寸符 號碼330),并依據(jù)尺寸碼3302產(chǎn)生遮幕碼350。霍夫曼存儲器304是用以儲 存霍夫曼碼320。尺寸符號存儲器305用以儲存尺寸符號碼330。遮幕存儲 器306則是用以儲存遮幕碼350。壓縮比特流處理單元307是用以接收待解 碼的壓縮比特流360并使用該遮幕碼350對壓縮比特流360進行遮幕處理。 霍夫曼碼處理單元308則用以使用該遮幕處理結果以及該霍夫曼碼進行邏輯 運算而獲得新霍夫曼碼380。而霍夫曼解碼單元309是用以對壓縮比特流360 進行解碼。
以下詳細說明圖3(c)的電路方塊的運作??偩€301同已知的總線功能, 用以傳送待解碼的壓縮文件,該待解碼的壓縮文件包含待解碼的比特流360 以及前述的數(shù)據(jù)碼310。由總線301傳送的多個數(shù)據(jù)碼310經(jīng)由總線接口 302 被傳送到霍夫曼表獲取和處理單元303。
如圖3(c)所示,于霍夫曼表獲取和處理單元303中將數(shù)據(jù)碼310分為霍 夫曼碼320、符號碼3301以及尺寸碼3302。根據(jù)此尺寸碼而得到遮幕碼350, 其中遮幕碼350包含有效位部以及無效位部且有效位部的位數(shù)目依據(jù)尺寸碼 3302的數(shù)目所決定。接著將霍夫曼碼320、尺寸符號碼330以及遮幕碼350 分別儲存于霍夫曼存儲器304、尺寸符號存儲器305以及遮幕存儲器306。 令壓縮比特流360的依序輸入的16個位進入壓縮比特流處理單元307,并讀 取遮幕存儲器306中的遮幕碼350,對依序輸入的16個位以及遮幕碼350進 行遮幕處理而獲得遮幕處理結果370。
在霍夫曼碼處理單元308中,讀取霍夫曼存儲器304中的霍夫曼碼320, 將其與遮幕處理結果370進行邏輯運算而獲得并輸出新霍夫曼碼380。其中 新霍夫曼碼也包含可變長度字碼。在霍夫曼解碼單元309中,讀取尺寸符號 存儲器305中的尺寸符號碼330以及壓縮比特流360的依序輸入的16個位 并將其與新霍夫曼碼380互相對照,若壓縮比特流360的依序輸入的16個 位與新霍夫曼碼380完全相符,則輸出所對應的尺寸符號碼330。且霍夫曼 碼320中的可變長度字碼與經(jīng)處理后所獲得的新霍夫曼碼380中的可變長度 字碼相同。
以圖3(b)中的霍夫曼表配合圖3(c)電路方塊圖詳細說明本發(fā)明的實施方 式。壓縮比特流代表的是一串可變長度字碼,而所謂的解碼意味著要找出此 串輸入的可變長度字碼中每一可變長度字碼所對應的霍夫曼表上的尺寸及 符號。由于可變長度字碼具有各種不同的位長度,例如,第l個位即是代表 1個可變長度字碼,而第2-6個位代表第2個可變長度字碼,之后第3個可 變長度字碼是由第7-9個位組成等等,但在一般情況下,解碼器無法預先得 知所接收的流中的哪幾個位是代表一個完整的可變長度字碼,因此已知的二 ^位數(shù)解碼方法必須每次處理1個位來進行解碼。
本發(fā)明解碼器通過每次處理16個位的壓縮比特流360來加速解碼的速 度。此16位的待解碼數(shù)據(jù)通過本發(fā)明解碼器的運作可以同時和霍夫曼表內
的多組霍夫曼碼進行對比,以便快速解碼出此16位中的第1個可變長度字 碼所對應的尺寸符號碼。以下說明壓縮比特流與霍夫曼表的對比方法。
假設壓縮比特流360依序輸入的前16個位為"1010,1010,1010,1010"。 圖3(b)的霍夫曼表共有12組霍夫曼碼,此比特流"1010,1010,1010,1010"通過 解碼器的運作同時和該12組霍夫曼碼進行對比,因而可以解碼出所輸入的 16比特流所對應的霍夫曼碼。以地址"0"的數(shù)據(jù)為例說明對比的方法。地 址"O"的數(shù)據(jù)包含尺寸符號碼1、 A,以及霍夫曼碼"1000,0000,0000,0000 "。 接著利用尺寸碼的數(shù)值產(chǎn)生遮幕碼350,方法如下在本發(fā)明中將遮幕碼設 定為16個位,其中遮幕碼包括有效位部以及無效位部且有效位部由尺寸碼 所決定。當尺寸碼為1時,即表示遮幕碼的第1個位為有效位而剩余的15 個位為無效位。如前段所述,假設"0"代表有效位,而"1"代表無效位, 則所獲得的遮幕碼是"0111,1111,1111,1111"。反之,若設定有效位為"l", 無效位為"0"時,此遮幕碼為"誦,0000,0000,0000"。以此類推。尺寸碼 3302表示霍夫曼碼320所包含的可變長度字碼的位數(shù),而在實施例中尺寸碼 3302被應用于遮幕碼350的運算。在此霍夫曼碼320(即
"1000,0000,0000,0000")之中,由于尺寸碼為"1",因此霍夫曼碼320的 第一個位即是可變長度字碼,也就是"1",以此類推。
接著對此遮幕碼"0111,llll,llll,lin"以及壓縮比特流360依序輸入的 16個位(即"1010,1010,1010,1010")進行遮幕處理。本發(fā)明所指的遮幕處理 指將16位的遮幕碼與16位的壓縮比特流進行與門運算或是或門運算。當設 定有效位為0、無效位為1時,使用與門運算進行遮幕處理,而當有效位為 1、無效位為0時,使用或門運算進行遮幕處理,本實施例使用與門運算進 行遮幕處理。經(jīng)過遮幕處理后可獲得遮幕處理結果370為
"0010,1010,1010,1010"。
接著,霍夫曼碼處理單元308讀取霍夫曼存儲器304中的霍夫曼碼
"1000,0000,0000,0000"并將其與前述遮幕處理結果"0010,1010,1010,1010" 進行邏輯運算。本發(fā)明所指的邏輯運算指將本發(fā)明霍夫曼表中的16位的霍 夫曼碼與16位的遮幕處理結果進行或門運算或是與門運算。當設定有效位 為0、無效位為1時,使用或門運算進行邏輯運算,而當有效位為1、無效 位為O時,使用與門運算進行邏輯運算,在本實施例中,此邏輯運算為或門
運算。經(jīng)過邏輯運算后可獲得運算結果"1010,1010,1010,1010",本例中稱 為新霍夫曼碼380,而此新霍夫曼碼380所包含的可變長度字碼仍然為"1"。
霍夫曼解碼單元309讀取尺寸符號存儲器305中的尺寸符號碼330,并 將新霍夫曼碼"1010,1010,1010,1010"與壓縮比特流360的16個位 "1010,1010,1010,1010"進行比較。兩者比較之下是相同的,表示所輸入的 16個位的壓縮比特流中的第1個位代表地址"0"的可變長度字元。接著輸 出地址"0"的尺寸符號碼1、 A。
當然,霍夫曼表中的其它11組數(shù)據(jù)也依據(jù)以上的運算方式被處理并進 行對比。由于此霍夫曼表是預先針對被壓縮的比特流所設計的,因此16位 的輸入流一定會對應到霍夫曼表中某一地址的霍夫曼碼。在以上的實施例 中,既然已經(jīng)對比出地址"0"的霍夫曼碼是對應到輸入比特流的第1個位, 因此其它組的數(shù)據(jù)和輸入比特流的其它位相比較的結果就不會相符。
由于本次被處理的16位的壓縮比特流已經(jīng)有1個位被解碼完成,解碼 器接下來會多接收1個位的壓縮位,使得下一次被處理的壓縮位數(shù)維持為16 個。
此為單組霍夫曼碼的操作流程,但如前文所述,本發(fā)明實際上同時對多 組霍夫曼碼進行處理而獲得多組新霍夫曼碼,使壓縮比特流依序輸入的16 個位可同時與多組數(shù)據(jù)進行對比。以下以圖3(b)中的12組霍夫曼碼來說明 同時對比多組數(shù)據(jù)的完整流程。
假設壓縮比特流360依序輸入的16個位仍為"1010,1010,1010,1010", 將其霍夫曼表中所有的可變長度字碼進行上述處理而獲得12個新霍夫曼碼, 依序為第 一 個為 "IOIO,IOIO,IOIO,IOIO "、 第二個為 "0010,1010,1010,1010" 、 以此類推,在上述對照比較中得知,第一個
新霍夫曼碼與壓縮比特流360依序輸入的16個位互相符合,輸出所對應的 尺寸符號碼l、 A,根據(jù)壓縮比特流360依序輸入的16個位中被解碼的位為 l個位,因此移除被解碼的可變長度字碼的部分,壓縮比特流360依序輸入 的位數(shù)據(jù)變?yōu)?0101,0101,0101,010"共15個位,移除后再由壓縮比特流360 補入1個位,使其保持16個位,假設補入的位數(shù)據(jù)為"0",故壓縮比特流 360依序輸入的新16個位為"0101,0101,0101,0100",其中由存在于壓縮比 特流360內的位數(shù)據(jù)決定壓縮比特流360中補入的位數(shù)據(jù)是什么。
繼續(xù)進行依序輸入的新16個位的解碼,根據(jù)圖3(b)中的霍夫曼表,進 行解碼處理可獲得12個新霍夫曼碼380,依序為第一個為 "IIOI,OIOI,OIOI,OIOO"、第二個為"0001,0101,0101,0100"、第三個為
"0101,0101,0101,0100"、第四個為"0111,1101,0101,0100"......以此類推。
將壓縮比特流360依序輸入的新16個位"0101,0101,0101,0100"與這些新霍 夫曼碼進行對照比較,如果第一組新霍夫曼碼不符合,則繼續(xù)比較下一組, 如果第二組新霍夫曼碼也不符合,在對照比較第三組新霍夫曼碼時發(fā)現(xiàn)兩者 完全符合,則輸出對應的尺寸符號碼5、 D并移除對照符合的可變長度字碼 的部分且由壓縮比特流補入5個位,使其保持16個位以繼續(xù)進行解碼,直 至壓縮比特流360中的位數(shù)據(jù)全部解碼完畢為止。
以上為本發(fā)明的第一實施例的實施流程說明,通常一個霍夫曼表中會有 數(shù)百組霍夫曼碼,在解碼過程中同步處理數(shù)百組霍夫曼碼需要相當龐大的電 路以及硬體設備,導致成本較高的問題,因此提出另一個實施例供使用者在 想要縮小硬體設備成本時選擇。
請參閱圖3(d),其為本發(fā)明第二實施例的結構示意圖。圖3(d)與圖3(c) 不同之處在于霍夫曼解碼單元后另外設置多階段處理單元311以及霍夫曼表 的分割。例如說,此實施例中,由總線301下載數(shù)據(jù)碼310,通過總線接口 302 ^f諸存于霍夫曼表獲取和處理單元303中的霍夫曼表共有500個霍夫曼碼 320,在此實施例的解碼過程中將霍夫曼表分為五個部分,也就是將霍夫曼 存儲器304中的500個霍夫曼碼320分為五組,每組100個霍夫曼碼320。 而尺寸符號存儲器305和遮幕存儲器306的作法也相同,且每一階段處理一 組霍夫曼碼320、尺寸符號碼330以及遮幕碼350。
在壓縮比特流處理單元307中,讀取壓縮比特流360依序輸入的16個 位以及遮幕存儲器306中的第一組遮幕碼350,再進行遮幕處理而獲得100 個遮幕處理結果370。在霍夫曼碼處理單元308中取得霍夫曼存儲器304中 的第一組霍夫曼碼320再進行邏輯運算,可獲得第一組新霍夫曼碼380,其 中共100個新霍夫曼碼380。讀取尺寸符號存儲器305中的第一組尺寸符號 碼330在霍夫曼解碼單元309中進行壓縮比特流360依序輸入的十六個位與 新霍夫曼碼380的對照比較, 一次比較100個新霍夫曼碼380,若是無法找 到符合的新霍夫曼碼380,則輸出0至多階段處理單元311中,以表示無符
合的新霍夫曼碼380。接下來讀取遮幕存儲器306中的第二組遮幕碼且繼續(xù) 進行上述解碼歩驟而獲得第二組新霍夫曼碼380,再將其與壓縮比特流360 依序輸入的16個位進行對照比較,若是在對照比較中仍無法找到符合的新 霍夫曼碼380,則輸出0至多階段處理單元311且繼續(xù)處理下一組霍夫曼碼 320,直至找到符合的新霍夫曼碼380為止;若是找到符合的新霍夫曼碼380 則輸出所對應的尺寸符號碼330至多階段處理單元311中,在多階段處理單 元311中,將獲得的0以及尺寸符號碼330進行或門運算而輸出運算結果, 即所對應的尺寸符號碼330。比較完畢后將壓縮比特流360依序輸入的16個 位中符合的部分移除且由壓縮比特流360補入與移除位數(shù)目相等的位數(shù),以 保持16個位而得以繼續(xù)進行解碼,至壓縮比特流360中的位數(shù)據(jù)都被解碼 完畢為止。
本發(fā)明第二實施例的作法在每次的對照比較中僅比較100個新霍夫曼 碼,相較于圖3(b)的實施例,第二實施例需要的解碼時間比較長,但所需的 硬體設備成本較低,使用者可依需求選用不同的實施例。
綜合以上的描述可以理解,由于本發(fā)明一次處理多組霍夫曼表數(shù)據(jù)的對 比,相較于一次只能對一個位解碼的已知二元樹搜尋法,確實能大幅提升解 碼的速度。
以上所述僅為本發(fā)明的優(yōu)選實施例,并非用以限定本發(fā)明的權利要求, 因此任何其它未脫離本發(fā)明所揭示的精神下所完成的等效改變或修改,均應 包含于本發(fā)明的權利要求內。
權利要求
1、一種霍夫曼解碼方法,用以對壓縮比特流進行解碼而輸出對應所述比特流的多個尺寸符號碼,其中所述壓縮比特流包括多個位,所述方法包括取得對應所述壓縮比特流的霍夫曼表,其中所述霍夫曼表包括多個霍夫曼碼以及多個尺寸符號碼且每一霍夫曼碼包含可變長度字碼,而每一霍夫曼碼對應所述尺寸符號碼,其中每一尺寸符號碼包括尺寸碼以及符號碼;根據(jù)多個所述尺寸碼而獲得多個遮幕碼;分別使用所述多個遮幕碼對所述壓縮比特流的依序被輸入的16個位進行遮幕處理而產(chǎn)生多個遮幕處理結果;分別對所述多個遮幕處理結果與多個所述霍夫曼碼進行邏輯運算而獲得多個新霍夫曼碼,其中每一新霍夫曼碼包含所述可變長度字碼;判斷所述壓縮比特流的所述16位與所述多個新霍夫曼碼中的哪一個新霍夫曼碼相同;以及輸出對應所述可變長度字碼的尺寸符號碼。
2、 如權利要求1所述的霍夫曼解碼方法,其中所述遮幕碼由16個二進 制位所組成并包含有效位部以及無效位部,其中所述有效位部的位數(shù)量等于 所述尺寸碼所代表的數(shù)量。
3、 如權利要求2所述的霍夫曼解碼方法,其中在所述有效位為0時, 所述無效位為1,所述遮幕處理是與門運算而所述邏輯運算是或門運算。
4、 如權利要求2所述的霍夫曼解碼的方法,其中在所述有效位為l時, 所述無效位為0,所述遮幕處理是或門運算而所述邏輯運算是與門運算。
5、 一種霍夫曼解碼裝置,用以對壓縮比特流進行解碼而輸出所述壓縮 比特流所對應的多個尺寸符號碼,其中每一尺寸符號碼包括尺寸碼以及符號 碼,所述霍夫曼解碼裝置包括霍夫曼表獲取和處理單元,用以取得對應所述壓縮比特流的霍夫曼表并 產(chǎn)生多個遮幕碼,其中所述霍夫曼表包括多個霍夫曼碼、多個尺寸符號碼且每一霍夫曼碼包含 可變長度字碼,以及每一尺寸碼代表所述可變長度字碼的位數(shù)量,其中所述每一遮幕碼依據(jù)所述多個尺寸碼的每一個而獲得; 霍夫曼存儲器,連接于所述霍夫曼表獲取和處理單元,用以儲存所述多 個霍夫曼碼;尺寸符號存儲器,連接于所述霍夫曼表獲取和處理單元,用以儲存所述多個尺寸符號碼;遮幕存儲器,連接于所述霍夫曼表獲取和處理單元,用以儲存所述多個 遮幕碼;壓縮比特流處理單元,連接于所述遮幕存儲器,用以接收所述壓縮比特 流,并分別使用多個所述遮幕碼對所述壓縮比特流的依序被接收的16位進 行遮幕處理而產(chǎn)生多個遮幕處理結果;霍夫曼碼處理單元,連接于所述霍夫曼表獲取和處理單元,用以使所述 多個遮幕處理結果與所述多個霍夫曼碼進行邏輯運算而產(chǎn)生多個新霍夫曼 碼且每一新霍夫曼碼包括所述可變長度字碼;霍夫曼解碼單元,連接于所述霍夫曼碼處理單元,用以比較所述壓縮比 特流的16位與哪一個新霍夫曼碼相符,并輸出所述新霍夫曼碼所對應的所 述尺寸符號碼。
6、 如權利要求5所述的霍夫曼解碼裝置,其中所述遮幕碼由16個二進 制位所組成并包含有效位部以及無效位部,其中所述有效位部的位數(shù)量等于 所述尺寸碼所代表的數(shù)量。
7、 如權利要求6所述的霍夫曼解碼裝置,其中在所述有效位為0時, 所述無效位為1,所述遮幕處理是與門運算而所述邏輯運算是或門運算。
8、 如權利要求6所述的霍夫曼解碼裝置,其中在所述有效位為1時, 所述無效位為0,所述遮幕處理是或門運算而所述邏輯運算是與門運算。
全文摘要
本發(fā)明涉及一種霍夫曼解碼方法和霍夫曼解碼裝置。該方法包括取得對應壓縮比特流的霍夫曼表,對霍夫曼表中的碼以及壓縮比特流的16位進行某些處理而獲得多個新霍夫曼碼,其中每一新霍夫曼碼包含可變長度字碼,判斷壓縮比特流的16位與哪一個新霍夫曼碼相同,以及輸出對應可變長度字碼的尺寸符號碼。由于本發(fā)明一次處理多組霍夫曼表數(shù)據(jù)的對比,相較于一次只能對一個位解碼的已知二元樹搜尋法,確實能大幅提升解碼的速度。
文檔編號H04N7/26GK101193295SQ200610163668
公開日2008年6月4日 申請日期2006年12月1日 優(yōu)先權日2006年12月1日
發(fā)明者莊哲圣, 張文聰 申請人:致伸科技股份有限公司