一種基于Huffman解碼的方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種基于Huffman解碼的方法和裝置,該裝置包括數(shù)據(jù)緩存器,一個(gè)或多個(gè)層解碼器,判定器以及碼表查找單元,其中,數(shù)據(jù)緩存器用于接收外部輸入的數(shù)據(jù)流以準(zhǔn)備待解碼數(shù)據(jù),同時(shí)接收所述判定器輸出的偏置量SD以準(zhǔn)備下一次的待解碼數(shù)據(jù);一個(gè)或多個(gè)層解碼器LD1~LDn,用于分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù)配置表對(duì)每層碼字進(jìn)行解碼,從而計(jì)算得出各層的偏移量offset1~offsetn;判定器,用于接收各層解碼器輸出的偏移量,并進(jìn)行優(yōu)先級(jí)判斷,選擇層數(shù)最低并且輸出為合理值的偏移量作為最終偏移量offset,同時(shí)將偏置量SD設(shè)置為該層數(shù);碼表查找單元,用于接收最終偏移量offset,并對(duì)碼表進(jìn)行查找,獲取該最終偏移量對(duì)應(yīng)位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù)。
【專利說明】
一種基于Huff man解碼的方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及圖形圖像處理和數(shù)據(jù)壓縮的技術(shù)領(lǐng)域,具體涉及一種改進(jìn)的基于 Huffman解碼的方法和裝置。
【背景技術(shù)】
[0002] 隨著圖像相關(guān)應(yīng)用越來越多的應(yīng)用,圖像在計(jì)算機(jī)處理中占比越來越高,而由于 圖像本身就具有數(shù)據(jù)量大和運(yùn)算量大的特點(diǎn),尤其是當(dāng)前虛擬現(xiàn)實(shí),深度學(xué)習(xí)技術(shù)的越來 越多的使用,圖像和類圖像數(shù)據(jù)的傳輸本身就成為了計(jì)算瓶頸,所以壓縮算法在這個(gè)過程 中就顯得尤為重要。
[0003] 而根據(jù)香農(nóng)定理,Huffman編碼在無(wú)損編碼中,能夠接近理論上的壓縮極限,在數(shù) 據(jù)處理的硬件系統(tǒng)中,加入Huffman編碼就成為了能夠減少數(shù)據(jù)傳輸量,降低帶寬壓力的一 個(gè)普遍的選擇。但是傳統(tǒng)的Huffman編解碼在硬件實(shí)現(xiàn)過程中,由于需要對(duì)每個(gè)編碼后的數(shù) 值進(jìn)行比較,要么整個(gè)比較的數(shù)目過大,難以進(jìn)行硬件實(shí)現(xiàn),要么采用少量的運(yùn)算單元但是 會(huì)造成硬件邏輯過于復(fù)雜,硬件的總體性能低下。
【發(fā)明內(nèi)容】
[0004] 鑒于上述問題,本發(fā)明提供了一種克服上述問題或者至少部分地解決上述問題的 一種基于Huf f man解碼的方法和裝置。
[0005] 為了解決上述問題,本發(fā)明實(shí)施例還提供了一種基于Huffman編解碼的裝置,包 括:該裝置包括數(shù)據(jù)緩存器,一個(gè)或多個(gè)層解碼器,判定器以及碼表查找單元。
[0006] 其中,所述數(shù)據(jù)緩存器,用于接收外部輸入的數(shù)據(jù)流以準(zhǔn)備待解碼數(shù)據(jù),同時(shí)接收 所述判定器輸出的偏置量SD以準(zhǔn)備下一次的待解碼數(shù)據(jù);
[0007] 所述一個(gè)或多個(gè)層解碼器LD1~LDn,用于分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí) 根據(jù)配置表對(duì)每層碼字進(jìn)行解碼,從而計(jì)算得出各層的偏移量of f set 1~of fsetn,其中,每 層表示每個(gè)不同的碼字長(zhǎng)度;
[0008]所述判定器,用于接收各層解碼器輸出的偏移量off set 1~of fsetn,并進(jìn)行優(yōu)先 級(jí)判斷,選擇層數(shù)最低并且輸出為合理值的偏移量作為最終偏移量offset輸出至所述碼表 查表單元,同時(shí)將偏置量SD設(shè)置為該層數(shù)。
[0009] 所述碼表查找單元,用于接收最終偏移量Of f set,并對(duì)碼表進(jìn)行查找,獲取該最終 偏移量對(duì)應(yīng)位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù)。
[0010] 本發(fā)明實(shí)施例還提供了一種基于Huffman解碼的方法,該方法包括如下步驟:
[0011] (1)接收外部輸入的待解碼數(shù)據(jù);
[0012] (2)分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù)配置表對(duì)每層碼字進(jìn)行解碼,從而 計(jì)算得出各層的偏移量offsetl~offsetn,其中,每層表示每個(gè)不同的碼字長(zhǎng)度;
[0013] (3)接收各層的偏移量off setl~of fsetn,并進(jìn)行優(yōu)先級(jí)判斷,選擇層數(shù)最低并且 輸出為合理值的偏移量作為最終偏移量offset,同時(shí)將偏置量SD設(shè)置為所述層數(shù)進(jìn)行反 饋;
[0014] (4)接收所述最終偏移量offset,并對(duì)碼表進(jìn)行查找,獲取所述最終偏移量off set 對(duì)應(yīng)位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù);
[0015] (5)根據(jù)所述偏置量SD準(zhǔn)備下一次的待解碼數(shù)據(jù),直至數(shù)據(jù)流全部解碼完成。
[0016] 本發(fā)明中的一種基于Huffman編解碼的方法和裝置主要被應(yīng)用于ASIC設(shè)計(jì)領(lǐng)域, 與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點(diǎn):
[0017] 本發(fā)明通過采用一個(gè)或多個(gè)層解碼器LD1~LDn對(duì)每層碼字同時(shí)進(jìn)行并行解碼,再 結(jié)合優(yōu)先級(jí)判斷,能夠低成本、低功耗、高效率的實(shí)現(xiàn)對(duì)解碼的加速。
[0018] 本發(fā)明通過設(shè)置不同的配置表方式,極大的減少了運(yùn)算過程,能夠進(jìn)一步提升性 能。
[0019] 本發(fā)明通過在優(yōu)先級(jí)判斷完成后直接進(jìn)行偏置量SD的反饋,可以將解碼過程提前 一個(gè)硬件時(shí)鐘周期,進(jìn)一步提高了整個(gè)系統(tǒng)的運(yùn)行速度。
[0020] 本發(fā)明所采用的基于Huffman編解碼的方法和裝置在提高解碼效率的同時(shí),更加 適合硬件的實(shí)現(xiàn),能夠取得成本低、并行度高以及計(jì)算速度快的有益技術(shù)效果。
【附圖說明】
[0021]圖1是本發(fā)明實(shí)施例中一建立好的正則Huffman樹的示意圖;
[0022] 圖2是本發(fā)明實(shí)施例的一種基于Huffman解碼的裝置示意圖;
[0023]圖3是根據(jù)本發(fā)明實(shí)施例的一種基于Huffman解碼的方法的流程圖。
【具體實(shí)施方式】
[0024]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0025] 參照?qǐng)D1,為本發(fā)明實(shí)施例中一建立好的正則Huffman樹的示意圖。正則Huffman樹 在某一個(gè)層級(jí)上生成的編碼完全是連續(xù)的,而任何一個(gè)普通的Huffman樹,都可以直接轉(zhuǎn)換 成為正則Huffman樹,僅僅改變每個(gè)數(shù)據(jù)的碼字,而碼字的長(zhǎng)度不會(huì)改變,也不會(huì)影響最終 的壓縮率?;谠揌uffman樹可以生成每個(gè)數(shù)據(jù)的碼字和存儲(chǔ)位置信息,參見表1。其中,碼 字為二進(jìn)制數(shù)字。
[0026] 表1每個(gè)數(shù)據(jù)的碼字和存儲(chǔ)位置信息
[0027]
[0028]由此可見,通過偏移量offset即可找到數(shù)據(jù)的存儲(chǔ)位置Z,進(jìn)而找到對(duì)應(yīng)的數(shù)據(jù), 如上表所示,Z[0] =f,Z[4] =a。
[0029] 而實(shí)際上,位置的確定是根據(jù)層數(shù)(即碼字長(zhǎng)度)遞增的原則和碼字本身的大小, 由小到大進(jìn)行排序。因此,在實(shí)際使用過程中,碼表只需順序存儲(chǔ)數(shù)據(jù),也就是說,碼字、位 置信息與數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系被隱含在該碼表中,此時(shí),位置信息即為碼表的偏移量 offset,通過該偏移量offset可以直接查找碼表進(jìn)而獲取解碼數(shù)據(jù)。
[0030] 由表1可以看出,圖1所示的正則Huffman樹根據(jù)層數(shù)(即碼字長(zhǎng)度)可以被分為三 組:
[0031] 第一組 Gl: 〇(a)
[0032] 第二組G2:0b100 (c),0bl01(e),0bll0(d)
[0033] 第三組 G3:0blll0(a),0bllll(b)
[0034] 根據(jù)該組碼字代表的具體數(shù)值,每一組都包括一最小值min[G]和一最大值max [G],同時(shí),使用每一組的最小值和其碼字所在的存儲(chǔ)位置可以得到每一組中的偏移參數(shù)C [G],具體計(jì)算過程如下:
[0035] 如第一組的最小值為0,數(shù)據(jù)的存儲(chǔ)位置為0,則偏移參數(shù)C[ 1 ]為:
[0036] c[l] =0-0 = 0
[0037] 第二組的最小值為4,數(shù)據(jù)存儲(chǔ)位置從1開始,則偏移參數(shù)C[2]為:
[0038] c[2] = 1-4 = -3
[0039] 上述過程可以直接得到一用于計(jì)算位置Z的配置表,如表2所示。
[0040] 表2配置表
[0041]
[0042] 在表2所示的配置表中,碼字長(zhǎng)度與組G是為了更好的對(duì)解碼過程進(jìn)行說明,而在 實(shí)際使用過程中,配置表只需要存儲(chǔ)最小值min,最大值max和偏移參數(shù)C。
[0043] 上述碼表與配置表的設(shè)置方式,都在縮減存儲(chǔ)量的同時(shí),進(jìn)一步簡(jiǎn)化了索引過程, 降低了硬件成本。
[0044]上述配置表的設(shè)置使得本發(fā)明的基于Huffman的解碼已經(jīng)在很大程度上實(shí)現(xiàn)了對(duì) 硬件的友好,但在硬件設(shè)計(jì)中,存儲(chǔ)變量相對(duì)還是比較消耗資源的,而與或非這種位級(jí)別的 操作消耗比變量的存儲(chǔ)以及比較、加減等運(yùn)算單元要節(jié)省硬件邏輯資源,而且運(yùn)算速度也 要快很多。
[0045]因此,為了使解碼過程中使用的硬件資源更小,在實(shí)現(xiàn)更低功耗的同時(shí),進(jìn)一步提 高運(yùn)行頻率,作為一優(yōu)選實(shí)施例,本發(fā)明在配置表中進(jìn)一步地引入了一計(jì)算掩碼M,在每個(gè) 層解碼器中,掩碼Μ是根據(jù)最小值min和最大值max中變化的bit來決定的,如圖1所示的正則 Huffman數(shù)的第二層,最高位始終為1,其生成的碼字實(shí)質(zhì)上變化的僅為后兩位,即ObOO~ 0bl0,那么對(duì)應(yīng)的掩碼就是Obi 1,也就是3。而最大值max和最小值min也會(huì)根據(jù)掩碼Μ做對(duì)應(yīng) 的調(diào)整,改進(jìn)后的配置表如表3所示。
[0046]表3改進(jìn)后的配置表
[0047]
[0048] 其中,由于圖1所示的正則Huffman樹未包含碼字長(zhǎng)度為2的數(shù)據(jù),因此表3中的x表 示該組不運(yùn)算。
[0049] 通過該配置表即可完成Huffman的解碼。各組解碼同時(shí)進(jìn)行,而當(dāng)有一組比較成功 后,之后的比較結(jié)果就可以不再被使用。
[0050] 參照?qǐng)D2,為本發(fā)明實(shí)施例的一種基于Huffman解碼的裝置的示意圖,該裝置包括 數(shù)據(jù)緩存器,一個(gè)或多個(gè)層解碼器,判定器以及碼表查找單元。
[0051] 其中,數(shù)據(jù)緩存器,用于接收外部輸入的數(shù)據(jù)流以準(zhǔn)備待解碼數(shù)據(jù),同時(shí)還用于接 收判定器輸出的偏置量SD以準(zhǔn)備下一次的待解碼數(shù)據(jù)。
[0052] 一個(gè)或多個(gè)層解碼器,用于分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù)配置表對(duì) 每層碼字進(jìn)行解碼,從而計(jì)算得出各層的偏移量offsetl~offsetn。其中,每層表示每個(gè)不 同的碼字長(zhǎng)度。
[0053]更進(jìn)一步的,每一個(gè)層解碼器LD1~LDn僅接收一種碼字長(zhǎng)度并對(duì)其進(jìn)行解碼。而 層解碼器的總個(gè)數(shù)由待解碼數(shù)據(jù)的最長(zhǎng)的碼字長(zhǎng)度來決定,并且可以根據(jù)需要在設(shè)計(jì)中進(jìn) 行擴(kuò)展。此處,為了便于說明,每個(gè)層解碼器的序號(hào)η表示該層解碼器LDn能夠接收的碼字長(zhǎng) 度。
[0054]判定器,用于接收各層解碼器輸出的偏移量offsetl~offsetn,并進(jìn)行優(yōu)先級(jí)判 斷,選擇層數(shù)最低并且輸出為合理值的偏移量作為最終偏移量offset輸出至碼表查表單 元,同時(shí)將偏置量SD設(shè)置為該層數(shù)。
[0055]碼表查找單元,用于接收最終偏移量of f set,并對(duì)碼表進(jìn)行查找,獲取該最終偏移 量對(duì)應(yīng)位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù)。
[0056] 作為一優(yōu)選實(shí)施例,可以選取表2的配置表進(jìn)行解碼,此時(shí)當(dāng)單個(gè)層解碼器LDn的 輸入值為X時(shí),比較X是否落在該層的最小值min和最大值max之間,如果落在其中,貝lj以X加 該層的偏移參數(shù)C作為該層解碼器LDn的輸出值offsetn,否則輸出一特定標(biāo)記。
[0057] 作為另一優(yōu)選實(shí)施例,還可以選取表3中包含掩碼Μ的配置表進(jìn)行解碼,此時(shí)當(dāng)單 個(gè)層解碼器LDn的輸入值為X時(shí),首先輸入值X與掩碼Μ進(jìn)行與(&)操作,得到一中間值XI,比 較XI是否落在該層的最小值min和最大值max之間,如果落在其中,則以XI加該層的偏移參 數(shù)C作為該層解碼器LDn的輸出值of f s etn,否則輸出一特定標(biāo)記。
[0058]下面將以數(shù)據(jù)流為0b100 0100,數(shù)據(jù)緩存器準(zhǔn)備的待解碼數(shù)據(jù)的最大長(zhǎng)度為4,選 取表3配置表為例,對(duì)該裝置的解碼過程作進(jìn)一步的解釋說明。
[0059]根據(jù)最大長(zhǎng)度需設(shè)計(jì)四個(gè)層解碼器LD1,LD2,LD3和LD4。數(shù)據(jù)緩存器每次均準(zhǔn)備4 位數(shù)據(jù),其第一次準(zhǔn)備的數(shù)據(jù)為OblOOO。
[0060] 各層解碼器LD1,LD2,LD3和LD4分別接收數(shù)據(jù)緩存器輸出的各層碼字,即首位數(shù)據(jù) "Γ輸入層解碼器LD1,前兩位數(shù)據(jù)"10"輸入層解碼器LD2,前三位數(shù)據(jù)"100"輸入層解碼器 LD3,四位數(shù)據(jù)"1000"輸入層解碼器LD4。
[0061] 假定配置表仍為表3所示,首先各層解碼器將其輸入與該層解碼器的掩碼Μ分別進(jìn) 行與(&)操作,每層的層解碼器操作如下:
[0062] LDl:M&0bl = l&0bl = l,
[0063] LD2:M&0bl0 = 0&0bl0 = 0,
[0064] LD3 : M&Ob 100 = 3&0b 100 = 0,
[0065] LD4 : M&Ob 1000 = 1 &0b 1000 = 0,
[0066] 通過表3所示的配置表可知,層解碼器LD1和LD2的操作結(jié)果均未落在其最大值max 和最小值min的區(qū)間內(nèi),因此層解碼器LD1和LD2的輸出為NULL(其中,NULL可以為任意一個(gè) 可以被判斷為不合理的值);而層解碼器LD3和LD4的操作結(jié)果均落在了其最大值max和最小 值min區(qū)間內(nèi),因此層解碼器LD3的輸出值offset3 = 0+C= 1,層解碼器LD4的輸出值offset4 = 0+C = 5〇
[0067] 判定器接收各層解碼器LD1,LD2,LD3和LD4輸出的偏移量offsetl~offset4,選擇 層數(shù)最低并且輸出為合理值的層解碼器LD3的輸出值1作為最終偏移量offset輸出至碼表 查表單元,同時(shí)將偏置量SD設(shè)置為層數(shù)3。
[0068] 碼表查找單元對(duì)碼表進(jìn)行查找,獲取解碼后的數(shù)據(jù)為c,即最終偏移量offset對(duì)應(yīng) 位置的數(shù)據(jù)。
[0069]至此,完成了第一次解碼過程。然后數(shù)據(jù)緩存器接收偏置量SD,其中SD值為3,將其 中待解碼數(shù)據(jù)的前三位移出,并進(jìn)一步從數(shù)據(jù)流中補(bǔ)充三位數(shù)據(jù)以作為下一次待解碼數(shù) 據(jù)。
[0070] 最終得到數(shù)據(jù)流0b100 0100解碼后數(shù)據(jù)為cfc。
[0071] 由上述過程還可以看出,判定器在得到結(jié)果后會(huì)直接將偏置量SD反饋回?cái)?shù)據(jù)緩存 器,這樣比在獲取最終結(jié)果時(shí)才生成偏置量要提前一個(gè)硬件時(shí)鐘(cycle)以進(jìn)行運(yùn)算,進(jìn)一 步提高了整個(gè)系統(tǒng)的運(yùn)行速度。
[0072] 參照?qǐng)D3,為根據(jù)本發(fā)明實(shí)施例的改進(jìn)哈夫曼解碼方法的流程圖。
[0073] (1)接收外部輸入的待解碼數(shù)據(jù)。
[0074] (2)分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù)配置表對(duì)每層碼字進(jìn)行解碼,從而 計(jì)算得出各層的偏移量offsetl~offsetn。其中,每層表示每個(gè)不同的碼字長(zhǎng)度。
[0075] (3)接收各層的偏移量off set 1~off setn,并進(jìn)行優(yōu)先級(jí)判斷,選擇層數(shù)最低并且 輸出為合理值的偏移量作為最終偏移量offset,同時(shí)將偏置量SD設(shè)置為該層數(shù)進(jìn)行反饋。 [0076] (4)接收最終偏移量off set,并對(duì)碼表進(jìn)行查找,獲取該最終偏移量對(duì)應(yīng)位置的數(shù) 據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù)。
[0077] (5)根據(jù)偏置量SD準(zhǔn)備下一次的待解碼數(shù)據(jù),直至數(shù)據(jù)流全部解碼完成。
[0078] 作為一優(yōu)選實(shí)施例,可以選取表2的配置表進(jìn)行解碼,此時(shí)當(dāng)所述碼字為X時(shí),比較 X是否落在該層的最小值min和最大值max之間,如果落在其中,則以X加該層的偏移參數(shù)C作 為該層的偏移量of f setn輸出,否則輸出一特定標(biāo)記。
[0079] 作為另一優(yōu)選實(shí)施例,還可以選取表3中包含掩碼Μ的配置表進(jìn)行解碼,此時(shí)當(dāng)所 述碼字為X時(shí),首先輸入值X與掩碼Μ進(jìn)行與(&)操作,得到一中間值XI,比較XI是否落在該層 的最小值min和最大值max之間,如果落在其中,則以XI加該層的偏移參數(shù)C作為該層的偏移 量offsetn輸出,否則輸出一特定標(biāo)記。
[0080] 此外,作為另一優(yōu)選實(shí)施例,在步驟(3)中,所述優(yōu)先級(jí)判斷完成后,直接將偏置量 SD反饋以準(zhǔn)備下一次的待解碼數(shù)據(jù),這樣進(jìn)一步提高了整個(gè)系統(tǒng)的運(yùn)行速度。
[0081] 以上對(duì)本發(fā)明所提供的一種可擴(kuò)展智能圖像處理加速裝置和加速方法進(jìn)行了詳 細(xì)介紹,上述記載中應(yīng)用了具體示例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例 的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員, 依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi) 容不應(yīng)理解為對(duì)本發(fā)明的限制,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所 有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
【主權(quán)項(xiàng)】
1. 一種基于Huf fman解碼的裝置,其特征在于:該裝置包括數(shù)據(jù)緩存器,一個(gè)或多個(gè)層 解碼器,判定器以及碼表查找單元, 其中,所述數(shù)據(jù)緩存器,用于接收外部輸入的數(shù)據(jù)流以準(zhǔn)備待解碼數(shù)據(jù),同時(shí)接收所述 判定器輸出的偏置量SD以準(zhǔn)備下一次的待解碼數(shù)據(jù); 所述一個(gè)或多個(gè)層解碼器LDl~LDn,用于分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù) 配置表對(duì)每層碼字進(jìn)行解碼,從而計(jì)算得出各層的偏移量offsetl~offsetn,其中,每層表 示每個(gè)不同的碼字長(zhǎng)度; 所述判定器,用于接收各層解碼器輸出的偏移量off set 1~off setn,并進(jìn)行優(yōu)先級(jí)判 斷,選擇層數(shù)最低并且輸出為合理值的偏移量作為最終偏移量offset,同時(shí)將偏置量SD設(shè) 置為該層數(shù); 所述碼表查找單元,用于接收最終偏移量offset,并對(duì)碼表進(jìn)行查找,獲取該最終偏移 量對(duì)應(yīng)位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù)。2. 根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述配置表包括每層的最小值min,最大值 max和偏移參數(shù)C,當(dāng)單個(gè)層解碼器LDn的輸入值為X時(shí),所述層解碼器LDn比較X是否落在該 層的最小值min和最大值max之間,如果落在其中,則以X加該層的偏移參數(shù)C作為該層解碼 器LDn的偏移量offsetn輸出,否則輸出一特定標(biāo)記。3. 根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述配置表包括每層的掩碼M,最小值min, 最大值max和偏移參數(shù)C,當(dāng)單個(gè)層解碼器LDn的輸入值為X時(shí),所述層解碼器LDn將輸入值X 與掩碼M進(jìn)行與操作,得到一中間值XI,比較Xl是否落在該層的最小值min和最大值max之 間,如果落在其中,則以Xl加該層的偏移參數(shù)C作為該層解碼器LDn的偏移量offsetn輸出, 否則輸出一特定標(biāo)記。4. 根據(jù)權(quán)利要求3所述的裝置,其特征在于:所述掩碼M是根據(jù)該層的最小值min和最大 值max中變化的位來決定的。5. 根據(jù)權(quán)利要求1所述的裝置,其特征在于:所述判定器在完成判斷后會(huì)直接將偏置量 SD反饋回所述數(shù)據(jù)緩存器。6. -種基于Huffman解碼的方法,其特征在于,所述方法包括如下步驟: (1) 接收外部輸入的待解碼數(shù)據(jù); (2) 分別接收待解碼數(shù)據(jù)的各層碼字,同時(shí)根據(jù)配置表對(duì)每層碼字進(jìn)行解碼,從而計(jì)算 得出各層的偏移量offsetl~offsetn,其中,每層表示每個(gè)不同的碼字長(zhǎng)度; (3) 接收各層的偏移量offsetl~offsetn,并進(jìn)行優(yōu)先級(jí)判斷,選擇層數(shù)最低并且輸出 為合理值的偏移量作為最終偏移量of f set,同時(shí)將偏置量SD設(shè)置為所述層數(shù)進(jìn)行反饋; (4) 接收所述最終偏移量offset,并對(duì)碼表進(jìn)行查找,獲取所述最終偏移量offset對(duì)應(yīng) 位置的數(shù)據(jù),該數(shù)據(jù)即為解碼后的數(shù)據(jù); (5) 根據(jù)所述偏置量SD準(zhǔn)備下一次的待解碼數(shù)據(jù),直至數(shù)據(jù)流全部解碼完成。7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述配置表包括每層的最小值min,最大值 max和偏移參數(shù)C,所述步驟⑵還包括:當(dāng)所述碼字為X時(shí),比較X是否落在該層的最小值min 和最大值max之間,如果落在其中,則以X加該層的偏移參數(shù)C作為該層的偏移量offsetn輸 出,否則輸出一特定標(biāo)記。8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述配置表包括每層的掩碼M,最小值min, 最大值max和偏移參數(shù)C,所述步驟(2)還包括:當(dāng)所述碼字為X時(shí),將碼字X與掩碼M進(jìn)行與操 作,得到一中間值Xl,比較Xl是否落在該層的最小值min和最大值max之間,如果落在其中, 則以Xl加該層的偏移參數(shù)C作為該層的偏移量offsetn輸出,否則輸出一特定標(biāo)記。9. 根據(jù)權(quán)利要求8所述的方法,其特征在于:所述掩碼M是根據(jù)該層的最小值min和最大 值max中變化的位來決定的。10. 根據(jù)權(quán)利要求6所述的方法,其特征在于:在步驟(3)中,所述優(yōu)先級(jí)判斷完成后,直 接將偏置量SD反饋以準(zhǔn)備下一次的待解碼數(shù)據(jù)。
【文檔編號(hào)】H04N19/423GK105933704SQ201610231984
【公開日】2016年9月7日
【申請(qǐng)日】2016年4月15日
【發(fā)明人】張彥剛
【申請(qǐng)人】張彥剛