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

基于ARM與DSP的實時視頻傳輸系統(tǒng)

2013-11-30 05:28:34裴海龍
計算機工程與設計 2013年12期
關鍵詞:嵌入式系統(tǒng)

楊 澤,裴海龍

(華南理工大學 自主系統(tǒng)與網(wǎng)絡控制教育部重點實驗室,廣東 廣州510640)

0 引 言

實時視頻傳輸技術在人們生活和工作中的應用越來越多,如遠程監(jiān)控、遠程教學、電視電話會議等。在對成本、空間、功耗和體積要求較為嚴格的工程應用中,嵌入式平臺因小巧、軟硬件可裁剪具有不可替代的優(yōu)點,這使得以嵌入式為平臺的多媒體系統(tǒng)成為當今工程實現(xiàn)及學術研究的熱點之一。但視頻信息具有信息量大、對計算資源需求高的特點[1,2],導致嵌入式實時視頻往往圖像分辨率低,幀率小,應用效果較差。因此必須對采集到的原始視頻信息進行壓縮,同時又要考慮嵌入式設備計算資源的約束。本文為解決上述問題,采用了ARM和DSP雙內核完成視頻采集和基于H.264的視頻壓縮,大大加快了圖像壓縮速度,同時減輕了ARM的計算負擔。系統(tǒng)基于實時流傳輸協(xié)議 (real time streaming protocol,RTSP)搭建流媒體服務器,將壓縮后的視頻有效傳輸至遠程計算機上解碼顯示。本系統(tǒng)目前已經(jīng)用于實驗室無人機監(jiān)控平臺,取得了很好的實驗效果。

1 系統(tǒng)硬件平臺

硬件組成

本系統(tǒng)的硬件平臺主要由嵌入式核心板、底板、USB彩色攝像頭和遠程計算機組成。嵌入式核心板選用以色列Compulab公司生產(chǎn)的CM-T3530(如圖1(a)所示)。該核心板體積小,僅66mm*44m*5mm,功耗低 (0.2-2w),搭載的OMAP3530處理器集成了720MHZ的Cortex-A8 ARM內核和520MHZC64x+DSP內核,同時核心板還有NAND FLASH、WIFI模塊等,圖形計算能力強,支持運行Linux、WinCE操作系統(tǒng),并且具有硬件可擴展結構。底板 (如圖1(b)所示)為自行開發(fā),該底板提供有核心板插槽、普通USB接口、高速USB接口、調試口、串口、網(wǎng)口、核心板供電及外設供電接口等。經(jīng)測試核心板在上述底板上運行穩(wěn)定可靠,很好的滿足了系統(tǒng)開發(fā)和運行的需求,。由于Linux內核中包含UVC(USB video class)模塊及USB設備驅動,可使用V4L2(video for linux version 2)對攝像頭進行操作,因此本系統(tǒng)攝像頭設備選用支持UVC的即插即用USB攝像頭即可。這里我們選用羅技高清攝像頭C270,其最高支持分辨率為720P視頻采集,且支持自動對焦,具有較好的成像效果。系統(tǒng)的遠程計算機裝有Ubuntu操作系統(tǒng),用于調試開發(fā)工作及實時視頻的解碼顯示。整個系統(tǒng)硬件平臺如圖2所示。

圖1 核心板與底板

圖2 系統(tǒng)硬件平臺

2 系統(tǒng)軟件平臺

在視頻實時傳輸過程中,嵌入式系統(tǒng)首先打開攝像頭設備并配置攝像頭參數(shù),然后創(chuàng)建采集壓縮函數(shù)供RTSP流媒體服務器循環(huán)調用。在采集壓縮函數(shù)中,采集得到的原始視頻幀放到采集傳輸進程和調用DSP壓縮的進程共享的內存空間中,經(jīng)DSP壓縮后再次放回共享內存區(qū),然后被RTSP流媒體服務器放入發(fā)送緩沖區(qū)。RTSP流媒體服務器會為該視頻流創(chuàng)建網(wǎng)絡訪問地址,供遠程計算機訪問。在遠程計算機端,使用具備H.264解碼能力的播放器訪問視頻流網(wǎng)絡地址即可實時觀看遠程攝像頭采集到的信息。系統(tǒng)整體流程如圖3所示。

2.1 基于V4L2的圖像采集

圖3 系統(tǒng)軟件流程

為使本系統(tǒng)外接攝像頭可方便更換以滿足不同環(huán)境的需求,同時使代碼易于移植,系統(tǒng)采用基于V4L2(video for linux version 2)的圖像采集程序。V4L2是Linux內核中專門用于視頻設備的驅動,它為程序員提供了訪問視頻設備的通用接口[3,4],包括視頻設備的打開、設備屬性的獲取與設置、圖像的獲取等。當系統(tǒng)需要更換攝像頭時,只需要編譯相應設備的驅動模塊添加到Linux內核即可而不需要修改系統(tǒng)程序,這樣大大方便了系統(tǒng)的開發(fā)與擴展。基于V4L2的圖像采集程序流程[5]如圖4所示,具體步驟如下文所述。

圖4 圖像采集流程

(1)打開設備文件。int fd=open (“/dev/video0”,O_RDWR);Linux操作系統(tǒng)中,由V4L2驅動的視頻設備節(jié)點文件通常是/dev/videoX。

(2)取得設備屬性,ioctl(fd,VIDIOC_QUERYCAP,&cap),變量cap為struct v4l2_capability類型;設置視頻格式,ioctl(fd,VIDIOC_S_FMT,&fmt),變量fmt為struct v4l2_format類型。

(3) 向 驅 動 申 請 幀 緩 沖,ioctl(fd,VIDIOC _REQBUFS,&reqbuf),變量reqbuf為 struct v4l2_requestbuffers類型;申請物理內存 (內存映射),調用calloc函數(shù)向用戶空間申請相同數(shù)目的幀緩沖,并使用mmap內存映射方式將幀緩沖映射到用戶空間。

(4)將申請的幀緩沖放入用于存放采集到視頻幀的隊列,ioctl(fd,VIDIOC_QBUF,&buf)。然后調用ioctl(fd,VIDIOC_STREAMON,&type),type是enum v4l2_buf_type枚舉類型。

(5)出隊列以取得采集到的視頻幀,ioctl(fd,VIDIOC_DQBUF,&buf)。如果需要循環(huán),則將buf重新放入隊列并反復獲取幀緩沖中的數(shù)據(jù)。

2.2 基于DSP的H.264壓縮

2.2.1 H.264算法分析

H.264視頻壓縮技術是現(xiàn)在世界上最新的圖像編解碼標準,它以低碼率、高清晰的特點能夠持續(xù)提供高質量的視頻[6]。在本系統(tǒng)選擇編碼器時,調用FFMPEG軟件中的MPEG4和H.264進行了壓縮率的對比。在相同的幀間和幀內預測選擇參數(shù)情況下,H.264壓縮率是普通MPEG4的4倍左右,同時視頻圖像更加穩(wěn)定。因此系統(tǒng)選用H.264作為視頻壓縮算法,H.264壓縮流程如圖5所示。

圖5 H.264編碼流程

H.264算法包含了幀內編碼和幀間編碼。為保證系統(tǒng)圖像質量并縮短壓縮時間,本文對 H.264算法中的IntraFrameInterval參數(shù),即幀內幀間模式選擇參數(shù)進行了調試,以選擇最適合性能要求的參數(shù)值。經(jīng)過試驗,最終將IntraFrameInterval參數(shù)設置為1,即僅采用幀內編碼,這樣獲得的圖像清晰度高、圖像壓縮時間短,且壓縮率仍在35倍左右。H.264主要參數(shù)如下所示:

Params->inputHeight=480;//系統(tǒng)最大支持480,實驗調試還包括120、240;

Params->inputWidth=640;//系統(tǒng)最大支持720,實驗調試還包括160、320

Params->targetFrameRate=30000;

Params->refFrameRate=Params->targetFrameRate;

Params->targetBitRate=4000000;

Params->intraFrameInterval=1;//僅選用幀內編碼

Params->generateHeader=XDM_ENCODE_AU;

Params->captureWidth=0;//以圖像寬作為間距(寬大于高時)

Params->forceFrame=IVIDEO_NA_FRAME;//-1;

Params->interFrameInterval=1;//不支持B幀

2.2.2 調用DSP實現(xiàn)壓縮

盡管與其他編碼器相比,H.264的壓縮效率非常突出,但帶來的問題是其算法復雜度也大大提高[7],對系統(tǒng)的計算資源提出了更高的要求。本文在選用DSP實現(xiàn)H.264圖像壓縮前,首先在ARM平臺運行的Linux操作系統(tǒng)上通過調用交叉編譯的FFMPEG和X264庫實現(xiàn)H.264圖像編碼。經(jīng)實驗觀察,在壓縮分辨率僅為160*120大小的視頻流時,平均每幀仍需耗時90~105ms,視頻實時性很差。而且壓縮任務占用了大量ARM運算資源影響了系統(tǒng)其它程序的運行,因此尋求實現(xiàn)快速的H.264壓縮方法是實時視頻處理的關鍵因素之一。DSP具有強大的數(shù)字信號處理能力,在一個DSP上可以同時進行多路音視頻信號的壓縮處理。而且DSP產(chǎn)品成熟,開發(fā)周期短,可以實現(xiàn)快速技術更新和產(chǎn)品換代。所以本系統(tǒng)使用TI公司OMAP3530處理器中的DSP核實現(xiàn)視頻的H.264壓縮,這樣大大節(jié)約了視頻壓縮時間,并減輕了ARM核的運算壓力。

系統(tǒng)對DSP的調用使用TI-DVSDK (digital video software development kit)進行開發(fā)。DVSDK是TI公司推出的一款軟件,作用是建立ARM與DSP之間的聯(lián)系,它包含了引導加載 (u-boot)、編解碼器引擎多媒體堆棧、達芬奇多媒體接口 (DMAI)、多媒體編解碼器等部件,目前支持的視頻解碼格式有 H.264,MPEG-2,MPEG-4,編碼格式有H.264,MPEG-4。利用DVSDK我們能夠很快搭建出滿足系統(tǒng)要求的H.264視頻壓縮環(huán)境,本系統(tǒng)單獨編寫了基于DVSDK的程序負責完成視頻的壓縮任務,與系統(tǒng)主要進程間采用共享存儲方式進行數(shù)據(jù)共享與通信[8],兩個進程的流程圖如圖6所示。經(jīng)實驗證明,系統(tǒng)對分辨率160*120的視頻幀平均壓縮時間僅為每幀5~7ms,很好的滿足了實時性要求。

圖6 視頻壓縮流程

為完成兩個進程的通信,進程需要先調用shmget(key_t key,size_t size,int flag)來創(chuàng)建新的共享存儲段或引用一個現(xiàn)存的共享存儲段,同時獲得共享存儲ID,再調用shmat(int shmid,const void*addr,int flag)來將共享存儲段連接到自身的地址空間中。在獲取共享存儲后,調用DSP的進程就可以直接從共享存儲中讀取圖像和寫入壓縮后的圖像。

從共享存儲讀取圖像到待壓縮緩沖區(qū):

將輸入緩沖區(qū)圖像壓縮,并輸出至輸出緩沖區(qū):

retVal=VIDENC1_process(enc,&inputBufDesc,&outputBufDesc,&inArgs,&outArgs);

將壓縮后的圖像放入共享存儲:

壓縮結束后,視頻采集與傳輸?shù)倪M程會獲取壓縮后的圖像,使其經(jīng)流媒體服務器傳輸至遠端。

2.3 流媒體服務器搭建

本系統(tǒng)最初采用基于TCP的Socket編程實現(xiàn)視頻的傳輸功能,由于TCP的可靠連接特性,視頻卡頓現(xiàn)象嚴重,無法滿足實時性要求。而簡單的UDP套接字又無法保證有效傳輸,因此系統(tǒng)選用控制聲音或視頻傳輸?shù)亩嗝襟w流協(xié)議作為服務器協(xié)議。RTSP(real time streaming protocol),實時流傳輸協(xié)議,在TCP/IP體系結構中位于RTP (realtime transport protocol)和 RTCP (RTP control protocol)之上,是一個應用層協(xié)議 (如圖7所示),其數(shù)據(jù)傳輸部分使用RTP或RTCP來完成[9]。該協(xié)議可以控制多個數(shù)據(jù)發(fā)送連接,并為連接選擇發(fā)送通道,從而保證流媒體傳輸?shù)母咝浴?/p>

圖7 RTSP體系的各層

系統(tǒng)使用開源的LIVE555項目實現(xiàn)RTSP流媒體服務器的搭建。LIVE555是一個專門為流媒體提供解決方案的跨平臺開源項目,其支持的流媒體傳輸協(xié)議有RTP/RTCP、RTSP、SIP等。該項目的源代碼包括4個基本的庫和各種測試代碼,4個基本的庫分別是:UsageEnvironment,GroupSock, LiveMedia 和 BasicUsageEnvironment[10]。UsageEnvironment模塊是對系統(tǒng)環(huán)境的抽象,包括抽象類UsageEnvironment、TaskScheduler和HashTable,前兩個類用于調度已推遲事件,配置異步讀取事件的句柄以及輸出錯誤和警告信息,HashTable類定義了一個通用的哈希表的接口供其它代碼調用。GroupSock類實現(xiàn)了對網(wǎng)絡接口和套接字的封裝,并且專門封裝了一個套接字用于發(fā)送接收廣播。LiveMedia庫定義了一系列從Medium類衍生的類,以支持多種流媒體和編碼器類型。BasicUsage-Environment是UsageEnvironment類的一個子類,用于簡單的控制臺應用程序。測試代碼的文件夾包含了利用上述基本庫編寫的多種流媒體協(xié)議客戶端與服務器實現(xiàn)程序和多個支持不同視頻格式的例子。

利用LIVE555搭建RTSP流媒體服務器主要過程是:

(1)初始化本地環(huán)境,建立RTP和RTCP套接字,將RTP套接字與本機綁定,建立sink接收器并與該RTP套接字關聯(lián)。

(2)建立于該RTP套接字、本機環(huán)境、sink接收器配套的流控RTCP實例。

(3)建立RTSP服務器 (包含與RTP/RTCP關聯(lián)的會話)。輸出該RTSP服務器的網(wǎng)絡地址 (本機地址加流名稱)。至此,向外發(fā)數(shù)據(jù) (RTP/RTCP遠程通信)所需的準備已經(jīng)完成。

(4)建立圖像數(shù)據(jù)傳遞:根據(jù) WebCamDeviceSource建立VideoSource。WebCamDeviceSource初始化時,就使Webcam負責攝像頭圖像采集、與DSP壓縮程序通信并將壓縮圖像存入fTO指向的緩沖區(qū)。VideoSource初始化時就與WebCam關聯(lián)了,因此也關聯(lián)了fTO指向的緩沖區(qū),這樣圖像經(jīng)采集壓縮后傳入VideoSource。

(5)sink調用startPlaying(),開始播放流,sink就循環(huán)的接受經(jīng)采集壓縮后的數(shù)據(jù)。

(6)事件循環(huán),當RTSP客戶端輸入訪問地址rtsp://192.168.0.xx:xxx/testStream連接服務器時,服務器就開始對客戶端對話進行處理。

3 系統(tǒng)測試

系統(tǒng)使用開源的VLC播放器訪問嵌入式流媒體服務器地址,該播放器支持大量的文件格式和流媒體播放格式,可安裝在 Windows、Linux、Android平臺。本系統(tǒng)播放終端界面如圖7所示,遠程攝像頭的視頻信息成功的得到了解碼與播放。在局域網(wǎng)環(huán)境下,本文對系統(tǒng)的性能做了進一步測試。通過對不同圖像分辨率的視頻傳輸情況進行試驗,觀察系統(tǒng)的穩(wěn)定性和傳輸幀率,得到表1所示結果。結果表明,本系統(tǒng)在表中各圖像分辨率下都有較好的幀率表現(xiàn),系統(tǒng)的實時性較強,而且系統(tǒng)在低分辨率情況下能夠保證視頻的清晰流暢,滿足了大多數(shù)實時視頻應用的需求。不過隨著分辨率的提高,壓縮運算的時間消耗大大增加,網(wǎng)絡帶寬需求提高,使得系統(tǒng)延遲增大、穩(wěn)定性下降。針對這一情況,系統(tǒng)應進一步優(yōu)化壓縮算法和流媒體傳輸控制,以提高系統(tǒng)性能。

圖8 實時視頻播放界面

表1 系統(tǒng)性能分析

4 結束語

本系統(tǒng)利用具有ARM、DSP雙內核的處理器搭建了圖像處理能力極強的硬件平臺,并且采用H.264作為視頻壓縮算法,使得實時視頻傳輸應用中視頻壓縮時間大大縮短。系統(tǒng)基于RTSP流媒體協(xié)議搭建了流媒體服務器,使得視頻傳輸穩(wěn)定性有很大提高。該系統(tǒng)的性能滿足了監(jiān)控、視頻會議等應用的要求,同時可以靈活的加入程序進行應用的擴展,如加入圖像識別及目標跟蹤等。目前,我們已經(jīng)基于本系統(tǒng)實現(xiàn)了火點的識別及跟蹤并搭載到實驗室小型無人機上。但系統(tǒng)在視頻高分辨率情況下的傳輸穩(wěn)定性仍存在不足,需要進一步優(yōu)化以滿足高分辨率要求下的應用場合。

[1]REN Zhikao,LIU Minghua,YE Chen,et al.The real time video transmission system based on H.264[C]//International Conference on Web Information Systems and Mining.Shanghai:IEEE Press,2009:270-274.

[2]REN Zhikao,WEI Zhiqiang.Design and realization of video real time video transmission system[J].Computer Engineering and Application,2007,28 (11):2607-2610 (in Chinese).[任志考,魏志強.實時視頻傳輸系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2007,28 (11):2607-2610.]

[3]GUO Jian,ZHAO Jian.Image capture and display of embedded Linux[J].Modern Electronics Technique,2006 (7):129-131(in Chinese).[郭劍,趙建.嵌入式Linux的圖像采集與顯示[J].現(xiàn)代電子技術,2006 (7):129-131.]

[4]Jonathan Corbet,Alessandro Robini.Linux device drivers[M].Beijing:China Electric Power Press,2006(in Chinese).[科波特,魯賓尼.Linux設備驅動程序[M].北京:中國電力出版社,2006.]

[5]YAN Xinzhong,CHEN Yu.Design of image acquisition and transmission based on embedded ARM[J].Foreign Electronic Measurement Technology,2009 (11):57-59 (in Chinese).[嚴新忠,陳雨.基于嵌入式ARM的圖像采集與傳輸設計[J].國外電子測量技術,2009 (11):57-59.]

[6]LI Hongjing.H.264video compression based on network video monitoring system technical design[J].Hebei Journal of Industrial and Technology,2011,28 (4):236-239(in Chinese).[李紅京.基于H.264視頻壓縮技術的網(wǎng)絡視頻傳輸系統(tǒng)設計[J].河北工業(yè)科技,2011,28 (4):236-239.]

[7]WU Qiong.Video encoding and decoding based on H.264and its realization and optimization on DSP[J].Modern Electronics Technique,2010 (4):55-57(in Chinese).[吳瓊.基于H.264視頻編解碼DSP實現(xiàn)與優(yōu)化[J].現(xiàn)代電子技術,2010(4):55-57.]

[8]Richard Stevens W,Stephen A Rago.Advanced programing in the UNIX environment[M].2nd ed.YOU Jinyuan,ZHANG Yaying,transl.Beijing:Post and Telecom Press,2006(in Chinese).[Richard Stevens W,Stephen A Rago.UNIX環(huán)境高級編程[M].2版.尤晉元,張亞英,譯.北京:人民郵電出版社,2006.]

[9]GAO Jianshui,CHEN Yaowu,LI LanLan.Video order program system design baed on RTSP[J].Chinese Journal of Electron Devices,2006,29 (4):1143-1146(in Chinese).[高建水,陳耀武,李嵐嵐.基于RTSP協(xié)議的視頻點播系統(tǒng)設計[J].電子器件,2006,29 (4):1143-1146.]

[10]CHEN Liang,PEI Hailong.Programming for the server of real time based on RTSP[J].Microcomputer Information,2009,28 (5-3):65-67(in Chinese).[陳亮,裴海龍.基于RTSP協(xié)議的實時視頻服務器實現(xiàn)[J].微計算機信息,2009,28 (5-3):65-67.]

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
主站蜘蛛池模板: 欧美另类图片视频无弹跳第一页| 在线观看国产一区二区三区99| 国内视频精品| 国产亚洲精品91| 国产精品一区二区不卡的视频| 久久成人国产精品免费软件 | 草逼视频国产| 国产成人av一区二区三区| 亚洲AV无码一区二区三区牲色| 直接黄91麻豆网站| 国产午夜无码专区喷水| 亚洲天堂视频网| 亚洲第一精品福利| 久久综合五月婷婷| 中文字幕欧美日韩高清| 亚洲欧美不卡中文字幕| 萌白酱国产一区二区| 九色综合伊人久久富二代| 国产午夜人做人免费视频| 国产精品手机视频| 久久亚洲国产视频| 好紧好深好大乳无码中文字幕| 国产91视频免费| 国产va视频| 72种姿势欧美久久久久大黄蕉| 亚洲国产综合精品一区| 亚洲成AV人手机在线观看网站| 午夜福利网址| 欧美成人精品欧美一级乱黄| 无码粉嫩虎白一线天在线观看| 国产幂在线无码精品| 奇米影视狠狠精品7777| 精品国产电影久久九九| 18禁影院亚洲专区| 日韩经典精品无码一区二区| 亚洲欧美人成人让影院| 毛片久久久| 成人综合网址| 伊人精品视频免费在线| 免费国产福利| 欧美日韩综合网| 国产激情第一页| 一级毛片在线播放免费观看| 欧美在线精品怡红院| 亚洲人在线| 米奇精品一区二区三区| 国产女同自拍视频| 无码一区18禁| 九九久久99精品| 天天色天天综合网| 香蕉网久久| 婷婷亚洲天堂| a级毛片免费播放| 亚洲开心婷婷中文字幕| 亚洲第一中文字幕| 午夜国产小视频| 国产情侣一区二区三区| 亚洲精品天堂自在久久77| 欧美在线黄| 亚洲九九视频| 久久国产黑丝袜视频| 国产午夜福利亚洲第一| 国产美女视频黄a视频全免费网站| 99热这里只有精品国产99| 天堂va亚洲va欧美va国产| 一级毛片免费高清视频| 中文成人在线| 精品视频在线一区| 亚洲妓女综合网995久久| 亚洲另类色| 亚洲成人精品| 亚洲欧洲日本在线| 日本AⅤ精品一区二区三区日| 亚洲第一精品福利| 波多野结衣一级毛片| 国产极品嫩模在线观看91| 99在线观看视频免费| 制服丝袜亚洲| 免费一级大毛片a一观看不卡| 亚洲第一视频网| 97精品伊人久久大香线蕉| 国产精品久久久久久久久kt|