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

Linux及OK6410環境下視頻監控系統設計與實現

2019-06-06 04:21:26張海嬌孫文勝
軟件導刊 2019年3期

張海嬌 孫文勝

摘 要:隨著城市建設數字化、智慧化、管理遠程化、生產異地化,安防和智能管理技術擁有越來越廣闊的發展前景。針對監控產品技術升級需求,提出了一種以OK6410嵌入式ARM開發板為硬件平臺,以Linux-3.6.0為軟件平臺的視頻監控系統。描述了整個系統架構以及系統軟硬件設計,重點介紹了V4L2視頻框架設計以及CMOS攝像頭實現圖像捕捉的過程,并創新設計了循環鏈表緩沖池,明顯緩解了輸入輸出同步問題,提高了程序健壯性。實際應用表明,該系統能較好地為多個用戶同時提供實時視頻服務,具有較高的穩定性和可擴展性,并擁有日志記錄功能。

關鍵詞:視頻監控系統;Linux;OK6410;V4L2;緩沖池

DOI:10. 11907/rjdk. 182098

中圖分類號:TP319文獻標識碼:A文章編號:1672-7800(2019)003-0121-05

0 引言

隨著科技的不斷發展和人們安防意識的提升,網絡視頻監控系統得到了廣泛應用 [1]。網絡視頻監控系統主要經歷了3個發展階段:第一階段為已經退出歷史舞臺的模擬監控系統[2];第二階段為目前小范圍使用的PC機插卡式監控系統[3];第三階段為當今普遍使用的嵌入式視頻監控系統[4]。

目前,網絡視頻監控系統逐步向移動化和全數字化演進[5],移動視頻監控[6]、基于IPV的視頻監控[7]、滿足數字化家庭需求的視頻監控[8]均以嵌入式技術為依托。隨著嵌入式處理器性能的不斷提高,嵌入式視頻監控系統應用越來越廣泛。

為在嵌入式芯片上進行多種方式擴展,本系統選用資源容量和圖像處理能力較為強大的OK6410開發板作為硬件平臺,利用嵌入式Linux操作系統內核搭建軟件平臺,為多個用戶同時提供實時視頻服務。系統在V4L2視頻框架[9]中新定義了攝像頭捕捉結構體,創新設計了V412框架操作,實現用戶查看監控視頻中重要畫面的抓圖功能;同時創新設計了適用于本系統的循環鏈表緩沖池,以及采用適當的線程同步機制對緩沖池進行讀寫操作,使系統可以明確分離輸入輸出設備,增強程序健壯性,提高系統模塊化水平;充分利用OK6410的開發資源,加入日志記錄功能,實現系統的調試控制,保障運行穩定性,為日后系統升級擴展提供支持。

1 系統總體設計

本系統采用C/S(客戶/服務)架構[10],通過個人PC上通用的http服務,用戶不需要安裝客戶端即可在網頁上獲取監控服務[11]。以因特網作為通信平臺,傳輸html文件表單和視頻流數據,結合相關傳感和嵌入式技術,有效獲取實時視頻數據,同時利用高效穩定的Linux操作系統內核管理硬件平臺,使系統擁有強大功能。

系統有前端采集、視頻處理、網絡服務 [12] 3大子系統,通過前端采集系統將CMOS攝像頭[13]采集的視頻數據導入視頻處理系統,經過處理的視頻數據更適合存儲和傳輸。當有客戶登錄服務器時,被處理的視頻數據導入網絡服務系統,客戶即可通過網頁查看實時監控視頻。

1.1 系統硬件設計

本監控系統采用基于三星S3C6410處理器ARM 11的飛凌公司OK6410開發板,此開發板具有更高的主頻和豐富的外設,提供LCD 接口、Camera 輸入接口、4路串口、SDIO接口、100M 網卡、USB2.0-OTG接口、USB Host 接口、音頻輸入輸出接口、按鍵接口等硬件資源[14],適用于對性能和處理能力有更高要求的嵌入式系統應用場合。系統主控機硬件由電源模塊、按鍵設備模塊、串口設備模塊、網絡設備模塊、數據存儲單元模塊和視頻監控模塊組成,硬件設計如圖1所示。

1.2 系統軟件設計

系統軟件平臺采用功能強大、穩定安全的Linux操作系統,使用的Linux內核版本為3.6.0。前期在OK6410開發板上完成Linux操作系統的移植、U-BOOT移植、文件系統制作與移植以及交叉編譯環境的搭建[15]。系統軟件設計要滿足以下幾個功能:①通過軟件編程,控制CMOS攝像頭傳感器,實現視頻數據的采集;②完成文件系統搭建以及FLASH和 SD卡存儲設備驅動,使所采集視頻信息可以保存到本地存儲設備;③完成基于Linux的TCP并發服務器搭建[16];④在軟件編程上考慮使用對應的硬件視頻編解碼控制器驅動軟件代碼,通過S3C6410的H.264硬件編碼器[17]和PP硬件多媒體轉換器[18],完成視頻硬件H.264編碼和縮放轉碼功能;⑤因為系統需要使用按鍵作為系統功能控制輸入設備,所以在軟件設計上需要加上對應按鍵驅動。系統軟件功能結構設計如圖2所示。

2 系統功能模塊設計

2.1 V4L2視頻框架設計

V4L2視頻框架只能在Linux操作系統上運行,是針對uvc免驅USB設備的編程框架,主要用于設置攝像頭的頻率、幀率、視頻壓縮格式等圖像參數,完成對USB攝像頭設備圖像數據的采集,在APP編程中主要使用該框架提供的API和驅動命令工作。該框架的工作模式如圖3所示。

針對v4l2_camera.h新定義了描述攝像頭捕捉的結構體CAMERA_CAPABILITY,該結構體定義如下:

typedef struct

{? /* output param */

int cam_fd;

unsigned int width;

unsigned int height;

unsigned long int file_length;

unsigned long int data_size;

int isstreaming;????????????????? // state

void *mem[NB_BUFFER];?????? // 內核視頻緩沖區長度

struct v4l2_capability cap;??????? // 攝像頭查詢驅動能力

struct v4l2_fmtdesc fmtdesc;????? // 攝像頭支持的視頻格式

struct v4l2_format format;??????? // 攝像頭視頻參數

struct v4l2_requestbuffers req;???? // 前端數據緩沖區轉換物理地址

struct v4l2_buffer buf;?????????? // 前端視頻緩沖區

}CAMERA_CAPABILITY;

系統創新設計了v4l2框架操作,在v4l2_camera.c源文件中實現了攝像頭捕捉,相關操作實現如下:

extern int Camera_Init(CAMERA_CAPABILITY *cam)??? // 初始化v4l2框架

extern int Camera_Start(CAMERA_CAPABILITY *cam)?? // 開啟視頻捕捉

extern int Camera_Stop(CAMERA_CAPABILITY *cam)??? // 停止視頻捕捉

extern int Camera_Grab(CAMERA_CAPABILITY *cam

#if CAM_PHOTO

,

char *photo_name,

int volatile *photo_enable_flag

#endif

)? // 循環捕捉一幀

extern int Camera_Exit(CAMERA_CAPABILITY *cam)??? // 退出視頻捕捉

操作流程如下:

(1)調用Camera_Init(&cam);初始化攝像頭捕捉程序。

(2)調用Camera_Grab(&cam,PHOTONAME,&photo_post);進行一幀圖像的捕獲,其中第二和第三個參數在用戶配置宏CAM_PHOTO非0時有效。PHOTONAME為保存圖片的名字,photo_post為是否拍照的flag標準,非0代表保存當前幀圖片,保存格式默認為BMP圖片文件格式。

(3) 調用Camera_Exit(&cam);退出攝像頭視頻捕捉。

2.2 循環鏈表緩沖池設計

本系統創新設計了循環單向鏈表緩沖池,使用該緩沖池可明確分離輸入輸出設備,提高系統模塊化水平,很簡單地增加輸入或輸出設備數量使之同時工作。循環單向鏈表緩沖池結構如圖4所示。

循環鏈表緩沖池設計方案如下:

在queue.h中新定義了描述循環鏈表節點NODE和緩沖池的結構體MyQueue:

typedef struct signal_loop_chain

{

unsigned int * dataaddr;

unsigned long int len;

struct signal_loop_chain *next;

}NODE;

typedef struct _QUEUE

{

NODE *queue_head;

NODE *queue_end;

int n;

}MyQueue;

在queue.c源文件中定義了功能函數的實現,具體如下:

extern NODE *Create_loop_chain(int n);??? // 循環鏈表緩沖池創建

extern int Quere_Show();? // 打印當前鏈表信息,調試用

extern int Quere_Read_Buf(S3C_HD_JPEG_DECODE_INFO *to

#if WEB_CAP

,WEB_STREAM_CAP *web

#endif

); ? // 讀鏈表某一數據塊

extern int Quere_Write_Buf(CAMERA_CAPABILITY *in);? // 寫鏈表某一空塊

extern int Free_loop_chain(); // 鏈表注銷資源

設計鏈表后,還需要利用存儲空間塊儲存數據,故使用OK6410的硬件cached內存分配器,獲取8塊cached虛擬內存區域,在鏈表初始化時依次插入到鏈表中。

采用循環鏈表緩沖池優化了存儲,同時使用多線程編程,極大優化了系統執行靈活度,提高了系統模塊化程度,但是隨之產生的是線程同步問題。

在Linux線程同步中,有POSIX無名信號量、POSIX有名信號量、線程互斥鎖、線程讀寫鎖、線程條件變量等幾種同步機制[19]。綜合比較這幾種同步機制,本系統采用POSIX無名信號量和線程讀寫鎖作為緩沖池的同步機制,使用POSIX無名信號量用于讀寫緩沖池同步。由于多用戶的網絡數據傳輸模型與單一寫多個同時讀取的同步模型相似,故使用線程讀寫鎖用于多用戶網絡數據流傳輸,從而實現系統穩定的同步機制。

3 系統調試與測試

本系統調試工作主要有:串口調試、攝像頭數據捕捉調試、網絡調試、HTTP服務器調試。

3.1 串口調試

本系統需要串口進行Linux命令和調試信息傳輸。OK6410開發板自帶COM19針串口接口,并在系統軟件設計中留有DEBUG配置宏和config.h配置文件,故只需在電腦上開啟串口軟件,同時在配置文件中打開DEBUG宏,即可在串口中打印系統調試日志信息。

3.2 攝像頭數據捕捉調試

本系統使用羅技C270高清USB攝像頭,該款攝像頭支持USB2.0,最大分辨率為1 024×768,感光元件為CMOS。在使用前打開總線熱插拔功能,注冊USB攝像頭驅動程序以及V4L2驅動。

在設計調試中發現,OK6410開發板的USB Host是1.1接口,Linux在識別USB1.1接口后,強制減緩了V4L2框架的最大傳輸速率,導致V4L2框架識別的YUV格式分辨率只有160×120。為了得到較為正常的分辨率,系統使用了經過壓縮的MJPEG圖像,其分辨率可以達到800×600,基本滿足設計要求。開啟攝像頭捕捉調試宏,通過調試信息查看攝像頭捕捉子系統是否正常工作。經上板測試,該攝像頭捕捉子系統工作正常。

3.3 網絡調試

OK6410開發板帶有RJ-45網絡變壓器,開發板使用192.168.0.232作為自身的IP地址,使用網線將其與路由器相連,然后在電腦上使用PING命令檢測網絡層是否可以建立連接。經上板測試,該開發板可與電腦正常通信。

3.4 HTTP服務器調試

在調試HTTP服務器前,需要將自行開發的幾個HTML文件放入BOA指定的www文件夾中,BOA默認使用index.html作為主頁[20]。調試時使用boa命令打開BOA服務器守護進程,然后利用IP地址即可登陸服務器頁面,如圖5所示。

輸入賬號密碼后,CGI程序將通過數據庫查詢賬號密碼是否符合要求。如果符合要求則跳轉到控制頁面,如圖6所示。

按下“視頻預覽選擇”中的視頻圖標后,將進入視頻實時監控頁面,如圖7所示。

按下“視頻預覽選擇”中的照相機圖標后進入拍照演示頁面,如圖8所示。

4 結語

本系統利用嵌入式系統優點,在OK6410開發板基礎上設計了一種基于Linux操作系統的視頻監控系統,同時創新設計了V412框架操作,實現了攝像頭抓拍功能,并創新定義使用了循環鏈表緩沖池,以及采用POSIX無名信號量和線程讀寫鎖的同步機制,極大優化了系統執行靈活度,提高了軟件模塊化水平。上板調試與測試表明:本系統穩定可靠,圖像實時準確,日志記錄功能方便調試,符合設計預期要求,同時系統可擴展性良好,對安防監控系統設計有借鑒作用。

參考文獻:

[1] NAERING N, VENETIANER PL, LIPTON A. The evolution of video surveillance:an overview[J]. Machine Vision and Application,2008,19(5):279-290.

[2] 馬瑜晨,許全宜. 基于模擬和數字技術相結合的視頻監控系統[J]. 電子技術與軟件工程,2018,63(6):62-63.

[3] RAJESH N, SAROJADEVI H. Emerging trends in video surveillance application[C]. Proceedings of International Conference on Software and Computer Application,2011:125-128.

[4] 錢曉東. 攝像機監控的發展與應用[J]. 中國安防,2013(1):56-60.

[5] 王若涵. 網絡視頻監控系統現狀與發展趨勢研究[J]. 科技與創新,2018(1):79-80.

[6] 薛樹濱. 基于嵌入式Linux的移動視頻監控系統[D]. 濟南:山東大學,2014.

[7] 陶祥亞,仲兆滿. IPv6環境下嵌入式視頻監控系統設計與實驗性研究[J]. 智能建筑與智慧城市,2017(4):44-48.

[8] 王菲. 嵌入式智能家居控制系統的設計[J]. 電子技術與軟件工程,2017(16):193-194.

[9] 郝俊,孟傳良. 基于V4L2的ARM11 USB視頻采集終端的設計與實現[J]. 貴州大學學報:自然科學報,2011,28(4):74-78.

[10] 劉科. 基于C/S的局域網內遠程控制系統的設計與實現[D]. 成都:電子科技大學,2015.

[11] ANTONY J,MATHURIA D S,DATTA T S,et al. Development of intelligent instruments with embedded HTTP servers for control and data acquisition in a cryogenic setup——the hardware, firmware,and software implementation[J]. Review of Scientific Instruments,2015,86(12): 131-132.

[12] WANG Y, PANG Z Y, WANG S, et al. Design and implementation of embedded wireless video monitoring system[J]. Journal of Chongqing University of Technology, 2015, 29(4):67-72.

[13] 劉磊. 基于CMOS圖像傳感器的無線視頻監控系統設計[D]. 上海:上海師范大學,2015.

[14] JIA Y. S3C6410(OK6410開發板介紹) [EB/OL]. https://blog.csdn.net/qq_33265533/article/details/53048380

[15] PAN L,WANG W. Design of the remote video monitoring system platform[J]. Ieri Procedia,2012,2(4):62-68.

[16] 徐成杰. 創建高效的多用戶TCP服務器[J]. 計算機應用,2002,22(2):110-112.

[17] 肇啟龍. 基于網絡和H.264的視頻監控系統設計[J]. 電子科技,2015,28(2):113-118.

[18] 甄聰聰,趙磊. 基于RTSP和H.264的嵌入式網絡視頻監控系統[J]. 科技信息,2014, 10(1):121-128.

[19] 吳宇佳,浦偉,周妍. Linux下多線程數據采集研究與實現[J]. 信息安全與通信保密,2012:90-94.

[20] ZHAO H, XIAO C, ZHUO L, et al. The design of embedded video system based BOA server[C].? International Conference on Computer Science&Service System,2012: 483-486.

(責任編輯:杜能鋼)

主站蜘蛛池模板: 国产成年女人特黄特色毛片免| 中文成人无码国产亚洲| 国产高清免费午夜在线视频| 欧美日韩国产在线观看一区二区三区| 中文字幕伦视频| 亚洲女人在线| 黄色免费在线网址| 国产欧美在线观看一区| 国产尤物在线播放| 国产精品原创不卡在线| 国产成人综合久久精品尤物| 国产丝袜啪啪| 欧美国产中文| 国产在线一二三区| 91久久国产热精品免费| 在线观看的黄网| 亚洲人成网站色7799在线播放| 欧美精品xx| 久久免费观看视频| 中文字幕在线欧美| 亚洲色图狠狠干| 亚洲美女AV免费一区| 国产超碰一区二区三区| 亚洲精品无码不卡在线播放| 专干老肥熟女视频网站| 91精品综合| 亚洲国产天堂久久综合| 中文国产成人精品久久| 久久精品亚洲中文字幕乱码| 波多野结衣视频一区二区| 五月天久久婷婷| 国产精品永久免费嫩草研究院| 毛片免费试看| 日韩精品成人网页视频在线| 亚洲三级a| 欧美一级99在线观看国产| 2020国产精品视频| 亚洲第一精品福利| 亚洲综合欧美在线一区在线播放| 欧美啪啪一区| 国产欧美精品午夜在线播放| 性网站在线观看| 国产尤物视频网址导航| 亚洲欧洲自拍拍偷午夜色| 免费AV在线播放观看18禁强制| 亚洲精品中文字幕无乱码| 国内老司机精品视频在线播出| 91久久精品国产| 亚洲资源在线视频| 成人av专区精品无码国产| h网站在线播放| 国产成人一二三| 久久精品日日躁夜夜躁欧美| a级毛片免费播放| 亚洲一区二区约美女探花| 国产亚洲精品97AA片在线播放| 午夜福利视频一区| 亚洲欧美自拍中文| 大香伊人久久| 国产精品99r8在线观看| 2022精品国偷自产免费观看| 国产丝袜精品| 中文无码毛片又爽又刺激| 免费高清a毛片| 无码中文字幕精品推荐| 99久久亚洲精品影院| a亚洲天堂| 伊人久久大香线蕉影院| 日韩高清中文字幕| 中文字幕 91| 亚洲美女一级毛片| 色偷偷一区二区三区| 成人午夜在线播放| 最新国产高清在线| 久久久久亚洲精品成人网| 日本三级欧美三级| 国产成人精品免费av| 亚洲国产亚洲综合在线尤物| 国国产a国产片免费麻豆| 亚洲无码电影| 91九色最新地址| 精品久久久久无码|