国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種畫面同步系統(tǒng)的設計與實現(xiàn)

2015-05-15 03:19:48姜利英梁茂岳保磊孔令春
現(xiàn)代計算機 2015年7期
關(guān)鍵詞:源碼插件內(nèi)核

姜利英,梁茂,岳保磊,孔令春

(1.鄭州輕工業(yè)學院電氣信息工程學院,鄭州 450002;2.北京凌陽愛普科技有限公司,北京 100085)

一種畫面同步系統(tǒng)的設計與實現(xiàn)

姜利英1,梁茂1,岳保磊1,孔令春2

(1.鄭州輕工業(yè)學院電氣信息工程學院,鄭州 450002;2.北京凌陽愛普科技有限公司,北京 100085)

為了更好滿足現(xiàn)在會議等場合的需求,通過采用和修改MJPG-streamer開源視頻服務器軟件的源碼,為其添加新的功能模塊,實現(xiàn)板端與PC端屏幕同步顯示的效果。使得原本多用于視頻監(jiān)控的MJPG-streamer,有新的應用領域。介紹MJPG-streamer的主要插件及其功能并詳細給出利用MJPG-streamer畫面同步的實現(xiàn)的方法。實驗結(jié)果表明,該設計可以很好實現(xiàn)屏幕間的同步。

嵌入式Linux;MJPG-streamer;同步

0 引言

隨著計算機網(wǎng)絡技術(shù)、移動通信技術(shù)、多媒體技術(shù)的快速發(fā)展[1],人們對產(chǎn)品的體驗的要求越來越高。當前公司在進行產(chǎn)品展示時,多進行遠距離展示,這樣就會增加了公司的成本,并占用了辦公室內(nèi)的空間,且搬移不便。基于此,本文采用了一個開源工程軟件,經(jīng)過修改,設計實現(xiàn)了一種畫面同步系統(tǒng),減小了對投影設備的依賴,同時減少了占地空間,該系統(tǒng)在會展中心、學校、銀行、公司等有著廣泛的市場和發(fā)展前景。

1 系統(tǒng)總體設計

該系統(tǒng)是以Cortex-A8處理器S5PV210為核心,在嵌入式Linux系統(tǒng)平臺下,通過MJPG-streamer的輸入插件獲取屏幕的數(shù)據(jù),然后對所得到的視頻數(shù)據(jù)通過內(nèi)部總線送到視頻服務器MJPG-streamer上,視頻服務器經(jīng)過對圖像壓縮處理,經(jīng)過以太網(wǎng)傳輸出去,遠端客戶機通過瀏覽器或者專用軟件訪問視頻服務器[2],即可在客戶端同步顯示板端實時畫面,系統(tǒng)總體如圖1所示。

圖1 系統(tǒng)總體框圖

2 硬件設計

系統(tǒng)的硬件系統(tǒng)主要包括三星公司的Cortex系列處理器S5PV210、觸摸屏、網(wǎng)卡、串口以及內(nèi)存和NAND Flash存儲芯片組成。s5pv210是一款高性能32位RISC微處理器,采用了ARM Cortex-A8內(nèi)核,ARM V7指令集,主頻可達1GHz,64/32位內(nèi)部總線結(jié)構(gòu),32/ 32KB的數(shù)據(jù)/指令一級緩存,512KB的二級緩存[3],具有低功耗、低成本等優(yōu)點。網(wǎng)卡選用支持10/100Mbps、小型、電壓可變的以太網(wǎng)芯片LAN9220,,內(nèi)存采用DDR2 RAM(K4T1G164),NAND Flash采用Samsung K9K8G08U0B,SLC結(jié)構(gòu),大小為1Gx8bit,串口用于開發(fā)過程中的調(diào)試使用,具體硬件結(jié)構(gòu)如圖2所示。

圖2 硬件結(jié)構(gòu)圖

3 軟件設計

3.1 系統(tǒng)軟件總體框架的介紹

本次設計的系統(tǒng)軟件從下往上依次為Bootloader, Linux內(nèi)核,Yaffs文件系統(tǒng)和MJPG-streamer視頻服務器,其中需要添加必要的設備驅(qū)動,系統(tǒng)框圖如圖3所示。

圖3 整體結(jié)構(gòu)框圖

Bootloader引導加載程序是系統(tǒng)加電后運行的第一段代碼,是在操作系統(tǒng)內(nèi)核運行之前運行的一小段程序,通過設備的初始化,并建立內(nèi)存映射空間,為操作系統(tǒng)準備好合適的環(huán)境[4]。一般從網(wǎng)上下載的Bootloader,需要通過修改添加對特定硬件的識別、初始化之后,然后經(jīng)過交叉編譯得到可執(zhí)行文件,通過SD卡或其他方式下載到板子上。

由于Linux內(nèi)核是采用模塊化設計的一種源碼開放的操作系統(tǒng),所以在選擇了觸摸屏驅(qū)動外,為了縮小編譯后內(nèi)核鏡像的大小,本系統(tǒng)里只保留了必需的功能模塊,刪除了冗余的功能模塊,待一切選擇好后,就可以執(zhí)行make命令對內(nèi)核重新編譯,然后就可以在/ arm/arch/boot目錄下產(chǎn)生一個zImage文件。

文件系統(tǒng)可以通過從官網(wǎng)下載有“瑞士軍刀”之稱的busybox1-1.6源碼編譯,然后通過mkyaffs2image工具制作yaffs文件系統(tǒng),文件系統(tǒng)中包括Linux啟動時必要的文件,內(nèi)核啟動后加載linuxrc文件,按照順序啟動各種服務、掛載操作和完成C庫的拷貝。

3.2 MJPG-streamer的結(jié)構(gòu)和畫面同步的設計

MJPG-streamer是一個輕量級的視頻服務器軟件。一個可以從單一輸入組件獲取圖像并傳輸?shù)蕉鄠€輸出組件的命令行應用程序[5]。MJPG-streamer的源碼結(jié)構(gòu)分明,層次清晰,由于它采用模塊化的設計方法,所有的工作都是通過它的各個插件完成的,所以軟件中只要定義好了各組件(plug-in)的輸入、輸出以及組件之間的銜接關(guān)系,用戶就可自行根據(jù)對功能的需求,完成自己的設計,本次設計就是通過添加input_screen插件來實現(xiàn)畫面同步的。

它有兩個最主要并且最常用的組件是input_uvc輸入組件和output_http輸出組件,input_uvc輸入插件用于產(chǎn)生視頻數(shù)據(jù)并將視頻數(shù)據(jù)復制到內(nèi)存中,output_http輸出插件是網(wǎng)站服務器插件,它可以將攝像頭采集的視頻數(shù)據(jù)傳送到用戶瀏覽器中[6],其中output_ http輸出插件是一個功能齊全的HTTP1.0的Web服務器,可以根據(jù)現(xiàn)有的M-JPEG標準,從一輸入插件中獲取圖像,向客戶端瀏覽器傳輸jpeg流文件,從而實現(xiàn)從瀏覽器端訪問視頻數(shù)據(jù)的要求。正是由于該開源工程擁有這兩個重要的插件,所以該服務器軟件多用于視頻監(jiān)控等領域。而在本文中,由于不是使用MJPG-streamer通用的功能,所以input_uvc插件用不到,只用到了output_http插件。

另外它還包括input_control、input_file、input_testpicture、input_gspcavl、output_autofocus、output_file, out_viewer等組件,具體如圖4所示。

圖4 MJPG-streamer結(jié)構(gòu)框圖

由于M JPG-streamer主函數(shù)的定義在mjpg_ streamer.c文件,在實現(xiàn)了各個輸入輸出組件后,主函數(shù)通過調(diào)用各個組件即可完成整個視頻采集傳輸顯示的全部過程。以下是本設計中input_screen輸入組件各個模塊程序設計的具體實現(xiàn)思路。

(1)int input_init(input-parameter *param)

該函數(shù)的功能是通過對輸入?yún)?shù)的判斷,循環(huán)分析輸入?yún)?shù)來進行對應的操作,如提示保存所需要的輸入?yún)?shù)的信息,設置延時的秒數(shù)等。

(2)int input_run(void)

該函數(shù)創(chuàng)建了一個工作線程worker_thread線程,該線程實現(xiàn)了rgb24格式圖片到JPEG格式圖片的轉(zhuǎn)換,以方便視頻畫面的傳輸和顯示,具體工作流程見下文。最后使用pthread_deatch函數(shù)回收線程序資源。

(3)int input_stop(void)

該函數(shù)通過調(diào)用pthread_cancel(worker)取消圖片格式轉(zhuǎn)換的工作線程,回收線程資源,節(jié)省內(nèi)存空間。

(4)int input_cmd(int in_cmd_type cmd,int value)

該函數(shù)的功能為對屏幕參數(shù)的調(diào)整和控制,通過對參數(shù)的判別,增加或減小獲取到的屏幕的數(shù)據(jù)。

其中第二步里的線程函數(shù)worker_thread(void*arg)具體實現(xiàn)流程圖如下:

圖5

經(jīng)過上述對MJPG-streamer輸入插件input_screen的增加,即可實現(xiàn)畫面的同步,然后就是對整個項目的重新編譯和移植,具體移植過程不再詳述,可參考相關(guān)文獻。由于編譯過程中需要libjpeg.so庫,所有需要先移植jpeg庫,然后導入環(huán)境變量export LIB_PATH=/ home/edu/share/install/,進行編譯安裝,最后把生成的.so文件拷貝到m jpg目錄下。啟動視頻服務器后,指定服務器的輸入/輸出組件以及該文件夾的路徑,那么客戶端會瀏覽事先存編寫好的已存放在/m jpg/www目錄下的網(wǎng)頁,最后在start.sh啟動該服務器即可,修改后的語句如下:

4 結(jié)語

本文通過研究開源工程MJPG-streamer的結(jié)構(gòu)和源碼,在它通用的功能基礎上,通過增加input_screen輸入組件,很好地實現(xiàn)了視頻同步。不僅拓展了MJPG-streamer的用途,而且設計了一種簡單方便的同步方法,經(jīng)驗證,該系統(tǒng)實現(xiàn)的效果很好,可以用于各種需要演示的場合。效果如圖6。

圖6

[1] 許青,劉方.基于ARM9的室內(nèi)無線監(jiān)控報警系統(tǒng)設計與實現(xiàn)[J].電子科技,2013,26(2):103

[2] 于艷萍,朱曉智,王中訓.基于ARM9和USB攝像頭的網(wǎng)絡視頻采集系統(tǒng)設計[J].現(xiàn)代電子技術(shù),2011,34(24):50

[3] 三星處理器芯片手冊

[4] 楊闊,何東健.基于S3C6410的田間視頻監(jiān)控系統(tǒng)的實現(xiàn)[J].計算機工程與設計,2013,34(6):1979

[5] 陳書益,黃永慧.開源視頻服務器軟件MJPG-streamer的研究和應用[J].電子設計工程,2012,20(5):172

[6] 楊宏,張志文.基于Web的嵌入式遠程監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].計算機與數(shù)字工程,2012,10:72

Design and Implementation of Screen Synchronous System

JIANG Li-ying1,LIANG Mao1,YUE Bao-lei1,KONG Ling-chun2,
(1.Institute of Electrical Engineering,Zhengzhou University of Light Industry,Zhengzhou 450002;2.Beijing Sunplusapp Technology Co.Ltd.,Beijing 100085)

In order to bettermeet the requirements of presentmeeting,modifies the MJPG-streamer open source video server s of tware and source code,adds new modules for the realization of the plate,tomake the screen synchronization display of terminal and PC.Makes the new use for videomonitoring of MJPG-streamer.Introduces themain plug-ins and their functions and themethod of screen synchronization, the experimental results show that the design is very good to achieve the synchronization between the screens.

Embedded Linux;MJPG-streamer;Synchronous

1007-1423(2015)07-0065-04

10.3969/j.issn.1007-1423.2015.07.018

姜利英(1981-),女,河南郾城人,博士,副教授,研究方向為生物傳感器及檢測微系統(tǒng)

梁茂(1988-),男,河南固始人,碩士,研究生,研究方向為單片機及嵌入式系統(tǒng)

2014-10-20

2015-02-10

岳保磊(1987-),男,河南駐馬店人,碩士,,研究方向為生物傳感器、單片機檢測微系統(tǒng)

孔令春(1984-),男,江蘇南京人,工程師,研究方向為視音頻、嵌入式系統(tǒng)

猜你喜歡
源碼插件內(nèi)核
基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應爬蟲代碼生成方法
計算機應用(2023年6期)2023-07-03 14:11:56
基于圖神經(jīng)網(wǎng)絡的軟件源碼漏洞檢測方法
計算機時代(2023年6期)2023-06-15 17:49:09
萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
企業(yè)如何保護源碼
自編插件完善App Inventor與樂高機器人通信
電子制作(2019年22期)2020-01-14 03:16:34
基于嵌入式Linux內(nèi)核的自恢復設計
Linux內(nèi)核mmap保護機制研究
基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
計算機教育(2016年4期)2016-05-20 02:36:05
MapWindowGIS插件機制及應用
宜城市| 宁城县| 九龙坡区| 屏山县| 含山县| 景宁| 襄樊市| 威宁| 竹溪县| 井研县| 罗甸县| 新竹县| 河西区| 石家庄市| 政和县| 赤壁市| 樟树市| 株洲县| 襄樊市| 修武县| 龙南县| 洪泽县| 中宁县| 册亨县| 应城市| 信丰县| 凤翔县| 淮北市| 铁岭县| 年辖:市辖区| 小金县| 罗田县| 普定县| 苗栗市| 和林格尔县| 安乡县| 贵州省| 东兴市| 郯城县| 常州市| 永安市|