JPEG實時編解碼系統(tǒng)的設計方案,軟硬件實現(xiàn)
設計概述
本設計背景及意圖:
隨著寬帶Internet以及數(shù)字多媒體技術的飛速發(fā)展,以Internet為傳輸媒介的視頻會議、可視電話、遠程視頻監(jiān)控、遠程醫(yī)療系統(tǒng)以及數(shù)字流媒體等新的視頻應用層出不窮。這些應用都需要對大量的圖像進行網(wǎng)絡傳輸。而由于圖像的信息量巨大,給存儲器的存儲容量、通信干線信道的帶寬,以及計算機的處理速度增加極大的壓力,單純靠增加存儲器容量,提高信道帶寬以及計算機的處理速度等方法來解決這個問題都是不現(xiàn)實的,必須對圖像進行壓縮,去掉圖像信息中的冗余,減少網(wǎng)絡傳輸?shù)男畔⒘俊?/p>
JPEG是國際標準化組織(ISO)和CCITT聯(lián)合制定的靜態(tài)圖像的壓縮編碼標準,它是目前靜態(tài)圖像中壓縮比最高的,正是由于JPEG的高壓縮比,使得它在數(shù)據(jù)量極大的多媒體以及帶寬資源寶貴的網(wǎng)絡程序中有著非常廣泛的應用。
當JPEG編解碼的速度提高到一定程度,就能夠對動態(tài)圖像進行編碼,這種JPEG壓縮編碼稱為M-JPEG(Motion-JPEG)。M-JPEG一個很大的特點就是圖像處理等待時間較少,適合于在例如視頻移動偵測或物體追蹤環(huán)境下進行圖像處理。M-JPEG可提供所有實際使用的圖像分辨率,從用于移動電話的QVGA分辨率,到4CIF的全視頻顯示尺寸,甚至是更高的百萬像素分辨率。系統(tǒng)無論在移動或復雜環(huán)境情況下都能保證視頻質量,并提供高圖像質量(低壓縮)和低圖像質量(高壓縮)的靈活選擇,同時能真正保證圖像處理的實時性。
本設計適用范圍及用戶:
首先,JPEG應用的領域包括互聯(lián)網(wǎng)、彩色傳真、打印、掃描、數(shù)字攝像、遙感、移動通信、醫(yī)療圖像和電子商務等等,于此同時,JPEG在數(shù)碼相機、PDA、手機等手持設備和嵌入式設備中的使用也正方興未艾。
其次,當能實現(xiàn)實時處理JPEG編解碼時(M-JPEG),又可將其用于以Internet為傳輸媒介的視頻會議、可視電話、遠程視頻監(jiān)控、遠程醫(yī)療系統(tǒng)以及數(shù)字流媒體等新的視頻領域。
最后,本設計實現(xiàn)的是JPEG實時編解碼系統(tǒng),因而可用于實時圖像的傳輸和處理,諸如上面提到的遠程監(jiān)控、可視電話等,往大點說,可將此系統(tǒng)用于重要場所的監(jiān)控系統(tǒng)中,公司部門之間的視頻會議系統(tǒng)中等需要實時傳輸圖像的一些系統(tǒng)中。
功能概述
本設計的功能:
本設計主要有兩大部分組成:第一部分為圖像編碼服務器端,第二部分為圖像解碼客戶端。對于圖像編碼服務器端可分為:圖像采集模塊、JPEG編碼模塊、網(wǎng)絡(Internet)傳輸數(shù)據(jù)模塊(包括壓縮碼流和控制指令傳輸及接收);對于圖像解碼客戶端可分為:JPEG解碼模塊、VGA顯示模塊。在軟硬件結合控制下,實現(xiàn)服務器端進行圖像的采集,通過Internet傳輸碼流,客戶端實時顯示圖像這一功能(當處理速度一定程度時,可以視為實時、同步)。整個組成部分或單元在Spartan®-6平臺外加一定的外設上(例如攝像頭,AD轉換和DA轉換,VGA顯示或者說顯示器等)實現(xiàn)了JPEG實時編解碼系統(tǒng)這一設計理念。
設計結構
整體設計構思:
如圖1,系統(tǒng)主要分為兩大部分組成:圖像編碼服務器端和圖像解碼客戶端,并且服務器端可以規(guī)定連接的客戶端數(shù)目。
圖1 總體硬件圖示
其中,圖像編碼服務器端又包括圖像的實時采集、JPEG編碼、網(wǎng)絡傳輸數(shù)據(jù)(傳送至圖像解碼客戶端);圖像解碼客戶端包括JPEG解碼(當然,前提是接收數(shù)據(jù)后)、VGA顯示圖像;當然,客戶端可以不只一個,可以再服務器端配置客戶端的個數(shù),本設計只用一個客戶端進行說明。
則具體硬件設計圖可如圖2:
圖2 詳細硬件模塊圖
工作原理
1、圖像編碼服務器端:
系統(tǒng)上電后,NiosII對它控制下的圖像實時采集模塊,JPEG編碼模塊以及網(wǎng)絡傳輸模塊進行配置,包括采集來的原始圖像存儲的首地址,圖像處理緩存去首地址和壓縮后圖像存儲首地址等等,然后網(wǎng)絡模塊檢測有沒有客戶端的請求連接,若有,CPU產(chǎn)生線程,建立與客戶端的連接,并通知圖像采集模塊,當圖像采集模塊采集完一幀后,向CPU發(fā)送中斷,通知對原始圖像進行編碼,一幀圖像編碼完畢后,JPEG壓縮模塊向CPU發(fā)送中斷,通知網(wǎng)絡傳傳輸碼流模塊傳送碼流至客戶端。具體流程圖如下:
圖3 圖像編碼服務器端工作流程
2、圖像解碼客戶端:
客戶端與服務器端成對稱關系。當CPU完成一系列配置后,向服務器發(fā)送連接請求,如被接受,客戶端接收服務器端的壓縮碼流,一幀數(shù)據(jù)接收完畢后,發(fā)送中斷;解碼模塊接收到CPU發(fā)送的信號,開始解碼,解碼一幀完畢后,向CPU發(fā)送中斷,顯示模塊接收到一幀恢復后的數(shù)據(jù)后開始顯示,顯示完一幀,檢測解碼模塊是否有新的圖像,如有,則顯示下一幀圖像,反之,繼續(xù)顯示當前圖像(不進行更新)。具體流程如下:
圖3 圖像解碼客戶端工作流程
3、JPEG編碼控制軟件流程
編碼控制軟件流程圖
4、JPEG解碼控制軟件流程
解碼控制軟件流程圖
設計方法
一:圖像采集模塊
利用攝像頭和Analog Device公司的ADV7181模數(shù)轉換芯片實現(xiàn)采集模塊(當然,也可以從DVD等類似設備獲得圖像),經(jīng)過AD轉換實現(xiàn)RGB轉YCbCr(此時要考慮采樣率),完成模擬信號到數(shù)字信號轉換。當然,此模塊實現(xiàn)起來可能并非像說的那么簡單。大致流程如下:
圖5 圖像采集模塊流程
二:JPEG編碼部分
流程如下:
圖6 JPEG編碼流程圖
1、將圖像分成8*8數(shù)據(jù)塊(其實是數(shù)字信號數(shù)組,即YCbCr(由RGB按照兩者之間關系轉換過來)組成的數(shù)組,其中YCbCr比例不同),DCT變換采用8*8變換公式;
2、進行DCT變換(此步驟是設計中最耗硬件資源的,故而也最影響速度),DCT變換算法已經(jīng)比較成熟,可以有很多文獻供參考,若本人有幸可以參賽,本設計將打算采用兩次的一維DCT變換來實現(xiàn)二維的DCT變換(要實現(xiàn)實時編碼,此部分可能還需改進),具體如下:
公式 1 DCT變換公式
公式1也可以寫成矩陣運算形式F = CfCT其中,C為帶余弦基本函數(shù)的變換系數(shù)矩陣,CT為C 的轉置,則DCT變換公式可以分解成串聯(lián)的兩次一維變換,如下:
公式2
公式3
即寫成矩陣形式為:F=CY,Y=fCT,這里,Y為中間乘積矩陣(Y的列等于f行的一維DCT 輸出) 。因此,在做二維DCT變換時,可以應用一維DCT 變換來計算,即先沿f的行進行一維DCT 計算獲得Y,再沿著Y的轉置的行進行一維DCT運算。這其中就包含一個轉置存儲器。這樣的算法結構如圖
圖 7 2D-DCT算法結構
3、進行量化,量化有對應的量化表(色度和亮度的量化表不同),將DCT變換的結果與對應量化表中的數(shù)相除(可以采用乘法代替除法的方式,這樣節(jié)省硬件資源);
4、之字形輸出,即將量化后的數(shù)據(jù)按之字形輸出即可(直流分量在最前,之后是交流分量),經(jīng)過此步驟后,低頻分量數(shù)據(jù)靠前排列,高頻分量數(shù)據(jù)靠后排列;
5、Huffman編碼,此部分有對應的色度和亮度編碼表。此部分也可以根據(jù)數(shù)值出現(xiàn)的可能性大小來提高編碼速度。
此部分采用Xilinx公司FPGA芯片實現(xiàn),即開發(fā)板主芯片。
三:JPEG解碼部分
即為JPEG編碼的逆過程,有對應的逆DCT變換公式,若編碼部分能夠很好的實現(xiàn),此部分將不是什么難題,在此就不做介紹。
此部分采用Xilinx公司FPGA芯片實現(xiàn),即開發(fā)板主芯片。
四:VGA顯示模塊
將JPEG解碼后的數(shù)據(jù)進行DA轉換,將轉換后的數(shù)據(jù)傳送至VGA顯示,大致流程如下:
圖 8 VGA顯示模塊示意
五:網(wǎng)絡傳輸數(shù)據(jù)模塊
采用DAVICOM的DM9000進行網(wǎng)絡通信,根據(jù)DM9000硬件結構,編寫好驅動程序,并且轉換成用戶自定義模塊。
設計特點
本設計的特點在于提出一種基于Spartan®-6平臺實現(xiàn)JPEG實時編解碼系統(tǒng)的方案,該方案利用FPGA并行處理的特點,同時結合JPEG編解碼算法本身的特點,再加上Xilinx公司Spartan®-6平臺和自備一些外設這些資源,最后在FPGA上應用Xilinx公司的開發(fā)板實現(xiàn)整個系統(tǒng)。本設計完成了圖像采集、JPEG編碼、網(wǎng)絡數(shù)據(jù)傳輸、JPEG解碼和VGA顯示的功能,達到了實現(xiàn)JPEG實時編解碼的功能。當然,條件和時間允許的話還可以對該系統(tǒng)做進一步的開發(fā),做成嵌入式無線數(shù)據(jù)傳輸系統(tǒng);也可以進一步研究JPEG編解碼算法,此外,可以將Linux等嵌入式系統(tǒng)移植到本硬件平臺上來,為更高級的應用提供有效的支持。因此,它具有靈活性、實用性和可擴展性等特點,具有一定的市場前景。
總而言之,本設計比較充分的利用了Spartan®-6平臺的資源,完成了JPEG實時編解碼系統(tǒng)目的,可以應用在視頻監(jiān)控、可視電話、視頻會議等一些需要傳輸圖像的系統(tǒng)中。因為傳輸?shù)氖荍PEG圖像數(shù)據(jù),較之其它格式的圖像數(shù)據(jù),在數(shù)據(jù)量上要少很多,因而可以通過網(wǎng)絡的形式快速傳輸,達到實時的目的。
評論