1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于Nios II的JPEG圖像顯示系統(tǒng)研究

      更新時間: 2007-10-30 09:09:10來源: 粵嵌教育瀏覽量:933

        隨著多媒體通信技術(shù)的發(fā)展,人們不再滿足單一文字或聲音的傳遞,從普通電話到視頻電話,從SMS(short messaging service)到EMS(enhanced message service)再到MMS(multimedia messaging service),多媒體技術(shù)逐漸進入千家萬戶。因此,研究如何高效地處理多媒體信源,讓其更方便有效地存儲和傳輸是非常必要的。JPEG標(biāo)準(zhǔn)作為圖像壓縮編碼的一項重要技術(shù),不僅適用于靜止圖像的編碼,其分支M-JPEG也適用于低成本場合的運動圖像編碼。現(xiàn)在的圖像顯示卡已發(fā)展到高速處理3D圖像的水平,但是,對靜止圖像JPEG壓縮的評測仍是一項基本指標(biāo)。
         
        目前的嵌入式處理器種類繁多。Altera公司的Nios II處理器是用于可編程邏輯器件的可配置的軟核處理器,與Ahera的低成本的Cyclone FPGA組合,具有很高的性價比。本系統(tǒng)采用Nios II和CycloneEP1C6嵌入式系統(tǒng)開發(fā)板,以及VGA顯示器,實現(xiàn)了一個嵌入式JPEG圖像顯示系統(tǒng)。

        1 總體設(shè)計及系統(tǒng)架構(gòu)
         
        JPEG圖像顯示系統(tǒng)有三大功能:JPEG圖像的存儲、解碼和顯示。基本原理如圖1所示。利用串口通信、USB接口或以太網(wǎng)數(shù)據(jù)傳輸獲取JPEG圖像壓縮數(shù)據(jù)并將數(shù)據(jù)存入高速存儲器(Flash或SRAM);圖像的解碼主要包括預(yù)處理、Huffman解碼、反量化、IDCT變換;圖像顯示是將解碼后的圖像數(shù)據(jù)轉(zhuǎn)換為適合VGA工業(yè)標(biāo)準(zhǔn)的RGB信號,再利用D/A轉(zhuǎn)換,顯示原始圖像。

        該系統(tǒng)在結(jié)構(gòu)上分為3層:系統(tǒng)硬件平臺、操作系統(tǒng)和基于IDCT解碼算法。層是系統(tǒng)硬件平臺,是系統(tǒng)的物理基礎(chǔ),提供軟件的運行平臺和通信接口。系統(tǒng)的硬件平臺在Altera的Nios II Cyclone嵌入式系統(tǒng)開發(fā)板上實現(xiàn),顯示器采用VGA標(biāo)準(zhǔn)的顯示器,可輸出大小為640×480像素、分辨率為500 dpi的24位真彩色圖像。第2層是操作系統(tǒng),采用uCOS II。uCOS II是一個基于搶占式的實時多任務(wù)內(nèi)核,可固化、可剪裁、具有高穩(wěn)定性和可靠性。這一層提供任務(wù)調(diào)度以及接口驅(qū)動,同時,通過硬件中斷來實現(xiàn)系統(tǒng)對外界的通信請求的實時響應(yīng),如對以太網(wǎng)數(shù)據(jù)流傳輸?shù)目刂啤Υ谕ㄐ诺目刂频取_@種方式可以提高系統(tǒng)的運行效率。上層是JPEG圖像解碼核心算法的實現(xiàn)。該算法高效地對壓縮圖像數(shù)據(jù)進行解碼處理和空間域的轉(zhuǎn)換。采用C語言在Nios II的集成開發(fā)環(huán)境(IDE)中實現(xiàn)。

        2 系統(tǒng)硬件的設(shè)計與實現(xiàn)

        2.1 NiosⅡ 嵌入式軟核處理器簡介
         
        Nios II嵌入式處理器是Altera公司于2004年6月推出的第2代用于可編程邏輯器件的可配置的軟核處理器,性能超過200 DMIPS。基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,Nios II能與用戶邏輯相結(jié)合,編程至Altera的FPGA中。處理器具有32位指令集,32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。它特別為可編程邏輯進行了優(yōu)化設(shè)計,也為可編程單芯片系統(tǒng)(SoPC)設(shè)計了一套綜合解決方案。Nios II處理器系列包括3種內(nèi)核:一種是高性能的內(nèi)核(Nios II/f);一種是低成本內(nèi)核(Nios II/e);一種是性能/成本折中的標(biāo)準(zhǔn)內(nèi)核(Nios II/s),是前兩種的平衡。本系統(tǒng)采用標(biāo)準(zhǔn)內(nèi)核。
         
        Nios II處理器支持256個具有固定或可變時鐘周期操作的定制指令;允許Nios II設(shè)計人員利用擴展CPU指令集,通過提升那些對時間敏感的應(yīng)用軟件的運行速度,來提高系統(tǒng)性能。

        2.2 硬件平臺結(jié)構(gòu)
         
        系統(tǒng)的硬件平臺結(jié)構(gòu)如圖2所示。本系統(tǒng)采用USB至UART橋接器CP2102實現(xiàn)與上機位的通信。由Silicon Laboratories推出的CP2102,使RS232升級到USB接口更加簡單,原先采用RS232串口通信方案的設(shè)備在軟件上無需作改動即可直接升級到USB。CP2102內(nèi)建EEPR0M、穩(wěn)壓器、USB收發(fā)器和整合式內(nèi)部振蕩器。這套組件還包含完整的USB2.0全速(ful1.speed)裝置控制器、橋接控制邏輯以及傳送/接受緩沖器和調(diào)制解調(diào)器商議訊號(handshake signa1),這些功能全都整合至5 mm×5 mm的小型封裝內(nèi)。圖像數(shù)據(jù)傳輸?shù)牧鞒淌牵菏紫瘸跏蓟赨ART的各個寄存器,主要是接受寄存器(rxdata)、發(fā)送寄存器(tx.data)、狀態(tài)寄存器(status)、控制寄存器(contro1)、波特率分頻器(divisor)等;然后傳輸?shù)却瑘D像數(shù)據(jù)以1 15 200 bps的速率進人數(shù)據(jù)寄存器,再通過DMA存入Flash。

        本系統(tǒng)硬件平臺主要是在Nios II Cyclone嵌入式開發(fā)板上實現(xiàn)。系統(tǒng)的主要組件,包括Nios II的標(biāo)準(zhǔn)內(nèi)核、片內(nèi)存儲器、UART、DMA控制器、并行I/O接口、Avalon總線、定時器等都集成在一塊Ahera的cyclone FPGA芯片上,使用SoPC Builder來配置生成片上系統(tǒng)。
         
        SoPC Builder是功能強大的基于圖形界面的片上系統(tǒng)定義和定制工具。SoPC Builder庫中包括處理器和大量的IP核及外設(shè)。根據(jù)應(yīng)用的需要,系統(tǒng)選用Nios II Processor、On Chip Memo~、Flash Memo~(Common Flash Interface)、SDRAM Controller、UART、DMA、Interval timer、Seven Segment PIO、Avalon Tri StateBridge、Ethernet Interface等模塊。對這些模塊配置完成后,使用SoPC Builder進行系統(tǒng)生成。SOPC Builder自動產(chǎn)生每個模塊的HDL文件,同時自動產(chǎn)生一些必要的仲裁邏輯來協(xié)調(diào)系統(tǒng)中各部件的工作。

        2.3 使用Nios II的定制指令提高系統(tǒng)性能
         
        使用Nios II的定制指令,可以將一個復(fù)雜的標(biāo)準(zhǔn)指令序列簡化為一個用硬件實現(xiàn)的單一指令,從而簡化系統(tǒng)軟件設(shè)計并加快系統(tǒng)運行速度。Nios II的定制指令是與CPU的數(shù)據(jù)通路中的ALu相連的用戶邏輯塊。其基本操作是,接收從dataa和/或datab端口輸入的數(shù)據(jù),經(jīng)過定制指令邏輯的處理,將結(jié)果輸出到result端口。
         
        JPEG圖像解碼的核心算法是離散余弦反變換IDCT,二維DCT/IDCT變換需要經(jīng)過兩次矩陣乘法,8*8的圖像子塊的DCT/IDCT需要進行8 192次乘法和3 584次加法。基于Nios II的JPEG圖像顯示系統(tǒng)采用w Li循環(huán)斜卷積算法,在保證不增加加法器個數(shù)的同時,大大減少了乘法器數(shù)目,改進了傳統(tǒng)的DCT/IDCT硬件實現(xiàn)方法,采用流水線結(jié)構(gòu),實行并行優(yōu)化算法,提高了IDCT模塊的運算速度,減小了延遲。
         
        定制指令邏輯和Nios II的連接在SoPC Builder中完成。Nios II CPU配置向?qū)峁┝艘粋€可添加256條定制指令的圖形用戶界面,在該界面中導(dǎo)入設(shè)計文件,設(shè)置定制指令名,并分配定制指令所需的CPU時鐘周期數(shù)目。系統(tǒng)生成時,Nios II IDE為每條用戶指令產(chǎn)生一個在系統(tǒng)頭文件中定義的宏,可以在C或C++應(yīng)用程序代碼中直接調(diào)用這個宏。

        3 系統(tǒng)軟件的設(shè)計與實現(xiàn)
         
        本系統(tǒng)的JPEG圖像處理和解碼算法采用c++語言在Nios II IDE中實現(xiàn) 。JPEG圖像解碼算法的流程如圖3所示。

        預(yù)處理算法需要識別不同的標(biāo)記碼,并提取標(biāo)記碼中的有用信息。JPEG圖像文件可分為2個部分:壓縮數(shù)據(jù)和標(biāo)記碼。壓縮數(shù)據(jù)是以MCU(小編碼單元)形式存儲的經(jīng)過壓縮編碼后的數(shù)據(jù)。標(biāo)記碼給出了諸如圖像長度、寬度、量化表、Hufman表等重要信息,而這些信息都包含在不同類型的標(biāo)記碼中。對一個MCU進行Hufman解碼,需在完成亮度解碼后才能進行色度解碼。解碼后得到6個具有64位元素的一維數(shù)組,分別是:4個Y亮度數(shù)組、1個cb色度數(shù)組、1個cr色度數(shù)組(4:1:1模式)。對一個數(shù)組來說,Huffman解碼包括直流解碼和交流解碼。對數(shù)組個元素的解碼稱為直流解碼(簡記為DC解碼),對剩下的63個元素的解碼稱為交流解碼(簡記為AC解碼)。JPEG文件中一般包含4個Hufman表,即亮度DG表、AC表,色度DC表、AC表。一個Huffman碼包括碼頭和碼值2部分,碼頭用來惟一的標(biāo)識該Hufman碼,并與Hufman表一一對應(yīng),碼值是該碼的實際大小。
         
        量化運算需要量化表的配合。從JPEG文件中讀取的量化表一般有2個,分別用2個64位元素的一維數(shù)組來存儲,用于對亮度和色度進行反量化。反量化運算就是將上面經(jīng)Huffman解碼得到的數(shù)組中的元素與量化表中對應(yīng)位置元素相乘。為了進行后面的IDCT,還需要將完成反量化運算的數(shù)組進行z字型變換,將一維數(shù)組變換成8×8的二維數(shù)組。
         
        IDCT變換直接利用自定制指令快速完成8×8的二維數(shù)組的離散余弦反變換。后續(xù)處理的任務(wù)之一就是完成顏色空間的轉(zhuǎn)換,即將JPEG圖像數(shù)據(jù)的Y、cb、cr顏色空間轉(zhuǎn)換為RGB顏色空間。但是,為了使計算出的R、G、B的值都是正數(shù),需要對Y、cb、cr分別加128進行修正,同時乘法運算出現(xiàn)了浮點數(shù),故需要對浮點數(shù)進行定標(biāo)處理.

        4 結(jié)束語
         
        本文提出了一種基于Nios II嵌入式處理器軟核的JPEG圖像顯示系統(tǒng)的實現(xiàn)方法。使用Altera的Cyclone FPGA實現(xiàn),具有開發(fā)周期短、成本低等特點;同時,采用Nios II的定制指令來提高系統(tǒng)性能,利用硬件實現(xiàn)算法速度快的優(yōu)點,使以Nios II處理器為核心的系統(tǒng)能夠快速地完成大量圖像數(shù)據(jù)處理。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线日本∨a精品视频 | 亚洲精品字幕中文 | 亚洲欧美国产制服另类 | 欧美伊久线香蕉观新在线 | 五月综合缴缴情婷婷 | 亚洲AV永久精品一区二区在线 |