亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2013-06-29 01:47:30王雪萍唐林波趙保軍
        電視技術(shù) 2013年9期
        關(guān)鍵詞:截屏線程上位

        王雪萍,唐林波,趙保軍

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

        遠(yuǎn)程屏幕傳輸是指將一臺(tái)計(jì)算機(jī)上的屏幕信息通過(guò)計(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é)議,通過(guò)網(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ù)通過(guò)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)過(guò)視頻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ù)打包后通過(guò)以太網(wǎng)傳輸,在截取圖像大小為576×384×30 f/s時(shí),采用2 Mbit/s碼率能獲得比較清晰的圖像。最后,接收端使用H.264解碼軟件實(shí)時(shí)播放傳輸過(guò)來(lái)的壓縮圖像。

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

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

        2.1 上位機(jī)截屏

        上位機(jī)主要實(shí)現(xiàn)方案切換和方案一中的計(jì)算機(jī)截屏。方案切換是通過(guò)上位機(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 編寫(xiě)[2],經(jīng)實(shí)測(cè),在 Visual Studio 2010平臺(tái)上用C#編寫(xiě)截圖類函數(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è)獲得傳輸命令和讀寫(xiě)數(shù)據(jù)的地址后,一方面對(duì)這個(gè)操作命令做出反應(yīng),將其傳達(dá)給LOCAL總線,另一方面將PCI總線傳送過(guò)來(lái)的數(shù)據(jù)地址映射為L(zhǎng)OCAL總線可識(shí)別的地址。當(dāng)LOCAL總線準(zhǔn)備好后,PCI IP核會(huì)收到LOCAL側(cè)做出的響應(yīng)信號(hào)。然后根據(jù)讀/寫(xiě)命令的不同執(zhí)行相應(yīng)的時(shí)序。在上電啟動(dòng)時(shí)它為FPGA申請(qǐng)空間,操作FPGA時(shí)它將PC機(jī)給出的地址轉(zhuǎn)換為FPGA可以識(shí)別的地址[4]。本系統(tǒng)通過(guò)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)存中。單周期的訪問(wèn)速度太慢,不適合做批量數(shù)據(jù)傳輸。因此PCI內(nèi)部設(shè)置了專門用于批量傳送的DMA控制器將數(shù)據(jù)傳送給FPGA。通過(guò)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ǔ)單元地址管理,讀寫(xiě)模式配置等功能。設(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通過(guò)I2C總線[6]對(duì)TVP70025I內(nèi)部寄存器進(jìn)行初始化設(shè)置,并啟動(dòng)模數(shù)轉(zhuǎn)換過(guò)程。

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

        方案二中上位機(jī)VGA口輸出給視頻AD芯片的圖像是XGA格式,大小固定,幀頻為60 Hz。需要在FPGA內(nèi)部裁剪成需要的以圖像上任意坐標(biāo)為原點(diǎn)的,大小可改變的圖像。并通過(guò)DPRAM緩存數(shù)據(jù)改變傳輸速度。通過(guò)上位機(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)說(shuō)都是很大的困難,因此有必要在存儲(chǔ)和傳輸圖像數(shù)據(jù)時(shí)進(jìn)行壓縮。H.264在同樣的視頻清晰度下,編碼效率比MPEG-4提高50%,壓縮比更高,而且提供友好的網(wǎng)絡(luò)接口,有利于在網(wǎng)絡(luò)中的視頻傳輸[7]。

        TI推出的DM368集成了ARM處理器,應(yīng)用程序的開(kāi)發(fā)需要搭建交叉編譯環(huán)境,需要宿主機(jī)和目標(biāo)機(jī),宿主機(jī)需要安裝TFTP服務(wù)器為完成目標(biāo)機(jī)的主要映像文件的下載工作。宿主機(jī)還需要配置NFS文件系統(tǒng),宿主機(jī)編譯的文件可以通過(guò)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線程、顯示線程、捕獲線程和寫(xiě)線程。在video線程中,video線程從capture線程接收數(shù)據(jù),調(diào)用硬件編碼器對(duì)其進(jìn)行編碼,將編碼后的數(shù)據(jù)送到write線程,write線程將數(shù)據(jù)寫(xiě)到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ā)送給客戶端,這些功能是通過(guò)RTP thread完成。

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

        FPGA程序使用QUARTUSⅡ軟件,Verilog語(yǔ)言編寫(xiě),并使用MODELSIM軟件仿真。DSP程序使用CCS3.3軟件,C語(yǔ)言編寫(xiě)。本系統(tǒng)兩種方案均成功截取屏幕圖像,并在解碼端顯示。圖4是遠(yuǎn)程屏幕傳輸系統(tǒng)板卡6U CPCI版型實(shí)物圖。在上位機(jī)開(kāi)始線程截圖時(shí)同時(shí)記截圖的幀數(shù)N,終止截屏后,彈出對(duì)話框顯示從開(kāi)始截屏到結(jié)束截屏的時(shí)間T。通過(guò)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??梢?jiàn)當(dāng)截取屏幕越大時(shí),截屏速度會(huì)相應(yīng)的降低,傳輸時(shí)間也會(huì)變長(zhǎng)。通過(guò)網(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)過(guò)AD轉(zhuǎn)換,在壓縮圖像前就產(chǎn)生了一定的誤差。但從直觀視覺(jué)上,兩種方案都可以達(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ù)需要通過(guò)上位機(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.

        猜你喜歡
        截屏線程上位
        截屏打卡不夠89次算曠工 如此居家辦公就有高效率了?
        葉佑天作品選
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        2012款奔馳R300車修改最高車速限制
        淺談linux多線程協(xié)作
        2014款雪佛蘭科魯茲車安全氣囊控制模塊在線編程操作方法
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機(jī)的教室智能監(jiān)測(cè)管理系統(tǒng)
        以新思路促推現(xiàn)代農(nóng)業(yè)上位
        Linux線程實(shí)現(xiàn)技術(shù)研究
        国产久视频国内精品999| 日本少妇高潮喷水视频| 久久精品夜色国产亚洲av| 国产精品免费久久久久影院| 亚洲国产剧情在线精品视 | 精品国产18禁久久久久久久| 国产蜜臀精品一区二区三区| 最好看的亚洲中文字幕| 无码国产福利av私拍| 欧洲综合色| 国产精品一区二区三区黄片视频 | 亚洲国产av一区二区三区精品| 国产va免费精品高清在线观看 | 久久久久亚洲av片无码下载蜜桃| 伊人网在线视频观看| 国产av一区二区三区在线| 一本大道道久久综合av| 国产免国产免费| 一本无码人妻在中文字幕| 日本一区二区啪啪视频| 男人的天堂av高清在线| 中国丰满熟妇av| 亚洲中文久久久久无码| 精品亚洲一区二区三洲| 九九久久自然熟的香蕉图片| 精品国产午夜福利在线观看| 午夜视频福利一区二区三区| 国产在线一区二区三区乱码| 欧美bbw极品另类| 日韩精品成人无码AV片| 日日噜噜噜夜夜狠狠久久蜜桃| 天天躁夜夜躁狠狠躁2021a2| 久久久国产精品麻豆| 国产精东一区二区三区| 欧美国产激情18| 性一交一乱一伦a片| 亚洲AV永久无码精品表情包| 亚洲自拍偷拍色图综合| 米奇777四色精品人人爽| 色综合久久久久综合999| 国产一区二区三区男人吃奶|