<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于雙FPGA+ARM架構的圖像壓縮系統

基于雙FPGA+ARM架構的圖像壓縮系統

作者: 時(shí)間:2011-08-26 來(lái)源:網(wǎng)絡(luò ) 收藏

目前的存儲方案大都無(wú)法支持高分辨率。另外,在一些DSP解決方案中,因為DSP接口不靈活以及DSP本身處理能力的限制,很難支持高分辨。

本文引用地址:http://dyxdggzs.com/article/150285.htm

  本設計開(kāi)發(fā)出了一套+的高速計算機屏幕圖像。通過(guò)對圖像壓縮任務(wù)的劃分,利用的并行計算能力和靈活的編程方式,完成圖像壓縮算法。對于壓縮后的碼流,系統采用管理,linux的嵌入式系統能夠以文件的形式存儲碼流,另外,ARM對網(wǎng)絡(luò )和音頻常用設備能方便地管理。系統支持主流接口(VGA,DVI),壓縮后的碼流可以存儲在本地硬盤(pán),也可以通過(guò)網(wǎng)絡(luò )發(fā)送到遠端服務(wù)器。雙的設計對計算機屏幕圖像壓縮更為方便,原始圖像經(jīng)過(guò)前端預處理FPGA進(jìn)行幀間檢測,以決定該幀圖像進(jìn)入主FPGA的壓縮模式,主FPGA為核心壓縮引擎,負責完成高速圖像壓縮算法。

  1 系統與實(shí)現

  系統整體如圖1所示,采用雙FPGA+ARM架構,主要包括圖像前端預處理、圖像壓縮模塊和碼流管理部分。

  

  前面一塊FPGA完成前端預處理,如分辨率檢測、色彩轉換和圖像分析等功能;后面一塊FPGA用來(lái)實(shí)現圖像實(shí)時(shí)壓縮,其中ARM對系統進(jìn)行管理,如壓縮后碼流管理、網(wǎng)絡(luò )管理和音頻錄制等。

  1.1 預處理模塊

  本系統同時(shí)支持VGA、DVI兩種主流顯卡接口。采用AD9888[2]作為視頻模數轉換器,TI公司的TFP403[3]為DVI接收芯片。Xilinx公司Virtex4[4](XC4VLX40)完成圖像預處理,主要包括圖像數據的采集、色彩空間轉換和幀間檢測。前端處理模塊如圖2所示。

  

  1.1.1 圖像數據采集

  預處理FPGA接收到的圖像數據為接口芯片送來(lái)的圖像數據,包括像素時(shí)鐘信號(PCLK)、場(chǎng)同步信號(VSYNC)、行同步信號(HSYNC)以及數據信號(R[7:0],G[7:0],B[7:0])。圖像數據的采集包括判斷圖像分辨率和提取圖像數據兩個(gè)步驟。

  當前的計算機屏幕分辨率很多,工業(yè)VGA標準規定了各種分辨率的像素時(shí)鐘及場(chǎng)、行同步信號時(shí)序,根據相鄰場(chǎng)同步信號(VSYNC)之間行同步信號(HSYNC)數目,以及相鄰行同步信號(HSYNC)之間像素時(shí)鐘(PCLK)數目識別VGA信號分辨率。根據場(chǎng)同步信號(VSYNC)和行同步信號(HSYNC)提出圖像數據。

  1.1.2 色彩空間轉換

  VGA輸出為RGB信號,而人眼對圖像的亮度分量更為敏感,所以,對圖像數據進(jìn)行色彩空間轉換,將RGB信號轉換為YUV信號,轉換公式:

  

  系統實(shí)現時(shí)采用4:2:2采樣模式,FPGA采用定點(diǎn)化處理后,得到亮度分量Y 和色度分量UV。

  1.1.3 幀間檢測

  幀間檢測的核心思想是對比相鄰兩幀圖像,判斷每個(gè)像素點(diǎn)是否變化。以3×3的塊為判斷單元,如果有變化則將該像素位置和像素值都存起來(lái);如果沒(méi)有變化則不傳輸這些信息。當得到了一個(gè)4×4的塊以后把這個(gè)16個(gè)點(diǎn)的信息作為一個(gè)整體傳給后面的模塊,然后統計1幀圖像總的碼流大小。如果該值低于一個(gè)設定的閾值,則認為當前幀沒(méi)有變化,直接傳當前幀變化部分的像素和位置信息到后面的碼流整理模塊;如果統計后碼流的大小大于設定的閾值,則將當前幀送入LX100中進(jìn)行壓縮。

  1.2 圖像壓縮模塊

  圖像壓縮為系統核心模塊,該壓縮引擎包括小波變換和熵編碼,算法全部由系統主FPGA完成。該FPGA芯片選用Xilinx公司的Virtex4[4]系列FPGA(XC4VLX160)。圖像壓縮引擎結構如圖3。

  

  在系統算法設計中,圖像小波變換采用了離散小波變換的空間推舉算法(SCLA)[5]。不同于傳統的離散小波變換(DWT),SCLA對行與列同時(shí)進(jìn)行變換,其乘法次數是小波變換算法中最少的,而重建圖像質(zhì)量也很高,PSNR值優(yōu)于JPEG,接近JPEG2000。編碼算法采用了改進(jìn)的無(wú)鏈表零樹(shù)編碼算法(SLC),該算法綜合了多層次零樹(shù)編碼算法(SPIHT[6])和無(wú)鏈表零樹(shù)編碼(LZC[7])的特點(diǎn),在性能上優(yōu)于LZC,逼近SPIHT,而且易于硬件實(shí)現。

  系統的架構由FPGA和兩片外部SDRAM實(shí)現。SDRAM用于緩存小波變換后的小波系數。FPGA完成小波變換算法SCLA和熵編碼算法SLC。SCLA算法由5個(gè)流水線(xiàn)小波濾波器完成,每個(gè)濾波器完成一層小波分解,而小波分解運算需要乘法器,在FPGA芯片選型時(shí),根據小波濾波器中需要乘法器的個(gè)數選擇FPGA。在本系統中,5個(gè)流水的小波濾波器包括36個(gè)乘法器,對于亮度分量Y和色度分量UV兩路數據并行處理,則需要72個(gè)乘法器,而在Virtex4系列FPGA(XC4VLX160)中有96個(gè)DSP單元。由小波變換得到小波系數,系統設計時(shí)采用2片外部SDRAM和FPGA片內SRAM結合的方法緩存小波系數。對于亮度分量Y和色度分量UV兩路數據并行處理以提高系統吞吐量,SDRAM1和SDRAM2分量用來(lái)緩存Y和UV的小波系數。熵編碼算法SLC負責對小波系數編碼,該算法以一棵小波樹(shù)為基本處理單元,即當前端小波系數構成一棵小波樹(shù)時(shí),熵編碼模塊便啟動(dòng)編碼,從而完成一幀圖像所有小波樹(shù)的編碼。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 壓縮 系統 圖像 架構 FPGA ARM 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>