国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

LZMA壓縮算法FPGA硬件實(shí)現(xiàn)

2015-12-20 05:30李冰張林劉勇
關(guān)鍵詞:壓縮算法字符區(qū)間

李冰,張林,劉勇

(1.東南大學(xué) 集成電路學(xué)院,南京210018;2.東南大學(xué) 成賢學(xué)院,南京210018)

隨著信息和通信技術(shù)的迅猛發(fā)展,龐大的數(shù)據(jù)必須進(jìn)行有效的壓縮,才能減少數(shù)據(jù)交換量,最大限度地利用有限的數(shù)據(jù)傳輸帶寬.無損壓縮要求對壓縮的數(shù)據(jù)進(jìn)行重構(gòu)(解壓縮)后原來的數(shù)據(jù)完全相同,具有高保真性的無損壓縮被大量應(yīng)用到服務(wù)器和工作站等大數(shù)據(jù)處理系統(tǒng)中,IBM和百度等公司均對其做過積極研究.LZMA壓縮算法是LZ77壓縮算法的一個改進(jìn)版本,由Pavlov于1998年發(fā)明,目前在7zip壓縮算法中被作為默認(rèn)的壓縮算法[1-2].

雖然LZMA能夠提供較高的壓縮率,但處理過程中需要大量的隨機(jī)訪問存儲器(RAM,Random Access Memory),并且會耗費(fèi)較多CPU資源.對海量數(shù)據(jù)進(jìn)行處理時,長時間占用大量CPU資源,使得在執(zhí)行LZMA數(shù)據(jù)壓縮的同時進(jìn)行其他操作變成了難題.

目前一個高性能FPGA中包含了上千個獨(dú)立的雙端口RAM塊,一個或多個的內(nèi)嵌處理器以及海量的可配置資源.盡管這些資源相比CPU的工作頻率要慢很多,但卻可以提供高性能的并行運(yùn)算,從而使得加速LZMA壓縮算法成為了可能.雖然國內(nèi)外已有眾多的關(guān)于數(shù)據(jù)無損壓縮加速的電路實(shí)現(xiàn)方案,但卻不能在支持高壓縮帶寬的同時,提供很好的壓縮比.本文主要針對LZMA算法的FPGA硬件實(shí)現(xiàn)進(jìn)行了研究,在高速壓縮的同時提供更好的壓縮比例.

1 LZMA算法

LZMA壓縮算法的結(jié)構(gòu)與Deflate算法極其相似[3-4],只是將其中的Huffman編碼替代成了區(qū)間編碼,值得注意的是區(qū)間編碼是一種基于整數(shù)運(yùn)算的概率編碼,其壓縮效果十分接近數(shù)據(jù)的熵值.在LZMA算法中,首先由LZ77壓縮算法在搜索緩存(search buffer)中尋找與前向緩存(look-ahead buffer)中匹配最長的字符串,然后輸出一個關(guān)于(DIS,LEN,LIT)的標(biāo)識.其中,DIS代表了 lookahead buffer中與search buffer中相匹配的兩組數(shù)據(jù)首個字節(jié)之間的距離,最大的值取決于search buffer的大小;LEN代表了最大的匹配長度,通常是一個較小的數(shù)值;LIT代表下一個字符,通常是一個ASCII編碼值[5-7].當(dāng)LZ77壓縮算法完成對數(shù)據(jù)的第1次壓縮后,區(qū)間編碼根據(jù)不同的輸出數(shù)據(jù)流采用不同的壓縮策略,以便解壓的時候識別[8].

如圖1所示,是一臺核心為 Core i3-2100 CPU@3.1 GHz,內(nèi)存為4 GB的工作站全負(fù)荷運(yùn)算時,LZMA-SDK_4.26[9]的數(shù)據(jù)吞吐測試結(jié)果曲線圖,其平均的壓縮速率僅為10~20 Mb/s.

圖1 LZMA軟件算法性能測試圖Fig.1 Performance testing image of software-based LZMA algorithm

在LZMA壓縮中,數(shù)據(jù)流都是比特形式的,數(shù)據(jù)流被分成不同種類的數(shù)據(jù)包,經(jīng)過區(qū)間編碼后變成限定區(qū)間內(nèi)的某一個數(shù)據(jù)后輸出.如表1所示,在LZMA算法中共有7種數(shù)據(jù)類型,為了將資源消耗控制在可接受的范圍內(nèi),本文限定LZMA壓縮的數(shù)據(jù)格式僅為前2種.

表1 LZMA文件包數(shù)據(jù)類型Table1 Data types in LZMA packages

2 硬件設(shè)計(jì)

根據(jù)LZMA的壓縮流程,本文將實(shí)現(xiàn)電路劃分為3個部分:LZ77壓縮控制器、區(qū)間編碼控制器和數(shù)據(jù)讀出控制器.

如圖2所示,LZ77壓縮控制器將寫入的數(shù)據(jù)進(jìn)行第1次壓縮,并將壓縮后的編碼數(shù)據(jù)流向后傳輸;區(qū)間編碼控制器按照既定壓縮編碼進(jìn)一步壓縮數(shù)據(jù);數(shù)據(jù)讀出控制器將區(qū)間編碼控制器輸出的數(shù)據(jù)拼接成更合理的數(shù)據(jù)格式,以適應(yīng)外部高速總線,并在數(shù)據(jù)讀出控制器中添加了數(shù)據(jù)緩沖存儲,保證了外部高速總線的高利用率.

圖2 LZMA硬件電路結(jié)構(gòu)圖Fig.2 Structure image of LZMA hardware circuit

2.1 LZ77壓縮控制器

如圖3所示,LZ77壓縮控制器包括:數(shù)據(jù)讀入緩存、Hash表存儲模塊和LZ77壓縮算法控制模塊.

數(shù)據(jù)讀入緩存:采取了乒乓RAM的方式對需要壓縮的數(shù)據(jù)進(jìn)行讀取.當(dāng)一個數(shù)據(jù)塊中的數(shù)據(jù)正在被壓縮時,通過握手信號通知外部總線,向另一個數(shù)據(jù)塊存儲區(qū)域中寫入下一個將壓縮的數(shù)據(jù)信息,通過交替的向數(shù)據(jù)讀入緩存中寫入數(shù)據(jù),保證LZ77壓縮算法控制模塊不需要等待數(shù)據(jù),實(shí)現(xiàn)不間斷地對數(shù)據(jù)進(jìn)行處理.Hash表存儲模塊:存儲已編碼字符的信息.一系列的測試結(jié)果[10]表明在搜索深度為4時,LZ77壓縮算法的效率已經(jīng)達(dá)到極限范圍.因此,設(shè)計(jì)中沒有采用兩個RAM實(shí)現(xiàn)多級鏈表(以往的目的是減少資源),而是使用4個Read-First模式的RAM級聯(lián),這樣可以在同一個讀周期內(nèi)讀取多個Hash值,減少多次搜索對RAM進(jìn)行操作的時間,從而達(dá)到加速的目的;并且可以根據(jù)搜索深度的配置使能相關(guān)的RAM.LZ77壓縮算法控制模塊:產(chǎn)生上述兩個模塊的控制信號,對數(shù)據(jù)流按照LZ77算法進(jìn)行壓縮.

圖3 LZ77壓縮控制器電路結(jié)構(gòu)Fig.3 Circuit structure of LZ77 compress controller

圖4所示為LZ77壓縮算法控制模塊中狀態(tài)機(jī)的狀態(tài)跳轉(zhuǎn)圖,在該狀態(tài)機(jī)中主要包括以下的8個狀態(tài).

圖4 LZ77_FSM狀態(tài)跳轉(zhuǎn)圖Fig.4 State transition image of LZ77_FSM

1)INIT:LZ77壓縮算法控制器進(jìn)行復(fù)位的周期,用于對Hash表存儲模塊進(jìn)行初始化,該狀態(tài)同步輸出區(qū)間編碼控制器的初始化信號.

2)WAIT_DMA:LZ77壓縮算法控制模塊等待外部接口信號握手信號,當(dāng)握手信號有效時進(jìn)行下一步操作,否則在該狀態(tài)下繼續(xù)等待.

3)WAIT_SIZE:從總線上讀取數(shù)據(jù),用于獲取輸入數(shù)據(jù)塊的大小.

4)LZ77_BEGIN:根據(jù)壓縮的當(dāng)前位置向look-ahead buffer中填充新字符,并對前3個字節(jié)進(jìn)行Hash變換,根據(jù)Hash存儲模塊的返回值區(qū)分當(dāng)前的是新字符還是重復(fù)字符串.

5)LZ77_COMPLETE:當(dāng)壓縮位置等于或者超出了壓縮數(shù)據(jù)塊大小的時候,則跳轉(zhuǎn)到該狀態(tài),若此時數(shù)據(jù)交換接口通知已完成數(shù)據(jù)壓縮,則跳轉(zhuǎn)到INIT狀態(tài),否則跳轉(zhuǎn)到WAIT_SIZE狀態(tài).

6)LAST_BYTE:當(dāng)前壓縮的位置為最后一個字節(jié),直接進(jìn)行新字符輸出,并且不對字典進(jìn)行相關(guān)的更新,跳轉(zhuǎn)到LZ77_COMPLETE狀態(tài).

7)REPEAT:跳轉(zhuǎn)到該狀態(tài)下,表示是一個重復(fù)字串,在該狀態(tài)下進(jìn)行字符串的匹配,首先讀取當(dāng)前指針?biāo)趨^(qū)間的8 B數(shù)據(jù),并且按照指針對齊進(jìn)行匹配,在這個地方有可能只能匹配1 B,而后的過程中從數(shù)據(jù)讀入緩存中每次讀取8 B的數(shù)據(jù)(本設(shè)計(jì)中總線寬度是64,所以設(shè)定數(shù)據(jù)讀入緩存的數(shù)據(jù)寬度也為64,即8 B),與 look-ahead buffer中的數(shù)據(jù)進(jìn)行比對,并根據(jù)比對結(jié)果決定是否繼續(xù);在該過程中根據(jù)搜索深度進(jìn)行相應(yīng)次數(shù)的搜索,并在匹配的同時對Hash表存儲模塊中的數(shù)據(jù)進(jìn)行更新;當(dāng)找尋到最佳匹配長度時則生成相應(yīng)的FLAG_repeat,LEN,DIS信息輸出(信號MATCH_BYTE和PREV_BYTE是區(qū)間編碼需要的).

8)NEW:跳轉(zhuǎn)到該狀態(tài)下,表示當(dāng)前處理的是一個新字符,輸出信號 FLAG_new和 NEW_char;若上次輸出的是重復(fù)字串編碼,此時輸出信號 FLAG_new_after_repeat和 NEW_char.

2.2 區(qū)間編碼控制器

在LZ77壓縮控制器輸出壓縮的編碼后由區(qū)間編碼控制器進(jìn)一步對數(shù)據(jù)流進(jìn)行二次壓縮[11],如圖5所示為區(qū)間編碼控制器的結(jié)構(gòu)圖,其中區(qū)間編碼算法控制模塊用于進(jìn)一步的壓縮和編碼,RANGE_RAM模塊則是用于存儲相關(guān)的編碼概率信息,關(guān)于 RANGE_RAM區(qū)間分配如表2所示.

圖5 區(qū)間編碼控制電路結(jié)構(gòu)圖Fig.5 Structure image of range encoder controller circuit

表2 RANGE_RAM中區(qū)間分配Table2 Interval distribution in RANGE_RAM

圖6所示是區(qū)間編碼算法控制模塊工作的簡要流程圖,各個狀態(tài)進(jìn)行的操作以及狀態(tài)間跳轉(zhuǎn)關(guān)系如下所述.

1)CHOOSE:根據(jù)緩存中的LZ77編碼選擇進(jìn)一步編碼的方式,當(dāng)前指針對應(yīng)字符是新字符時,則跳轉(zhuǎn)到LIT_ENC狀態(tài)下;當(dāng)前指針對應(yīng)字符是新字符,且上一狀態(tài)FLAG_repeat信號有效時,則跳轉(zhuǎn)到 LITMATCHED_ENC狀態(tài)下;當(dāng)FLAG_repeat信號有效時,即當(dāng)前指針為首地址的字符串為重復(fù)字串,則跳轉(zhuǎn)到LEN_ENC狀態(tài);當(dāng)所有的編碼結(jié)束后則跳轉(zhuǎn)到FLUSH狀態(tài)下.

2)LIT_ENC:對新字符進(jìn)行壓縮編碼,首先對isMatch進(jìn)行編碼,進(jìn)一步的根據(jù)litprobs和當(dāng)前的NEW_cha進(jìn)行區(qū)間編碼,編碼完成后重新跳回到CHOOSE狀態(tài).其中l(wèi)itprobs按照如下的關(guān)系計(jì)算:

圖6 區(qū)間編碼控制器狀態(tài)轉(zhuǎn)變Fig.6 State transition of range encoder controller

litprobs=PREV_BYTE?5*0x300

3)LITMATCHED_ENC:用于對重復(fù)字串后的新字符進(jìn)行壓縮編碼,編碼根據(jù)PREV_BYTE、MATCH_BYTE和當(dāng)前的NEW_char進(jìn)行區(qū)間編碼,編碼完成后重新跳回到CHOOSE狀態(tài)下.

4)LEN_ENC:對重復(fù)長度LEN進(jìn)行壓縮編碼.首先針對isMatch和isRep進(jìn)行編碼,進(jìn)一步地根據(jù)LEN值選擇choice1或choice2進(jìn)行編碼,并且同時確定采用LOW,MID和HIGH中的一種編碼,編碼完成后跳轉(zhuǎn)到posSlot_ENC狀態(tài)下.

5)posSlot_ENC:對DIS進(jìn)行變換,并對返回值posSlot進(jìn)行編碼.根據(jù) DIS變換的返回值posSlot有選擇地進(jìn)行狀態(tài)跳轉(zhuǎn):當(dāng)4≤posSlot<14時,跳轉(zhuǎn)到posEncoder狀態(tài);當(dāng)posSlot≥14時,則跳轉(zhuǎn)到DIRECTBITS_ENC和posAlignEncoder狀態(tài);若 posSlot不滿足上述情況,跳回 CHOOSE狀態(tài).

6)posEncoder:根據(jù) posSlot計(jì)算 footerBits,base和posReduced;并且編碼posReduced,編碼完成后跳轉(zhuǎn)到CHOOSE狀態(tài)下.其中footerBits,base和posReduced按照如下的關(guān)系計(jì)算:

footerBits=((posSlot?1)-1)

base=((2|(posSlot&1))?footerBits)

posReduced=pos-base

7)DIRECTBITS_ENC和 posAlignEncoder:根據(jù) posSlot計(jì)算 footerBits,base 和 posReduced;并且編碼posReduced低四位的值,編碼完成后跳轉(zhuǎn)到CHOOSE狀態(tài).

8)Flush:最后進(jìn)行區(qū)間編碼器編碼輸出.

9)BIT_ENC:按照比特進(jìn)行編碼,當(dāng)區(qū)間值小于0xFFFFFF時,跳轉(zhuǎn)到ShiftLow狀態(tài)中,并且此時記憶當(dāng)前的狀態(tài).

10)ShiftLow:當(dāng)區(qū)間下邊界小于0xFF000000或大于0xFFFFFFFF時,輸出區(qū)間的低八位作為區(qū)間編碼,當(dāng)完成輸出后跳回到之前記憶的狀態(tài)中繼續(xù)執(zhí)行.

2.3 數(shù)據(jù)讀出控制器

LZMA壓縮后的數(shù)據(jù)是按照字節(jié)輸出的,需要進(jìn)一步將數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成適合在外部數(shù)據(jù)總線上傳輸?shù)母袷?圖7所示是將字節(jié)型數(shù)據(jù)組包成64 b位寬的數(shù)據(jù)讀出控制器.數(shù)據(jù)讀出控制器中添加了數(shù)據(jù)讀出緩存,與數(shù)據(jù)讀入緩存一樣,其中的數(shù)據(jù)讀出緩存中使用了乒乓方式對壓縮后的數(shù)據(jù)進(jìn)行讀出,使壓縮可以不間斷地執(zhí)行;只有當(dāng)數(shù)據(jù)滿足可傳輸?shù)臈l件時,控制器才會通知外部接口對數(shù)據(jù)進(jìn)行讀出操作,這樣不需一直占用外部總線用以數(shù)據(jù)傳輸,可以有效地提高外部總線利用率.

圖7 數(shù)據(jù)讀出控制電路結(jié)構(gòu)圖Fig.7 Structure image of read-out controller circuit

數(shù)據(jù)讀出需要滿足的條件:

1)一個數(shù)據(jù)緩存裝置中數(shù)據(jù)已存儲滿,輸出握手信號,通知外部接口可以從SEND_OUT數(shù)據(jù)總線上讀出數(shù)據(jù),同時輸出本次讀出數(shù)據(jù)的大小;

2)當(dāng)前對于輸入文件的壓縮已經(jīng)結(jié)束,不管當(dāng)前的數(shù)據(jù)存儲裝置中數(shù)據(jù)是否已滿,都將數(shù)據(jù)全部讀出,輸出握手信號,通知外部接口從SEND_OUT數(shù)據(jù)總線上讀出數(shù)據(jù),同時輸出本次讀出數(shù)據(jù)的大小,并且通過壓縮完成信號,通知外部接口本次壓縮已經(jīng)結(jié)束.

2.4 LZMA壓縮電路結(jié)構(gòu)

圖8所示的LZMA壓縮電路是由上述3個子模塊組成,圖中相關(guān)信號定義和描述如表3所示.模塊采用硬件Verilog開發(fā),使用Virtex-6 FPGA ML605開發(fā)套件[12-13]作為實(shí)驗(yàn)平臺,能夠運(yùn)行的最高頻率為159 MHz.

圖8 LZMA硬件電路結(jié)構(gòu)圖Fig.8 Structure image of LZMA hardware circuit

表3 LZMA壓縮電路端口列表Table3 Ports lists of LZMA compression circuit

3 測試與性能

圖9是本文提出的LZMA壓縮算法硬件實(shí)現(xiàn)的一種典型應(yīng)用系統(tǒng),LZMA作為系統(tǒng)的一個協(xié)處理器,當(dāng)進(jìn)行數(shù)據(jù)壓縮時,PC通過PCIE高速總線接口由DMA_1向LZMA壓縮電路中寫入待壓縮的數(shù)據(jù),當(dāng)完成數(shù)據(jù)的壓縮后,將數(shù)據(jù)緩存到DMA_2中,經(jīng)由PCIE向PC請求數(shù)據(jù)存儲,將壓縮的數(shù)據(jù)以LZMA的標(biāo)準(zhǔn)格式存儲到磁盤中的指定位置[14].在壓縮的過程中PC只需要在壓縮的初期對源文件和目標(biāo)文件進(jìn)行指定的配置即可,不會大量占用CPU資源;并且只在需要數(shù)據(jù)總線時才會請求獨(dú)占數(shù)據(jù)總線,不會影響系統(tǒng)中其他應(yīng)用的正常運(yùn)行.

選取Virtex-6 FPGA實(shí)驗(yàn)平臺,測試了本文中LZMA算法硬件實(shí)現(xiàn)電路的功能和性能,所設(shè)計(jì)的硬件電路綜合后的最大主頻為159 MHz,集成了PCIE接口與 DMA功能,設(shè)定工作頻率為125 MHz,采用 Calgary Corpus標(biāo)準(zhǔn)測試文件[15]和一些其他文本文件測試;與之相比的是在一臺核心為Intel Corei3-2100 CPU@3.10 GHz工作站上全負(fù)荷運(yùn)行的軟件LZMA算法.表4中的測試數(shù)據(jù)表明,在獲取同等壓縮率的同時,LZMA算法硬件實(shí)現(xiàn)電路取得了更快的壓縮速率,平均的壓縮速率約比基于軟件的LZMA壓縮算法快了10倍,以時鐘作為衡量標(biāo)準(zhǔn)時,相比軟件單時鐘可以處理高達(dá)200倍的數(shù)據(jù).測試表明所設(shè)計(jì)的LZMA算法硬件實(shí)現(xiàn)電路不僅有效解決了現(xiàn)有軟件LZMA壓縮算法存在的問題,同時也大大的降低了功耗.

圖9 LZMA硬件電路典型應(yīng)用Fig.9 Typical applications of LZMA hardware circuit

表4 LZMA算法硬件實(shí)現(xiàn)電路性能測試表Table4 Performance testing table of hardware implementation circuit of LZMA algorithm

4 結(jié)束語

本文在分析LZMA壓縮算法的基礎(chǔ)上,提出了一種基于FPGA實(shí)現(xiàn)的LZMA壓縮算法硬件電路,經(jīng)實(shí)驗(yàn)驗(yàn)證表明:

1)與其他現(xiàn)有的數(shù)據(jù)硬件壓縮方式相比擁有更高的壓縮率;

2)在取得等同壓縮速率的同時能夠更為有效地節(jié)約有限的數(shù)據(jù)帶寬,更加符合大數(shù)據(jù)處理中對于存儲和傳輸帶寬的需求;

3)本文通過合理利用FPGA中的雙端口RAM、流水線結(jié)構(gòu)等實(shí)現(xiàn)LZMA硬件電路,其壓縮速率比軟件LZMA算法的壓縮速率提高了10倍;

4)完全兼容標(biāo)準(zhǔn)的7zip文件格式,可以靈活地集成到其他的系統(tǒng)中.

到目前為止,只是完成了基于FPGA的驗(yàn)證,并且所提出的LZMA算法硬件實(shí)現(xiàn)方式中,區(qū)間編碼控制器按照比特方式進(jìn)行編碼,因此編碼效率較低,沒有完全體現(xiàn)LZ77壓縮控制器的性能.今后將進(jìn)一步提升區(qū)間編碼控制器的性能,并選取合適的工藝庫,采用片上集成的硬件電路來驗(yàn)證所提出的LZMA算法的硬件實(shí)現(xiàn)方式的性能.

References)

[1] Salomon D.Data compression:the complete reference[M].4th ed.London:Springer,2007:241-246.

[2] Pavlov I.7z format[EB/OL].US:Igor Pavlov,2013[2014-03-10].http://www.7-zip.org/7z.html.

[3] Klausman.Gzip,Bzip2 and LZMA compared[EB/OL].US:CEST,2008[2014-03-10].http://blog.i-no.de/archives/2008/05/08/.

[4] Rigler S,Bishop W,Kennings A.FPGA-based lossless data compression using Huffman and LZ77 algorithms[C]//Electrical and Computer Engineering.Canada:CCECE,2007:1235-1238.

[5] Ziv J,Lempel A.Universal algorithm for sequential data compression[J].IEEE Transactions on Information Theory,1977,IT-23(3):337-343.

[6] Ranganathan N,Henriques S.High-speed VLSI designs for Lempel-Ziv-based data compression[J].IEEE Transactions on Circuits and Systems II:Analog and Digital Signal Processing,1993,40(2):96-106.

[7] Shcherbakov I,Weis C,Wehn N.A high-performance FPGA-based implementation of the LZSS compression algorithm[C]//Data Compression Conference(DCC).Washington,DC:IEEE,2012:449-453.

[8] Martin G N N.Range encoding:an algorithm for removing redundancy from a digitized message[C]//IERE Conference Proceedings.London:IERE,1979,43:187-197.

[9] Pavlov I.LZMA SDK[EB/OL].US:Igor Pavlov,2013[2014-03-10].http://www.7zip.org/sdk.html.

[10] 孫圣.一種基于FPGA的Defalte壓縮算法研究與實(shí)現(xiàn)[D].桂林:桂林理工大學(xué),2010.Sun S.A research and implementation of Deflate compression algorithm on FPGA[D].Guilin:Guilin University of Technology,2010(in Chinese).

[11] Shcherbakov I,Weis C,When N.A parallel adaptive range coding compressor:algorithm,F(xiàn)PGA prototype,evaluation[C]//Data Compression Conference(DCC).Piscataway,NJ:IEEE,2012,119-128.

[12] Xilinx.Xilinx FPGA[EB/OL].US:Xilinx,2011[2014-03-10].http://www.xilinx.com/products/silicon-devices/fpga/index.htm.

[13] Xilinx.ML605 Hardware User Guide[EB/OL].US:Xilinx,2011[2014-03-10].http://www.xilinx.com/support/documentation/boards_and_kits/ug534.pdf

[14] Leavline E J,Singh D A A G.Hardware implementation of LZMA data compression algorithm[J].International Journal of Applied Information Systems(IJAIS),2013,5(4):449-453.

[15] Calgary Corpus.Calgary corpus database[EB/OL].US:Calgary Corpus,1987[2014-03-10].http://en.wikipedia.org/wiki/Calgary_Corpus.

猜你喜歡
壓縮算法字符區(qū)間
你學(xué)會“區(qū)間測速”了嗎
基于人工智能技術(shù)的運(yùn)動教學(xué)視頻壓縮算法
論高級用字階段漢字系統(tǒng)選擇字符的幾個原則
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
圖片輕松變身ASCⅡ藝術(shù)畫
全球經(jīng)濟(jì)將繼續(xù)處于低速增長區(qū)間
一種基于嵌入式實(shí)時操作系統(tǒng)Vxworks下的數(shù)據(jù)壓縮技術(shù)
區(qū)間對象族的可鎮(zhèn)定性分析
基于HBASE的大數(shù)據(jù)壓縮算法的研究
永丰县| 阿坝县| 东乡| 古浪县| 海晏县| 安仁县| 涞源县| 文成县| 遂昌县| 湘潭县| 商洛市| 奈曼旗| 赣榆县| 建宁县| 沂水县| 增城市| 铜鼓县| 潼南县| 宜章县| 大余县| 巨鹿县| 西畴县| 靖安县| 平罗县| 延川县| 河曲县| 望谟县| 通河县| 雷山县| 乌审旗| 新郑市| 龙门县| 尖扎县| 柳河县| 江北区| 建水县| 云林县| 阿城市| 赤城县| 都匀市| 天全县|