999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DSP+FPGA的遠(yuǎn)程屏幕傳輸系統(tǒng)

2013-06-29 01:47:30王雪萍唐林波趙保軍
電視技術(shù) 2013年9期

王雪萍,唐林波,趙保軍

(北京理工大學(xué)信息與電子學(xué)院,北京 100081)

遠(yuǎn)程屏幕傳輸是指將一臺(tái)計(jì)算機(jī)上的屏幕信息通過計(jì)算機(jī)網(wǎng)絡(luò)實(shí)時(shí)傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)上并重新顯示出來(lái),在計(jì)算機(jī)遠(yuǎn)程控制和監(jiān)控中有廣泛應(yīng)用。傳統(tǒng)的視頻監(jiān)控存在實(shí)時(shí)性差和圖像清晰度不高的缺點(diǎn)[1]。本文設(shè)計(jì)了一種基于DSP+FPGA的遠(yuǎn)程圖像傳輸系統(tǒng),實(shí)現(xiàn)主機(jī)屏幕圖像截取、壓縮和傳輸。采用TCP/IP協(xié)議,通過網(wǎng)絡(luò)接口傳輸給局域網(wǎng)上其他計(jì)算機(jī),在其他計(jì)算機(jī)上進(jìn)行實(shí)時(shí)解壓縮顯示。局域網(wǎng)上任何一臺(tái)計(jì)算機(jī)上均可看到本機(jī)屏幕上的內(nèi)容,對(duì)計(jì)算機(jī)進(jìn)行實(shí)時(shí)監(jiān)視。

本文采用兩種方案實(shí)現(xiàn)遠(yuǎn)程屏幕傳輸,提出了系統(tǒng)的總體實(shí)現(xiàn)結(jié)構(gòu),并給出系統(tǒng)不同模塊的具體設(shè)計(jì)。

1 系統(tǒng)的整體設(shè)計(jì)方案

圖1是遠(yuǎn)程屏幕傳輸系統(tǒng)的結(jié)構(gòu)框圖。使用兩種方案進(jìn)行截屏,主要是截屏數(shù)據(jù)源和FPGA的處理數(shù)據(jù)工作不一樣,DSP進(jìn)行數(shù)據(jù)壓縮的功能是相同的。方案一是上位機(jī)讀取計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)通過PCI接口將數(shù)據(jù)發(fā)送給FPGA,F(xiàn)PGA進(jìn)行數(shù)據(jù)格式的調(diào)整,存儲(chǔ)到DPRAM中。再將DPRAM中的數(shù)據(jù)發(fā)送給DSP。同時(shí),從DPRAM中以符合VGA顯示的時(shí)序讀取數(shù)據(jù)并再次轉(zhuǎn)換數(shù)據(jù)格式,進(jìn)行實(shí)時(shí)的VGA截屏顯示。方案二是電腦VGA接口輸出模擬RGB信號(hào)經(jīng)過視頻AD轉(zhuǎn)換成數(shù)字信號(hào),F(xiàn)PGA對(duì)圖像原點(diǎn)和大小根據(jù)需要進(jìn)行改變。兩種方案中DSP的作用都是對(duì)傳輸圖像數(shù)據(jù)進(jìn)行H.264壓縮后使用以太網(wǎng)傳輸。其中數(shù)據(jù)壓縮部分調(diào)用DSP內(nèi)嵌硬件模塊進(jìn)行H.264壓縮。DSP內(nèi)嵌的ARM處理器將數(shù)據(jù)打包后通過以太網(wǎng)傳輸,在截取圖像大小為576×384×30 f/s時(shí),采用2 Mbit/s碼率能獲得比較清晰的圖像。最后,接收端使用H.264解碼軟件實(shí)時(shí)播放傳輸過來(lái)的壓縮圖像。

圖1 系統(tǒng)結(jié)構(gòu)框圖

2 系統(tǒng)詳細(xì)設(shè)計(jì)

2.1 上位機(jī)截屏

上位機(jī)主要實(shí)現(xiàn)方案切換和方案一中的計(jì)算機(jī)截屏。方案切換是通過上位機(jī)發(fā)送控制信號(hào)傳遞給FPGA實(shí)現(xiàn)的。方案一中的截屏數(shù)據(jù)是計(jì)算機(jī)顯存中的數(shù)據(jù),每個(gè)像素點(diǎn)是以R、G、B數(shù)據(jù)格式存儲(chǔ)的,每個(gè)色彩通道為8 bit。因此一幀圖像以原始數(shù)據(jù)大小傳輸給FPGA,傳輸圖像數(shù)據(jù)較大。獲取屏幕圖像的上位機(jī)軟件界面采用VS2003或 VS2010 編寫[2],經(jīng)實(shí)測(cè),在 Visual Studio 2010平臺(tái)上用C#編寫截圖類函數(shù),程序中的截屏部分調(diào)用dotnet4.0中執(zhí)行效率較高的工具集,比VS2003效率提高30%以上。為了提高資源利用率,程序采用線程截圖的方式進(jìn)行主機(jī)屏幕截屏。同時(shí),還可以進(jìn)行單幀截屏圖像的保存,保存為BMP文件格式。計(jì)算機(jī)的PCI驅(qū)動(dòng)由Windriver軟件生成。軟件操作簡(jiǎn)便、人機(jī)交互良好,界面如圖2所示。

圖2 上位機(jī)操作界面(截圖)

2.2 FPGA數(shù)據(jù)處理

FPGA主要實(shí)現(xiàn)PCI總線接口、SDRAM數(shù)據(jù)存儲(chǔ)、I2C總線配置芯片、方案一圖像數(shù)據(jù)格式轉(zhuǎn)換功能和方案二圖像大小裁剪的功能。FPGA選用ALTERA公司生產(chǎn)的EP3C55F484。有327個(gè)I/O用戶引腳和55856 個(gè)邏輯單元。片上具有260個(gè)256×36 bit的RAM存儲(chǔ)塊。FPGA外接雙口DPRAM緩存數(shù)據(jù),選用IDT70T3339芯片,存儲(chǔ)容量為512 kbyte×18 bit。視頻DA選用ADV7123是一款單芯片、3 通道、10 bit高速數(shù)模轉(zhuǎn)換器[3]。

與上位機(jī)的數(shù)據(jù)通信采用CPCI接口。CPCI是PICMG提出的一種工業(yè)接口標(biāo)準(zhǔn),采用PCI總線技術(shù),在此基礎(chǔ)上改善了機(jī)械結(jié)構(gòu),支持熱插拔,可靠性高。本系統(tǒng)PCI接口是在FPGA中利用Altera公司提供的PCI IP核來(lái)完成。PCI Compiler提供了使用Altera器件實(shí)現(xiàn)PCI接口設(shè)計(jì)的完全解決方案。PCI IP核的功能即是將復(fù)雜的PCI總線轉(zhuǎn)換為相對(duì)簡(jiǎn)單易操作的PCI本地總線,它從PCI總線側(cè)獲得傳輸命令和讀寫數(shù)據(jù)的地址后,一方面對(duì)這個(gè)操作命令做出反應(yīng),將其傳達(dá)給LOCAL總線,另一方面將PCI總線傳送過來(lái)的數(shù)據(jù)地址映射為L(zhǎng)OCAL總線可識(shí)別的地址。當(dāng)LOCAL總線準(zhǔn)備好后,PCI IP核會(huì)收到LOCAL側(cè)做出的響應(yīng)信號(hào)。然后根據(jù)讀/寫命令的不同執(zhí)行相應(yīng)的時(shí)序。在上電啟動(dòng)時(shí)它為FPGA申請(qǐng)空間,操作FPGA時(shí)它將PC機(jī)給出的地址轉(zhuǎn)換為FPGA可以識(shí)別的地址[4]。本系統(tǒng)通過PCI接口與PC機(jī)傳輸圖像數(shù)據(jù),由上位機(jī)應(yīng)用程序控制系統(tǒng)工作,F(xiàn)PGA每幀中斷通知上位機(jī)截取圖像,故系統(tǒng)工作于32 bit主/從模式。PCI的BAR0預(yù)留2 Mbyte的存儲(chǔ)空間,基地址 BAR1預(yù)留256 byte I/O空間。由于PCI總線上地址線和數(shù)據(jù)線復(fù)用,所以還需要地址/數(shù)據(jù)控制模塊來(lái)實(shí)現(xiàn)對(duì)地址數(shù)據(jù)傳輸?shù)目刂啤CI接口本地端邏輯設(shè)計(jì)應(yīng)當(dāng)完成地址譯碼、命令譯碼以及中斷控制功能。PCI接口邏輯設(shè)計(jì)中,調(diào)用Altera在SOPC Builder中提供的PCI IP核,與自行設(shè)計(jì)的譯碼邏輯相連接,完成PCI總線功能[5]。上位機(jī)截屏的圖像數(shù)據(jù)存放在計(jì)算機(jī)內(nèi)存中。單周期的訪問速度太慢,不適合做批量數(shù)據(jù)傳輸。因此PCI內(nèi)部設(shè)置了專門用于批量傳送的DMA控制器將數(shù)據(jù)傳送給FPGA。通過NOIS中的程序向DMA控制器配置傳輸首址、傳輸長(zhǎng)度和使能DMA位等參數(shù)啟動(dòng)。

本系統(tǒng)設(shè)計(jì)最高支持1024 ×1024 大小圖像截屏傳輸,從上位機(jī)獲取的一幀圖像的原始數(shù)據(jù)量是1024 ×1024 ×3=3 Mbyte,數(shù)據(jù)量大。采用SDRAM作為存儲(chǔ)器外設(shè)。在FPGA內(nèi)部產(chǎn)生SDRAM控制器來(lái)完成SDRAM的初始化、自動(dòng)定時(shí)刷新、存儲(chǔ)單元地址管理,讀寫模式配置等功能。設(shè)計(jì)中調(diào)用Altera在SOPC Builder中提供的基于Avalon總線的SDRAM控制器核來(lái)實(shí)現(xiàn)該功能。芯片選用MT48LC2M32B,容量為2 Mbyte×32 bit。

本系統(tǒng)中VGA輸出視頻信號(hào)采用XGA(1024 ×768)視頻格式,60 f/s,選用 TI公司的視頻 ADC芯片TVP70025I完成該高清模擬視頻的模數(shù)轉(zhuǎn)換,采樣精度及方式選取為8 byte,4∶2∶2(Y∶Cb∶Cr) 采樣。TVP70025I輸出數(shù)字化視頻分量(Y、Cb和Cr)、數(shù)據(jù)時(shí)鐘(DATACLK)、場(chǎng)同步(VSOUT)和行同步(HSOUT)信號(hào)給FPGA。FPGA通過I2C總線[6]對(duì)TVP70025I內(nèi)部寄存器進(jìn)行初始化設(shè)置,并啟動(dòng)模數(shù)轉(zhuǎn)換過程。

方案一中上位機(jī)傳輸?shù)紽PGA的圖像數(shù)據(jù)處理過程:FPGA中斷接收上位機(jī)截屏數(shù)據(jù)緩存SDRAM中,然后將RGB格式轉(zhuǎn)換成YUV422格式。首先轉(zhuǎn)換成YUV444格式,產(chǎn)生寫片外雙口的寫使能、寫地址,以YUV422格式存儲(chǔ)圖像數(shù)據(jù),最后以30 f/s讀出傳輸給DSP。按顯示時(shí)序讀取片外雙口中數(shù)據(jù),并產(chǎn)生VGA顯示時(shí)序。經(jīng)過視頻DA芯片后實(shí)時(shí)顯示截屏圖像。

方案二中上位機(jī)VGA口輸出給視頻AD芯片的圖像是XGA格式,大小固定,幀頻為60 Hz。需要在FPGA內(nèi)部裁剪成需要的以圖像上任意坐標(biāo)為原點(diǎn)的,大小可改變的圖像。并通過DPRAM緩存數(shù)據(jù)改變傳輸速度。通過上位機(jī)PCI接口可以獲得上位機(jī)設(shè)定的圖像原點(diǎn)坐標(biāo)值。

2.3 數(shù)據(jù)壓縮

FPGA傳輸給DSP的是一幀的YUV422格式的圖像數(shù)據(jù),使用以太網(wǎng)傳輸,短時(shí)間內(nèi)處理如此大的數(shù)據(jù)量對(duì)存儲(chǔ)容量、信道的帶寬和數(shù)據(jù)的處理速度來(lái)說都是很大的困難,因此有必要在存儲(chǔ)和傳輸圖像數(shù)據(jù)時(shí)進(jìn)行壓縮。H.264在同樣的視頻清晰度下,編碼效率比MPEG-4提高50%,壓縮比更高,而且提供友好的網(wǎng)絡(luò)接口,有利于在網(wǎng)絡(luò)中的視頻傳輸[7]。

TI推出的DM368集成了ARM處理器,應(yīng)用程序的開發(fā)需要搭建交叉編譯環(huán)境,需要宿主機(jī)和目標(biāo)機(jī),宿主機(jī)需要安裝TFTP服務(wù)器為完成目標(biāo)機(jī)的主要映像文件的下載工作。宿主機(jī)還需要配置NFS文件系統(tǒng),宿主機(jī)編譯的文件可以通過NFS利用網(wǎng)絡(luò)直接加載到目標(biāo)機(jī)的RAM中運(yùn)行。圖3是DM368的硬件設(shè)計(jì)方案框圖。

圖3 DM368的硬件設(shè)計(jì)方案框圖

DM368有一套完整的基于LINUX操作系統(tǒng)的解決方案。系統(tǒng)的軟件框架分為3個(gè)應(yīng)用層:應(yīng)用層,信號(hào)處理層和I/O層。信號(hào)處理層負(fù)責(zé)硬件H.264編碼,算法采用XDM封裝,ARM下的應(yīng)用程序可以調(diào)用符合XDM應(yīng)用程序接口的API函數(shù)[8]。

在LINUX系統(tǒng)下實(shí)現(xiàn)H.264壓縮視頻編碼的應(yīng)用程序需要多個(gè)線程來(lái)對(duì)多個(gè)外圍設(shè)備進(jìn)行操作。分為thread線程、video線程、顯示線程、捕獲線程和寫線程。在video線程中,video線程從capture線程接收數(shù)據(jù),調(diào)用硬件編碼器對(duì)其進(jìn)行編碼,將編碼后的數(shù)據(jù)送到write線程,write線程將數(shù)據(jù)寫到Linux的文件系統(tǒng)中。使用專用的I/O和capture線程來(lái)最大限度地發(fā)揮ARM和DSP核的作用。

本系統(tǒng)的實(shí)時(shí)視頻傳輸功能是采用RTP協(xié)議來(lái)實(shí)現(xiàn)的,實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol,RTP)是用于互聯(lián)網(wǎng)上針對(duì)多媒體數(shù)據(jù)流傳輸?shù)囊环N協(xié)議[9]。video線程將視頻流進(jìn)行H.264編碼,編碼后的視頻流即為一個(gè)NALU單元。RTP封包按照RFC3984標(biāo)準(zhǔn)規(guī)定的格式將NALU單元封裝為標(biāo)準(zhǔn)的RTP包,然后再發(fā)送給客戶端,這些功能是通過RTP thread完成。

3 實(shí)驗(yàn)結(jié)果與分析

FPGA程序使用QUARTUSⅡ軟件,Verilog語(yǔ)言編寫,并使用MODELSIM軟件仿真。DSP程序使用CCS3.3軟件,C語(yǔ)言編寫。本系統(tǒng)兩種方案均成功截取屏幕圖像,并在解碼端顯示。圖4是遠(yuǎn)程屏幕傳輸系統(tǒng)板卡6U CPCI版型實(shí)物圖。在上位機(jī)開始線程截圖時(shí)同時(shí)記截圖的幀數(shù)N,終止截屏后,彈出對(duì)話框顯示從開始截屏到結(jié)束截屏的時(shí)間T。通過N/T可以計(jì)算出發(fā)送的幀頻,測(cè)試在截取576×384大小計(jì)算機(jī)屏幕時(shí),經(jīng)反復(fù)測(cè)試,達(dá)到30 f/s的傳輸速度。在截取1024 ×1024 大小計(jì)算機(jī)屏幕時(shí),傳輸速度是15 f/s。可見當(dāng)截取屏幕越大時(shí),截屏速度會(huì)相應(yīng)的降低,傳輸時(shí)間也會(huì)變長(zhǎng)。通過網(wǎng)線連接發(fā)送板卡和接收端,在接收端的主機(jī)上使用H.264解碼軟件顯示。使用MATLAB軟件計(jì)算方案一上位機(jī)截取原始圖像和接收端解壓縮后圖像(圖5所示)的PSNR值為64.0291 。方案二接收端解壓縮后圖像(圖6所示)的PSNR值為40.1564 。方案一接收到的圖像質(zhì)量比方案二的效果更好一些。

方案一是直接截取現(xiàn)存中的數(shù)字圖形缺點(diǎn)是要占用25%左右的CPU資源(對(duì)于雙核CPU)。另一種方案是對(duì)上位機(jī)的VGA信號(hào)進(jìn)行AD變換,然后截取AD變換之后的圖像。這種方案的優(yōu)點(diǎn)是不占用CPU資源,缺點(diǎn)是截取圖像AD轉(zhuǎn)換圖像時(shí),像素點(diǎn)數(shù)值會(huì)產(chǎn)生一定的誤差,圖像會(huì)比第一種模糊。是由于截取圖像是從VGA口經(jīng)過AD轉(zhuǎn)換,在壓縮圖像前就產(chǎn)生了一定的誤差。但從直觀視覺上,兩種方案都可以達(dá)到較好的顯示效果,可長(zhǎng)時(shí)間穩(wěn)定工作。

4 小結(jié)

本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于DSP+FPGA的遠(yuǎn)程屏幕傳輸系統(tǒng),采用兩種方案實(shí)現(xiàn)計(jì)算機(jī)屏幕截屏,實(shí)際應(yīng)用時(shí)可根據(jù)需要通過上位機(jī)選擇方案截屏圖像傳輸,使用靈活。調(diào)用DM368硬件編碼模塊,實(shí)現(xiàn)H.264壓縮格式的實(shí)時(shí)視頻壓縮編碼,克服遠(yuǎn)程屏幕傳輸系統(tǒng)中普遍存在的實(shí)時(shí)性差、穩(wěn)定性差的缺點(diǎn)。同時(shí),截取屏幕原點(diǎn)和大小均可改變,具有靈活性。

[1]董祖雄,謝捷生.遠(yuǎn)程屏幕傳輸及其數(shù)據(jù)壓縮的實(shí)現(xiàn)方案[J].微型機(jī)與應(yīng)用,2001,10(9):55-56.

[2]吳棟淦.兩種屏幕圖像獲取方案的比較[J].機(jī)電技術(shù),2007,9(3):9-11.

[3]Altera Corporation.EP2S90 data sheet[EB/OL].[2012 -06 -06].http://wenku.baidu.com/view/3d78d7eab8f67c1cfad6b893.html.

[4]王宏斌.PCI總線IPCORE的FPGA實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2006.

[5]秦珍.基于IP核的PCI卡在圖像采集系統(tǒng)中的應(yīng)用[D].西安:西安電子科技大學(xué),2010.

[6]戴立新,王澤勇,王黎,等.I2C總線的接口及應(yīng)用[J].現(xiàn)代電子技術(shù),2009(2):132-134.

[7]劉衛(wèi)亮.基于H.264的無(wú)線視頻傳輸平臺(tái)的設(shè)計(jì)與硬件實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2010.

[8]彭啟宗.達(dá)芬奇技術(shù)[M].北京:電子工業(yè)出版社,2008.

[9]夏朋浩.非制冷熱成像信號(hào)處理與壓縮技術(shù)研究[D].南京:南京理工大學(xué),2012.

主站蜘蛛池模板: 欧美成人影院亚洲综合图| 欧美一区国产| 男女性午夜福利网站| 精品成人一区二区| 亚洲免费毛片| 综合色婷婷| 99在线观看免费视频| 欧美、日韩、国产综合一区| 国产成人无码久久久久毛片| 91热爆在线| 亚洲无码免费黄色网址| 最新日韩AV网址在线观看| 国产激情无码一区二区免费| 孕妇高潮太爽了在线观看免费| 欧美狠狠干| 亚洲最新网址| 国产欧美日韩精品第二区| 国禁国产you女视频网站| 福利一区三区| 欧洲成人免费视频| 欧美在线综合视频| 色色中文字幕| 黄色a一级视频| 亚洲精品日产AⅤ| 午夜毛片免费观看视频 | 国产三级国产精品国产普男人| 亚洲AV电影不卡在线观看| 五月婷婷导航| 欧美一级在线| 国产肉感大码AV无码| 美女扒开下面流白浆在线试听| 亚洲精品在线观看91| 免费中文字幕在在线不卡| 国产一级毛片在线| 国产96在线 | 亚洲欧美自拍中文| 久久婷婷色综合老司机| 国产日韩欧美在线视频免费观看| 毛片免费在线视频| 激情综合婷婷丁香五月尤物| 东京热av无码电影一区二区| 国产欧美精品专区一区二区| 鲁鲁鲁爽爽爽在线视频观看 | 国产女人在线视频| 奇米精品一区二区三区在线观看| 最新亚洲人成网站在线观看| 在线观看国产黄色| 亚洲视频免| 亚洲嫩模喷白浆| 蜜臀AVWWW国产天堂| 露脸国产精品自产在线播| 无码专区在线观看| 久久久久亚洲av成人网人人软件| 亚洲欧美成人在线视频| 日韩精品毛片人妻AV不卡| 国产精品19p| 免费欧美一级| 亚洲人精品亚洲人成在线| 亚洲精品在线91| 99色亚洲国产精品11p| 77777亚洲午夜久久多人| 国产真实乱了在线播放| 亚洲无码91视频| 欧美成人免费| 五月激情婷婷综合| 丝袜无码一区二区三区| 亚洲娇小与黑人巨大交| 九九热精品视频在线| 久久婷婷人人澡人人爱91| www精品久久| 99久久精品无码专区免费| 免费看av在线网站网址| 国产日本欧美亚洲精品视| 91网站国产| 亚洲国产日韩一区| 午夜福利视频一区| 欧美激情成人网| 波多野结衣一区二区三视频| 国产91小视频| 精品无码一区二区三区电影| 久热re国产手机在线观看| 九色在线视频导航91|