摘 要: 設(shè)計了一種基于TMS320DM6437的數(shù)字視頻采集系統(tǒng),以適應(yīng)現(xiàn)代采集系統(tǒng)高性能、快速性以及數(shù)字化的需要。該設(shè)計方法分為CCD傳感器、達(dá)芬奇系列DSP上集成的視頻處理子系統(tǒng)組件(VPSS)和顯示器3部分,不需要外接編解碼芯片,直接連接數(shù)字?jǐn)z像頭(CCD)。實驗結(jié)果表明,該視頻采集系統(tǒng)采集的圖像色彩均勻,畫面清晰,采集速度快,具有良好的擴展性。
關(guān)鍵詞: 數(shù)字?jǐn)z像機;VPSS;VPFE;VPBE;TMS320DM6437
視頻技術(shù)在日常生活中的地位顯得越來越重要。視頻圖像不清晰、噪聲污染、分辨率低等原因?qū)е乱曨l質(zhì)量低。針對這個問題,提出了用CCD傳感器獲取外部的圖像,因為CCD傳感器在靈敏度、分辨率、噪聲控制等方面都優(yōu)于CMOS傳感器,可以獲取高質(zhì)量的圖像產(chǎn)品。選用TMS320DM6437作為處理器,它是一款高性能的多媒體處理器,有利于在交通、生活小區(qū)、金融、工廠、校園等領(lǐng)域發(fā)揮更好的作用。
1 系統(tǒng)組成及其原理
系統(tǒng)由CCD傳感器模塊、處理器和顯示器模塊組成,系統(tǒng)的整體框圖如圖1所示。TMS320DM6437處理器是TI公司專為低成本、高性能視頻應(yīng)用開發(fā)的32位定點DSP達(dá)芬奇技術(shù)處理器。該器件采用TI第2代超長指令字(VLIW)結(jié)構(gòu)的TMS320C64X+DSP內(nèi)核,主頻可達(dá)700 MHz,支持8個8位或4個16位并行MAC(Multiply-Accumulates)運算,峰值處理能力高達(dá)5 600 MIPS。針對視頻應(yīng)用,TMS320DM6437還提供了強大的視頻處理子系統(tǒng)VPSS(Video Processing Sub Systern),其包括一個視頻處理前端VPFE(Video Processing Front End)和一個視頻處理后端VPBE(Video Processing Back End),在控制方面提高了其配置和使用的簡易性。這一子系統(tǒng)提供的各種接口為視頻的采集和顯示處理提供了極大的便利。
CCD傳感器實時采集視頻圖像并將之轉(zhuǎn)換成模擬視頻信號,通過視頻電纜把模擬視頻信號送給TVP5146視頻A/D轉(zhuǎn)換芯片轉(zhuǎn)成數(shù)字視頻信號,通過TMS320DM6437的硬件連線傳送輸入VPFE,應(yīng)用程序接收到一幅完整的視頻幀后,將它傳送給VPBE,VPBE將此數(shù)字視頻信號編碼輸出,通過TMS320DM6437系統(tǒng)的視頻輸出接口電路將此視頻信號轉(zhuǎn)換成模擬信號輸出,通過視頻電纜,信號最終傳送顯示器進(jìn)行顯示。
2 視頻處理子系統(tǒng)硬件結(jié)構(gòu)
VPFE用于輸入數(shù)字視頻數(shù)據(jù),為多種標(biāo)準(zhǔn)的數(shù)字視頻輸入提供接口,并為輸入的數(shù)字視頻數(shù)據(jù)作必要的預(yù)處理;VPBE用于輸出視頻數(shù)據(jù),以驅(qū)動顯示器顯示視頻圖像。VPFE和VPBE統(tǒng)稱為視頻處理子系統(tǒng),結(jié)構(gòu)如圖2所示。
2.1 VPFE
VPFE提供了一個豐富和強大的視頻輸入接口,系統(tǒng)包括CCD控制(CCDC)、預(yù)覽器、縮放器、H3A和直方圖模塊。
2.1.1 CCD控制器
CCDC接收從傳感器傳送來的原始圖像/視頻數(shù)據(jù)或從視頻解碼器設(shè)備接收各種格式的YUV數(shù)據(jù),為圖像傳感器和數(shù)字視頻提供了一個接口。CCD控制器的輸出需要另外處理,這種處理在預(yù)覽器或圖像處理的軟件算法中實現(xiàn),才能把原始圖像轉(zhuǎn)化成最終處理的圖像。同時,原始數(shù)據(jù)輸入到CCD控制器,可以用于計算各種統(tǒng)計數(shù)據(jù)(H3A和直方圖)以控制圖像/視頻的調(diào)節(jié)參數(shù)。
2.1.2 預(yù)覽器
預(yù)覽器是一個圖像處理模塊,用來配置各種傳感器類型、圖像質(zhì)量和視頻幀速率。預(yù)覽器把從傳感器(CMOS或CCD)傳送來的未經(jīng)處理的圖像/視頻轉(zhuǎn)換為YCbCr4:2:2數(shù)據(jù)。預(yù)覽器的輸出用于視頻壓縮和外部顯示,如一個NTSC/PAL模擬編碼器或者一個數(shù)字液晶顯示器。
2.1.3 縮放器
縮放器用來實現(xiàn)圖像和視頻的縮放,縮放范圍為1/4~4倍,它可以接收來自預(yù)覽器和DDR2的圖像/視頻。
2.1.4 H3A
H3A為自動對焦(Auto Focus)、自動白平衡(Auto WhiteBlance)和自動曝光(Auto Exposure)的控制環(huán)路。它包含兩個主要模塊:自動對焦(AF)引擎裝置和自動曝光(AE)與自動白平衡(AWB)引擎裝置。
2.1.5 直方圖
直方圖模塊處理彩色像素獲取統(tǒng)計信息,提供給H3A模塊實現(xiàn)各種3A算法,以平滑最終的輸出圖像/視頻。
2.2 VPBE
VPBE用于實現(xiàn)視頻圖像的輸出顯示,它包括OSD模塊、VENC模塊。
2.2.1 OSD模塊
OSD的主要功能就是把視頻數(shù)據(jù)和位圖數(shù)據(jù)混合集成給視頻解碼器以YCbCr格式輸出到VENC中,視頻和顯示數(shù)據(jù)從外部存儲器讀入,一般為DDR2。OSD通過控制器和參數(shù)寄存器編程實現(xiàn)其功能。
2.2.2 VENC模塊
VENC包含數(shù)字LCD(DLCD)和模擬(DAC等)接口。視頻編碼器產(chǎn)生模擬的視頻輸出。DLCD控制器產(chǎn)生數(shù)字的RGB/YCbCr數(shù)據(jù)輸出和時鐘信號。
3 視頻處理子系統(tǒng)程序設(shè)計
如圖3所示,一個CCD傳感器與TVP5146解碼器連接在一起,把模擬復(fù)合信號變成數(shù)字YUV4:2:2數(shù)據(jù)。該數(shù)據(jù)通過8位數(shù)據(jù)總線被送到TMS320DM6437處理器。在解碼器與TMS320DM6437之間有一個I2C總線,使TMS320DM6437充當(dāng)主配置TVP5416。
使用VPFE驅(qū)動程序配置TVP5146解碼器和捕獲視頻輸入數(shù)據(jù)且在顯示器上顯示出捕獲數(shù)據(jù)。CCD傳感器輸出的數(shù)據(jù)是NTSC D1分辨率,而在VPFE,CCD控制器模塊已足夠靈活來獲取任何不大于D1的幀??梢酝ㄟ^以下步驟配置VPFE驅(qū)動來獲取并顯示數(shù)據(jù):
?。?)通過調(diào)用FVID_create()和傳遞參數(shù)ccdcParams()來創(chuàng)建ccdcHandle作為CCDC的通道。在傳遞函數(shù)ccdcParams(),數(shù)據(jù)流(dateflow)被設(shè)置為PSP_VPFE_CCDC_ YCBCR_8,ffMode設(shè)置為PSP_VPSS_FRAME_MODE,高度和寬度設(shè)置為480和720,這樣CCDC模塊就能配置來捕獲交錯NTSC D1幀。在傳遞函數(shù)ccdcParams()中,有3個函數(shù)與TVP5146解碼器有關(guān),分別為:
?、貾SP_VPFE_TVP5146_Open()被調(diào)用:當(dāng)CCDC通道被創(chuàng)建并初始化I2C總線;
②PSP_VPFE_TVP5146_Close()被調(diào)用:當(dāng)CCDC通道被刪除并重新初始化I2C總線;
?、跴SP_VPFE_TVP5146_Control()被調(diào)用:當(dāng)一個特定的控制命令來配置TVP5416。
?。?)通過調(diào)用FVID_control()和傳遞參數(shù)TVP5146Params()來配置TVP5146。在自動模式下,TVP5146譯碼器配置為捕獲復(fù)合信號,因為在默認(rèn)情況下大多數(shù)TVP5146的配置參數(shù)設(shè)置為最佳的典型用法。
?。?)通過調(diào)用FVID_alloc()為CCDC模塊分配一些幀緩沖。隊列緩沖區(qū)到驅(qū)動程序通過調(diào)用FVID_queue()。
(4)在VPBE中,創(chuàng)建vid0Handle作為VIDWIN0通道。通過調(diào)用FVID_creat()和傳遞參數(shù)vid0Params()來配置VIDWIN0顯示YUV4:2:2捕獲的數(shù)據(jù)格式和NTSC D1分辨率。
?。?)通過調(diào)用FVID_alloc()為VIDWIN0模塊分配一些幀緩沖。隊列緩沖區(qū)到驅(qū)動程序通過調(diào)用FVID_queue()。
(6)在VPBE中創(chuàng)建vencHandle作為VENC通道,通過調(diào)用FVID_creat()和傳遞參數(shù)vencParams()來配置VENC模塊顯示復(fù)合信號。
?。?)按指定的次數(shù)開始循環(huán),獲取并顯示輸入的視頻信號:
①調(diào)用FVID_exchange()得到一個捕獲視頻幀并傳遞一個空的幀緩沖到CCDC通道。當(dāng)CCDC模塊已經(jīng)捕獲了一個新的幀后,函數(shù)返回;
?、谡{(diào)用FVID_exchange()傳輸已捕獲數(shù)據(jù)的幀緩沖到VIDWIN0和接收一個新的幀緩沖被顯示之后,函數(shù)返回;
?。?)一旦程序退出循環(huán),釋放所有通道和幀緩沖區(qū):
?、僬{(diào)用FVID_free()釋放VIDWIN0幀緩沖,調(diào)用FVID_delete()釋放VIDWIN0通道;
②調(diào)用FVID_free()釋放CCDC幀緩沖,調(diào)用FVID_delete()釋放CCDC通道;
?、壅{(diào)用FVID_delete()釋放VENC通道。
4 結(jié)果測試
使用復(fù)合電纜把顯示器、CCD傳感器與TMS320DM6437相連,啟動板上電源,啟動CCS,打開項目文件(.jpt);通過點擊CCS菜單File→Load Program,加載文件;點擊CCS菜單Debug→Reset CPU,然后點擊CCS菜單Debug→Restart,最后選擇F5鍵運行程序,捕獲的視頻在顯示器上顯示出來,如圖4所示。
在視頻采集系統(tǒng)中將攝像頭的分辨率設(shè)置為720×480,圖像傳感器輸出的原始圖像信號送入視頻解碼器TVP5146進(jìn)行視頻解碼,然后輸出進(jìn)入TMS320DM6437處理器組成的DSP系統(tǒng),在DSP系統(tǒng)中主要進(jìn)行必要的圖像預(yù)處理以獲得良好的圖像質(zhì)量。采集到的視頻圖像色彩均衡、畫面清晰,圖像采集速度快且具有良好的擴展性。當(dāng)需要對視頻進(jìn)行處理(如灰度變換、黑白圖像變換等)時,進(jìn)一步為圖像的提取和識別作好準(zhǔn)備,只需要添加相應(yīng)的程序即可,無需改變硬件,降低了開發(fā)成本。
參考文獻(xiàn)
[1] Texas Instruments Incorporated.SPRU977D.TMS320DM643x DMP Video Processing Front End (VPFE)User′s Guide[S].2010.
[2] Texas Instruments Incorporated.SPRU952A .TMS320DM643x DMP Video Processing Back End (VPBE) User′s Guide[S].2007.
[3] Texas Instruments Incorporated.SPRU983A.TMS320DM643x DMP Peripherals Overview Refe- rence Guide[S].2007.
[4] BAYER B E. Color imaging array:US.3971065[P]. 1976:56-60.
[5] 米本和也.CCD/COMS圖像傳感器基礎(chǔ)與應(yīng)用[M].北京:科學(xué)出版社,2006.
[6] 張德剛,陳文藝,陳瑞.基于DM6437的數(shù)字?jǐn)z影機[J].電子設(shè)計工程,2011,19(8):130.