版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式遠(yuǎn)程視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(基于S3C2410)發(fā) 布 時(shí) 間 : 2008-11-19 來 源 : 中電網(wǎng) 作 者 : 張永強(qiáng),趙永勇,李崇德 瀏 覽 : 984 多媒體通信技術(shù)的發(fā)展為信息的獲取和傳輸提供了豐富的手段,視頻采集是其中不可缺少的重要組成部分,該系統(tǒng)基于S3C2410的ARM9芯片和嵌入式Linux操作系統(tǒng),采用USB攝像頭捕捉視頻,經(jīng)MPEG-4算法壓縮編碼,系統(tǒng)直接與網(wǎng)絡(luò)相連,用戶使用標(biāo)準(zhǔn)的網(wǎng)絡(luò)瀏覽器和流媒體播放程序即可查看遠(yuǎn)程視頻影像。1 硬件系統(tǒng)系統(tǒng)硬件平臺(tái)選用基于ARM9架構(gòu)嵌入式芯片S3C2410,穩(wěn)定工作在202MHz主頻,板載64MB SDRAM 64M
2、B FLASH,主板資源包括:主USB口、從USB口、10M/100M以太網(wǎng)口,觸摸屏、彩色LCD、鍵盤、8個(gè)用戶自定義LED數(shù)碼管, A/D,RTC電路,2個(gè)串口、1個(gè)JTAG通用接口,音頻模塊,支持MPEG4,MP3編解碼,3個(gè)168PIN的擴(kuò)展插座,32位的數(shù)據(jù)總線,保留充分?jǐn)U展空間。其中標(biāo)配模塊包括:IC卡+PS2模塊、IDE硬盤+CF卡模塊、PCMCIA+SD/MMC模塊。另外可選配模塊有:GPS模塊,GPRS模塊,F(xiàn)PGA模塊,CAN+AD+DA模塊、紅外模塊、藍(lán)牙模塊、攝像頭模塊。2 軟件系統(tǒng)2.1 內(nèi)核配置與USB攝像頭驅(qū)動(dòng)假定已經(jīng)搭建好嵌入式Linux的開發(fā)環(huán)境,下面第一步工
3、作就是USB攝像頭的安裝與驅(qū)動(dòng)。首先檢查L(zhǎng)inux Kernel中是否已經(jīng)添加了USB模塊的支持,并且加入Video4Linux支持。Multimedia devicesVideo For LinuxVideo For Linux*V4L information in proc filesystem在主菜單的USB Support下還有各種攝像頭的驅(qū)動(dòng),選中將要使用的攝像頭芯片類型。USB IBM (Xirlink)C-it Camera supportUSB OV511 Camera supportUSB Philips CamerasUSB SE401 Camera supportUSB
4、STV680(Pencam)Camera supportUSB 3com HomeConnect(akavicam)support在USB攝像頭選購時(shí),優(yōu)先考慮Linux內(nèi)核公開支持的攝像頭芯片,不然要額外編寫相應(yīng)的USB攝像頭驅(qū)動(dòng)程序,然后進(jìn)行編譯、安裝。在此選用網(wǎng)眼公司的V3000產(chǎn)品,他采用了OV511的芯片。確定USB攝像頭被正常驅(qū)動(dòng)后,下一步就是使用Video4Linux提供的API函數(shù)集來編寫視頻采集程序。2.2 基于V4L設(shè)計(jì)的視頻采集模塊在Linux下,所有外設(shè)都被看成是一種特殊的文件,稱為設(shè)備文件。系統(tǒng)調(diào)用是內(nèi)核和應(yīng)用程序之間的接口,而設(shè)備驅(qū)動(dòng)程序則是內(nèi)核和外設(shè)之間的接口。他
5、完成設(shè)備的初始化和釋放、對(duì)設(shè)備文件的各種操作和中斷處理等功能,為應(yīng)用程序屏蔽了外設(shè)硬件的細(xì)節(jié),使得應(yīng)用程序可以像普通文件一樣對(duì)外設(shè)進(jìn)行操作。Linux系統(tǒng)中的視頻子系統(tǒng)Video4Linux為視頻應(yīng)用程序提供了一套統(tǒng)一的API,視頻應(yīng)用程序通過標(biāo)準(zhǔn)的系統(tǒng)調(diào)用即可操作各種不同的視頻捕獲設(shè)備。Video4Linux向虛擬文件系統(tǒng)注冊(cè)視頻設(shè)備文件,應(yīng)用程序通過操作視頻設(shè)備文件實(shí)現(xiàn)對(duì)視頻設(shè)備的訪問。Linux下與Video4Linux相關(guān)設(shè)備及用途如表1所示。這里主要針對(duì)設(shè)備文件/dev/video進(jìn)行視頻捕捉方面的程序設(shè)計(jì)。Linux下視頻采集流程如圖2所示。其中用到的主要函數(shù)有:Camera_op
6、en():用來開啟視頻設(shè)備文件,使用前需要首先聲明一個(gè)video_device類型的設(shè)備文件。Camera_get_capability():通過調(diào)用ioctl()函數(shù)取得設(shè)備文件的相關(guān)信息,并存放到video_capability結(jié)構(gòu)里。Camera_get_picture():通過調(diào)用ioctl()函數(shù)取得圖像的相關(guān)信息,并且存放到video_picture結(jié)構(gòu)里。Camera_close():用來關(guān)閉設(shè)備文件。Camera_grab_image():用來抓取圖像,采用mmap方式,直接將設(shè)備文件/dev/video0映射到內(nèi)存,加速文件I/O操作,還可以使多個(gè)線程共享數(shù)據(jù)。剩下的還有設(shè)備
7、初始化、參數(shù)設(shè)備等相關(guān)函數(shù),不再詳述。2.3 視頻壓縮編碼模塊獲取圖像數(shù)據(jù)后,可以直接輸出到FrameBuffer進(jìn)行顯示,由于本系統(tǒng)要將采集到的視頻影響通過網(wǎng)絡(luò)傳輸出去,所以在傳輸之前要對(duì)原始的圖像數(shù)據(jù)進(jìn)行壓縮編碼,在此選用MPEG-4視頻編解碼方案。和其他標(biāo)準(zhǔn)相比,MPEG-4壓縮比更高,節(jié)省存儲(chǔ)空間,圖像質(zhì)量更好,特別適合在低帶寬條件下傳輸視頻,并能保持圖像的質(zhì)量。MPEG-4中基于對(duì)象的視頻編碼過程可以分為3步進(jìn)行:(1)從原始視頻流中分割視頻對(duì)象。(2)對(duì)視頻對(duì)象進(jìn)行編碼,對(duì)不同視頻對(duì)象的運(yùn)動(dòng)信息、形狀信息、紋理信息分配不同的碼字。對(duì)輸入的任意形狀的VOP序列,用基于塊的混合編碼技術(shù)
8、編碼,處理順序是先IVOP后PVOP,BVOP。在對(duì)VOP的形狀信息編碼后,取得任意形狀VOP的采樣,每個(gè)VOP劃分為不相交的宏塊,每個(gè)宏塊含有4個(gè)88象素塊進(jìn)行運(yùn)動(dòng)補(bǔ)償以及紋理編碼,已編碼的VOP幀保存在幀存中,在當(dāng)前VOP幀和已編碼VOP幀之間的計(jì)算運(yùn)動(dòng)矢量;對(duì)將編碼的塊和宏塊,計(jì)算他們的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差;運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)后的IVOP及誤差用88塊DCT變換,并進(jìn)行DCT系數(shù)的量化,然后是游程編碼和熵編碼。(3)對(duì)各個(gè)視頻對(duì)象的碼流進(jìn)行復(fù)合,每個(gè)視頻對(duì)象的形狀、運(yùn)動(dòng)紋理信息復(fù)合成VOL比特流,各視頻對(duì)象視頻流復(fù)合成統(tǒng)一的碼流輸出。對(duì)視頻流進(jìn)行壓縮編碼以后,接下來就要實(shí)現(xiàn)網(wǎng)絡(luò)傳輸部分的功能。2.
9、4 JRTPLIB網(wǎng)絡(luò)傳輸模塊流媒體指的是在網(wǎng)絡(luò)中使用流技術(shù)傳輸?shù)倪B續(xù)時(shí)基媒體,RTP是目前解決流媒體實(shí)時(shí)傳輸問題的好辦法,JRTPLIB是一個(gè)面向?qū)ο蟮腞TP庫,他完全遵循RFC1889設(shè)計(jì),下面講述如何在Linux平臺(tái)上運(yùn)用RTP協(xié)議進(jìn)行實(shí)時(shí)流媒體編程。2.4.1 初始化在使用JRTPLIB進(jìn)行實(shí)時(shí)流媒體數(shù)據(jù)傳輸之前,首先應(yīng)該生成RTPSession類的一個(gè)實(shí)例來表示此次RTP會(huì)話,然后調(diào)用Create()方法來對(duì)其進(jìn)行初始化操作。RTPSession類的Create()方法只有一個(gè)參數(shù),用來指明此次RTP會(huì)話所采用的端口號(hào)。2.4.2 數(shù)據(jù)發(fā)送當(dāng)RTP會(huì)話成功建立起來之后,接下來就可以開
10、始進(jìn)行流媒體數(shù)據(jù)的實(shí)時(shí)傳輸了。首先需要設(shè)置好數(shù)據(jù)發(fā)送的目標(biāo)地址,RTP協(xié)議允許同一會(huì)話存在多個(gè)目標(biāo)地址,這可以通過調(diào)用RTPSession類的AddDestination()、DeleteDestination()和ClearDestinations()方法來完成。目標(biāo)地址全部指定之后,接著就可以調(diào)用RTPSession類的SendPacket()方法,向所有的目標(biāo)地址發(fā)送流媒體數(shù)據(jù)。2.4.3 數(shù)據(jù)接收對(duì)于流媒體數(shù)據(jù)的接收端,首先需要調(diào)用PollData()方法來接收發(fā)送過來的RTP或者RTCP數(shù)據(jù)報(bào)。由于同一個(gè)RTP會(huì)話中允許有多個(gè)參與者(源),因此既可以通過調(diào)用GotoFirstSour
11、ce()和GotoNextSource()方法來遍歷所有的源,也可以通過調(diào)用GotoFisstSourceWithDat()和GotoNextSourceWithData()方法來遍歷那些攜帶有數(shù)據(jù)的源。在從RTP會(huì)話中檢測(cè)出有效的數(shù)據(jù)源之后,接下去就可以調(diào)用RTPSession類的GetNextPacket()方法從中抽取RTP數(shù)據(jù)報(bào),當(dāng)接收到的RTP數(shù)據(jù)報(bào)處理完之后,要及時(shí)釋放。JRTPLIB為RTP數(shù)據(jù)報(bào)定義了3種接收模塊,通過調(diào)用RTPSession類的SetReceiveMode()方法可以設(shè)置下列這些接收模式:RECEIVEMODE_ALL:缺省的接收模式,所有到達(dá)的RTP數(shù)據(jù)報(bào)都
12、將被接受;RECEIVEMODE_IGNORESOME:除了某些特定的發(fā)送者之外,所有到達(dá)的RTP數(shù)據(jù)報(bào)都將被接受,而被拒絕的發(fā)送者列表可以通過調(diào)用AddToIgnoreList(),DeleteFromIgnoreList()和ClearIgnoreList()方法來進(jìn)行設(shè)置;RECEIVEMODE_ACCEPTSOME:除了某些特定的發(fā)送者之外,所有到達(dá)的RTP數(shù)據(jù)報(bào)都將被拒絕,而被接受的發(fā)送者列表可以通過調(diào)用AddToAcceptList(),DeleteFromAcceptList和ClearAcceptList()方法來進(jìn)行設(shè)置。2.4.4 控制信息JRTPLIB是一個(gè)高度封裝后的RTP庫,只要PollData()或者SendPacket()方法被成功調(diào)用,JRTPLIB就能夠自動(dòng)對(duì)達(dá)到的RTCP數(shù)據(jù)報(bào)進(jìn)行處理,并且還會(huì)需在要的時(shí)候發(fā)送RTCP數(shù)據(jù)報(bào),從而能夠確保整個(gè)RTP會(huì)話過程的正確性。在本系統(tǒng)中,使用RTPSession JRTPLIB類庫提供的方法來實(shí)現(xiàn)底層的RTP/RTCP操作,并且把他封裝在CrtpTransmitter類中,該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國麻醉機(jī)行業(yè)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
- 2025-2030年中國隱形紗窗行業(yè)競(jìng)爭(zhēng)格局及未來發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國防爆電機(jī)產(chǎn)業(yè)競(jìng)爭(zhēng)格局及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國鋅空電池行業(yè)市場(chǎng)現(xiàn)狀規(guī)模及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國鑄造扣件市場(chǎng)發(fā)展現(xiàn)狀及營銷策略分析報(bào)告
- 2025-2030年中國金屬銦行業(yè)發(fā)展?fàn)顩r及投資前景研究報(bào)告
- 2025年度項(xiàng)目經(jīng)理部勞動(dòng)合同范本(含員工離職手續(xù)及注意事項(xiàng))3篇
- 云母汽車內(nèi)飾材料的研究考核試卷
- 刺繡圖案寓意解讀考核試卷
- 保健食品跨境電商市場(chǎng)環(huán)境分析考核試卷
- 2024年08月云南省農(nóng)村信用社秋季校園招考750名工作人員筆試歷年參考題庫附帶答案詳解
- 防詐騙安全知識(shí)培訓(xùn)課件
- 心肺復(fù)蘇課件2024
- 2024年股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2024-2025學(xué)年江蘇省南京市高二上冊(cè)期末數(shù)學(xué)檢測(cè)試卷(含解析)
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí)
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 分紅保險(xiǎn)精算規(guī)定
- Proud-of-you中英文歌詞
- 基因的表達(dá)與調(diào)控.ppt
評(píng)論
0/150
提交評(píng)論