《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于Avalon總線的圖像解壓縮IP核設計
基于Avalon總線的圖像解壓縮IP核設計
來源:電子技術應用2011年第7期
何 偉, 王 艷, 張 玲, 鄔麗娜
(重慶大學 通信工程學院, 重慶400044)
摘要: 介紹了基于Avalon總線的靜態圖像壓縮標準JPEG基本模式解碼器軟IP核的設計和實現。IP核采用流水線和模塊化的設計方法,分別設計各個模塊完成其獨立的功能,然后將這些模塊組成一個頂層模塊,采用Avalon總線接口,利用SOPC Builder工具將IP核集成到系統中。該IP核極大地提高了解碼速度,具有可移植性,可以方便地集成到手機、數碼相機等數字產品中。
關鍵詞: JPEG 解壓縮 IP Avalon
中圖分類號: TP751
文獻標識碼: A
文章編號: 0258-7998(2011)07-144-04
The design of image decompression IP core based on the standard of Avalon
He Wei, Wang Yan, Zhang Ling, Wu Lina
College of Communication Engineering, Chongqing University, Chongqing 400044, China
Abstract: The paper introduce the design and realization of JPEG image decompression IP core based on the standard of Avalon.Every module was designed respectively in the way of pipeline and modularization.Then these module were made up top-level module,used Avalon bus interface and SoPC Builder,intergrating the IP core in the system.The IP greatly improves the decoding speed and have expansibility,can be integrated into various digital application such as cell phone and camara.
Key words : JPEG; secompression; IP; avalon


    隨著我國物聯網籌備和建設的推進,高速圖像處理技術的應用領域不斷擴大,對圖像處理的要求也越來越高。由于未經壓縮圖像的數據量非常龐大,對存儲空間和通信帶寬的需求是無限的,這就要求對圖像進行壓縮處理。JPEG圖像壓縮標準憑著其高壓縮率和靈活的應用形式得到了廣泛的應用。
    Avalon總線是Altera公司開發的用于Nios嵌入式處理器的參數化接口總線,由一組預定義的信號組成,是一種相對簡單的總線結構,主要用于連接片內存儲器和外設,以構成SOPC系統。本文在研究JPEG算法的基礎上,設計了一種基于Avalon總線的圖像解壓縮IP核,以提高圖像解碼的速度,滿足實時性要求。
1 JPEG解壓縮原理
    JPEG(Joint Photographic Expert Group)是第一個適用于連續色調、多灰度、彩色或黑白靜止圖像的國際標準[1]。JPEG解碼的目的是將編碼后的壓縮數據轉換成適合于顯示器顯示的RGB信號。其解碼流程如圖1所示。

    解碼流程的主要功能模塊包括:(1)頭文件解析;(2)熵解碼,包括直流系數解碼、交流系數解碼和差分解碼; (3)反量化與反Z變換(掃描);(4)IDCT變換;(5)顏色空間轉換。將每個模塊用Verilog HDL語言進行設計[2],編譯后,利用Modelsim軟件對其進行功能仿真和時序仿真,最終完成各個單元的設計和IP核的實現。
1.1 頭文件解析單元
    在JPEG解碼模塊啟動后,頭碼流解析單元首先讀入JPEG文件的包頭,根據JPEG文件數據的存儲方式依次檢測數據流中包含的各種段的標識符,把要解碼的文件信息從數據流中解析出來并存儲到相應的存儲單元,為后面壓縮數據的解碼做準備。
    頭碼流解析單元由頭碼流解析狀態機和一系列存儲單元組成。狀態機主要有Idle空閑狀態、ReadMarker讀取標志位狀態和ReadSegment讀取段內信息三個狀態。該單元模塊初始狀態為Idle狀態,當外部發出解碼開始信號時,模塊跳轉到ReadMarker狀態,讀完標識符后,模塊進入ReadSegment狀態。在這個狀態下,模塊對每個標志段內的信息進行解析,并對其中的重要信息如當前圖像的寬度、高度以及解碼需要的量化表和解碼表存儲到相應的存儲單元。當所有的標記段解碼完成后,模塊又跳轉到Idle(空閑)狀態。其狀態轉移圖如圖2所示。

    頭文件解析單元模塊的輸入輸出信號分別為:復位信號(rst)、系統時鐘(clk)、輸入數據有效(DataInEnabe),輸入數據(DataIn)、狀態機狀態(state),讀取段內信息時的狀態(process)。該模塊在Modelsim仿真軟件下的頂層仿真如圖3所示。由仿真圖可知,該單元可以每2個時鐘處理1 B的數據。

 

 

1.2 熵解碼單元
    JPEG圖像熵解碼由Huffman編碼、行程編碼和變長編碼三部分組成。其解碼過程為:對輸入的數據流進行Huffman解碼,解碼成功后得到一個變長的碼字,根據解析的Huffman解碼表尋址得到該碼字對應的解碼信息。該解碼信息為8 bit,高4 bit代表在該頻域系數之前0的個數,而低4 bit表示該頻域系數的二進制bit長度。最后,根據系數所占用的二進制bit長度,確定該頻域系數的值。
    從解碼過程可知,Huffman解碼步驟比較耗時,這是因為Huffman算法為變長編碼,壓縮后產生的碼字長度不固定,需要逐個bit地讀入數據。根據范式哈夫曼編碼的一個很重要特性:長度為i的碼字的前j位的數值大于長度為j的碼字的數值,即i>j[3]。因此可以構造出一種并行結構的huffman快速解碼算法。將N(N=1,2,3&hellip;15)bit長度的最小碼字低位補0擴充到16 bit,得到f(N)。對輸入的16 bit JPEG碼流code與f(N)和f(N+1)進行比較,如果f(N)<code<f(N+1),則可以確定待解碼碼字長度為N。在確定碼字長度后,定義offset=code-f(N)。若f(N)對應的解碼信息的存儲地址為addr(N),則code的解碼信息的地址為offset+addr(N)。以該地址作為Huffman解碼表的讀地址,就可以得到對應的Run/szie解碼信息??焖貶uffman解碼算法結構如圖4所示。

    熵解碼單元包括Huffman解碼及變長解碼和行程解碼。Huffman解碼完成后,再進行變長解碼和行程解碼。在該部分中,主要根據解碼出來的Run/size進行幅值的確定和0行程的解碼,同時設置了計數器counter用來記錄當前解碼符號在8&times;8數據塊中的位置。如果Run/size為00,則表示該圖像塊已解碼完成;如果Run/size為F0,則將counter加上16。否則,將counter加上Run,從碼流中讀取size位,判斷最高位,如果為0,則表示當前系數為負數,將該bit以及后面讀入的bit全部取反;為1表示當前系數為正數,將當前系數的剩余bit讀出,輸出到外部模塊。
    熵解碼單元模塊的輸入輸出信號有:復位信號(rst)、系統時鐘(clk)、輸入數據有效(DataInEnabe)、輸入數據(DataIn)、解碼出來的哈夫曼碼字(TableCode)、Huffman解碼表的尋址地址(DhtNumber)、行程0的個數(DhtZero),該頻域系數的二進制bit數(DhtWidth)、頻域系數的幅值(OutCode)。該模塊在Modelsim仿真軟件下的仿真如圖5所示。由仿真圖可知,該單元可以每1個時鐘解碼出一個哈夫曼碼字,每5個時鐘完成一個頻域數據的熵解碼。

1.3 反量化與反Z變換單元
    量化是圖像壓縮中最重要的部分。DCT變換并沒有壓縮圖像數據,而是將能量聚集在低頻系數部分。DCT 的低頻系數包含了圖像的主要信息, 而其高頻系數是反映圖像較次要的信息。因此,結合人類視覺系統的特點,采用特定的量化表,忽略部分高頻分量,從而達到壓縮的目的,故量化也就是進行除法操作。相應地,反量化過程就是將Huffman解碼后的64個頻域數據分別與對應的量化表中量化系數相乘。而對0系數進行相乘沒有任何意義,因此,在該單元的設計中,僅對非0頻域系數進行相乘。在Huffman解碼模塊中,counter用于記錄已經解碼的頻域數據的個數,Run記錄0行程的個數,將兩個數值相加作為量化表存儲單元的尋址地址,查到當前非0頻域系數對應的量化系數。反Z變換則按照對應關系輸出反量化后的數據,處理起來比較簡單,本文不作討論。
    反量化與反Z變換單元模塊的輸入輸出信號有:復位信號(rst)、系統時鐘(clk)、輸入數據有效(DataInEnabe)、解碼出來的哈夫曼碼字(NumberCode)、解碼出來的非0頻域系數(OutCode)、量化表尋址地址(DqtNumber)、量化系數(DqtData)、輸出使能(DecodeEnable)、反量化后的數據(DecodeCode)。該模塊在Modelsim仿真軟件下的仿真如圖6所示。由仿真圖可知,通過對量化單元尋址,每個時鐘就可以完成一個數據的反量化過程。

1.4 IDCT變換單元
  對量化過的像素進行反Z變換,得到8&times;8的數據塊。圖像數據是編碼時通過正向離散余弦變換得到的結果,解碼時必須將其反向余弦變換,將數值c向時域轉換。目前,用硬件實現的快速算法的普遍思想[4]是把2D-IDCT分解成兩個1D-IDCT,再在1D-DCT做快速算法,但是這種方法會占用過多的芯片資源。本文采用分時復用的方法,用一個1D-IDCT模塊實現二維余弦變換,其總體結構如圖7所示。

    對于1D-IDCT,本文采用經典的陳氏算法。由于其算法具有清楚的分級結構,可以采用流水線結構的設計方法來提高解碼速度。對于陳氏算法,采用4級流水線可以實現1D-IDCT算法。每級都有兩組寄存器,一組用于存放中間結果,另一組用于寄存運算結果,同時也作為下一級的輸入。該設計利用狀態機產生變換矩陣,通過共用乘法器來減少乘法器的使用,由原來的22個減少到6個,大大節約了邏輯資源。
    IDCT模塊的輸入輸出信號有:復位信號(rst)、系統時鐘(clk)、輸入數據有效(DataInEnabe)、反量化后的頻域系數(Data00In)、輸出使能(DataOutEnable)、IDCT變換行數(DataOutPage)、IDCT變換流水線級數(DataOutCount)、IDCT變換完成后的時域系數(Data0Out, Data10Out)。該模塊在Modelsim仿真軟件下的仿真如圖8所示。

1.5 顏色空間轉換單元
       在JPEG圖像進行編碼時,為了便于壓縮,需要將圖像數據由RGB色彩空間轉換到YCbCr色彩空間。而在解碼時,為了便于終端顯示,則需要將圖像數據由YCbCr色彩空間轉換到RGB色彩空間。其變換關系如下:
  
    顏色空間轉換單元的輸入輸出信號有:復位信號(rst)、系統時鐘(clk)、輸入數據有效(DataInEnabe)、色彩空間信號(DataY、DataCb、DataCr)、變換后的RGB信號(OutR、OutG、OutB)。該模塊在Modelsim仿真軟件下的仿真如圖9所示,由仿真圖可知,在輸入一組信號后,3個時鐘周期可以得到對應的一組RGB信號,直至完成色彩空間轉換算法。

2 基于Avalon總線的JPEG IP核設計
    Avalon總線是一種協議較為簡單的片內總線,Nios通過Avalon總線與外界進行數據交換。Avalon總線的特點有:(1)所有外設的接口與Avalon總線時鐘同步,不需要復雜的握手/應答機制。(2)所有的信號都是高電平或低電平有效,便于信號在總線中高速傳輸。(3)為了方便外設的設計,地址、數據和控制信號使用分離的、專用的端口。
    JPEG解碼時,前一個模塊的輸出是下一個模塊的輸入。根據Avalon總線協議,該解碼模型需要設置一組Avalon接口,控制部分由Nios完成。Avalon接口設置如下:clk為全局同步時鐘,DataInRead是握手信號,當為高時,向外設發送數據請求;DataInEnable為輸入數據有效信號,有效時,表示當前傳送的是有效的數據,IP核開始接收圖像碼流DataIn;為了提高圖像的解碼速度,數據寬度設計為32 bit;當頭文件分析完成后,IP發送ImageEnable信號,為1時,表示開始正式圖像解碼,接下來進行Huffman解碼、IQ和IDCT變換,最終輸出3個8 bit的RGB數據。輸出數據只有在OutEnable為高時有效,當最后一個碼流結束后,輸出JPEGIDLE信號。JPEG解碼IP核的輸入輸出時序仿真圖分別如圖10、圖11所示。

    完成設計和驗證后,該IP核可以通過SOPC Builder工具加入到系統中?;赟OPC的JPEG解碼系統如圖12所示。圖中,SDRAM控制器實現處理器、VGA控制器和SDRAM之間的圖像數據存取。由于VGA直接從SDRAM中讀取數據,所以將VGA的avalon_master接口連接到SDRAM上, 當VGA控制器發出讀有效信號到SDRAM時,SDRAM直接將圖像數據傳送給VGA控制器,VGA控制器同時產生行場同步信號,與RGB數據一起傳送到顯示器。SDRAM采用ICSI公司的數據寬度為16 bit、存儲容量為64 MB的IS42S8800來存儲解碼后的圖像數據。

    針對軟件解碼圖片速度慢的問題,本文設計了一種基于Avalon總線的JPEG解碼IP核。系統時鐘設置為50 MHz,在Quartus下進行綜合和仿真,采用CycloneII EP2C8Q208C8硬件芯片驗證了IP的正確性,極大地提高了圖片解碼的速度。同時,利用IP核的可重用性,可以將其用于其他需要實時圖像解碼的系統中,可降低系統設計的復雜度。
參考文獻
[1] 何東健.數字圖像處理(第1版)[M].西安:西安電子科技大學出版社,2003.
[2] 夏宇聞.Veriong數字系統設計教程(第2版)[M].北京:北京航空航天大學出版社,2008.
[3] 邵天增,尚冬娟.哈夫曼編碼應用的一種改進[J]. 科技創新導報,2008,21:29,31.
[4] 鐘文榮,陳建發.二維DCT算法的高速芯片設計[J].廈門大學學報自然科學版,2005,43(3):198-201.


 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜老司机精品| 欧美黄色小视频| 一本色道久久综合狠狠躁篇怎么玩 | 午夜精品久久久久影视 | 亚洲区一区二区三区| 亚洲高清不卡一区| 在线观看欧美精品| 精品动漫3d一区二区三区免费版| 国产一区二区高清视频| 国产视频观看一区| 国产在线拍揄自揄视频不卡99| 国产精品一区在线观看你懂的| 国产精品美女999| 国产精品亚洲不卡a| 国产伦精品一区二区三区| 国产精品天美传媒入口| 国产精品欧美精品| 国产精品一区二区三区观看| 国产精品夜夜夜一区二区三区尤| 国产精品一区久久久| 国产视频在线观看一区二区三区 | 欧美日韩成人精品| 欧美日韩一区二区三区在线看 | 欧美性色视频在线| 国产精品入口夜色视频大尺度| 国产精品老牛| 国产视频一区三区| 精品不卡视频| 91久久久精品| 日韩亚洲精品视频| 亚洲视频免费| 欧美伊人久久| 亚洲人成人一区二区三区| 99这里只有精品| 亚洲一区二区三区在线播放| 午夜在线播放视频欧美| 久久精品亚洲一区| 欧美高清hd18日本| 欧美系列精品| 国产一区二区你懂的| 亚洲电影在线看| 一区二区三区**美女毛片| 亚洲欧美日韩精品一区二区| 久久丁香综合五月国产三级网站| 亚洲日韩成人| 亚洲欧美一区二区激情| 久久一区二区三区av| 欧美另类99xxxxx| 国产精品久久久久久亚洲毛片| 国产在线欧美日韩| 亚洲美女电影在线| 亚洲欧美中文在线视频| 亚洲国产一区在线| 亚洲在线观看视频| 麻豆9191精品国产| 欧美午夜不卡影院在线观看完整版免费 | 亚洲尤物在线视频观看| 亚洲观看高清完整版在线观看| 99国产精品久久久久久久成人热| 欧美一区二区三区视频在线 | 欧美日韩成人一区| 国产一区二区三区在线观看免费视频 | 欧美中文字幕不卡| 亚洲一区影院| 免费h精品视频在线播放| 国产精品videosex极品| 在线日韩电影| 亚洲欧美日韩国产精品| 日韩手机在线导航| 久久久国产视频91| 国产精品mv在线观看| 在线看片成人| 午夜激情综合网| 宅男噜噜噜66一区二区 | 免费影视亚洲| 国产亚洲激情在线| 一本久久a久久精品亚洲| 亚洲国产综合视频在线观看| 亚洲欧美卡通另类91av| 欧美极品一区二区三区| 国产一区二区高清视频| 亚洲视频成人| 99国产精品99久久久久久| 久久婷婷丁香| 欧美性猛交xxxx乱大交退制版| 在线欧美亚洲| 久久福利毛片| 欧美在线观看一区二区三区| 欧美日韩国语| 亚洲国产欧美在线| 亚洲第一在线视频| 久久精品视频播放| 国产精品日韩在线观看| 99国产精品国产精品久久| 亚洲日本va午夜在线电影| 久久一区二区三区超碰国产精品| 国产精品男gay被猛男狂揉视频| 91久久国产自产拍夜夜嗨| 亚洲国产高清视频| 久久久久久噜噜噜久久久精品| 国产精品你懂的在线欣赏| 一本久道久久久| 一本久道久久久| 欧美另类videos死尸| 亚洲黄色尤物视频| 亚洲人成网站777色婷婷| 老司机精品导航| 激情懂色av一区av二区av| 欧美一区二区三区视频免费播放| 羞羞色国产精品| 国产精品一区二区三区久久| 亚洲视频香蕉人妖| 亚洲一区二区三| 欧美网站在线观看| 一区二区欧美视频| 亚洲在线一区| 国产精品美女诱惑| 亚洲免费在线视频| 欧美一区二区三区在线免费观看| 国产精品视频免费在线观看| 中国av一区| 欧美亚洲三区| 国产日韩一区在线| 久久gogo国模裸体人体| 久久频这里精品99香蕉| 黄色av日韩| 亚洲欧洲日产国产综合网| 欧美国产精品日韩| 亚洲精品久久嫩草网站秘色| 在线亚洲免费| 国产精品免费一区豆花| 亚洲欧美中文日韩v在线观看| 久久精品国产99| 韩日精品中文字幕| 亚洲激情网站免费观看| 欧美成人中文字幕| 99成人精品| 午夜欧美大尺度福利影院在线看| 国产欧美日韩视频一区二区三区| 欧美一区二区三区的| 美女亚洲精品| 亚洲精品资源美女情侣酒店| 亚洲在线日韩| 国产亚洲欧洲一区高清在线观看| 亚洲国产成人精品久久| 欧美区视频在线观看| 亚洲综合色在线| 美女黄网久久| 亚洲免费激情| 久久成人久久爱| 亚洲第一免费播放区| 在线亚洲一区观看| 国产欧美亚洲一区| 最新国产拍偷乱拍精品| 欧美午夜精品久久久久久浪潮| 亚洲免费视频中文字幕| 久久夜色精品一区| 日韩亚洲欧美综合| 欧美在线一二三四区| 亚洲国产高清aⅴ视频| 亚洲一区欧美二区| 国产丝袜一区二区| 亚洲免费精品| 国产欧美二区| 日韩视频二区| 国产欧美一区二区精品性色| 亚洲国产精品热久久| 欧美日韩亚洲91| 欧美一区激情| 欧美日韩午夜在线| 久久激情综合网| 欧美日韩一区免费| 久久高清一区| 欧美日韩一区二区视频在线观看| 欧美一区二区日韩| 欧美日韩三级视频| 久久精品免费电影| 国产精品久久久久久久9999| 亚洲国产精品一区二区www在线| 欧美性事免费在线观看| 亚洲国产精品第一区二区| 欧美日韩一区二区免费视频| 久久国产日韩欧美| 国产精品成人观看视频免费| 最新高清无码专区| 国产啪精品视频| 在线视频精品| 在线精品国产成人综合| 欧美在线观看天堂一区二区三区| 亚洲精品欧美极品| 久久综合色影院| 午夜国产精品视频| 欧美无砖砖区免费| 亚洲精品中文字幕有码专区| 国产欧美午夜| 亚洲自拍偷拍福利| 亚洲精品一区中文| 欧美freesex交免费视频| 欧美亚洲在线播放| 国产精品成人一区二区网站软件|