《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于FPGA的JPEG解碼器設計與實現

基于FPGA的JPEG解碼器設計與實現

2008-07-28
作者:劉小衛,周劍揚,黃云鷹,劉旻燾

??? 摘 要: 為滿足SoC中JPEG靜止圖像實時解壓縮要求,在完成JPEG解碼器C語言建模的基礎上,采用自頂向下的設計方法,完成了JPEG Baseline解碼器設計,并在FPGA開發板上驗證了設計結果。該設計與ACTEL、4I2I等公司的IP核相比具有相近的解壓縮速度,能滿足實時解碼要求。
??? 關鍵詞: JPEG;FPGA;解碼器;IDCT

?

??? 隨著多媒體技術的蓬勃發展,視頻編解碼技術得到了長足的進步,人們先后制定了多個數字圖像視頻編解碼標準。其中JPEG仍然是目前最流行的靜止圖像壓縮格式,在手持設備和網絡中有廣泛的應用。
??? 本論文工作是無線投影機控制器設計中的一部分,見圖1。該控制器以開放源代碼處理器LEON3為核心,具有以太網、VGA、PCI等接口,PCI接口用來連接無線網卡,VGA接口用來連接投影機,這樣構成一個無線投影系統。PC機通過有線網絡或無線網絡向控制器傳輸JPEG壓縮圖像數據" title="圖像數據">圖像數據,經過解碼器解碼后顯示在投影儀上,從而實現多臺電腦共享一臺投影機,并且避免了連線的麻煩,具有一定的市場前景??紤]到系統的靈活性,本控制器選用Altera FPGA作為實現平臺,設計可以無縫地轉移到Altera Hardcopy技術,從而實現低成本。

??????????????????????????


??? 本設計利用硬件描述語言(VHDL)設計了JPEG Baseline的解碼系統。
1 JPEG解碼器原理
??? JPEG解碼器主要由四部分組成:圖像頭信息的讀取、熵解碼、反量化" title="反量化">反量化、IDCT(反離散余弦變換" title="離散余弦變換">離散余弦變換),其數據流圖見圖2。


??? 從圖中可以看出,解碼器首先從JPEG圖像數據中讀取Header信息,得到與解碼相關的如哈夫曼表、量化表以及圖像大小等信息,并且將這些信息存儲在RAM或者寄存器中,供后面的步驟調用。
??? 在圖像頭信息讀取完成后,解碼器進一步讀取壓縮編碼的數據并對其進行熵解碼。壓縮編碼的數據采用哈夫曼(Huffman)編碼。哈夫曼編碼是一種常用的壓縮編碼方法,是Huffman于1952年為壓縮文本文件建立的。它的基本原理是:將頻繁使用的數據用較短的代碼代替,而較少使用的數據用較長的代碼代替,每個數據的代碼各不相同。這些代碼都是二進制碼,且碼的長度可變,因此哈夫曼編碼是可變長編碼的一種。在JPEG中采用游程編碼與范式huffman編碼進行數據的壓縮存儲,并且直流系數(DC)與交流系數(AC)分開編碼,提高了壓縮效率。因而在熵解碼過程中需要分別對直流系數和交流系數分別解碼。當前直流系數為上一個直流系數加上當前熵解碼數據(即殘差)。
??? 當解碼完一個MCU(Minimal Coded Unit)后,接下來就是進行反量化的操作,即將解碼出來的數據乘以一個量化系數。
??? 最后是IDCT(反離散余弦變換)操作,即DCT(離散余弦變換)的反變換。離散余弦變換(DCT)是N.Ahmed等人在1974年提出的正交變換方法,它常被認為是對語音和圖像信號進行變換的最佳方法。通過DCT變換,將數據從一個域變換到另外一個域,其大多數高頻分量的系數變為0。人眼對低頻分量比較敏感,對高頻分量則不太敏感;因而量化的結果是去掉了不太重要的高頻分量,降低了碼率。在JPEG解碼過程中需要通過IDCT還原圖像原始數據。IDCT部分是計算量最大" title="最大">最大的單元,對此單元設計的好壞將直接影響到解碼速度。
2 JPEG解碼器設計與實現
??? 針對JPEG解碼流程特點,本JPEG解碼器硬件總體設計如圖3所示。JPEG CONTROLLER負責調度各個模塊的執行;Src_ram存儲著JPEG原始圖像數據;Addr_gen模塊產生下一個需要讀取字節的地址;Read_markers模塊讀取JPEG圖像的圖像頭信息,并且將頭信息保存在Register files中,相應的量化表信息及huffman表將存儲在Dqt rams和Dht rams中;Huff_derived_tbl是由huffman表生成的用于熵解碼的表格;Decode MCU 模塊從Src_ram讀取JPEG圖像數據并解碼,解碼出來的數據將逆zig-zag順序存儲在Block ram中;IDCT模塊讀取Block ram中的哈夫曼解碼數據進行反量化和IDCT變換,之后將數據輸出到Ram。下面將對各個模塊的設計作詳細的介紹。
2.1 Addr_gen模塊設計
??? 此模塊用于產生讀取Src_ram的地址并生成下一個要讀取字節的地址。其硬件實現如圖4虛線右邊部分所示。在非跳轉情況下,當RD信號有效時,Addr_gen計數器每次遞增1個單位。
??? 跳轉情況下,即skip有效時,其計數器工作如圖4虛線左邊部分所示,當讀入地址為Addr_n的數據后需要跳轉k個單位的字節(Skip_num=k),因為在讀取地址為Addr_n的數據Data_n后地址計數已經增加了一個單位,因而在第三個時鐘周期能跳轉到地址為Addr_n+1+k的數據,而這第三個時鐘周期讀出來的數據Data_n+1將會被忽略。從第四個時鐘起此模塊將恢復正常的讀取數據功能。


2.2 Read_markers模塊設計" title="模塊設計">模塊設計
??? Read_markers讀取JPEG文件頭信息并且解釋,由以下子模塊組成,見圖5虛線左邊部分。
??? (1)First_marker:判斷文件是否為JPEG文件,即判斷開始的2B是否為FF D8;
??? (2)Next_marker:查找下一個標志;
??? (3)Get_sos:讀取sos(start of scan);
??? (4)Skip_var:跳過一些信息時被調用,給Addr_gen模塊傳送跳過信息標志;
??? (5)Get_sof:讀取sof(start of frame);
??? (6)Get_dht:讀取huffman表信息,存儲在Dht rams(見圖1);
??? (7)Get_dqt:讀取量化表信息,并存儲在Dqt rams(見圖1);
??? (8)Get_dri:讀取重起間隔,以MCU(Minimum Coded Unit)為單位。
??? 硬件實現利用FSM(有限狀態機)來進行控制。其模塊調度示意圖見圖5虛線右邊部分。

?


2.3 Decode_MCU模塊設計
??? Decode_MCU是jpeg解碼器設計中一個非常重要的單元,也是正式解碼的開始。本設計中此模塊的設計見圖6虛線框中設計,主要由四個子模塊組成:Fill_buffer、Decode_block&IZZ、Process_restart和Controller。
??? (1)Fill_buffer:當32BITS_REG中的比特數不夠時控制器將啟動此模塊讀取Src_ram中的數據并且加載到32bits_reg中,并且去掉碼流中的填充數據。
??? (2)Decode_block&IZZ:huffman解碼,并且將解碼數據逆zig_zag順序輸出。
??? (3)Process_restart:當JPEG圖像中有restart interval(Get_dri)標志,在解碼完由Get_dri規定的n個MCU后,控制器首先調用此模塊來進行同步(在網絡傳輸中非常重要)。
?? ?(4)Controller:控制協調各模塊的執行。
??? 核心模塊Decode_block硬件實現如圖6,虛線右邊是EXTEND[1]部分,采用查找表實現。Get_buffer即圖6中的32BITS_REG, Bits_left記錄32BITS_REG中剩余的比特數。Huff_D模塊每啟動一次解碼一個熵編碼數據。由于DC編碼采用DPCM編碼,解碼直流(DC)時需要增加一個時鐘周期來加上上一個DC的值,從而得出如圖6所示的output,解碼交流系數(AC)時則在EXTEND后直接輸出。Sel_s_input為”00”時,選通huffman解碼數據;為”01”時,選通EXTEND后的數據;為”10”時,選通加上了last_dc_val的數據。

?


2.4 IDCT模塊設計
??? IDCT(Inverse Discrete Consine Transform)是JPEG解碼器中最耗資源和計算量最大的單元。本設計為減少內存讀取,提高解碼速度,將反量化也放在IDCT模塊中實現。
??? 離散余弦變換的公式和離散余弦逆變換的公式如下:
??

?

??? 經分析公式(1)可以做如下等效變換:
???


??? 即通過兩次一維的IDCT變換即可實現二維的IDCT??紤]到數據的讀取,本設計IDCT模塊的設計如圖7虛線框中所示。
??? 實現過程:首先讀取Block ram的一列,相應的反量化數據從Dqt ram中讀取,經過IQ(反量化單元,即乘法器)后的8個數據存儲在regs中,之后控制器啟動一維IDCT變換,并將反變換后的數據存儲在REG FILES的一列中。當一個Block ram中的8列數據全部反量化和IDCT變換后,控制器將切換成對REG FILES中一行的數據進行一維IDCT變換,變換后的數據存儲在REG FILES中的一行中,之后再進行下一行變換,直到8行數據全部IDCT 變換完?;趨⒖嘉墨I[2]的一維IDCT實現具有資源比較小和實現簡單的特點,通過對IDCT反變換矩陣系數分析,一維IDCT奇偶數據變換具有不同的結構化特點,在此可以進行單獨的設計,最后將兩部分的結果數據進行碟形加減操作,得到一維IDCT的運算結果(見圖7)。這樣變換完的數據即可進行輸出,送到顯示單元進行色彩變換和其它后續處理后顯示。

2.5 測試與結果
????? 本設計采用的硬件開發平臺為ALTERA DE2,FPGA為EP2C35F672C6,在quartusii 5.0中進行綜合,所耗資源和最大時鐘頻率見表1。2005年ACTEL[3]公司推出的JPEG-D IP的速度針對不同的平臺其速度變化從31M~69M,同年4I2I[4]公司推出的JPEG-D的最大速率為40M,從速度可以看出本設計達到了實時解碼的要求。

?


??? 將VHDL與C語言實現的JPEG解碼器對圖像解碼產生的結果進行對比,從而可以判斷解碼正確與錯誤。通過結果對比,本設計結果完全正確。
??? 本設計嚴格按照VLSI自頂向下設計的一般流程,首先進行C語言級建模[5],從而得到測試矢量和JPEG硬件解碼器的總體架構;之后完成了各個頂層模塊和子模塊的接口定義;最后進行各個模塊的VHDL實現。從結果可知達到了實時解碼要求,并且節約了資源。


參考文獻
[1] CCITT Rec.T.81(1992 E)104-105.
[2] Chris.tophLoeffler,Adriaan.Ligtenberg.Practical? fast 1-D?DCT algorithms with 11 multiplication.[J]IEEE 1989.988-990.
[3] http://www.cast-inc.com.
[4] http://www.4i42.com.
[5] http://www.smalleranimals.com/.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久99久久精品女同性| 亚洲一区二区综合| 亚洲美洲欧洲综合国产一区| 国产啪精品视频| 亚洲精品偷拍| 亚洲日本中文字幕区| 极品尤物av久久免费看| 欧美一区二区三区男人的天堂| 久久精品国产免费观看| 国产视频一区二区三区在线观看| 欧美精品在线免费| 亚洲欧美中文在线视频| 欧美一级在线亚洲天堂| 六月丁香综合| 国产亚洲综合性久久久影院| 男人的天堂亚洲| 国产精品一区二区三区观看| 欧美在线网站| 欧美一区二区三区免费在线看| 夜夜嗨av一区二区三区网站四季av| 国产美女高潮久久白浆| 一道本一区二区| 亚洲精品国久久99热| 国产精品免费网站在线观看| 激情综合电影网| 久久久精品日韩欧美| 亚洲国产国产亚洲一二三| 亚洲精品久久久久久下一站| 免费国产自线拍一欧美视频| 日韩视频一区| 久久久久久久久蜜桃| 亚洲色图制服丝袜| 欧美日韩国产bt| 免费日韩av电影| 国产精品v欧美精品v日本精品动漫| 国产一区二区精品久久91| 亚洲欧美精品在线| 蜜桃久久精品乱码一区二区| 国产精品久久网站| 亚洲精品久久久久中文字幕欢迎你| 欧美aaa级| 欧美三级在线播放| 欧美日韩精品二区第二页| 久久中文久久字幕| 在线亚洲免费视频| 久久成年人视频| 欧美一区二区国产| 午夜性色一区二区三区免费视频| 亚洲一区二区成人| 欧美国产日韩精品免费观看| 久久一区二区三区四区五区| 久久久综合激的五月天| 欧美一区二区三区久久精品茉莉花| 欧美视频四区| 国产夜色精品一区二区av| 蜜臀av一级做a爰片久久| 欧美黄色精品| 久久麻豆一区二区| 久久久不卡网国产精品一区| 亚洲一区二区三区在线播放| 韩日欧美一区二区三区| 葵司免费一区二区三区四区五区| 久久视频一区二区| 久久精品国产久精国产一老狼| 在线欧美不卡| 夜夜夜精品看看| 欧美视频在线视频| 欧美人与禽猛交乱配视频| 欧美日韩亚洲免费| 亚洲美女在线看| 欧美日韩视频在线一区二区| 欧美美女视频| 亚洲欧美日本日韩| 欧美v国产在线一区二区三区| **性色生活片久久毛片| 久久视频国产精品免费视频在线| 欧美日韩国内| 亚洲视频一区二区| 欧美自拍丝袜亚洲| 中日韩午夜理伦电影免费| 午夜精品视频网站| 欧美影院成年免费版| 国产欧美精品在线观看| 久久另类ts人妖一区二区| 老司机aⅴ在线精品导航| 麻豆视频一区二区| 久久精品国产99国产精品| 国产日韩精品一区二区三区在线| 久久久无码精品亚洲日韩按摩| 亚洲电影视频在线| 国产精品theporn88| 亚洲激情国产| 国产在线日韩| 欧美成人午夜77777| 一区二区三区国产在线观看| 久久久伊人欧美| 99国产精品| 黑人巨大精品欧美一区二区小视频| 国产一区二区高清不卡| 亚洲精品免费在线| 久热这里只精品99re8久| 亚洲视频一区| 国产精品一区二区久久精品| 99re8这里有精品热视频免费| 久久精品成人一区二区三区蜜臀| 狠狠做深爱婷婷久久综合一区| 99在线热播精品免费99热| 国产精品另类一区| 一区二区三区精品久久久| 久久aⅴ乱码一区二区三区| 亚洲茄子视频| 欧美日韩一区在线观看| 在线观看三级视频欧美| 亚洲黄色av一区| 亚洲欧美网站| 午夜在线精品偷拍| 一区二区视频在线观看| 欧美日韩小视频| 亚洲国产成人在线播放| 中日韩男男gay无套| 欧美成年人视频网站欧美| 国产麻豆综合| 亚洲一区二区少妇| 久久亚洲一区二区三区四区| 欧美一区二区在线视频| 久久久久国产精品午夜一区| 亚洲成色精品| **欧美日韩vr在线| 在线观看精品一区| 亚洲国产第一| 久久er99精品| 一本一本久久a久久精品综合麻豆| 欧美日本韩国一区二区三区| 国产一区二区三区在线观看免费| 宅男精品视频| 妖精视频成人观看www| 国内外成人免费激情在线视频网站| 国产综合网站| 亚洲电影毛片| 加勒比av一区二区| 国产精品一区二区三区久久| 久久久午夜视频| 性欧美1819sex性高清| 欧美暴力喷水在线| 欧美一区=区| 国产欧美精品日韩区二区麻豆天美| 国产美女精品一区二区三区| 中文亚洲欧美| 欧美成ee人免费视频| 欧美日韩视频在线观看一区二区三区| 欧美成年人网站| 国产视频一区在线观看一区免费| 亚洲日韩成人| 欧美日本一道本| 在线观看日韩一区| 欧美三区视频| 亚洲一区二区三区四区视频| 在线观看视频一区二区欧美日韩| 国模私拍一区二区三区| 国内揄拍国内精品少妇国语| 亚洲国产精品第一区二区三区| 国户精品久久久久久久久久久不卡| 免费不卡在线视频| 国产毛片一区| 久久国产免费看| 久久天堂成人| 亚洲美女淫视频| 一区二区三区四区五区精品视频| 亚洲在线成人| 一区二区福利| 欧美一区二区在线免费观看| 亚洲综合视频一区| 国产精品ⅴa在线观看h| 亚洲少妇中出一区| 亚洲国产精品电影在线观看| 国产精品成人一区二区三区夜夜夜| 99视频超级精品| 欧美一区视频| 亚洲免费观看高清在线观看| 午夜精品一区二区三区在线| 亚洲一区二区视频在线| 亚洲在线成人精品| 国产精品porn| 国语自产精品视频在线看抢先版结局| 国产精品久久久久久久免费软件| 亚洲国产精品一区二区第一页| 欧美一级片在线播放| 在线亚洲精品福利网址导航| 国语对白精品一区二区| 欧美亚洲日本国产| 欧美在线首页| 欧美诱惑福利视频| 你懂的网址国产 欧美| 久久综合九色欧美综合狠狠| 99国产精品国产精品久久| 亚洲另类在线视频| 亚洲欧美国产精品va在线观看| 夜夜嗨av一区二区三区四区| 日韩午夜在线观看视频| 99国产精品久久| 欧美激情小视频| 国产日韩一区二区三区在线| 国产在线拍揄自揄视频不卡99| 农夫在线精品视频免费观看| 亚洲视频每日更新| 欧美日韩精品免费观看视频完整| 亚洲电影免费观看高清完整版在线| 欧美日韩视频专区在线播放| 亚洲激情另类| 国产噜噜噜噜噜久久久久久久久| 香蕉久久一区二区不卡无毒影院| 久久精品亚洲| 欧美日韩一区二区国产| 国产亚洲免费的视频看| 国产亚洲欧美色| 国产综合色精品一区二区三区| 欧美日韩91| 嫩草伊人久久精品少妇av杨幂| 日韩亚洲视频| 久久亚洲不卡| 日韩一级裸体免费视频| 午夜精品久久久久久久99黑人| 99视频一区二区| 国产女同一区二区| 欧美日本免费一区二区三区| 99热在线精品观看| 国产精品久久久久久久久借妻| 亚洲天堂网在线观看| 亚洲精品一区在线| 国产精品成人国产乱一区| 日韩写真在线| 亚洲欧美久久| 欧美xxxx在线观看| 欧美精品国产精品日韩精品| 一区二区日本视频| 久色婷婷小香蕉久久| 欧美激情欧美狂野欧美精品| 1024亚洲| 99精品国产福利在线观看免费| 韩国精品久久久999| av成人天堂| 99视频一区| 午夜亚洲激情| 免费人成精品欧美精品| 午夜精品福利一区二区蜜股av| 欧美区视频在线观看| 久久精品99国产精品酒店日本| 欧美成人免费网站| 欧美日本韩国一区| 国产精品人人做人人爽| 久久婷婷国产综合精品青草| 亚洲人成毛片在线播放| 最新日韩在线视频| 久久高清免费观看| 亚洲国产高清一区二区三区| 韩国av一区二区三区| 午夜精品网站| 欧美精品一区二| 一区二区三区精品视频| 美女啪啪无遮挡免费久久网站| 久久免费视频一区| 国产精品日日做人人爱| 亚洲一区欧美二区| 国内精品写真在线观看| 久久久999精品| 99国产精品久久久久久久| 午夜老司机精品| 国产精品夜夜嗨| 亚洲老板91色精品久久| 亚洲婷婷国产精品电影人久久| 欧美成人免费在线| 国产日韩欧美综合一区| 欧美日韩一区二区三区高清| 亚洲欧美日韩中文在线制服| 欧美先锋影音| 久久综合给合久久狠狠狠97色69| 欧美日韩亚洲另类| 国产精品视频一区二区高潮| 午夜精品久久久久久久久久久| 久久综合给合久久狠狠狠97色69| 国产亚洲精品一区二区| 国产午夜精品理论片a级大结局| 欧美日韩成人在线播放| 午夜精品久久久| 久久免费高清| 在线电影欧美日韩一区二区私密| 国产精品99久久久久久久久| 亚洲欧美区自拍先锋| 激情欧美国产欧美| 快射av在线播放一区| 巨胸喷奶水www久久久免费动漫| 极品尤物一区二区三区| 欧美午夜理伦三级在线观看| 国产情侣一区| 亚洲一区免费网站| 国产精品99久久久久久久女警| 激情综合久久| 最新亚洲激情| 国产区在线观看成人精品| 狠狠色狠狠色综合| 亚洲日本免费电影| 在线视频国产日韩| 99精品黄色片免费大全| 国产亚洲精品久久久久婷婷瑜伽| 久热综合在线亚洲精品| 在线观看91精品国产入口| 久久精品中文| 日韩视频中午一区| 亚洲精品少妇30p| 久久九九免费| 久久免费视频一区| 国产又爽又黄的激情精品视频| 午夜精品久久久久久久久| 日韩写真视频在线观看| 国产精品系列在线| 国产乱理伦片在线观看夜一区| 久久福利资源站| 欧美精品高清视频| 国产视频久久久久| 久久精品国产免费| 亚洲少妇最新在线视频| 香蕉久久夜色精品国产使用方法| 香蕉久久夜色精品| 亚洲国产精品一区二区三区| 欧美性猛交一区二区三区精品| 久久久不卡网国产精品一区| 黄色亚洲免费| 国产色视频一区|