《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 多攝像頭視頻采集系統(tǒng)中攝像頭 切換方案的設(shè)計與實現(xiàn)
多攝像頭視頻采集系統(tǒng)中攝像頭 切換方案的設(shè)計與實現(xiàn)
陳 斌1,,2,,彭 宏1,,2
(1.浙江工業(yè)大學(xué) 信息工程學(xué)院,,浙江 杭州 310023,; 2.浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點實驗室,,浙江 杭州 310023)
摘要: 目前使用的圖像傳感器主要有CMOS和CCD兩類,。CMOS器件功耗低,、集成度高,,但成像質(zhì)量不如CCD器件好,。因此該多攝像頭視頻采集系統(tǒng)采用了CCD和CMOS兩種器件,以滿足多種需求,。提出了一種基于TI公司TMS320DM365處理芯片,、采用CCD和CMOS器件的攝像頭軟硬件切換設(shè)計方案。
Abstract:
Key words :

  摘  要: 目前使用的圖像傳感器主要有CMOS和CCD兩類,。CMOS器件功耗低,、集成度高,但成像質(zhì)量不如CCD器件好,。因此該多攝像頭視頻采集系統(tǒng)采用了CCD和CMOS兩種器件,,以滿足多種需求。提出了一種基于TI公司TMS320DM365處理芯片,、采用CCD和CMOS器件的攝像頭軟硬件切換設(shè)計方案,。

  關(guān)鍵詞: 視頻采集;TMS320DM365,;攝像頭切換

  0 引言

  近年來,,隨著移動終端的快速發(fā)展,計算能力增強,,移動網(wǎng)絡(luò)傳輸速度大幅提高,,移動視頻監(jiān)控技術(shù)發(fā)展迅速。目前國內(nèi)外視頻監(jiān)控業(yè)務(wù)主要應(yīng)用在公共領(lǐng)域,、行業(yè)用戶和個人用戶,。特別是在公共場所,國外設(shè)置了眾多監(jiān)控設(shè)備,,以加強對公共領(lǐng)域安全的控制能力[1],。嵌入式視頻采集系統(tǒng)具有高效、體積小,、實時穩(wěn)定,、低成本等優(yōu)點[2],,自然而然地成為了視頻監(jiān)控設(shè)備的良好載體。

  目前使用的圖像傳感器有CMOS(互補金屬氧化物半導(dǎo)體)和CCD(電荷耦合器件)兩類,。與CCD相比,CMOS器件具有功耗低,、集成度高等優(yōu)點,,但是在噪點和成像質(zhì)量方面不如CCD器件[3]。而CCD器件則剛好相反,。所以在本設(shè)計中,,采用了CCD與CMOS搭配的設(shè)計。其中CCD器件搭配TVP5151視頻解碼芯片,,外置的CCD攝像頭能夠提供更靈活,、更清晰的視頻圖像。CMOS則是采用了OV5640的模組,,利用其集成度高,、體積小的特點,作為內(nèi)置的視頻采集攝像頭,,滿足視頻聊天等一般成像需求,。

1 硬件框架設(shè)計

  整個視頻采集系統(tǒng)終端以TMS320DM365芯片作為處理器芯片,基本模塊有DDR2,、SDRAM,、NAND Flash、網(wǎng)口,、串口以及負(fù)責(zé)進(jìn)行信令和視頻數(shù)據(jù)傳輸?shù)?G模塊等,。TI公司的基于DaVinci技術(shù)的TMS320DM365芯片,集成了一顆ARM926EJ-S內(nèi)核,,一個圖像處理子系統(tǒng)(VPSS),,一個H.264高清編碼器協(xié)處理器HDVICP和一個MPEG-4/JPEG高清編碼器協(xié)處理器MJCP,支持多格式編解碼[4],,所以特別適用于圖像處理,。視頻采集部分主要由DM365的VPFE(視頻處理前端)、一個多路轉(zhuǎn)換器和兩個視頻數(shù)據(jù)采集芯片(OV5640和TVP5151)組成,。攝像頭硬件切換由DM365的GPIO口對多路轉(zhuǎn)換器進(jìn)行控制,,選擇輸入到VPFE的數(shù)據(jù)源。

  系統(tǒng)硬件框架設(shè)計圖如圖1所示,。

001.jpg

  DM365的VPFE采集驅(qū)動是一個V4L2設(shè)備驅(qū)動,,可以對RGB和YUV數(shù)據(jù)進(jìn)行采集。VPFE的簡單框架如圖2所示[5],。

002.jpg

  視頻采集前端在接收到原始的YUV視頻數(shù)據(jù)后,,可以對數(shù)據(jù)進(jìn)行存儲,,同時又將視頻數(shù)據(jù)通過內(nèi)部的數(shù)據(jù)總線傳輸?shù)綀D像處理模塊。此時可對圖像數(shù)據(jù)進(jìn)行裁剪,、縮放等,,以適應(yīng)本地存儲或者網(wǎng)絡(luò)上傳的需求。

  視頻采集前端在接收到原始的YUV視頻數(shù)據(jù)后,,可以對數(shù)據(jù)進(jìn)行存儲,,同時又將視頻數(shù)據(jù)通過內(nèi)部的數(shù)據(jù)總線傳輸?shù)綀D像處理模塊。此時可對圖像數(shù)據(jù)進(jìn)行裁剪,、縮放等,,以適應(yīng)本地存儲或者是網(wǎng)絡(luò)上傳的需求。

2 軟件設(shè)計

  2.1 VPFE模塊驅(qū)動

  TMS320DM365數(shù)字多媒體芯片包含一個視頻處理模塊用來處理視頻數(shù)據(jù),,減輕主處理器的負(fù)擔(dān),。它支持大多數(shù)主流的外置視頻采集設(shè)備。而與外置視頻采集設(shè)備直接相連的就是視頻處理前端子系統(tǒng)(VPFE),。

  VPFE采集驅(qū)動通過標(biāo)準(zhǔn)的V4L2接口將底層硬件的功能暴露給了上層應(yīng)用程序,,在應(yīng)用程序和設(shè)備驅(qū)動之間建立起了橋梁[6]。VPFE驅(qū)動初始化開始后,,首先通過imp_get_hw_if()函數(shù)和ccdc_get_hw_interface()函數(shù)綁定imp和CCDC的接口函數(shù)組,,隨后對CCDC模塊進(jìn)行初始化。初始化CCDC模塊之后,,驅(qū)動會分配需要的內(nèi)存用來存儲采集上來的視頻數(shù)據(jù),。最后,便是調(diào)用driver_register(&vpfe_driver)函數(shù)和platform_device_register(&_vpfe_device)函數(shù)注冊驅(qū)動和平臺設(shè)備,。系統(tǒng)啟動時,,檢測到其驅(qū)動和設(shè)備都存在后,就會調(diào)用vpfe_prob()函數(shù),,這個函數(shù)做的最重要的事情就是調(diào)用video_register_device()函數(shù)綁定了file_operations結(jié)構(gòu)體,,提供給應(yīng)用程序訪問內(nèi)核與設(shè)備驅(qū)動的接口。同時生成一個設(shè)備文件節(jié)點(/dev/Video0),,這樣,,應(yīng)用程序就能通過訪問/dev/Video0設(shè)備文件節(jié)點,配合Ioctl函數(shù)調(diào)用VPFE驅(qū)動中file_operations結(jié)構(gòu)體成員函數(shù)來進(jìn)行視頻的采集,。

003.jpg

  VPFE初始化流程圖如圖3所示,。在此設(shè)計中采用了兩種視頻采集芯片,分別為德州儀器的TVP5151和豪威科技的OV5640,。這兩種芯片的驅(qū)動程序中,,在完成標(biāo)準(zhǔn)的I2C設(shè)備注冊的工作后,都會調(diào)用vpif_register_decoder(&ov5640_dev[i])或是vpif_register_decoder(&TVP5151 _dev[i])函數(shù)將采集芯片的各種操作函數(shù)接口封裝成一個struct decoder_device結(jié)構(gòu)體注冊到前面提到的VPFE模塊中。這樣,,應(yīng)用程序就可以通過VPFE的設(shè)備文件節(jié)點(/dev/Video0)來調(diào)用VPFE的操作函數(shù),,進(jìn)而再間接地調(diào)用采集設(shè)備的操作函數(shù),完成視頻采集芯片的配置工作,,使得其能夠正常工作,。

  2.2 攝像頭軟切換

  此設(shè)計中使用了兩種視頻采集芯片TVP5151與OV5640,因此會有兩個decoder_device結(jié)構(gòu)體注冊到VPFE模塊中,。攝像頭的軟切換,,也就是對VPFE模塊中注冊的decodor_device結(jié)構(gòu)體進(jìn)行重新選擇,決定該調(diào)用哪個采集芯片,,并對CCDC模塊進(jìn)行相應(yīng)的配置。于此同時,,對多路選擇器也要進(jìn)行相應(yīng)的配置,,使其選擇正確的通路。攝像頭切換流程如圖4所示,。

004.jpg

  首先自然是通過3個GPIO口來配置多路選擇器選擇正確的通路,,使得DM365可以獲取到來自正確的采集芯片的視頻數(shù)據(jù)。VIDIOC_ENUMINPUT命令會通過VPFE模塊調(diào)用到注冊到VPFE模塊中的采集芯片驅(qū)動的操作函數(shù)enuminput,,從而依次檢索注冊到VPFE中的各個decoder_device結(jié)構(gòu)體中是否有需要的input_info,,并返回對應(yīng)的decoder_device的序號。所以只需要在調(diào)用VIDIOC_ENUMINPUT命令時傳入與所需要采集芯片驅(qū)動中相同的input類型,,便可以找到對應(yīng)的decoder_device,,從而切換到對應(yīng)的攝像頭。得到正確的decoder_device序號后,,即可用VIDIOC_S_INPUT命令,,調(diào)用到采集芯片驅(qū)動中的initialize函數(shù),完成其初始化,。

  切換到正確的視頻數(shù)據(jù)源以后,,還要對CCDC模塊進(jìn)行對應(yīng)的設(shè)置。這時需要調(diào)用命令VIDIOC_S_STD:ioctl(fd,,VIDIOC_S_STD,,&std),它會調(diào)用到視頻采集芯片驅(qū)動中的setstd函數(shù),,進(jìn)而對驅(qū)動中的struct v4l2_standard結(jié)構(gòu)體數(shù)組進(jìn)行便利,,找到其中數(shù)據(jù)成員ID與VIDIOC_S_STD命令傳入?yún)?shù)std相同的項,返回其name成員,,并將其作為ccdc_hw_if->setstd()函數(shù)的參數(shù)執(zhí)行,,便可以對CCDC模塊的分辨率、幀率等信息進(jìn)行設(shè)置,。例如,,當(dāng)檢索到的name值為“VGA-30”時,,CCDC模塊分辨率便會被設(shè)置成640×480,幀率為30 FPS,。

  2.3 掃描方式的切換

  此設(shè)計方案中用到的兩種視頻采集芯片的掃描方式是不同的,。TVP5151是隔行掃描,一幀分為奇偶兩場,,而OV5640是逐行掃描,。VPFE模塊對于這兩種掃描方式的處理方式是不同的,所以完成攝像頭的切換后,,還要把CCDC模塊掃描方式設(shè)定成與對應(yīng)的視頻采集芯片一致,。在VPFE驅(qū)動中,有一個標(biāo)志位frame_format就是用來表示掃描方式的,,frame_format為0時表示隔行掃描,,即使用TVP5151;為1時就表示逐行掃描,,即使用OV5640,。原本ccdc_hw_if->setstd()函數(shù)還可以對掃描方式進(jìn)行設(shè)定,但是由于本設(shè)計所使用的內(nèi)核版本的缺陷,,設(shè)定無法生效,,所以添加了一個小補丁:在內(nèi)核VOFE驅(qū)動中聲明了一個變量scanmode,,并使用EXP ORT_SYMBOL(scanmode)使之成為內(nèi)核全局變量,。然后分別在TVP5151和OV5640驅(qū)動的intialize函數(shù)中對其進(jìn)行賦值。TVP5151為隔行掃描,,故對其賦0,,OV5640則相反。這樣,,每次切換攝像頭后,,在初始化采集芯片的同時也會對CCDC的掃描方式進(jìn)行選擇。

3 測試結(jié)果

  測試在實驗室的單兵設(shè)備上進(jìn)行,。在后置的OV5640攝像頭模組和外置的TVP5151攝像頭模組之間進(jìn)行了切換,,外置攝像頭更清晰,也更靈活,。而內(nèi)置的則勝在方便,、小巧。設(shè)計達(dá)到了預(yù)期目標(biāo),。測試效果圖如圖5所示,。

005.jpg

4 結(jié)論

  嵌入式芯片技術(shù)的快速發(fā)展,使其在視頻監(jiān)控設(shè)備總的應(yīng)用越來越廣泛。同樣發(fā)展迅速的還有視頻采集芯片,。本文設(shè)計實現(xiàn)了基于TMS320DM365硬件平臺的多攝像頭軟硬件切換方案,,采用了CMOS和CCD兩種器件,實現(xiàn)了不同廠家型號,、不同掃描方式的視頻采集芯片模組之間的順暢切換,。這在視頻采集芯片發(fā)展越來越多樣化的今天,有一定的意義,。

  參考文獻(xiàn)

  [1] 苗潤生.3G移動視頻監(jiān)控業(yè)務(wù)的應(yīng)用與發(fā)展[D].北京:北京郵電大學(xué),,2010.

  [2] 李佳林,劉永春.基于S3C2440網(wǎng)絡(luò)視頻采集系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),,2014(6):1314-1316,, 1325.

  [3] 王旭東,葉玉堂.CMOS與CCD圖像傳感器的比較研究和發(fā)展趨勢[J].電子設(shè)計工程,,2010(11):178-181.

  [4] 徐凱,,錢燕,魏宗群,,等.基于TMS320DM365的3G實時視頻傳輸系統(tǒng)設(shè)計與實現(xiàn)[J].浙江農(nóng)業(yè)科學(xué),2012(7):1056-1059.

  [5] Texas Instruments. Davinci Linux VPFE Capture Driver [EB/OL]. [2015-07-15]. http://www.ti.com/lit/an/sprs566a/ sprs566a. pdf.2015.2.

  [6] 潘力策,,孟利民.基于DM365的雙碼流視頻監(jiān)控設(shè)備的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,,2015,34(10):41-43,,47.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。