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

        ?

        流媒體技術(shù)在視頻監(jiān)控中的應(yīng)用*

        2012-01-21 09:31:42張營(yíng)凱
        光學(xué)儀器 2012年1期
        關(guān)鍵詞:嵌入式系統(tǒng)

        張營(yíng)凱,張 旭

        (上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)

        引 言

        視頻監(jiān)控是光電行業(yè)的一個(gè)重要領(lǐng)域,隨著通信技術(shù)和多媒體技術(shù)的發(fā)展,嵌入式視頻監(jiān)控?cái)z像系統(tǒng)得到了廣泛的應(yīng)用,人們對(duì)視頻監(jiān)控的要求和質(zhì)量也越來(lái)越高。因此視頻監(jiān)控?cái)z像系統(tǒng)呈現(xiàn)出數(shù)字化、網(wǎng)絡(luò)化兩個(gè)主要特點(diǎn)。尤其近年來(lái)流媒體技術(shù)的發(fā)展更加促進(jìn)了實(shí)時(shí)視頻攝像的發(fā)展。

        嵌入式技術(shù)是先進(jìn)的計(jì)算機(jī)技術(shù)、超大規(guī)模集成電路、軟件技術(shù)和各個(gè)行業(yè)相關(guān)應(yīng)用相結(jié)合的產(chǎn)物。嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可剪裁,能適應(yīng)應(yīng)用系統(tǒng),對(duì)功能、可靠性、成本、體積、功耗等綜合性要求較高的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是相對(duì)于通用計(jì)算機(jī)系統(tǒng)而提出的。嵌入式系統(tǒng)也是一種軟硬件混合系統(tǒng)。嵌入式操作系統(tǒng)采用Linux操作系統(tǒng),Linux系 統(tǒng)源碼開(kāi)放,內(nèi)核功能強(qiáng)大,多任務(wù),易于裁剪,通信功能完善,具有良好的開(kāi)發(fā)工具和環(huán)境?;谇度胧搅髅襟w系統(tǒng)體積小、價(jià)格便宜、功耗低,尤其是實(shí)時(shí)性效果好,所以得到了廣泛的應(yīng)用[1-3]。

        1 系統(tǒng)硬件結(jié)構(gòu)

        圖1所示為流媒體服務(wù)器系統(tǒng)硬件設(shè)計(jì)平臺(tái),ARM選用海思公司的HI3511,HI3511是基于ARM926EJ內(nèi)核的32位RISC的處理器,具有標(biāo)準(zhǔn)32位ARM指令集和16位THUMB指令集。HI3511集成了豐富的外圍部件,主要有外部總線接口EBI、USB2.0接口、以太網(wǎng)10/100MMAC接口,用來(lái)仿真和燒寫(xiě)程序用的J-TAG接口、以及音視頻輸入輸出接口等接口。其硬件結(jié)構(gòu)見(jiàn)圖1。

        HI3511片內(nèi)還集成了及協(xié)同視頻硬件加速引擎。使得HI3511成為高性能通信媒體處理器,具有高集成、可編程、支持H.264和MJPEG-4等多協(xié)議,廣泛應(yīng)用于實(shí)時(shí)視頻通信領(lǐng)域,其中H264MainProfile算法極大地提高了視頻質(zhì)量,并且能夠提供靈活的場(chǎng)編碼或幀編碼,視頻處理單元還支持雙碼流編碼,處理器足以滿足視頻監(jiān)控的相關(guān)要求。

        2 流媒體系統(tǒng)結(jié)構(gòu)[4]

        嵌入式技術(shù)是一種采用處理器與嵌入式操作系統(tǒng)并加上所需要的應(yīng)用程序軟件,實(shí)現(xiàn)計(jì)算機(jī)一些功能的非PC設(shè)備。嵌入式操作系統(tǒng)采用Linux操作系統(tǒng),流媒體系統(tǒng)由流媒體服務(wù)器和客戶端組成,其中流媒體服務(wù)器是最主要部分。流媒體技術(shù)的主要特點(diǎn)就是邊下載邊播放。流媒體實(shí)時(shí)傳輸協(xié)議主要采用RTP/RTCP以及RTSP等網(wǎng)絡(luò)協(xié)議。其嵌入式流媒體系統(tǒng)總體結(jié)構(gòu)見(jiàn)圖2[5]。

        圖1 硬件結(jié)構(gòu)框圖Fig.1 Structure of hardware

        圖2 流媒體系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure of stream-media system

        流媒體技術(shù)是把連續(xù)得到媒體信息經(jīng)過(guò)壓縮后放到網(wǎng)絡(luò)服務(wù)器上,這樣客戶就可使實(shí)現(xiàn)邊下載邊觀看,而不需要將整個(gè)媒體文件全部下載完畢,所以流媒體技術(shù)非常適合現(xiàn)場(chǎng)事件,可以隨機(jī)訪問(wèn)和快進(jìn)或后退觀看內(nèi)容[6]。

        流媒體實(shí)時(shí)傳輸方式分實(shí)時(shí)流式傳輸和順尋流式傳輸兩種。實(shí)時(shí)流式傳輸可以保證媒體信號(hào)與網(wǎng)絡(luò)連接相匹配,使媒體信息可以被實(shí)時(shí)看到,而且實(shí)時(shí)傳輸允許對(duì)媒體進(jìn)行更多的控制,要比HTTP服務(wù)器復(fù)雜。順尋流式傳輸是順序下載,但客戶只能觀看已下載的部分,順序流式傳輸可以使用HTTP服務(wù)器,比實(shí)時(shí)流式傳輸要簡(jiǎn)單。

        3 流媒體系統(tǒng)軟件設(shè)計(jì)

        因?yàn)橄到y(tǒng)的關(guān)鍵就是流媒體服務(wù)器,所以這里也主要介紹與服務(wù)器有關(guān)的RTSP模塊、RTP模塊和用戶界面的線程實(shí)現(xiàn),這里首先介紹一下Linux的網(wǎng)絡(luò)通信過(guò)程[7]。

        3.1 Linux的網(wǎng)絡(luò)通信

        Linux中網(wǎng)絡(luò)通信是通過(guò)Socket套接字來(lái)實(shí)現(xiàn),它是一種特殊的文件描述符,由于Linux的設(shè)備無(wú)關(guān)性,可以看做普通的文件描述符來(lái)操作,通過(guò)向描述符讀寫(xiě)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)通信。Socket使用的是C/S模式,常見(jiàn)的Socket有流式Socket、數(shù)據(jù)報(bào)Socket和原始Socket三種類型。套接字編程采用C/S模式,即由客戶端向服務(wù)器進(jìn)程發(fā)出請(qǐng)求,服務(wù)器進(jìn)程執(zhí)行被請(qǐng)求任務(wù)并將響應(yīng)結(jié)果返回給客戶端。套接字函數(shù)包括:Socket()、Bind()、Listen()、Accept()、Send()、Recv()、Close()等。基本流程見(jiàn)圖3。

        其基本過(guò)程是Socket()函數(shù)創(chuàng)建一個(gè)用于通信的套接字并分配一個(gè)綁定端口號(hào),Listen()函數(shù)是套接字成為一個(gè)監(jiān)聽(tīng)套接字,調(diào)用Accept()來(lái)啟用套接字,此后程序就可以等待客戶端的連接并處理其請(qǐng)求??蛻舳艘步⒁粋€(gè)Socket,返回描述符。配置端口號(hào)和IP地址,向服務(wù)器發(fā)送連接請(qǐng)求并接受服務(wù)器發(fā)回的確認(rèn)連接信息。通信結(jié)束后,關(guān)閉雙方的Socket。

        3.2 流媒體協(xié)議介紹

        3.2.1 實(shí)時(shí)流協(xié)議(real-time streamming protocol,RTSP)

        圖3 網(wǎng)絡(luò)通信流程圖Fig.3 Network communication flowchart

        RTSP定義了一對(duì)多程序如何有效通過(guò)IP網(wǎng)絡(luò)控制多媒體數(shù)據(jù)。RTSP是應(yīng)用層協(xié)議,有很大的靈活性,可以用在多種操作系統(tǒng)上。RTSP在系統(tǒng)結(jié)構(gòu)上位于RTP/RTCP之上,使用RTP/RTCP完成數(shù)據(jù)傳輸,主要用來(lái)控制具有實(shí)時(shí)特性的數(shù)據(jù)的傳送,單本身并不傳送數(shù)據(jù)。RTSP可以為流媒體提供諸如播放、暫停、快進(jìn)等操作,負(fù)責(zé)定義具體的控制消息、操作方法和狀態(tài)碼等。RTSP的控制作用主要通過(guò)rtspsvr.c和rtspparse.c兩個(gè)C語(yǔ)言文件來(lái)實(shí)現(xiàn)[7,8]。

        (1)rtspsvr.c包含一些處理方法的函數(shù)。如下:

        RTSP_SessLists_Init,用于建立一個(gè)RTSP會(huì)話隊(duì)列,保存已經(jīng)建立連接的客戶端;

        RTSP_SessLists_Destroy,清除隊(duì)列,與客戶端斷開(kāi)后才使用;

        RTSP_SessLists_Add,將已建立連接的客戶端加入到會(huì)話隊(duì)列中;

        RTSP_SessLists_Remove,刪除一個(gè)已經(jīng)存在的RTSP客戶端;

        RTSP_SVR_Create,RTSP服務(wù)器初始化,分配端口,建立RTSP會(huì)話隊(duì)列;

        RTSP_SVR_Destroy,釋放RTSP資源,關(guān)閉RTSP監(jiān)聽(tīng),釋放RTP資源;

        RTSP_SVR_Start,線程函數(shù),用于調(diào)用RTSP_SVR_Proc函數(shù);

        RTSP_SVR_Proc開(kāi)始RTSP監(jiān)聽(tīng),接受客戶端發(fā)送的RTSP請(qǐng)求;

        RTSP_Handle_Event,用于處理RTSP的會(huì)話方法。

        (2)tspparse.c是用來(lái)處理文本文件的,包括的函數(shù)如下:

        RTSP_Status,描述RTSP的狀態(tài)碼;

        RTSP_M(jìn)ethods,描述RTSP的方法,如PLAY,SETUP等;

        RTSP_Get_Status_Str,用于獲得RTSP的狀態(tài)碼;

        RTSP_Parse_Url,,用于分析URL,獲取文本中的端口信息等;

        RTSP_Get_Cseq,用于獲得RTSP文本交互中的CSEQ,以判斷是否是相應(yīng)的請(qǐng)求與回答。

        3.2.2 實(shí)時(shí)數(shù)據(jù)傳輸協(xié)議(real-time protocol,RTP)

        RTP提供時(shí)間標(biāo)志,序列號(hào)及保證數(shù)據(jù)實(shí)時(shí)傳輸?shù)姆椒?。RTCP是RTP的控制部分,用來(lái)保證服務(wù)質(zhì)量和成員管理。

        協(xié)議的工作原理:應(yīng)用程序開(kāi)始一個(gè)RTP會(huì)話時(shí)將使用兩個(gè)端口:一個(gè)是RTP端口,另一個(gè)是RTCP端口。RTP負(fù)責(zé)數(shù)據(jù)的打包和傳輸;RTCP則在RTP會(huì)話期間周期地發(fā)送一些RTCP包,以用來(lái)監(jiān)聽(tīng)和保證RTP數(shù)據(jù)包的順序傳送,以及流量控制或者擁塞控制。流媒體服務(wù)器也可以利用這些信息動(dòng)態(tài)的改變傳輸速率,比較適合網(wǎng)上實(shí)時(shí)數(shù)據(jù)的傳輸。系統(tǒng)通過(guò)參考相關(guān)文檔和網(wǎng)上資源將RTP的實(shí)現(xiàn)編寫(xiě)為兩個(gè)文件:rtp.c和rtp.h[8]。

        (1)rtp.c主要是一些函數(shù)實(shí)現(xiàn):

        RTP_h(yuǎn)eader是一個(gè)RTP的包頭,payload用于存放多媒體數(shù)據(jù),payload_len是多媒體數(shù)據(jù)的長(zhǎng)度,不包含RTP的長(zhǎng)度。

        RTSP協(xié)議與RTP協(xié)議的關(guān)系是:RTSP用來(lái)控制消息和操作等,RTP則具體用來(lái)傳輸多媒體數(shù)據(jù);RTSP交互之后,RTP數(shù)據(jù)包才會(huì)發(fā)送。

        3.3 視頻應(yīng)用程序

        Linux內(nèi)核為L(zhǎng)inux處理圖形界面提供的最基本的底層驅(qū)動(dòng)接口。應(yīng)用程序不需要了解底層硬件的具體情況,只需通過(guò)設(shè)備節(jié)點(diǎn)對(duì)設(shè)備進(jìn)行操作,就可以完成圖像的顯示[9]。

        SDL是一個(gè)跨平臺(tái)、高性能的開(kāi)源共享庫(kù),廣泛應(yīng)用于播放器、游戲的設(shè)計(jì)。SDL使用系統(tǒng)的底層API,但是在平臺(tái)間統(tǒng)一了接口,使得基于SDL的程序具有良好的跨平臺(tái)特性。SDL有以下優(yōu)點(diǎn):(1)直接使用內(nèi)核提供的接口,運(yùn)行效率高;(2)跨平臺(tái),移植性好;(3)面向應(yīng)用,提供對(duì)圖形,音頻的高級(jí)應(yīng)用;(4)提供了多種應(yīng)用,如線程、消息循環(huán)、互斥鎖、定時(shí)器等;(5)可配置性;(6)資源豐富。在線程設(shè)計(jì)上使用兩個(gè)線程即用戶界面線程和工作者線程。用戶界面線程包括音視頻同步播放和接受并響應(yīng)用戶的操作,然后將工作者線程解碼出的音視頻數(shù)據(jù)傳遞給使用者。線程的工作流程見(jiàn)圖4。其客戶端運(yùn)行界面見(jiàn)圖5。

        圖4 視頻線程流程圖Fig.4 Video thread flowchart

        圖5 客戶端界面Fig.5 Client interface

        4 結(jié) 論

        基于嵌入式的流媒體攝像機(jī)是光學(xué)器材的一個(gè)重要應(yīng)用,尤其采用最新CMOS傳感器后,其靈敏度有了額較大提高、曝光時(shí)間縮短、單位像素尺寸的縮小,使得視頻清晰度有了很大提高。在圖像壓縮方面采用MPEG-4算法,有效減輕了網(wǎng)絡(luò)傳輸負(fù)擔(dān),有利于視頻的實(shí)時(shí)性傳輸。嵌入式流媒體攝像機(jī)融合了現(xiàn)代通信技術(shù)和多媒體技術(shù),尤其是嵌入式技術(shù)的應(yīng)用,使得嵌入式流媒體攝像機(jī)獲得了快速的發(fā)展。這種攝像機(jī)具有模塊化設(shè)計(jì),體積小,易于安裝、使用和維護(hù)。支持即插即用的解決方案,只要接入網(wǎng)絡(luò),分配一個(gè)IP地址,就可以實(shí)現(xiàn)流媒體的傳輸,實(shí)現(xiàn)無(wú)人值守,就可以保證系統(tǒng)穩(wěn)定可靠的運(yùn)行。正因?yàn)槿绱?,流媒體技術(shù)得到了越來(lái)越廣泛的應(yīng)用。

        [1] 鐘玉琢,向 哲,沈 洪.流媒體與視頻服務(wù)器[M].北京:清華大學(xué)出版社,2003.

        [2] 徐波濤,王 玲.基于ARM的流媒體傳輸方法的研究[D].南京:南京理工大學(xué),2007.

        [3] 師娟娟,彭 迪.基于ARM9的嵌入式Linux移植[J].武漢理工大學(xué)學(xué)報(bào),2008,30(2):205-208.

        [4] 馬忠梅,馬廣云.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002.

        [5] 馮國(guó)進(jìn).嵌入式Linux驅(qū)動(dòng)程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,2008.

        [6] 錢(qián) 斌,徐海云.嵌入式Web服務(wù)器在CTM系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2006,17(5):99-101

        [7] 張 威.Linux網(wǎng)絡(luò)編程教程[M].北京:首都師范大學(xué)出版社,2002:143-144.

        [8] 求是科技公司.8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)[M].北京:人民郵電出版社,2006:209-210.

        [9] 李 濤,董云衛(wèi).一種嵌入式軟件構(gòu)件和構(gòu)件庫(kù)[J].計(jì)算機(jī)科學(xué),2006,33(11):259-263.

        猜你喜歡
        嵌入式系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        加勒比黑人在线| 亚洲女同一区二区| 中文字字幕在线精品乱码| 福利一区二区三区视频午夜观看| 国产美女三级视频网站| 激情久久黄色免费网站| 国产又粗又猛又黄又爽无遮挡| 超碰97人人做人人爱少妇| a级国产精品片在线观看| 日本久久视频在线观看| 中文字幕免费在线观看动作大片| 国产白丝无码视频在线观看| 久久国产影视免费精品| 美女福利视频在线观看网址| 强开小婷嫩苞又嫩又紧视频| 亚洲熟女综合一区二区三区| 午夜久久精品国产亚洲av| 男男做h嗯啊高潮涩涩| 亚洲av无码一区东京热 | 厕所极品偷拍一区二区三区视频| 亚洲av香蕉一区二区三区av| 成人性生交大片免费看96| 久久永久免费视频| 手机在线观看亚洲av| 丰满女人猛烈进入视频免费网站 | 国产精品免费精品自在线观看| 亚洲AV无码精品色欲av| 一区二区亚洲熟女偷拍| 久久精品国产字幕高潮| 1717国产精品久久| 久九九久视频精品网站| 极品粉嫩小仙女高潮喷水操av| 久久久g0g0午夜无码精品| 久久99久久久无码国产精品色戒| 亚洲国产综合一区二区| 朋友的丰满人妻中文字幕| 亚洲中久无码永久在线观看软件| 亚洲妇女av一区二区| 国产成人91久久麻豆视频| 又湿又黄裸乳漫画无遮挡网站| 国产精品久久无码免费看|