- 相關(guān)推薦
自適應(yīng)算術(shù)編碼的FPGA實現(xiàn)
摘要:在簡單介紹算術(shù)編碼和自適應(yīng)算術(shù)編碼的基礎(chǔ)上,介紹了利用FPGA器件并通過VHDL語言描述實現(xiàn)自適應(yīng)算術(shù)編碼的過程。整個編碼系統(tǒng)在LTERA公司的MAX plus Ⅱ軟件上進(jìn)行了編譯仿真,測試結(jié)果表明:編碼器各個模塊的設(shè)計在速度和資源利用兩方面均達(dá)到了較優(yōu)的狀態(tài),可以滿足實時編碼的要求。算術(shù)編碼是一種無失真的編碼方法,能有效地壓縮信源冗余度,屬于熵編碼的一種。算術(shù)編碼的一個重要特點就是可以按分?jǐn)?shù)比特逼信信源熵,突破了Haffman編碼每個符號只不過能按整數(shù)個比特逼近信源熵的限制。對信源進(jìn)行算術(shù)編碼,往往需要兩個過程,第一個過程是建立信源概率表,第二個過程是對信源發(fā)出的符號序列進(jìn)行掃描編碼。而自適應(yīng)算術(shù)編碼在對符號序列進(jìn)行掃描的過程中,可一次完成上述兩個過程,即根據(jù)恰當(dāng)?shù)母怕使烙嬆P秃彤?dāng)前符號序列中各符號出現(xiàn)的頻率,自適應(yīng)地調(diào)整各符號的概率估計值,同時完成編碼。盡管從編碼效率上看不如已知概率表的情況,但正是由于自適應(yīng)算術(shù)編碼具有實時性好、靈活性高、適應(yīng)性強等特點,在圖像壓縮、視頻圖像編碼等領(lǐng)域都得到了廣泛的應(yīng)用。
現(xiàn)場可編程門陣列(FPGA)是一種新興的可編程邏輯器件,具有更高的密度、更快的工作速度和更大的編程靈活性,被廣泛應(yīng)用于各種電子類產(chǎn)品中。而硬件描述語言(HDL)是一種快速的電路設(shè)計工具,其功能涵蓋了電路描述、電路合成、電路仿真等的三大電路設(shè)計工作。VHDL是HDL的一種,因其簡單易懂而被廣泛使用。本文采用VHDL編程實現(xiàn)了自適應(yīng)算術(shù)編碼,為算術(shù)編碼器的硬件實現(xiàn)提供了借鑒。
1 算術(shù)編碼的基本原則[1]
實現(xiàn)算術(shù)編碼首先需要知道信源發(fā)出每個符號的概率大小,然后再掃描符號序列,依次分割相應(yīng)的區(qū)間,最終得到符號序列所對應(yīng)的碼字。整個編碼需要兩個過程,即概率模型建立過程和掃描編碼過程。
算術(shù)編碼的基本原理是:根據(jù)信源可能發(fā)現(xiàn)的不同符號序列的概率,把[0,1]區(qū)間劃分為互不重疊的子區(qū)間,子區(qū)間的寬度恰好是各符號序列的概率。這樣信源發(fā)出的不同符號序列將與各子區(qū)間一一對應(yīng),因此每個子區(qū)間內(nèi)的任意一個實數(shù)都可以用來表示對應(yīng)的符號序列,這個數(shù)就是該符號序列所對應(yīng)的碼字。顯然,一串符號序列發(fā)生的概率越大,對應(yīng)的子區(qū)間就越寬,要表達(dá)它所用的比特數(shù)就減少,因而相應(yīng)的碼字就越短。
圖1給出一個實現(xiàn)算術(shù)編碼的示例。要編碼的是一個來自四符號信源{A,B,C,D}的由五個符號組成的符號序列:ABBCD。假設(shè)已知各信源符號的概率分別為:P(A)=0.2,P(B)=0.4,P(C)=0.2,P(D)=0.2。編碼時,首先根據(jù)各個信源符號的概率將區(qū)間[0,1]。分成四個子區(qū)間。符號A對應(yīng)[0,0.2],符號B對應(yīng)[0.2,0.6],符號C對應(yīng)[0.6,0.8],符號D對應(yīng)[0.8,1.0]。符號序列中第一個符號是A,其對應(yīng)的區(qū)間為[0,0.2],接下來將這個區(qū)間擴展為整個高度,再根據(jù)各個信源符號的概率將這個間擴展為整個高度,再根據(jù)各個信源符號的概率將這個新區(qū)間分成四段;第二個符號是B,它對應(yīng)新的子區(qū)間的第二個子區(qū)間,即對應(yīng)區(qū)間[0.04,0.12];再將該區(qū)間擴展為整個高度,再根據(jù)這個過程直接最后一個符號得到一個區(qū)間[0.08032,0.0816],這樣該區(qū)間內(nèi)的任何一個實數(shù)就可以表示整個符號序列,如0.081。
2 自適應(yīng)算術(shù)編碼的基本原理
自適應(yīng)算術(shù)編碼在一次掃描中可完成兩個過程,即概率模型建立過來和掃描編碼過程。
自適應(yīng)算術(shù)編碼在掃描符號序列前并不知道各符號的統(tǒng)計概率,這時假定每個符號的概率相等,并平均分配區(qū)間[0,1]。然后在掃描符號序列的過程中不斷調(diào)整各個符號的概率。同樣假定要編碼的是一個來自四符號信源{A,B,C,D}的五個符號組成的符號序列:ABBCD。編碼開始前首先將區(qū)間[0,1]等分為四個子區(qū)間,分別對應(yīng)A,B,C,D四個符號。掃描符號序列,第一個符號是A,對應(yīng)區(qū)間為[0,0.25],然后改變各個符號的統(tǒng)計概率,符號A的概率 為2/5,符號B的概率為1/5,符號C的概率為1/5,符號D的概率為1/5,再將區(qū)間[0,0.25]等分為五份,A占兩份,其余各占一份。接下來對第二個符號B進(jìn)行編碼,對應(yīng)的區(qū)間為[0.1,0.15],再重復(fù)前面的概率調(diào)整和區(qū)間劃分過程。具體的概率調(diào)整見表1。
表1 自適應(yīng)算術(shù)編碼的概率調(diào)整
隨著符號序列中符號個數(shù)的不斷增多,自由適應(yīng)算術(shù)編碼估計得到的各符號的概率將趨于各符號的真實概率。
3 自適應(yīng)算術(shù)編碼的FPGA實現(xiàn)[2]
3.1 總體設(shè)計
在利用FPGA實現(xiàn)自適應(yīng)算術(shù)編碼的過程中,首先遇到的問題就是將浮點運算轉(zhuǎn)化為定點運算,即將[0,1]區(qū)間的一個小數(shù)映射為一個便于硬件實現(xiàn)的定點數(shù)?紤]到硬件實現(xiàn)的簡便性,本文中將[0,1]之間的浮點數(shù)與[0,256]之間的定點數(shù)對應(yīng)。相應(yīng)的對應(yīng)關(guān)系如表2所示。
表2 浮點與定點之間的關(guān)系
編碼器在實現(xiàn)編碼的整個過程中按照耦合弱、聚合強的
【自適應(yīng)算術(shù)編碼的FPGA實現(xiàn)】相關(guān)文章:
小議3D 視頻編碼傳輸技術(shù)05-07
淺析貝葉斯網(wǎng)絡(luò)在自適應(yīng)超媒體系統(tǒng)中應(yīng)用研究05-29
都市頻道制作網(wǎng)的設(shè)計與實現(xiàn)05-29
基于minigui的網(wǎng)真機界面的實現(xiàn)08-05
城市旅游網(wǎng)站的設(shè)計與實現(xiàn)論文(精選6篇)05-07
利用電力線實現(xiàn)住宅智能化06-13
如何通過內(nèi)部控制實現(xiàn)企業(yè)持續(xù)性發(fā)展05-21