新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于IP網(wǎng)絡(luò)的實(shí)時(shí)視頻采集系統(tǒng)

基于IP網(wǎng)絡(luò)的實(shí)時(shí)視頻采集系統(tǒng)

作者: 時(shí)間:2011-08-25 來源:網(wǎng)絡(luò) 收藏
2.1.2 圖形界面的編譯與安裝

本文引用地址:http://2s4d.com/article/150298.htm

  Sitsang板使用的是Qt/Embedded的圖形界面,Qt/Embedded的編譯主要分為三個步驟:

 ?、倬幾gQt/X11,Qt/X11是運(yùn)行在IBM兼容PC中標(biāo)準(zhǔn)Linux這上的,這主要為Qt/Embedded及其應(yīng)用程序提供圖形編譯環(huán)境及仿真運(yùn)行環(huán)境;

 ?、诰幾gQt/Embedded,Qt/Embedded為在嵌入式Linux平臺上運(yùn)行的圖形界面及應(yīng)用程序提供一系列的函數(shù)庫;

 ?、劬幾gQtopia,通過使用Qt/X11提供的編譯工具以及Qt/Embedded提供的函數(shù)庫,編譯出最終嵌入式Linux平臺的圖形界面系統(tǒng)及該環(huán)境下的應(yīng)用程序。

  2.1.3 文件系統(tǒng)的安裝

  在嵌入式平臺上用作非易失存儲的設(shè)備一般是Flash,因而在嵌入式平臺上除了廣泛使用的ext2文件系統(tǒng)外,還經(jīng)常使用jffs2文件系統(tǒng)。作為日志型文件系統(tǒng),jffs2直接寫到非易失存儲器上,而不使用如ext2的緩沖機(jī)制,這樣在隨時(shí)斷電的情況下夠保護(hù)用戶的資料。直接使用mkfs.jffs2生成Sitsang板上的jffs2文件系統(tǒng)。

  2.2 嵌入式Linux模塊的設(shè)計(jì)

  在嵌入式Linux的內(nèi)核定制和編譯階段,已經(jīng)加入了對Video4Linux模塊以及OV511設(shè)備的支持,所以運(yùn)行在Linux下的圖像程序,可以通過Video4Linux模塊提供的編譯接口(API)從OV511設(shè)備中獲取圖像幀。

 ?、偌虞dUSB及OV511設(shè)備驅(qū)動模塊,同時(shí)加載Video4Linux模塊。分別使用命令:modprobe usbcor、modprobe usb-uhci、modprobe vodeodev和modprobe ov511。加載后將生成設(shè)備文件/dev/video0,為了和Video4Linux模塊相協(xié)調(diào),使用ln-s/dev/video0/dev/video為Video4Linux模塊的默認(rèn)視頻設(shè)備voideo與物理視頻設(shè)備video0建立連接。

 ?、谑褂肰ideo4Linux模塊提供的API進(jìn)行視頻程序的設(shè)計(jì)。Video4Linux模塊的視頻采集接口設(shè)備為/dev/video,采集程序打開此接口設(shè)備并掃描 它以尋找自己所需要的數(shù)據(jù)。

  這里將簡要介紹一下Video4Linux模塊提供的主要API函數(shù):VIDICGCAP函數(shù)以數(shù)據(jù)結(jié)構(gòu)video_capability返回視頻采集設(shè)備的性能參數(shù);VIDIOCSFBUF函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_buffer設(shè)備采集設(shè)備的幀緩存參數(shù),如果設(shè)備不支持幀緩存則此調(diào)用無效;VIDIOCGWIN函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_window來設(shè)備采集窗口參數(shù),使用參數(shù)1調(diào)用VIDIOCCAPTURE則開始視頻信號采集,使用參數(shù)0則結(jié)束采集;VDIOCGCHAN函數(shù)用來查詢不同的采集通道(包括音頻信道),使用數(shù)據(jù)結(jié)構(gòu)video_channel返回通道屬性;VIDIOCSPICT函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_picture來獲取和設(shè)置采集圖像幀的屬性,比較重要的是圖像幀的調(diào)色板參數(shù);read函數(shù)讀取采集通道中效的下一幀圖像,所讀取的圖像格式和尺寸由前面介紹的VIDIOCSPICT函數(shù)和VIDIOCGWIN函數(shù)決定,這些API函數(shù)以及數(shù)據(jù)結(jié)構(gòu)定義在頭文件 中。

  整個視頻采集模塊的工作流程見圖3。

  

  2.3 視頻圖像壓縮模塊的設(shè)計(jì)

  由視頻采集模塊獲取的視頻圖像需要在以太網(wǎng)上傳輸,為了提高傳輸效率從而提高視頻圖像質(zhì)量,則需要將原始的視頻圖像進(jìn)行壓縮編碼。本系統(tǒng)采用先進(jìn)的MPEG-4標(biāo)準(zhǔn)對視頻圖像進(jìn)行壓縮編碼,在幾種開放源代碼的MPEG-4編碼軟件中,選擇xvidcore作為本系統(tǒng)中視頻圖像壓縮模塊中的核心算法。xvid是一個高效的而且具有可移植性的編碼軟件,目前版本為xvidcore-1.0.1。xvid支持Simple Profile和Advanced Profile,支持I/PFrames、B-Frames、Interlacing和GMC,以鉆石和方塊模式來進(jìn)行PMVFast和EPZS運(yùn)行估計(jì),是目前比較流行的MPEG-4編碼軟件。

  對xvidcore-1.0.1進(jìn)行交叉編譯比較簡單,有以下主要步驟。

 ?、俳鈮嚎sxvidcore源代碼:tar-zxvf xvidcore-1.0.1.tar;

 ?、谠O(shè)置環(huán)境變量:export xvidcore=the path of xvidcore;cd $xvidcore/build/generic;

 ?、凵蒻akefile:./configure-host=localhostbuild=arm-linux-gcc;

 ?、芫幾g源代碼:make;make install;

 ?、輰⒔徊婢幾g生成的庫文件libxvidcore.so.*拷貝到交叉編譯器工作目錄的lib子目錄中,該庫文件為系統(tǒng)的其它模塊提供了編程接口。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉