基于Video4Linux的攝像頭驅(qū)動(dòng)設(shè)計(jì)
0 引言
隨著多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和后PC機(jī)時(shí)代的到來(lái),利用嵌人式系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控、可視電話和視頻會(huì)議等應(yīng)用已成為可能。為了實(shí)現(xiàn)這些應(yīng)用,實(shí)時(shí)獲得視頻數(shù)據(jù)是一個(gè)重要環(huán)節(jié)。針對(duì)這一點(diǎn)本文在嵌入式系統(tǒng)平臺(tái)上,基于Video4Linux(簡(jiǎn)稱V4L)技術(shù),實(shí)現(xiàn)了攝像頭驅(qū)動(dòng)開發(fā),詳細(xì)敘述了V4L技術(shù)和攝像頭在Blackfin536 DSP平臺(tái)上的Linux驅(qū)動(dòng)程序設(shè)計(jì)。
1 Video4Linux
V4L是Linux的影像串流系統(tǒng)與嵌入式影像系統(tǒng)的基礎(chǔ)。Linux在TV、多媒體上的應(yīng)用是目前相當(dāng)熱門的研究領(lǐng)域,而其中最關(guān)鍵的技術(shù)則是Linux的V4L。V4L是Linux kernel里支持影像設(shè)備的一組APIs,配合適當(dāng)?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/攝像頭">攝像頭與攝像頭驅(qū)動(dòng)程序,可以讓我們實(shí)現(xiàn)影像采集、AM/FM無(wú)線廣播、影像CODEC、頻道切換等功能;而目前最主要的則是應(yīng)用在影像串流系統(tǒng)與嵌入式影像系統(tǒng)里,其應(yīng)用范圍相當(dāng)廣泛,例如:遠(yuǎn)距離教學(xué)系統(tǒng)、遠(yuǎn)距離診斷系統(tǒng)、視頻會(huì)議等。
目前,V4L這套接口已發(fā)展為V4L 2,前者比后者簡(jiǎn)單,但存在兩個(gè)不足之處:驅(qū)動(dòng)程序設(shè)計(jì)時(shí)不能同時(shí)打開多個(gè)設(shè)備;現(xiàn)存的V4L API不能很好地支持帶編碼能力的設(shè)備。本文為便于研究攝像頭驅(qū)動(dòng)開發(fā),還是使用V4L。
V4L主要結(jié)構(gòu)體如下:
camera_open,camera_close是打開和關(guān)閉視頻采集設(shè)備;camera_read,是讀取視頻圖像;視頻驅(qū)動(dòng)主要的控制接口都是通過(guò) ioctl來(lái)實(shí)現(xiàn)的,如圖像的格式、亮度、色度等信息都是通過(guò)ioctl函數(shù)獲取和設(shè)置的。ioctl命令部分如下: |
關(guān)鍵詞:
設(shè)計(jì)
驅(qū)動(dòng)
攝像頭
Video4Linux
基于
相關(guān)推薦技術(shù)專區(qū)
|
評(píng)論