《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > JPEG2000 MQ編碼器的設計與實現
JPEG2000 MQ編碼器的設計與實現
雷 磊,羅桂娥
(中南大學,湖南 長沙 410083)
摘要: 提出了一種JPEG2000 MQ編碼器的硬件設計方案。通過狀態更新超前預測、前導零檢測、重歸一化超前預測等方法以及字節輸出的改進處理,使MQ編碼器的工作速率可達1CxD/cycle。同時對各流水段中的路徑進行優化改進,提高了系統的最高時鐘頻率。采用Verilog語言進行RTL級描述,并在Altera的FPGA上進行了仿真驗證。結果表明,在Altera的EP2S60F67214上,該MQ編碼器的最高工作時鐘頻率可達65.19 MHz。
Abstract:
Key words :

摘  要: 提出了一種JPEG2000 MQ編碼器的硬件設計方案。通過狀態更新超前預測、前導零檢測、重歸一化超前預測等方法以及字節輸出的改進處理,使MQ編碼器的工作速率可達1CxD/cycle。同時對各流水段中的路徑進行優化改進,提高了系統的最高時鐘頻率。采用Verilog語言進行RTL級描述,并在Altera的FPGA上進行了仿真驗證。結果表明,在Altera的EP2S60F67214上,該MQ編碼器的最高工作時鐘頻率可達65.19 MHz。
關鍵詞: 圖像壓縮;JPEG2000;算術編碼;流水線

    JPEG2000是新一代的靜態圖像壓縮標準。與JPEG相比,JPEG2000不僅具有更為優良的壓縮性能,而且提供了更多的新特性,例如支持質量、分辨率的可伸縮性和感興趣域編碼等。JPEG2000編碼包括了小波變換、量化、位平面編碼和MQ編碼這4個主要的編碼流程。其中位平面編碼和MQ編碼是JPEG2000中復雜度較高的2個模塊。這2個模塊處理的時間花費了整個編碼時間的一半以上。而當前的位平面編碼處理速度已經遠超過MQ編碼的速度,也就是說MQ編碼器的編碼速率已經成為了JPEG2000處理速度快慢的關鍵所在。
  MQ編碼器是一種改進的自適應算術編碼器。雖然MQ編碼器避免了乘法運算,但算法仍然比較復雜,同時采用串行處理方式的MQ編碼標準算法用硬件實現起來效率低下。而目前國內外對MQ編碼硬件實現有不少有效的處理方法。本文對面向軟件的標準算法進行了改進以提高硬件實現的編碼速率:采用FIFO進行輸入輸出的緩存處理,優化了狀態更新及A、C區間處理過程以提高處理速度,改進了字節輸出從而節約了資源面積。該設計方案采用了4級流水,能夠達到比較高的數據吞吐量。
1 MQ編碼器原理和算法流程
  MQ編碼器可以理解為這樣一種機器:它將二進制數據判決位D和相關的上下文內容CX所組成的序列映射成單個的壓縮碼字,即壓縮數據CD。當數據判決位D和其上下文內容CX組成的數據對(CX,D)從位平面編碼器輸出到達MQ編碼器后,由MQ編碼器產生壓縮數據位CD。
    MQ編碼器通過使用CX狀態表和概率估值表能夠實現自適應的功能。其中CX狀態表包括19個上下文,每個上下文都對應著不同的狀態,每個狀態包括索引值(index)和大概率符號值(mps)。而概率估值表是一個可以對原始數據快速適應的概率估計模型,包括47個索引值。每個索引都對應著不同的狀態,這些狀態包括下一個狀態的索引值NMPS(6位)和NLPS(6位)、交換位SWITCH(1位)和小概率符號概率值Qe(15位)共28位。這2個表的具體內容可以從參考文獻[2]中找到。
  MQ編碼是基于自適應的算術編碼改進而來的。而算術編碼的基本操作是遞歸地劃分當前的子區間:當編碼器接收到一個新的待壓縮碼,當前子區間就被劃分成2個子區間,被劃分的邊界更新成為新的區間的左邊界,也即左區間值,子區間的間隔大小也更新成為新區間的間隔大小。
 因此,MQ編碼器采用一個A寄存器來存儲當前子區間的間隔大小,而用一個C寄存器來存儲當前子區間的左區間值。當MQ編碼器接收到輸入數據對(CX,D),通過概率估計表和狀態表找到相應的Qe值,根據當前的情況來決定A和C如何進行更新,其中包括了A、C寄存器值與Qe值的加減操作及對A、C寄存器的左移重歸一化操作,同時伴隨著壓縮字節輸出等過程。
2 MQ編碼器的硬件設計
    本文設計的MQ編碼器采用4級流水線,并使用了一些加速技術對關鍵部分進行了改進,改進后的MQ編碼器流水線總體架構如圖1所示。


    第1階段:用一個RAM對CX狀態進行存儲和更新。把從FIFO中輸出的(CX,D)數據對做為輸入,根據CX的值來得到概率估值表的索引和mps的值。然后由D值與mps值比較判斷是進行大概率編碼(mps)還是進行小概率編碼(lps)。要注意的是,要確保RAM和ROM輸出消耗的時間為1個時鐘,否則就達不到本設計的時序要求。同時,由于目標是1個時鐘輸入1對數據對,而在編碼過程中如果出現了連續2個輸入的CX具有相同的值并且編碼第1個數據發生了重歸一化時,就會產生時序紊亂。一個解決的辦法是對下一個索引值加入一個超前狀態分析,這樣就可以在編碼同一個CX的數據時不必等待RAM的輸出而直接讀入由組合邏輯產生的下一個索引值,從而滿足了時序的要求。圖2所示為加入超前狀態分析的CX表。


 第2階段:用一個ROM對概率估值表進行存儲和讀取。把從RAM中輸出的index和mps作為輸入數據,數據位由高到低排列。根據index的值導出相應的Qe、NMPS、NLPS、SWITCH等值。本設計由于采用了超前狀態預測,沒必要把下一次的lps和mps的概率值加入到估值表中,而僅需添加前導零的個數,使得在第3階段發生重歸一化時能夠一步完成移位操作,避免了重復和循環過程,大大提高了編碼效率。具體的移位思想可以參看參考文獻[3]。
 第3階段:對A寄存器和C寄存器低17位進行更新處理。把28位的C寄存器分開處理可以有效縮短關鍵路徑,因此在這個階段先對C寄存器的低17位進行處理。另外,由于要對A和2Qe的大小進行比較從而判斷是否需要進行歸一化。為了減少路徑消耗,可以把A<2Qe替換成A[14:0]-Qe[14:0],看是否有借位產生來處理,把它作為是否要進行重歸一化的判斷條件,同時把A和C寄存器的加減更新判斷邏輯簡化成2個由于1個時鐘輸入1對數據對的關系,A、C寄存器將在1個時鐘周期后進行數據更新替換,所以A、C的數據處理過程必須要在1個時鐘周期內完成,因此本設計不能對這段路徑進行流水線分割處理。圖3為對A寄存器處理的優化設計結構。C寄存器的處理結構和A類似。


 第4階段:Chigh的處理和字節輸出。按照標準的字節輸出算法流程,需要1個緩沖寄存器B和1個減法計數器來輔助處理:先把高8位賦給B寄存器,看其值是否是0xFF和有沒有進位位產生。如果為0xFF,則進行位填充處理,如果有進位位產生,則對B寄存器值進行加1處理,再看是否要進行位填充。這種處理方法具有很強的串行性,無法在1個時鐘周期內完成全部的字節輸出過程,因此,有必要對這種方式進行改進。由于原算法加入了3位間隔位來限制輸出值的范圍,為了符合標準,至少要左移19(即8+3+8)位才輸出1個字節,同理,至少左移27位才輸出2個字節,而小于19位的則不輸出字節,處理好的數據全部放到剩余的數據存儲器bitbuf中去。而MQ編碼器的輸出方式是增量輸出的,因此可以把要左移處理的數據與上一次剩余的數據進行合并,這與標準算法的思想是完全一致的。
 首先把tempC中的數據進行掩膜處理得到包含左移數據位的Cmask,同時對Cmask進行左移17位,使Cresult的位數和augment的位數相同(augment為34位),再對其進行右移一定位數,使左移數據能夠正確地合并到編碼數據中去。Cresult可以表示為:
 Cresult={Cmask,17{1’b0}}>>CT-1
其中CT為一個5位的加法計數器,它對當前剩余的數據進行位數計數。為了減少路徑開銷,可以把Cresult改成:
    Cresult={Cmask,18{1’b0}}>>CT
  由于剩余的數據位最多為18位,因此bitbuf采用一個18位的寄存器作為處理空間。可以這樣把左移數據合并到數據流中:
 augment[33:16]=bitbuf+Cresult[33:16]
 augment[15:0]=Cresult[15:0]
 這是因為僅有高18位的Cresult需要進行相加,而后16位只進行簡單的復制即可。這樣做就可以不必考慮進位位的值及緩沖值B加1后是否需要進行位填充這幾個因素,可以在一個時鐘周期內一步到位地進行字節輸出。同時,為了與標準輸出一致,把CT(5位)的初始值設為-1,即為11111。圖4為改進的字節輸出的bitbuf更新處理部分,圖5為字節輸出的計數更新處理部分。


    最后,由于輸出的字節數可能為0、1、2這3種情況,有必要對輸出數據進行緩沖,因此需要在最后添加一個FIFO對輸出的數據進行緩沖。
3 實驗結果和性能比較
 本文的MQ編碼器采用Verilog語言進行RTL級描述,在Modelsim-Altera軟件下進行仿真,仿真結果和標準算法的計算結果一致,如圖6所示。在QuartusII中選用器件EP2S60F67214對代碼進行綜合、布局布線及時序分析。仿真結果表明,本設計結構最大的時鐘頻率可達65.19 MHz,吞吐量可達65.19 MCxD/s。與參考文獻[5]中的方案的比較如表1所示。表2所示為MQ編碼器的資源使用情況。

 結果顯示,本設計占用資源很少的情況下,在最高時鐘頻率上不及參考文獻[5],因為本設計結構為了節省時鐘周期在關鍵路徑上沒有采用流水線分割,但在整體的處理速度上有較大的改進,可以滿足硬件高速編碼要求。
 本文針對JPEG2000MQ編碼器的硬件實現,提出了一種4級流水的設計方案。對MQ編碼器的原理和算法流程進行了分析,采用超前狀態分析避免了時序上的沖突,同時優化了條件判斷邏輯以及改進了字節輸出的處理結構,減少了路徑的開銷。最終通過Aletra的FPGA的驗證,處理速度可達65.19 MCxD/s。
參考文獻
[1] TAUBMAN D S, MARCELLIM M W. JPEG2000圖像壓縮基礎、標準和實踐[M]. 魏立江,柏正堯,譯. 北京:電子工業出版社,2005.
[2] ISO/IEC. FCD 1544421, final committee draft, JPEG2000 lmage coding systems[Z].
[3] HSIAO Y T, LIN H D, LEE K B, et al. High-speed memory-saving architecture for the embedded block coding in JPEG2000[C]//IEEE International Symposium on Circuits and Systems, 2002,5:133-136.
[4] DYER M, TAUBMAN D, NOOSHABADI S.Improved  throughput arithmetic coder for JPEG2000[J]. Proc.Internation Conference on Image Processing(ICIP’04),2004.
[5] 周赟. 基于JPEG2000的高速MQ算術編碼器的研究與實現[A].Information technology, 2007(10):49-52.
[6] 王鎮道,章兢,曾云,等.一種高速JPEG2000 MQ編碼器的VLSI 實現[A].微計算機信息,2006,(9-3):232-233.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品国产久精国产一老狼| 欧美日韩国产999| 亚洲卡通欧美制服中文| 性欧美精品高清| 亚洲一区二区三区视频播放| 99精品欧美一区二区三区| 亚洲精品一区二区三区福利| 亚洲国产一二三| 亚洲黄色av| 亚洲三级影片| avtt综合网| 亚洲午夜精品网| 亚洲专区一区| 亚洲欧美不卡| 午夜精品网站| 欧美一区二区三区免费在线看| 午夜亚洲伦理| 欧美淫片网站| 亚洲国产欧美不卡在线观看| 91久久夜色精品国产九色| 亚洲精品美女久久7777777| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精品一区制服丝袜| 亚洲精品国产拍免费91在线| 日韩一级不卡| 亚洲午夜久久久久久尤物| 中文亚洲字幕| 亚洲精品视频中文字幕| 在线亚洲一区观看| 亚洲一区免费看| 欧美专区第一页| 久久综合九色欧美综合狠狠| 另类国产ts人妖高潮视频| 欧美国产精品劲爆| 欧美性猛交xxxx乱大交蜜桃| 国产精品久99| 国产一区二区成人久久免费影院| 黄色亚洲网站| 亚洲人成网站影音先锋播放| 在线综合欧美| 久久国产精品99精品国产| 亚洲欧洲一区二区三区| 一区二区三区日韩| 久久激情综合网| 免费美女久久99| 欧美日韩极品在线观看一区| 国产精品午夜在线| 国产一区二区三区久久悠悠色av| 18成人免费观看视频| 日韩午夜一区| 午夜宅男欧美| 亚洲精品视频在线观看网站| 亚洲欧美日韩在线高清直播| 久久久国产精品亚洲一区 | 午夜欧美大尺度福利影院在线看 | 欧美日韩伦理在线免费| 国产欧美日韩免费| 亚洲国产精品久久精品怡红院| 一区二区三区久久网| 欧美在线观看天堂一区二区三区| 亚洲精品影院| 久久9热精品视频| 欧美激情中文字幕一区二区| 国产精品理论片| 亚洲国产第一| 亚洲欧美激情四射在线日| 91久久夜色精品国产网站| 亚洲欧美日韩电影| 久热国产精品视频| 国产精品男人爽免费视频1| 一区在线电影| 亚洲欧美www| 一区二区三区av| 麻豆精品视频| 国产日韩精品视频一区二区三区| 亚洲欧洲日本专区| 久久黄色影院| 午夜在线一区| 欧美日韩mv| 一区二区三区我不卡| 亚洲自拍偷拍网址| 亚洲裸体视频| 久久久久一区二区三区四区| 国产精品v欧美精品v日本精品动漫| 一区二区自拍| 午夜亚洲福利| 午夜性色一区二区三区免费视频| 欧美好骚综合网| 一区二区在线观看视频| 亚洲视频碰碰| 亚洲另类在线视频| 麻豆精品在线播放| 国产综合网站| 亚洲欧美日韩一区二区| 日韩视频一区二区三区在线播放免费观看 | 亚洲一级免费视频| 欧美电影免费观看| 国产一区二区三区在线免费观看| 国产精品99久久不卡二区| 日韩视频在线观看免费| 蜜桃av综合| 激情婷婷亚洲| 欧美在线亚洲在线| 欧美一区亚洲| 国产精品免费一区二区三区在线观看| 日韩视频不卡| 日韩一区二区久久| 欧美黄在线观看| 亚洲国产精品va| 亚洲欧洲一级| 欧美成人亚洲| 亚洲国产日韩欧美在线动漫| 亚洲黄色片网站| 久久亚洲视频| 尤物九九久久国产精品的特点| 亚洲第一在线视频| 久久久久久久久蜜桃| 国产偷自视频区视频一区二区| 亚洲永久在线| 香蕉久久精品日日躁夜夜躁| 国产精品国产精品国产专区不蜜| 一区二区三区精品在线| 亚洲专区免费| 国产精品网站在线观看| 亚洲欧美日韩国产一区二区| 性色一区二区| 国产三区精品| 久久成人在线| 噜噜爱69成人精品| 黄色小说综合网站| 91久久精品日日躁夜夜躁欧美 | 日韩西西人体444www| 一二三区精品福利视频| 欧美日韩精品一区二区在线播放| 日韩亚洲一区在线播放| 亚洲无限av看| 国产精品蜜臀在线观看| 亚洲欧美日韩区 | 久热国产精品视频| 亚洲国产精品悠悠久久琪琪| 亚洲精品综合| 欧美日韩视频在线| 亚洲一区二区三区色| 久久成人综合视频| 在线观看国产精品网站| 亚洲裸体俱乐部裸体舞表演av| 欧美另类在线观看| 在线亚洲欧美视频| 欧美亚洲网站| 亚洲成色777777女色窝| 9久草视频在线视频精品| 欧美午夜欧美| 欧美中文在线观看国产| 欧美插天视频在线播放| 99re视频这里只有精品| 欧美一区二区视频网站| 狠久久av成人天堂| 99精品视频免费观看| 国产精品电影观看| 久久国产99| 欧美日韩视频在线观看一区二区三区| 亚洲午夜未删减在线观看| 久久久久免费观看| 亚洲精品黄色| 性色av一区二区三区在线观看| 激情文学综合丁香| 在线亚洲电影| 国产在线欧美| 一区二区三区国产盗摄| 国产视频一区二区三区在线观看| 亚洲国产成人av在线| 欧美色另类天堂2015| 久久成人人人人精品欧| 欧美日韩亚洲一区二区三区在线观看 | 久久精品99国产精品日本| 亚洲高清视频在线| 亚洲欧美乱综合| 在线不卡亚洲| 亚洲欧美日韩视频一区| 狠狠色狠狠色综合日日小说| 在线性视频日韩欧美| 好吊一区二区三区| 亚洲视频导航| 精品不卡在线| 亚洲欧美日韩一区二区| 亚洲国产日韩欧美综合久久| 香蕉精品999视频一区二区| 亚洲国产成人一区| 欧美在线999| 99国产精品国产精品久久| 久久久中精品2020中文| 一本久久知道综合久久| 久久夜色精品国产噜噜av| 中文av一区二区| 免费精品视频| 午夜国产精品视频免费体验区| 欧美久久九九| 夜夜嗨av色综合久久久综合网| 美乳少妇欧美精品| 午夜精品视频在线|