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

機頂盒上搭建Linux的USB視頻數據采集平臺

2010-06-25 09:39:06于鴻洋
電視技術 2010年1期
關鍵詞:設備

巫 莉,于鴻洋,張 萍

(電子科技大學 電子工程學院,四川 成都 611731)

1 引言

Linux是一套自由軟件,用戶可以無償地得到其源代碼和大量的應用程序,并可以任意修改和補充[1],這樣使得開發者可以更方便地開發機頂盒的功能,但是由于Linux本身各種軟件的復雜的依賴性以及缺乏穩定完善的維護,Linux的開發不像Windows那么方便容易[2]。

通用串行總線(USB)具有易于使用、速度快、可靠性強、成本低等優點[3],在市場上已經廣泛普及。USB攝像頭的視頻播放也越來越受歡迎。筆者首先介紹了采用的STi7109芯片的機頂盒的硬件及軟件系統,然后闡述了在Linux上搭建USB攝像頭視頻數據采集平臺的過程,同時也使讀者對在Linux上怎樣進行軟件開發有更深的認識。

2 基于STi7109的機頂盒體系結構

2.1 硬件體系結構

本設計采用STMicrotronics公司最新的增強型高清多標準視音頻解碼芯片STi7109作為主芯片。STi7109在一個芯片上集成了2個頻率為266 MHz的ST231CPU以及 VC-1,MPEG-2和 H.264視音頻解碼器,PAL/NTSC/SECAM編碼器,1個16 kbyte的I-Cache和1個32 kbyte的D-Cache,傳輸過濾解擾、解復用模塊,顯示和圖形引擎功能模塊。STi7109擁有16個級別的中斷控制器,定義了6個可擴展的8位可編程輸入/輸出端口(GPIO)。除MPEG-2外,該系統芯片解決方案還支持高清H.264/MPEG-4 AVC,以及MPEG-4 P2標清標準。其強大的視頻解碼能力為視頻播放系統的實現提供了硬件條件。

STi7109開發板包含1個USB接口,支持USB2.0協議,支持高速USB設備。STi7109數字機頂盒硬件平臺如圖1所示。

圖1 STi7109數字機頂盒硬件平臺

數字信號流(包括公開的和加密的)通過纜線傳輸到高頻頭,通過芯片STb0468b處的QAM/QPSK解調處理,傳輸到STi7109集成芯片進行解復用和PES流分組解析,從而產生對應的視頻信號和音頻信號。

2.2 軟件體系結構

STi7109的USB攝像頭視頻數據采集平臺從軟件的角度看,主要分為5個層次:Bootloader,Linux內核,文件系統,加載驅動模塊和應用軟件。STi7109平臺上的軟件系統如圖2所示。

圖2 STi7109平臺上的軟件系統

3 移植Linux下USB攝像頭驅動

由于USB攝像頭根據攝像頭芯片的不同驅動也不同,在Linux內核上很少帶有或幾乎沒有USB攝像頭的驅動,需要自己開發安裝。在開源項目中,spca5xx驅動以及后來的gspca驅動涵蓋了大部分主流的攝像頭驅動,但是也無法包含各種品牌的所有型號的攝像頭。因此需要在熟悉USB攝像頭驅動的情況下對驅動進行修改,并按照Linux上的特殊要求來完成對USB攝像頭的安裝。

下面介紹在Linux下怎樣移植、安裝USB攝像頭驅動,并使其適用于自己的USB攝像頭。

1)下載開源項目的USB攝像頭驅動

筆者首先在CSDN下載頻道上下載“gspcav120071224.tar.gz”。其次在 Linux 上的下載命令為“wget-c http∶//mxhaard.free.fr/spca50x/Download/gspca120071224.tar.gz”。最后解壓驅動壓縮包“tar zxvf gspca120071224.tar.gz”。

2)使USB攝像頭驅動適合自己的攝像頭

USB攝像頭驅動直接相關的是USB攝像頭芯片型號。在Windows下右鍵點擊“我的電腦”-“管理”-“設備管理器”-“圖像處理設備”選擇攝像頭設備雙擊,在“詳細信息”一欄可以看到USB攝像頭的UID和VID,也可以通過Linux下lsusb命令進行查看。筆者采用的是ID 0ac8∶307b的攝像頭。通過分析USB攝像頭驅動源代碼判斷是否適合自己的攝像頭芯片。

進入 “gspca120071224”文件夾,其中最核心的是gspca_core.c文件以及gspca.h頭文件。gspca_core.c包括設備注冊、注銷和各種操作方法集。gspca.h的主要內容有:(1)定義所支持的Vendor ID號;(2)對支持的DSP橋接控制芯片型號進行編號;(3)對支持的CMOS/CCD圖像傳感器型號進行編號。另外,還定義了圖像格式相關的常量和數據結構(如色彩空間、調色板、圖像分辨力等),幀數據結構,攝像頭操作方法集等。

Conexant,EtomsSonix,PixArt,Vimicro 和 Sunplus 等文件夾中定義了各傳感器相關的頭文件。decoder文件夾中包含了對各種圖像格式進行編解碼的源代碼。

通過查看gspca_core.c和gspca.h兩個文件,發現使用的USB攝像頭的Vendor ID,DSP芯片和image sensor已包含在其中。如果不在其中,則要定義DSP和sensor芯片的相應頭文件,并在gspca.h中添加相應的設備信息,還要把攝像頭加入到 gspca_core.c的攝像頭設備列表中。

3)安裝USB攝像頭驅動于Linux系統

Linux下對于硬件驅動,可以將驅動程序靜態編譯進內核中,也可以將它作為模塊在使用時再加載[4]。每塊可以在運行時添加到內核的代碼,被稱為一個模塊。Linux內核提供了對許多模塊類型的支持,每個模塊由目標代碼組成[5]。

由于Linux中攝像頭驅動必須要有(Video For Linux,V4L)的支持,V4L是Linux中關于視頻設備的內核驅動,它為針對視頻設備的應用程序編程提供一系列接口函數,因此必須先加載V4L相關的videodev.ko模塊。USB設備也需要USB主控制器驅動,由于STi7109嵌入式系統提供了OHCI/EHCI的主控制器驅動模塊,因此不需要另外加載。

在gspca驅動程序文件夾內包含了自動化編譯的Makefile文件以及安裝加載模塊的腳本文件gspca_build,通過運行“./gspca_build”,即可完成對gspca驅動的安裝,也可以根據自己的需要對Makefile和gspca_build進行修改。

安裝USB攝像頭驅動并在機頂盒上插上USB攝像頭后,通過運行命令“lsmod|grep videodev”,看到videodev已經安裝,運行命令“ls/dev|grep video”,看到“/dev”文件夾下有了video和video0兩個文件,說明已經識別到了USB攝像頭設備。

4 搭建USB攝像頭視頻信號采集平臺

4.1 在Linux下安裝GTK+庫

GTK(GIMP Toolkit)是一套跨多種平臺的圖形工具包,目前已發展為一個功能強大、設計靈活的通用圖形庫,成為Linux下開發圖形界面應用程序的主流開發工具之一。由于GTK+簡單易用,擁有強大的功能和豐富的API,而且作為一個開放的自由軟件,在Linux下已經發展得比較成熟,因此在Linux系統下可以使用GTK+庫方便地對機頂盒的GUI進行開發。

由于Linux下各種源碼具有很復雜的依賴性,因此首先需清楚安裝GTK+所需要的條件。所需的源碼包包括:GNU make工具,GNU gettext軟件包(當系統上沒有gettext()函數的時候需要),GNU libiconv 庫(當系統上沒有 iconv()函數的時候需要),fontconfig 庫,FreeType 庫,libpng庫,jpegsrc庫,tiff庫,pkg-config工具,GLib 庫,ATK庫,Cairo庫,Pango庫和 GTK+庫。

其中很多源碼包在比較新的Linux版本系統都會自帶。筆者主要安裝了5個源碼包,即GLib,ATK,CAIRO,PANGO和GTK。上面5個源碼包由于其依賴性必須按從前到后的順序依次安裝。在Linux上進行源碼安裝很容易找不到需要的某個包或文件,編譯出錯。需要對Linux的系統原理有比較熟悉的認識,并且要仔細閱讀README,install等文件,了解安裝過程。

下面總結幾個關系到能否成功編譯的因素:1)默認情況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件。如果安裝了某些庫,沒有指定搜索路徑,編譯就會出錯。此時可在“./configure”命令時指定“--prefix=/usr”,這樣庫文件就安裝到了“/usr/lib”下,或是通過設置LD_LIBRARY_PATH 路徑,添加“/usr/local/lib”路徑,即沒有指定安裝路徑時的庫的安裝位置,或者保存在“/etc/ld.so.conf”文件中,因為“/etc/ld.so.conf”文件記錄了編譯時使用的動態鏈接庫的路徑。2)改動庫文件后一定要運行一下“ldconfig”命令,它的作用就是將“/etc/ld.so.conf”列出的路徑下的庫文件緩存到“/etc/ld.so.cache”以供使用。不然即使庫文件就在“/usr/lib”下,也是不會被使用的。3)設定正確的 PKG_CONFIG_PATH?!皃kg-config”是一個向configure程序提供軟件和庫的版本、路徑等系統信息的程序,這些信息只在編譯時使用。以GLib為例,如果將glib-2.x.x裝到了“/usr/local/”下,那么glib-2.0.pc就會在“/usr/local/lib/pkgconfig”下,需要將這個路徑添加到PKG_CONFIG_PATH下面,另外還需要將“lib/pkgconfig”目錄下不需要的glib-2.0.pc刪除掉,以確保configure找到正確的glib-2.0.pc,以免提示錯誤信息。

安裝時可以把指令統一為:./configure--prefix=/usr&&make&&make install。其中&&表示當前一條命令正常結束,后面的命令才會執行。這個辦法既節省時間,又可防止出錯。運行完之后可以運行命令“echo$?”,表示檢查上一條命令的退出狀態,返回0表示程序正常退出,返回非0表示錯誤退出。注意到上面說的幾個因素,每次安裝完后運行一次ldconfig,安裝過程中一般都會經過多次配置等改動。

4.2 應用GTK+庫采集并顯示視頻數據

安裝了GTK+庫之后,就可以利用GTK+庫提供的圖形界面的API進行應用程序開發。筆者參考了camorama及spaview等Linux上的USB攝像頭數據采集的應用程序。具體過程為在利用V4L提供的API獲取到USB攝像頭的視頻圖像數據后,再利用GTK+中的GDKPIXBUF庫中的API函數來顯示獲取到的圖像。GDKPIXBUF庫是專門用于圖像處理的,它支持多種圖像格式(如TIFF,JPEG,PNG,GIF等)和動畫。通過 GTK+的應用程序,在窗口中可查看到USB攝像頭的視頻圖像。

5 小結

介紹了STi7109芯片為主芯片的機頂盒硬件平臺及軟件系統,介紹了安裝配置USB攝像頭驅動,利用GTK+庫編寫應用程序,搭建USB攝像頭視頻數據采集平臺的整個過程。

本文主要在于過程方法的介紹,對于進一步功能的開發,如怎樣用GTK+庫來實現遙控器的控制等還有待進一步研究。主要創新點為使讀者對怎樣在Linux上進行機頂盒的開發有了更明確的認識,如對Linux上USB攝像頭驅動開發、特殊的源碼包聯系性以及編譯原理等都有了更深的理解。同時采用具有發展潛力的GTK+庫來編寫圖形界面應用程序使圖像采集過程更加人性化。該過程的方法也適用于其他嵌入式Linux的開發,具有很好的借鑒價值。

[1]王俊偉,吳俊海.Linux標準教程[M].北京:清華大學出版社,2006.

[2]胡宏平.基于數字電視機頂盒的嵌入式Linux操作系統的設計[J].電視技術,2005(8):52-54.

[3]AXELSON J.USB大全[M].陳逸,譯.北京:中國電力出版社,2001.

[4]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008.

[5]CORBET J,RUBINI A,KROAH H G.Linux設備驅動程序[M].3版.魏永明,耿岳,鐘書毅,譯.北京:中國電力出版社,2005.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 久久美女精品| 婷婷亚洲综合五月天在线| 香蕉视频国产精品人| 她的性爱视频| 六月婷婷精品视频在线观看| 日韩一级二级三级| 久久精品日日躁夜夜躁欧美| 自拍欧美亚洲| 国产精品香蕉在线| 免费观看无遮挡www的小视频| 婷婷综合亚洲| 欧美一区中文字幕| 97国产在线播放| 亚洲精品桃花岛av在线| yy6080理论大片一级久久| 四虎综合网| 欧美日韩国产在线人成app| 国产福利免费在线观看| 91色在线观看| 亚洲一区第一页| 日韩在线视频网站| 亚洲午夜片| 亚洲欧美日韩动漫| 伊人丁香五月天久久综合| 久久综合色视频| 国产正在播放| 久久久久青草大香线综合精品| 中文字幕天无码久久精品视频免费 | 久久精品国产电影| 国产精品七七在线播放| 婷婷丁香在线观看| 欧美日韩免费在线视频| 国产精品第5页| 日本尹人综合香蕉在线观看 | 91青青视频| 韩日午夜在线资源一区二区| 777国产精品永久免费观看| 久久婷婷人人澡人人爱91| 免费一级无码在线网站 | 亚洲大尺码专区影院| 国产大片喷水在线在线视频| 日本久久久久久免费网络| 九九热精品免费视频| 91免费精品国偷自产在线在线| 久久青青草原亚洲av无码| 国产精品欧美在线观看| 无码AV日韩一二三区| 青青操国产| 国产农村妇女精品一二区| 亚洲国产精品久久久久秋霞影院 | 亚洲日韩图片专区第1页| 亚洲一区二区三区麻豆| 久久精品人人做人人综合试看| 欧美精品伊人久久| 毛片a级毛片免费观看免下载| 五月天丁香婷婷综合久久| 毛片手机在线看| 国产精品亚洲一区二区三区z| 伊人福利视频| 久久一级电影| 91久久国产综合精品| 午夜啪啪网| 青青青亚洲精品国产| 园内精品自拍视频在线播放| 国产人在线成免费视频| 97精品伊人久久大香线蕉| 中文字幕亚洲精品2页| www.狠狠| 国产午夜一级毛片| 青青草原国产| 91免费在线看| 婷婷亚洲综合五月天在线| 国产麻豆另类AV| 色婷婷视频在线| 无码网站免费观看| 影音先锋丝袜制服| 亚洲精品第一页不卡| 日韩久久精品无码aV| 免费国产在线精品一区| 伊人大杳蕉中文无码| 欧美中文字幕第一页线路一| 久草热视频在线|