• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于WiFi的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計(jì)

      2013-06-07 04:15:32周賢軍
      電視技術(shù) 2013年1期
      關(guān)鍵詞:解碼無線網(wǎng)絡(luò)客戶端

      盧 靈,周賢軍

      (暨南大學(xué)信息技術(shù)研究所,廣東 廣州 510075)

      視頻監(jiān)控系統(tǒng)已經(jīng)被廣泛運(yùn)用在樓宇監(jiān)控、交通系統(tǒng)等日常生活中,給人們的生活帶來便利和安全,隨著人們安全意識(shí)的上升,普通居民住宅也大量的采用了視頻監(jiān)控設(shè)備,使得視頻監(jiān)控設(shè)備的市場(chǎng)前景越來越被看好。

      目前,視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)主要兩種方案:PC機(jī)帶視頻采集設(shè)備方案和嵌入式方案。這兩種方案各有優(yōu)勢(shì),PC方案只需要在自家的PC機(jī)上安裝相應(yīng)的軟件和USB視頻采集卡就可以實(shí)現(xiàn)視頻監(jiān)控,嵌入式方案就是將整個(gè)系統(tǒng)使用嵌入式CPU來替代PC的工作。

      本文針對(duì)視頻監(jiān)控系統(tǒng)提出了一種基于WiFi無線網(wǎng)絡(luò)系統(tǒng)的嵌入式系統(tǒng)實(shí)現(xiàn)方案,該方案采用USB視頻采集設(shè)備采集視頻圖像,視頻圖像通過S3C6410處理器集成的硬解碼實(shí)現(xiàn)圖像視頻的壓縮,然后通過WiFi無線網(wǎng)絡(luò)傳輸視頻圖像到PC終端,由PC機(jī)上QT制作的監(jiān)控軟件實(shí)現(xiàn)視頻圖像數(shù)據(jù)的保存和播放。該設(shè)計(jì)的優(yōu)點(diǎn)就是使用WiFi無線網(wǎng)絡(luò)發(fā)送視頻圖像,使得視頻監(jiān)控系統(tǒng)更靈活,而且在PC機(jī)監(jiān)控軟件視頻圖像的處理和保存上采用了循環(huán)隊(duì)列的形式處理,使得整個(gè)視頻圖像的網(wǎng)絡(luò)接收和播放同時(shí)進(jìn)行,從而大大提高整個(gè)系統(tǒng)的視頻處理的效率。實(shí)驗(yàn)證明,所提出來的方案能夠得到清晰、穩(wěn)定、流暢的視頻圖像。

      1 系統(tǒng)設(shè)計(jì)

      如圖1所示,整個(gè)視屏監(jiān)控系統(tǒng)分為服務(wù)器和客戶端兩個(gè)模塊來實(shí)現(xiàn)[1]。首先,服務(wù)器通過視頻采集模塊采集視頻圖像數(shù)據(jù),然后將采集的視頻圖像數(shù)據(jù)幀進(jìn)行JPEG圖片壓縮處理,最后通過WiFi無線網(wǎng)絡(luò)傳輸模塊發(fā)送到Internet網(wǎng)絡(luò),由客戶端負(fù)責(zé)接收?qǐng)D片數(shù)據(jù);其次,客戶端一直通過網(wǎng)絡(luò)接口接收服務(wù)器傳輸過來的圖片數(shù)據(jù),并將接收到的監(jiān)控圖片數(shù)據(jù)在客戶端顯示出來。

      圖1 視頻監(jiān)控系統(tǒng)的整體設(shè)計(jì)框圖

      1.1 視頻圖像的采集實(shí)現(xiàn)

      視頻圖片的采集是視頻監(jiān)控系統(tǒng)主要模塊,動(dòng)態(tài)視頻需要連續(xù)播放至少24幀漸變的圖片。目前,視頻監(jiān)控領(lǐng)域中,視頻信號(hào)一般為通過視頻采集卡或外置USB視頻攝像頭采集模擬視頻數(shù)據(jù)[2]。Linux 2.6以上內(nèi)核提供了V4L2 API接口,USB采集的圖片數(shù)據(jù)可以直接通過API函數(shù)采集和存儲(chǔ),V4L2 API接口在使用之前需要初始化,主要是設(shè)置視頻圖像的幀格式,有兩個(gè)結(jié)構(gòu)體用來定義視頻圖像幀格式:

      其中fmt.type可以指定捕捉圖像數(shù)據(jù)流類型,fmt.fmt.pix.width 指定圖像的寬度 fmt.fmt.pix.height設(shè)置圖像的高度,fmt.fmt.pix.pixelformat設(shè)置圖像的存儲(chǔ)格式,通過對(duì)這些參數(shù)的初始化,就可以初始化視頻圖像數(shù)據(jù)幀格式,從而為V4L2 API提供Linux操作系統(tǒng)處理圖像數(shù)據(jù)的接口參數(shù)。整個(gè)圖像數(shù)據(jù)在Linux操作系統(tǒng)下采集處理流程如圖2所示。

      圖2 Linux操作系統(tǒng)下采集圖片數(shù)據(jù)處理流程

      如圖2所示,圖像數(shù)據(jù)采集是通過Linux操作系統(tǒng)來控制操作的,USB視頻采集模塊在Linux操作系統(tǒng)下被視為一個(gè)文件。首先,打開這個(gè)視頻文件,然后設(shè)置圖像信息與格式,就是初始化兩個(gè)定義視頻圖像幀格式的結(jié)構(gòu)體參數(shù),在初始化視頻圖像信息與格式之后,再將存放圖像信息的緩存映射到用戶空間,也可以使用read操作函數(shù)將圖像數(shù)據(jù)直接讀到內(nèi)存緩存buffer中,而內(nèi)存映射方式可以使得內(nèi)核與用戶進(jìn)程之間通過映射文件實(shí)現(xiàn)共享內(nèi)存,可以減少系統(tǒng)調(diào)用函數(shù)開銷,圖像存儲(chǔ)空間映射完成之后,用戶就可以直接讀取圖像數(shù)據(jù)了,也即采集圖像數(shù)據(jù),這里設(shè)置了緩存中保存圖片的張數(shù)上限MAX_NUM,用來控制視頻圖像每秒播放圖像數(shù)據(jù)幀數(shù)量。Linux操作系統(tǒng)的V4L2 API接口函數(shù)通過ioctl來操作圖像數(shù)據(jù)的采集,通過該函數(shù)將圖像數(shù)據(jù)一幀一幀地讀取到映射好的存儲(chǔ)空間,首先,調(diào)用ioctl(fd,VIDIOC_QBUF,&buffer)初始化buffer,使得該buffer適合存儲(chǔ)圖像數(shù)據(jù)幀格式的圖像數(shù)據(jù),讓圖像緩存塊進(jìn)入采集隊(duì)列,然后調(diào)用ioctl(fd,VIDIOC_QUERYBUF,&buffer)將相關(guān)信息會(huì)保存到buffer里,然后調(diào)用 yuyv[i]=(char*)mmap(0,buffer.length,PROT_READ|OT_WRITE,MAP_SHARED,fd,buffer.m.offset)可以將buffer中的數(shù)據(jù)映射到用戶空間,其中i是圖像在內(nèi)存數(shù)據(jù)存儲(chǔ)區(qū)的偏移量,這樣圖像數(shù)據(jù)就以YUV格式保存到了yuyv[i]數(shù)組中了,圖像數(shù)據(jù)就讀取到了用戶空間了。

      1.2 視頻圖像JPEG硬解碼在S3C6410上的實(shí)現(xiàn)

      由于S3C6410內(nèi)部集成了JPEG硬編解碼,解碼速度快,圖像損耗小。因此,這里采用S3C6410內(nèi)部集成了JPEG硬編解碼器對(duì)USB采集的YUV格式視頻圖像數(shù)據(jù)進(jìn)行JPEG硬解碼。解碼時(shí)用到的1個(gè)重要結(jié)構(gòu)體:

      這個(gè)結(jié)構(gòu)體控制了JPG解碼的所有參數(shù),其中,JPG解碼格式可以選擇JPG_444,JPG_422,JPG_420等格式,這里使用JPG_422,解碼質(zhì)量選擇可以選擇幾個(gè)不同等級(jí),質(zhì)量高等級(jí)就相應(yīng)的圖片壓縮比例小,圖片相對(duì)損耗也小,圖像解碼寬度和高度設(shè)置對(duì)應(yīng)解碼出來JPG圖像的大小比例,解碼數(shù)據(jù)大小是指解碼的YUV圖片數(shù)據(jù)大小,可以使用sizeof(yuyv)計(jì)算。JPG硬解碼處理流程圖如圖3所示。

      圖3 JPG硬解碼處理流程圖

      首先,打開JPG硬解碼設(shè)備,調(diào)用fd=open("/dev/s3c-jpg",O_RDWR),然后映射stream區(qū)域,作為JPG硬解碼內(nèi)核和用戶共享的區(qū)域,調(diào)用dsp_buf=mmap(),同時(shí)獲取該區(qū)域地址,調(diào)用frame_buf=(char*)ioctl(fd,IOCTL_JPG_GET_FRMBUF,dsp_buf),再打開YUV文件,讀到內(nèi)存中,接著將YUV讀入內(nèi)存中的數(shù)據(jù)復(fù)制到frame_buf所指的內(nèi)存區(qū)域,最后調(diào)用write(jpg_fd,dsp_buf,param.fileSize)將YUV圖片解碼成JPG圖片,在此之前,需要設(shè)置好JPG解碼格式,即設(shè)置好控制JPG解碼結(jié)構(gòu)體的參數(shù)。

      1.3 WiFi無線網(wǎng)絡(luò)傳輸視頻圖像數(shù)據(jù)幀實(shí)現(xiàn)

      UT_WiFi_C無線網(wǎng)卡模塊接口為SDIO,該模塊采用Marvell8686的單芯片解決方案,相關(guān)的驅(qū)動(dòng)Marvell官方提供,WiFi無線網(wǎng)卡啟動(dòng)以后,聯(lián)網(wǎng)過程和使用跟有線網(wǎng)絡(luò)基本一樣,也是使用網(wǎng)絡(luò)套接字實(shí)現(xiàn)網(wǎng)絡(luò)鏈接和數(shù)據(jù)網(wǎng)絡(luò)傳輸[3]。WiFi傳輸視頻圖像數(shù)據(jù)流程圖如圖4所示。

      圖4 WiFi傳輸視頻圖像數(shù)據(jù)流程圖

      如圖所示,WiFi傳輸是視頻圖像數(shù)據(jù)幀處理過程是一個(gè)應(yīng)答過程。首先,由客戶端發(fā)送讀取視頻圖像幀頭信息申請(qǐng),服務(wù)器接收到客戶端信息后,發(fā)送視頻圖像幀頭信息過去,客戶端在接收到幀頭信息之后可以根據(jù)幀頭信息設(shè)置和初始化保存視頻圖像幀的緩存區(qū)大小和對(duì)應(yīng)的標(biāo)志位信息,然后服務(wù)器開始發(fā)送視頻圖像真實(shí)的數(shù)據(jù)信息,客戶端則負(fù)責(zé)接收和保存。

      2 服務(wù)器視頻圖像的保存

      服務(wù)器使用循環(huán)隊(duì)列形式保存視頻圖像信息數(shù)據(jù),具體實(shí)現(xiàn)如圖5所示。

      圖5 服務(wù)器視頻圖像保存緩存存儲(chǔ)格式圖

      圖5就是服務(wù)器視頻圖像保存緩存存儲(chǔ)格式圖。首先,服務(wù)器申請(qǐng)一塊能夠存放MAX_NUM×N幀視頻圖像數(shù)據(jù)幀大小的內(nèi)存buffer用來存放接收的視頻圖像數(shù)據(jù)幀,其中MAX_NUM用來控制每一秒鐘至少播放的視頻圖像數(shù)據(jù)幀的幀數(shù),而N是指buffer能夠存放的這樣數(shù)據(jù)幀塊的數(shù)量。接收的視頻圖像數(shù)據(jù)幀不斷的被存放到該buffer中,第一次要求填滿該buffer,然后開始播放視頻圖像,每秒鐘播放MAX_NUM幀視頻圖像,當(dāng)播放到MAX_NUM×N/2幀時(shí),這時(shí)開始發(fā)送消息,要求更新已經(jīng)播放的視頻圖像數(shù)據(jù),同時(shí)接著播放buffer中剩下沒有播放的視頻圖像數(shù)據(jù),當(dāng)再次播放到MAX_NUM×N/2幀時(shí),再次要求更新已經(jīng)播放的視頻圖像數(shù)據(jù),而之前要求更新的圖像數(shù)據(jù)這時(shí)候已經(jīng)更新完成了,可以繼續(xù)播放,如此循環(huán)播放。由于視頻更新使用的網(wǎng)絡(luò)接收視頻圖像數(shù)據(jù)線程,而播放視頻使用的是播放視頻線程,二者并行運(yùn)行,節(jié)約了整個(gè)服務(wù)器處理數(shù)據(jù)的時(shí)間,大大的提高了存儲(chǔ)和播放的性能。

      3 系統(tǒng)設(shè)計(jì)流程

      視頻監(jiān)控設(shè)備流程圖如圖6所示[4]。

      圖6 視頻監(jiān)控系統(tǒng)流程圖

      首先,服務(wù)器和客戶端初始化,并配置好相互連接的網(wǎng)絡(luò)套接字,客戶端通過有限連網(wǎng),用來連接服務(wù)器WiFi無線網(wǎng)絡(luò);服務(wù)器在配置好網(wǎng)絡(luò)之后,開始偵聽客戶端請(qǐng)求,如果客戶端請(qǐng)求視頻圖像數(shù)據(jù)接收,服務(wù)器開始采集視頻圖像數(shù)據(jù),由于視頻圖像播放必須在1 s里連續(xù)播放至少24幀圖像數(shù)據(jù)才能夠保證連續(xù)平滑的視覺效果,所以,需要設(shè)置一個(gè)視頻數(shù)據(jù)幀采集控制標(biāo)志位MAX_NUM,由它來控制視頻幀的采集數(shù);當(dāng)視頻數(shù)據(jù)幀采集完成時(shí),即大于MAX_NUM時(shí),開始JPEG視頻圖像硬解碼,S3C6410內(nèi)部集成了JPEG硬編解碼,可以直接對(duì)USB采集的YUV格式視頻圖像進(jìn)行JPG解碼,比軟件直接解碼損耗低,而且速度快;視頻圖像解碼之后,就可以開始發(fā)送視頻圖像數(shù)據(jù)了,發(fā)送視頻數(shù)據(jù)幀使用了MAX_NUM×N/2這個(gè)標(biāo)志位來控制,這主要是配合客戶端視頻圖像數(shù)據(jù)幀循環(huán)緩存更新設(shè)置的,如果傳輸視頻數(shù)據(jù)幀大于或等于MAX_NUM×N/2,就需要更新視頻圖像數(shù)據(jù)了,如果客戶端重新請(qǐng)求更新圖像數(shù)據(jù),開始新的視頻圖像采集和發(fā)送。在客戶端,在接收到視頻圖像數(shù)據(jù)幀之后,將數(shù)據(jù)保存在循環(huán)緩存區(qū),這個(gè)緩存區(qū)里面可以存放MAX_NUM×N幀數(shù)據(jù),第一次接收數(shù)據(jù)需要將這個(gè)緩存區(qū)填滿視頻圖像數(shù)據(jù)幀,然后開始播放,每次播放完成MAX_NUM×N/2幀視頻圖像數(shù)據(jù)幀之后,向服務(wù)器發(fā)送更新已經(jīng)播放的視頻圖像數(shù)據(jù),然后接著播放還沒有播放的MAX_NUM×N/2幀數(shù)據(jù),這樣循環(huán)請(qǐng)求和更新緩存區(qū)保存的視頻圖像數(shù)據(jù)幀,并循環(huán)播放緩存區(qū)視頻圖像數(shù)據(jù),由于視頻播放和網(wǎng)絡(luò)接收視頻圖像數(shù)據(jù)是兩個(gè)獨(dú)立的線程可以并發(fā)執(zhí)行,這樣就使得視頻的傳輸和播放同時(shí)在進(jìn)行,在播放前一段視頻圖像時(shí)更新后一段視頻圖像,在播放后一段視頻圖像時(shí)更新前一段視屏圖像,整個(gè)循環(huán)進(jìn)行,大大提高了整個(gè)系統(tǒng)視頻處理的效率。

      4 系統(tǒng)仿真與測(cè)試

      系統(tǒng)仿真測(cè)試分為服務(wù)器和客戶端兩個(gè)終端的仿真測(cè)試。圖7是服務(wù)器終端仿真測(cè)試圖,采用S3C6410開發(fā)板作為CPU控制整個(gè)服務(wù)器的運(yùn)行,包含USB攝像頭采集圖像數(shù)據(jù),圖像視頻數(shù)據(jù)幀的JPG硬解碼和WiFi無線網(wǎng)絡(luò)傳輸圖片數(shù)據(jù)。圖8是客戶端視頻監(jiān)控畫面,客戶端的視頻監(jiān)控軟件是基于QT平臺(tái)的C++用戶圖形化界面開發(fā)工具開發(fā)的,其中,operation菜單鍵可以控制視頻圖像抓取和播放,setting負(fù)責(zé)設(shè)置軟件的初始化參數(shù)信息。整個(gè)系統(tǒng)的測(cè)試結(jié)果證明,視頻圖像的顯示和抓取流暢,畫面效果清晰、平滑,說明整個(gè)設(shè)計(jì)穩(wěn)定,數(shù)據(jù)處理高效。

      5 結(jié)束語

      針對(duì)視頻監(jiān)控系統(tǒng),提出了一種基于WiFi無線網(wǎng)絡(luò)嵌入式系統(tǒng)解決方案。該方案解決了USB視頻圖像采集問題,并通過S3C6410內(nèi)部集成的JPG硬解碼實(shí)現(xiàn)了視頻圖像的壓縮處理,最后通過WiFi無線網(wǎng)絡(luò)將視頻圖像發(fā)送到客戶端,在客戶端采用視頻圖像循環(huán)保存和顯示,最終實(shí)現(xiàn)了視頻圖像清晰、穩(wěn)定、平滑顯示,整個(gè)設(shè)計(jì)正確、高效。

      [1]張偉男,張溢華.基于無線傳輸?shù)囊苿?dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2009,33(3):79-81.

      [2]趙文敏,余文芳,邢建國.一種嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(8):67-69.

      [3]熊平,劉剛,莊彩云,等.基于WiFi技術(shù)的嵌入式病房監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)[J].中國醫(yī)學(xué)物理學(xué)雜志,2011,28(1):2447-2449.

      [4]王小紅,周淵平,方曉翠.嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].通信技術(shù),2011,44(6):105-109.

      猜你喜歡
      解碼無線網(wǎng)絡(luò)客戶端
      《解碼萬噸站》
      濾波器對(duì)無線網(wǎng)絡(luò)中干擾問題的作用探討
      解碼eUCP2.0
      中國外匯(2019年19期)2019-11-26 00:57:32
      NAD C368解碼/放大器一體機(jī)
      Quad(國都)Vena解碼/放大器一體機(jī)
      縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      孵化垂直頻道:新聞客戶端新策略
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      無線網(wǎng)絡(luò)的中間人攻擊研究
      TD-LTE無線網(wǎng)絡(luò)高層建筑覆蓋技術(shù)研究與應(yīng)用
      漳平市| 深州市| 梅河口市| 威信县| 白玉县| 牙克石市| 余姚市| 光山县| 贵阳市| 探索| 通渭县| 荥经县| 丘北县| 临潭县| 杂多县| 常山县| 宁波市| 嫩江县| 夏河县| 天峻县| 噶尔县| 天等县| 钦州市| 监利县| 安龙县| 高邑县| 通化县| 兴业县| 宿松县| 江山市| 江西省| 长沙市| 湘潭市| 昂仁县| 开江县| 新巴尔虎左旗| 吉木萨尔县| 措美县| 双城市| 建阳市| 林周县|