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

基于ARM的視頻數(shù)據(jù)采集傳輸系統(tǒng)的設計與實現(xiàn)

2014-08-08 23:54:44欒博悅張鎣趙慧元
計算技術與自動化 2014年2期
關鍵詞:視頻數(shù)據(jù)采集嵌入式

欒博悅+張鎣+趙慧元

收稿日期:2013-05-27

作者簡介:欒博悅(1990—),男,山東牟平人,學士生,研究方向:電子科學與技術。

文章編號:1003-6199(2014)02-0101-04

摘 要:對基于ARM的視頻數(shù)據(jù)采集傳輸系統(tǒng)進行研究及設計,通過ARM新一代嵌入式開發(fā)平臺,與現(xiàn)在流行的互聯(lián)網(wǎng)及無線傳輸技術相結合,實現(xiàn)視頻數(shù)據(jù)的采集和遠程數(shù)據(jù)的傳輸。設計中采用嵌入式Linux系統(tǒng)通過USB攝像頭進行視頻數(shù)據(jù)的采集,解決圖像的格式轉換和MJPEG編碼壓縮的數(shù)據(jù)處理,以及通過軟件的設計實現(xiàn)MJPEG格式文件到流媒體輸出等問題,最終實現(xiàn)視頻數(shù)據(jù)采集和傳輸。本系統(tǒng)有以下幾個方面的應用:家庭環(huán)境的實時監(jiān)測、家居的智能化控制、高危車間廠房無線監(jiān)控與控制、中長距離的家庭視頻通訊、企業(yè)實時視頻監(jiān)控等。

關鍵詞:嵌入式;視頻;數(shù)據(jù)采集;傳輸

中圖分類號:TP368文獻標識碼:A



Design and Implementation of Video Data Acquisition and Transmission Based on ARM



LUAN Boyue,ZHANG Ying,ZHAO Huiyuan

(Beijing Institute ofTechnologu,Zhuhai,Guangdong 519085,China)

Abstract:The video data acquisition and transmission based on ARM is discussed in this paper. through a new generation of ARM embedded development plaform,and combined with internet and wireless transmission technology,implementation of video data acquisition and remote data transmission.Usingembedded Linux system through the USB camera for video data collection,solve the image format conversion and MJPEG encoding date processing,designed and implemented through software MJPEG format output files to streaming media,finally achieved of video date acquisition and transmission.This system can be used for real-time monitoring of family environment and home intelligent control,in some highrisk factory workshop wireless monitoring and control ,can also be used in longdistance home video communications and realtime video surveillance in enterprise.

Key words:embedded system;video; data acquisition;transmission

1 引 言

隨著人們日常生活工作的網(wǎng)絡化,各種系統(tǒng)的無線化,以及多媒體技術、寬帶網(wǎng)絡傳輸技術的不斷發(fā)展,視頻數(shù)據(jù)的采集和傳輸已成為遠程監(jiān)控和工業(yè)自動化控制領域的一項核心技術。在日益成熟的ARM嵌入式開發(fā)平臺下,其穩(wěn)定性也大大提高,通過CMOS攝像頭將視頻信號數(shù)字化后再將視頻數(shù)據(jù)進行壓縮,經(jīng)由網(wǎng)絡模塊上傳至局域網(wǎng)或互聯(lián)網(wǎng),實現(xiàn)了視頻數(shù)據(jù)采集傳輸。

2 系統(tǒng)總體設計

整個系統(tǒng)的設計分為三個部分:USB攝像頭、ARM嵌入式開發(fā)平臺、網(wǎng)絡模塊。系統(tǒng)整體結構如圖1所示。

系統(tǒng)中所采用的攝像頭是中星微公司生產(chǎn)的ZC301芯片的攝像頭,該攝像頭將CMOS圖像傳感器所產(chǎn)生的圖像信號送到微處理器,處理后再轉換為數(shù)字信號輸出到外部設備。ARM嵌入式開發(fā)平臺使用了三星公司S3C2440微處理器[1],其最高時鐘頻率為533MHZ,并且平臺包括了256M的NAND Flash、4M NOR Flash、64M SDRAM 和一個USB host接口。USB host接口用于和攝像頭相接。網(wǎng)絡模塊采用DAVICOM公司的以太網(wǎng)控制芯片DM9000CEP [2],該芯片裝配有標準10M/100M自適應收發(fā)器,16K大容量FIFO,支持以太網(wǎng)接口協(xié)議,當從內存中接收到的壓縮后的碼流數(shù)據(jù)后,通過TCP/IP網(wǎng)絡通信協(xié)議對數(shù)據(jù)進行打包,如果接收到瀏覽器向服務器的數(shù)據(jù)訪問請求,則將數(shù)據(jù)發(fā)送至瀏覽器[3]。以太網(wǎng)芯片與嵌入式微處理器S3C2440接口電路如圖2所示。

圖1 系統(tǒng)整體結構

圖2 以太網(wǎng)接口電路

計算技術與自動化2014年6月

第33卷第2期欒博悅等:基于ARM的視頻數(shù)據(jù)采集傳輸系統(tǒng)的設計與實現(xiàn)

3 系統(tǒng)軟件結構設計

系統(tǒng)的軟件設計主要包括:視頻設備的掛載,視頻數(shù)據(jù)的采集,數(shù)據(jù)格式轉換、編碼壓縮,視頻數(shù)據(jù)傳輸?shù)取1鞠到y(tǒng)的視頻圖像顯示涉及到了顏色空間轉換問題,即對于現(xiàn)代數(shù)字圖像傳感器的數(shù)據(jù)輸出格式一般為YUV/YCbCr 顏色格式對RGB顏色格式的一種轉換。RGB色彩空間,其顏色在三維空間模型的3個軸分別對應著紅(Red)、綠(Green)、藍(Blue),模型內部的點對應不同顏色。YUV空間中顏色的三個分量為亮度Y(Luminance),色度U、V(Chrominance),其中YCbCr也是由YUV經(jīng)過偏移縮放形成的。具體的轉換關系如下所示[4]:

R = 1.164*(Y-16)+1.596*(Cr-128)

G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)

B = 1.164*(Y-16)+2.017*(Cb-128) (1)

視頻數(shù)據(jù)的傳輸離不開網(wǎng)絡,但是只有遵循一定的協(xié)議才能在網(wǎng)絡中正確的實現(xiàn)數(shù)據(jù)的傳送。其中TCP/IP(網(wǎng)絡通訊協(xié)議)是因特網(wǎng)最基本的協(xié)議,也是互聯(lián)網(wǎng)絡的基礎。TCP/IP通訊協(xié)議采用了4層的層次結構,分別是應用層、傳輸層、網(wǎng)絡層、網(wǎng)絡接口層,每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。傳輸層協(xié)議主要是傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報協(xié)議UDP。應用層協(xié)議主要有:FTP、TELNET、HTTP(超文本傳輸協(xié)議)等,本系統(tǒng)所用的傳輸層協(xié)議是TCP協(xié)議,應用層協(xié)議為HTTP協(xié)議。

3.1 視頻數(shù)據(jù)采集

系統(tǒng)實現(xiàn)視頻數(shù)據(jù)采集主要是利用Linux操作系統(tǒng)中通用的Vedio 4 Linux 2接口[5]。Vedio 4 Linux是Linux操作系統(tǒng)中音視頻設備統(tǒng)一的API,同時也可以提供無線電通信、文字電視廣播解碼和垂直消隱的數(shù)據(jù)接口。通過該接口就可以很方便的將視頻數(shù)據(jù)進行采集。利用以下程序代碼,可以任意按用戶需要進行配置。

memset(&vd->cap,0,sizeof(struct v4l2_capability));

ret=ioctl(vd>fd,VIDIOC_QUERYCAP, &vd->cap);

獲取攝像頭基本參數(shù)

vd->fmt.fmt.pix.width =vd>width; 

捕獲視頻寬度像素

vd->fmt.fmt.pix.height=vd>height;

捕獲視頻高度像素

Struct v4l2_streamparm*setfps;

etfps=(struct v4l2_streamparm*)

calloc(1,sizeof(structv4l2_stre-amparm));

設置視頻幀頻率

memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers));

vd->rb.count = NB_BUFFER;

設置視頻幀緩沖區(qū)個數(shù)

for (i = 0; i < NB_BUFFER; i++) {memset(&vd->buf,0,sizeof(struc-t v4l2_buffer));

將幀緩沖區(qū)數(shù)據(jù)映射到內存

int uvcGrab(struct vdIn *vd);

獲取一幀視頻信號的圖像。

視頻數(shù)據(jù)采集具體流程如圖3所示。

圖3 視頻采集流程圖

3.2 格式轉換和MJPEG編碼壓縮

由于不同的攝像頭都有不同的輸出格式,所以進行合適的格式轉換是非常有必要的,由攝像頭所采集到的原始數(shù)據(jù)并不適合用于傳輸,為了減少傳輸視頻數(shù)據(jù)的碼流大小還需要對圖像進行壓縮。本系統(tǒng)所用的攝像頭輸出YUV 4:2:2格式的圖像數(shù)據(jù),將圖像數(shù)據(jù)轉換為RGB格式,再通過調用Linux下的Libjpeg庫對圖像進行壓縮。

格式轉換以及壓縮處理過程和基本代碼函數(shù)名如下:

1)上鎖全局變量的圖像緩沖區(qū)(pthread_mutex_Lock)。 

2)判斷圖像顏色編碼格式,如果是YUV格式的顏色編碼(以YUV4:2:2為例,調用compress_yuyv_o_jpeg函數(shù))將一行YUV轉換RGB,并將一行RGB壓縮成JPEG格式[6],行加一,判斷圖像是否壓縮到最后一行。如果是MJPEG編碼格式輸出的圖像(調用int memcpy_picture函數(shù)),查找起始幀標志位,并插入Huffman數(shù)據(jù)表。

3)通知所有線程有一幀數(shù)據(jù)已經(jīng)處理為JPEG格式。

4)解鎖全局變量的圖像緩沖區(qū)。

3.3 視頻數(shù)據(jù)的傳輸

為了實現(xiàn)能將采集到的視頻數(shù)據(jù)通過網(wǎng)絡進行傳輸,本系統(tǒng)使用了在Linux下TCP協(xié)議的Socket編程[7]。Socket接口是一個在不同進程間的通訊端點,Socket在Linux系統(tǒng)中被看做是一個文件,當客戶端和服務器端的Socket被創(chuàng)建時,服務器端會調用accept()函數(shù),并以阻塞方式等待響應客戶端的連接請求,連接成功后,雙方就可以進行正常的數(shù)據(jù)通信,通訊結束后,釋放Socket結構。其編程結構如圖4所示。

當有多個客戶端提出請求時還需要建立多線程并發(fā)服務器[8],當客戶端提出連接請求時,會建立一個新的線程,這樣每一個客戶端都會有一個獨立的線程,實現(xiàn)多個線程數(shù)據(jù)的并發(fā)。線程可以對進程的內存空間和資源進行訪問,并與同一進程中的其他線程共享數(shù)據(jù)區(qū)。因此,并發(fā)服務器線程的增加并不會讓服務器進程隨著客戶端的增加而線性增長,這樣就降低了服務器進程壓力,提高了其性能。代碼如下:

pthread_t client;struct addrinfo*aip,*aip2; 

struct addrinfo hints; 

struct sockaddr_storageclient_a-

ddr;

服務器監(jiān)聽IP

socklen_taddr_len=sizeof(structsockaddr_storage); 

阻塞方式等待客戶端連接

pcfd->fd = accept(pcontext->sd, (struct sockaddr *)&client_addr, &addr_len);

新客戶端申請結構 

while(!pglobal->stop) cfd *pcfd = malloc(sizeof(cfd));

客戶端線程創(chuàng)建

if(pthread_create(&client, NULL, &client_thread, pcfd) != 0) 

pthread_detach(client);

圖4 Linux下TCP協(xié)議的Socket編程結構

4 系統(tǒng)運行與實現(xiàn)

由于視頻傳輸數(shù)據(jù)量大、實時要求高,完成視頻傳輸,鏈路的數(shù)據(jù)吞吐量必須大于視頻數(shù)據(jù)流量。測試結果表明,本系統(tǒng)能夠達到穩(wěn)定的傳輸效果,圖像清晰,視頻無卡頓現(xiàn)象,并支持多個客戶端同時瀏覽頁面,最終實現(xiàn)了視頻數(shù)據(jù)采集傳輸。系統(tǒng)運行效果如圖5所示。在移動設備和網(wǎng)絡飛速發(fā)展的今天,將本系統(tǒng)網(wǎng)絡進行拓展,手機等移動設備也可作為客戶端,隨時隨地的進行遠程監(jiān)控,這樣也為以后的智能化控制提供了基礎。本設計主要有以下幾個特點:

1)實現(xiàn)了多方式無線局域網(wǎng)視頻數(shù)據(jù)采集傳輸,可以利用各種無線移動設備對視頻數(shù)據(jù)實時監(jiān)控,例如手機、平板電腦等。

2)應用范圍廣、效果好,穩(wěn)定性高。

3)硬件結構簡單,成本低,體積小,可運用于飛機航拍等一些特殊環(huán)境場所。

圖5 系統(tǒng)運行效果圖

參考文獻

[1] SamsungElectronics S3C24 10X 32- BIT RISC MIC R O P R E SSO R SRSMANA L . Revision 1.2.Pu blication Number:21.2-S3-C 24 10-052003 ,May 2005. 

[2] 韓超,王可人.基于DM9000的嵌入式系統(tǒng)的網(wǎng)絡接口的設計與實現(xiàn) [J].工業(yè)控制計算機 ,2005,20(4):17-18.

[3] BATCHAEVSS.Computer assisted monitoring systems use of computer network sandinter nettechnologies[J].BiomediealEngineering,2005,9(4):161-166.

[4] GENESIS MICROCHIP. gm6015 Preliminary Data Sheet[M]. California US: Genesis Microchip Company, 2001:33-34.

[5] 李珊珊,王緒國.基于V4L2的遠程視頻采集系統(tǒng)設計與實現(xiàn)[D].武漢:武漢理工大學,2011.

[6] JTC 1/SC29/WG 1.ISO/IEC CD29199-2: 2010 JPEG XR image coding Specification[S]. ISO/IEC:2010.

[7] GUHA S,FRANCIS P.Characterization and Measurement of TCP Traversal Through NATs and FireWalls[C] //Proc of Internet Measurement Conference,2005-10. 

[8] GYU SANG CHOI,J inHaKim,Deniz Ersoz,SO.A multithreaded P IPEL lNED Web server architecture for SMP/SoC machines[C].Proceedings of the 14 th internationaleonference onWorldWideWeb,ACM Press 2005:730-739.

memset(&vd->cap,0,sizeof(struct v4l2_capability));

ret=ioctl(vd>fd,VIDIOC_QUERYCAP, &vd->cap);

獲取攝像頭基本參數(shù)

vd->fmt.fmt.pix.width =vd>width; 

捕獲視頻寬度像素

vd->fmt.fmt.pix.height=vd>height;

捕獲視頻高度像素

Struct v4l2_streamparm*setfps;

etfps=(struct v4l2_streamparm*)

calloc(1,sizeof(structv4l2_stre-amparm));

設置視頻幀頻率

memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers));

vd->rb.count = NB_BUFFER;

設置視頻幀緩沖區(qū)個數(shù)

for (i = 0; i < NB_BUFFER; i++) {memset(&vd->buf,0,sizeof(struc-t v4l2_buffer));

將幀緩沖區(qū)數(shù)據(jù)映射到內存

int uvcGrab(struct vdIn *vd);

獲取一幀視頻信號的圖像。

視頻數(shù)據(jù)采集具體流程如圖3所示。

圖3 視頻采集流程圖

3.2 格式轉換和MJPEG編碼壓縮

由于不同的攝像頭都有不同的輸出格式,所以進行合適的格式轉換是非常有必要的,由攝像頭所采集到的原始數(shù)據(jù)并不適合用于傳輸,為了減少傳輸視頻數(shù)據(jù)的碼流大小還需要對圖像進行壓縮。本系統(tǒng)所用的攝像頭輸出YUV 4:2:2格式的圖像數(shù)據(jù),將圖像數(shù)據(jù)轉換為RGB格式,再通過調用Linux下的Libjpeg庫對圖像進行壓縮。

格式轉換以及壓縮處理過程和基本代碼函數(shù)名如下:

1)上鎖全局變量的圖像緩沖區(qū)(pthread_mutex_Lock)。 

2)判斷圖像顏色編碼格式,如果是YUV格式的顏色編碼(以YUV4:2:2為例,調用compress_yuyv_o_jpeg函數(shù))將一行YUV轉換RGB,并將一行RGB壓縮成JPEG格式[6],行加一,判斷圖像是否壓縮到最后一行。如果是MJPEG編碼格式輸出的圖像(調用int memcpy_picture函數(shù)),查找起始幀標志位,并插入Huffman數(shù)據(jù)表。

3)通知所有線程有一幀數(shù)據(jù)已經(jīng)處理為JPEG格式。

4)解鎖全局變量的圖像緩沖區(qū)。

3.3 視頻數(shù)據(jù)的傳輸

為了實現(xiàn)能將采集到的視頻數(shù)據(jù)通過網(wǎng)絡進行傳輸,本系統(tǒng)使用了在Linux下TCP協(xié)議的Socket編程[7]。Socket接口是一個在不同進程間的通訊端點,Socket在Linux系統(tǒng)中被看做是一個文件,當客戶端和服務器端的Socket被創(chuàng)建時,服務器端會調用accept()函數(shù),并以阻塞方式等待響應客戶端的連接請求,連接成功后,雙方就可以進行正常的數(shù)據(jù)通信,通訊結束后,釋放Socket結構。其編程結構如圖4所示。

當有多個客戶端提出請求時還需要建立多線程并發(fā)服務器[8],當客戶端提出連接請求時,會建立一個新的線程,這樣每一個客戶端都會有一個獨立的線程,實現(xiàn)多個線程數(shù)據(jù)的并發(fā)。線程可以對進程的內存空間和資源進行訪問,并與同一進程中的其他線程共享數(shù)據(jù)區(qū)。因此,并發(fā)服務器線程的增加并不會讓服務器進程隨著客戶端的增加而線性增長,這樣就降低了服務器進程壓力,提高了其性能。代碼如下:

pthread_t client;struct addrinfo*aip,*aip2; 

struct addrinfo hints; 

struct sockaddr_storageclient_a-

ddr;

服務器監(jiān)聽IP

socklen_taddr_len=sizeof(structsockaddr_storage); 

阻塞方式等待客戶端連接

pcfd->fd = accept(pcontext->sd, (struct sockaddr *)&client_addr, &addr_len);

新客戶端申請結構 

while(!pglobal->stop) cfd *pcfd = malloc(sizeof(cfd));

客戶端線程創(chuàng)建

if(pthread_create(&client, NULL, &client_thread, pcfd) != 0) 

pthread_detach(client);

圖4 Linux下TCP協(xié)議的Socket編程結構

4 系統(tǒng)運行與實現(xiàn)

由于視頻傳輸數(shù)據(jù)量大、實時要求高,完成視頻傳輸,鏈路的數(shù)據(jù)吞吐量必須大于視頻數(shù)據(jù)流量。測試結果表明,本系統(tǒng)能夠達到穩(wěn)定的傳輸效果,圖像清晰,視頻無卡頓現(xiàn)象,并支持多個客戶端同時瀏覽頁面,最終實現(xiàn)了視頻數(shù)據(jù)采集傳輸。系統(tǒng)運行效果如圖5所示。在移動設備和網(wǎng)絡飛速發(fā)展的今天,將本系統(tǒng)網(wǎng)絡進行拓展,手機等移動設備也可作為客戶端,隨時隨地的進行遠程監(jiān)控,這樣也為以后的智能化控制提供了基礎。本設計主要有以下幾個特點:

1)實現(xiàn)了多方式無線局域網(wǎng)視頻數(shù)據(jù)采集傳輸,可以利用各種無線移動設備對視頻數(shù)據(jù)實時監(jiān)控,例如手機、平板電腦等。

2)應用范圍廣、效果好,穩(wěn)定性高。

3)硬件結構簡單,成本低,體積小,可運用于飛機航拍等一些特殊環(huán)境場所。

圖5 系統(tǒng)運行效果圖

參考文獻

[1] SamsungElectronics S3C24 10X 32- BIT RISC MIC R O P R E SSO R SRSMANA L . Revision 1.2.Pu blication Number:21.2-S3-C 24 10-052003 ,May 2005. 

[2] 韓超,王可人.基于DM9000的嵌入式系統(tǒng)的網(wǎng)絡接口的設計與實現(xiàn) [J].工業(yè)控制計算機 ,2005,20(4):17-18.

[3] BATCHAEVSS.Computer assisted monitoring systems use of computer network sandinter nettechnologies[J].BiomediealEngineering,2005,9(4):161-166.

[4] GENESIS MICROCHIP. gm6015 Preliminary Data Sheet[M]. California US: Genesis Microchip Company, 2001:33-34.

[5] 李珊珊,王緒國.基于V4L2的遠程視頻采集系統(tǒng)設計與實現(xiàn)[D].武漢:武漢理工大學,2011.

[6] JTC 1/SC29/WG 1.ISO/IEC CD29199-2: 2010 JPEG XR image coding Specification[S]. ISO/IEC:2010.

[7] GUHA S,FRANCIS P.Characterization and Measurement of TCP Traversal Through NATs and FireWalls[C] //Proc of Internet Measurement Conference,2005-10. 

[8] GYU SANG CHOI,J inHaKim,Deniz Ersoz,SO.A multithreaded P IPEL lNED Web server architecture for SMP/SoC machines[C].Proceedings of the 14 th internationaleonference onWorldWideWeb,ACM Press 2005:730-739.

memset(&vd->cap,0,sizeof(struct v4l2_capability));

ret=ioctl(vd>fd,VIDIOC_QUERYCAP, &vd->cap);

獲取攝像頭基本參數(shù)

vd->fmt.fmt.pix.width =vd>width; 

捕獲視頻寬度像素

vd->fmt.fmt.pix.height=vd>height;

捕獲視頻高度像素

Struct v4l2_streamparm*setfps;

etfps=(struct v4l2_streamparm*)

calloc(1,sizeof(structv4l2_stre-amparm));

設置視頻幀頻率

memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers));

vd->rb.count = NB_BUFFER;

設置視頻幀緩沖區(qū)個數(shù)

for (i = 0; i < NB_BUFFER; i++) {memset(&vd->buf,0,sizeof(struc-t v4l2_buffer));

將幀緩沖區(qū)數(shù)據(jù)映射到內存

int uvcGrab(struct vdIn *vd);

獲取一幀視頻信號的圖像。

視頻數(shù)據(jù)采集具體流程如圖3所示。

圖3 視頻采集流程圖

3.2 格式轉換和MJPEG編碼壓縮

由于不同的攝像頭都有不同的輸出格式,所以進行合適的格式轉換是非常有必要的,由攝像頭所采集到的原始數(shù)據(jù)并不適合用于傳輸,為了減少傳輸視頻數(shù)據(jù)的碼流大小還需要對圖像進行壓縮。本系統(tǒng)所用的攝像頭輸出YUV 4:2:2格式的圖像數(shù)據(jù),將圖像數(shù)據(jù)轉換為RGB格式,再通過調用Linux下的Libjpeg庫對圖像進行壓縮。

格式轉換以及壓縮處理過程和基本代碼函數(shù)名如下:

1)上鎖全局變量的圖像緩沖區(qū)(pthread_mutex_Lock)。 

2)判斷圖像顏色編碼格式,如果是YUV格式的顏色編碼(以YUV4:2:2為例,調用compress_yuyv_o_jpeg函數(shù))將一行YUV轉換RGB,并將一行RGB壓縮成JPEG格式[6],行加一,判斷圖像是否壓縮到最后一行。如果是MJPEG編碼格式輸出的圖像(調用int memcpy_picture函數(shù)),查找起始幀標志位,并插入Huffman數(shù)據(jù)表。

3)通知所有線程有一幀數(shù)據(jù)已經(jīng)處理為JPEG格式。

4)解鎖全局變量的圖像緩沖區(qū)。

3.3 視頻數(shù)據(jù)的傳輸

為了實現(xiàn)能將采集到的視頻數(shù)據(jù)通過網(wǎng)絡進行傳輸,本系統(tǒng)使用了在Linux下TCP協(xié)議的Socket編程[7]。Socket接口是一個在不同進程間的通訊端點,Socket在Linux系統(tǒng)中被看做是一個文件,當客戶端和服務器端的Socket被創(chuàng)建時,服務器端會調用accept()函數(shù),并以阻塞方式等待響應客戶端的連接請求,連接成功后,雙方就可以進行正常的數(shù)據(jù)通信,通訊結束后,釋放Socket結構。其編程結構如圖4所示。

當有多個客戶端提出請求時還需要建立多線程并發(fā)服務器[8],當客戶端提出連接請求時,會建立一個新的線程,這樣每一個客戶端都會有一個獨立的線程,實現(xiàn)多個線程數(shù)據(jù)的并發(fā)。線程可以對進程的內存空間和資源進行訪問,并與同一進程中的其他線程共享數(shù)據(jù)區(qū)。因此,并發(fā)服務器線程的增加并不會讓服務器進程隨著客戶端的增加而線性增長,這樣就降低了服務器進程壓力,提高了其性能。代碼如下:

pthread_t client;struct addrinfo*aip,*aip2; 

struct addrinfo hints; 

struct sockaddr_storageclient_a-

ddr;

服務器監(jiān)聽IP

socklen_taddr_len=sizeof(structsockaddr_storage); 

阻塞方式等待客戶端連接

pcfd->fd = accept(pcontext->sd, (struct sockaddr *)&client_addr, &addr_len);

新客戶端申請結構 

while(!pglobal->stop) cfd *pcfd = malloc(sizeof(cfd));

客戶端線程創(chuàng)建

if(pthread_create(&client, NULL, &client_thread, pcfd) != 0) 

pthread_detach(client);

圖4 Linux下TCP協(xié)議的Socket編程結構

4 系統(tǒng)運行與實現(xiàn)

由于視頻傳輸數(shù)據(jù)量大、實時要求高,完成視頻傳輸,鏈路的數(shù)據(jù)吞吐量必須大于視頻數(shù)據(jù)流量。測試結果表明,本系統(tǒng)能夠達到穩(wěn)定的傳輸效果,圖像清晰,視頻無卡頓現(xiàn)象,并支持多個客戶端同時瀏覽頁面,最終實現(xiàn)了視頻數(shù)據(jù)采集傳輸。系統(tǒng)運行效果如圖5所示。在移動設備和網(wǎng)絡飛速發(fā)展的今天,將本系統(tǒng)網(wǎng)絡進行拓展,手機等移動設備也可作為客戶端,隨時隨地的進行遠程監(jiān)控,這樣也為以后的智能化控制提供了基礎。本設計主要有以下幾個特點:

1)實現(xiàn)了多方式無線局域網(wǎng)視頻數(shù)據(jù)采集傳輸,可以利用各種無線移動設備對視頻數(shù)據(jù)實時監(jiān)控,例如手機、平板電腦等。

2)應用范圍廣、效果好,穩(wěn)定性高。

3)硬件結構簡單,成本低,體積小,可運用于飛機航拍等一些特殊環(huán)境場所。

圖5 系統(tǒng)運行效果圖

參考文獻

[1] SamsungElectronics S3C24 10X 32- BIT RISC MIC R O P R E SSO R SRSMANA L . Revision 1.2.Pu blication Number:21.2-S3-C 24 10-052003 ,May 2005. 

[2] 韓超,王可人.基于DM9000的嵌入式系統(tǒng)的網(wǎng)絡接口的設計與實現(xiàn) [J].工業(yè)控制計算機 ,2005,20(4):17-18.

[3] BATCHAEVSS.Computer assisted monitoring systems use of computer network sandinter nettechnologies[J].BiomediealEngineering,2005,9(4):161-166.

[4] GENESIS MICROCHIP. gm6015 Preliminary Data Sheet[M]. California US: Genesis Microchip Company, 2001:33-34.

[5] 李珊珊,王緒國.基于V4L2的遠程視頻采集系統(tǒng)設計與實現(xiàn)[D].武漢:武漢理工大學,2011.

[6] JTC 1/SC29/WG 1.ISO/IEC CD29199-2: 2010 JPEG XR image coding Specification[S]. ISO/IEC:2010.

[7] GUHA S,FRANCIS P.Characterization and Measurement of TCP Traversal Through NATs and FireWalls[C] //Proc of Internet Measurement Conference,2005-10. 

[8] GYU SANG CHOI,J inHaKim,Deniz Ersoz,SO.A multithreaded P IPEL lNED Web server architecture for SMP/SoC machines[C].Proceedings of the 14 th internationaleonference onWorldWideWeb,ACM Press 2005:730-739.

猜你喜歡
視頻數(shù)據(jù)采集嵌入式
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
網(wǎng)絡視頻廣告的傳播策略探討
基于IPv6組播技術校園網(wǎng)絡視頻服務設計
怎樣提高中小學日常教學視頻資源拍攝的整體質量
遠程視頻監(jiān)控圖像自動標注優(yōu)化方法
鐵路客流時空分布研究綜述
基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
基于開源系統(tǒng)的綜合業(yè)務數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
主站蜘蛛池模板: 在线欧美a| 国产免费久久精品99re不卡| 亚洲无码高清一区| 国产精品hd在线播放| 欧美精品导航| 综合天天色| 黄色在线不卡| 国产高清不卡视频| 久久婷婷六月| 国产地址二永久伊甸园| a网站在线观看| 亚洲高清资源| 国产极品美女在线| 亚洲精品制服丝袜二区| 国产精品午夜电影| 免费看黄片一区二区三区| 国产亚洲精品无码专| 国产午夜精品一区二区三区软件| 国产无遮挡裸体免费视频| 任我操在线视频| 久久久久亚洲Av片无码观看| 亚洲中文久久精品无玛 | 国产a网站| 色偷偷男人的天堂亚洲av| 香蕉久久永久视频| 欧美日韩精品综合在线一区| 欧美亚洲欧美| 久爱午夜精品免费视频| 免费jjzz在在线播放国产| 国产成人精品一区二区不卡 | 操国产美女| 欧美午夜网站| 97免费在线观看视频| 国产精品毛片一区| 欧美日韩国产综合视频在线观看| 日韩欧美中文| 2021亚洲精品不卡a| 四虎影视8848永久精品| 91视频首页| 在线观看热码亚洲av每日更新| 狠狠色狠狠综合久久| 久久免费成人| 国产精品香蕉在线| 亚洲色图欧美视频| 无码免费视频| 国产波多野结衣中文在线播放| 亚洲欧美成人综合| 99re热精品视频国产免费| 成人在线综合| 日本免费福利视频| 亚洲欧洲国产成人综合不卡| 一区二区日韩国产精久久| 欧美色图久久| 亚洲无卡视频| 妇女自拍偷自拍亚洲精品| 99精品在线看| 久久精品人人做人人爽97| 国产高清在线观看91精品| 亚洲aaa视频| 国产精品粉嫩| 国产免费人成视频网| 久久亚洲中文字幕精品一区 | 久久综合激情网| 99久久精品免费看国产免费软件| 欧美色图第一页| 日韩国产一区二区三区无码| 美女一级毛片无遮挡内谢| 欧美天堂久久| 玖玖精品在线| 国产迷奸在线看| 欧美午夜理伦三级在线观看| 国产永久免费视频m3u8| 人人妻人人澡人人爽欧美一区| 精品少妇人妻av无码久久| 国产成人高清精品免费软件| 成人小视频网| 成年免费在线观看| 午夜国产小视频| 秋霞国产在线| 精品少妇人妻无码久久| 91亚洲精品国产自在现线| 国产精品成人第一区|