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

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

  關鍵詞: 視頻采集,;TMS320DM365,;攝像頭切換

  0 引言

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

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

1 硬件框架設計

  整個視頻采集系統(tǒng)終端以TMS320DM365芯片作為處理器芯片,,基本模塊有DDR2,、SDRAM、NAND Flash,、網(wǎng)口,、串口以及負責進行信令和視頻數(shù)據(jù)傳輸?shù)?G模塊等。TI公司的基于DaVinci技術的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)換器進行控制,選擇輸入到VPFE的數(shù)據(jù)源,。

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

001.jpg

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

002.jpg

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

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

2 軟件設計

  2.1 VPFE模塊驅(qū)動

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

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

003.jpg

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

  2.2 攝像頭軟切換

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

004.jpg

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

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

  2.3 掃描方式的切換

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

3 測試結果

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

005.jpg

4 結論

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

  參考文獻

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

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

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

  [4] 徐凱,錢燕,,魏宗群,,等.基于TMS320DM365的3G實時視頻傳輸系統(tǒng)設計與實現(xiàn)[J].浙江農(nóng)業(yè)科學,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)控設備的設計與實現(xiàn)[J].微型機與應用,,2015,34(10):41-43,,47.


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