項馨儀,陳 芬,徐升陽
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波315211)
隨著信息社會的發(fā)展,視頻圖像采集處理系統(tǒng)在遠(yuǎn)程控制、智慧城市、安防監(jiān)控等領(lǐng)域應(yīng)用越來越廣泛。實時視頻圖像信息的獲取對于系統(tǒng)分析數(shù)據(jù)至關(guān)重要,而且視頻圖像數(shù)據(jù)流量大,帶寬要求高。嵌入式實時處理系統(tǒng)具有實時性高、體積小、成本低、算法移植簡單等特點[1]。這類嵌入式實時圖像處理系統(tǒng)以DSP作為處理器的發(fā)展方向,而DSP因其特殊的數(shù)字信號處理能力(集成MAC、FFT等模塊)能夠有針對性地滿足視頻圖像處理的需求。
本文以DaVinci系列的視頻圖像處理器TMS320DM6437作為該軟件平臺的硬件支撐,采用TI自帶實時操作系統(tǒng)DSP/BIOS,通過對多任務(wù)劃分、調(diào)度,設(shè)計上下位機(jī),將圖像信息實時傳到PC,通過PC端控制DSP平臺來構(gòu)建圖像采集處理平臺,最終移植常見圖像處理算法對整個系統(tǒng)進(jìn)行功能測試與結(jié)果分析。
本文所設(shè)計的實時視頻圖像采集處理平臺主要在CCD攝像頭、DEC6437開發(fā)板、仿真器、顯示器、USB轉(zhuǎn)串口線和PC等搭建的硬件平臺上,仿真器硬件設(shè)備是SEED-XDS510PLUS,由于此平臺的RTOS調(diào)試,算法移植都是在集成開發(fā)軟件CCS 3.3下設(shè)計完成的,CCS需要在PC中運行,并且調(diào)試UART時,需要在PC上觀察上位機(jī)軟件接收和發(fā)送狀態(tài)[2]。
TMS320DM6437是TI公司的一款DaVinci系列處理器,是專為各種視頻圖像處理應(yīng)用而開發(fā)的獨立模塊,能夠支持高解析度的視頻編碼,同時其性價比很高。
在圖像采集處理系統(tǒng)的設(shè)計過程中采用了TI開發(fā)在CCS中集成的實時操作系統(tǒng)DSP/BIOS。
BIOS是一個可擴(kuò)充、可裁剪的RTOS,主要可以分成分片實時內(nèi)核、實時評測工具(RTDX)和芯片自帶庫(CSL)三部分。DSP/BIOS內(nèi)包括常見嵌入式通用庫和API。DSP/BIOS即時庫包括搶占式多線程調(diào)度、任務(wù)通信及同步、中斷優(yōu)先級配置、I/O服務(wù)和存儲器內(nèi)存管理。DSP/BIOS根據(jù)功能可分為4個主要模塊,DSP/BIOS確保硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)和后臺線程(IDL)4種線程運行在線程間,允許通信和同步,并且使能高優(yōu)先級線程搶占低優(yōu)先級線程[3]。
本文采用雙DSP芯片,其中TMS320C5402為控制器,TMS320DM6437為算法處理器,以CCS 3.3為軟件開發(fā)背景,完成了基于DSP/BIOS的圖像采集處理平臺的軟件設(shè)計。TMS320C5402作為控制器,主要負(fù)責(zé)人機(jī)交互界面的控制,它與TMS320DM6437通過多通道緩沖串口通信,控制器主要對鍵盤數(shù)據(jù)的讀入和LCD數(shù)據(jù)的輸出。同時系統(tǒng)還添加了遠(yuǎn)程控制模塊,通過PC發(fā)送控制指令調(diào)度DM6437處理器,能夠完成切換算法,調(diào)停當(dāng)前狀態(tài)等功能,系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
視頻圖像采集處理軟件平臺對任務(wù)復(fù)雜、時序要求苛刻,采用基于DSP/BIOS的實時調(diào)度內(nèi)核事先配置線程優(yōu)先級以及線程觸發(fā)、掛起、阻塞等相應(yīng)條件,軟件流程如圖2所示。DSP/BIOS內(nèi)核調(diào)度是整個系統(tǒng)的核心。BIOS首先需要初始化DSP,硬件上電復(fù)位LOAD程序入口地址,然后需要調(diào)用BIOS_Init對BIOS初始化,仍然要在main()函數(shù)中對片內(nèi)外設(shè)等常見DSP配置初始化,這時不能對SWI、TSK等線程操作,因為還沒啟動BIOS,仍沒有起用調(diào)度組件,調(diào)用BIOS_start完成對BIOS的啟動就可進(jìn)入IDL_loop空閑循環(huán),等待HWI、SWI、TSK等線程的就緒[4]。
圖2 軟件流程圖
本系統(tǒng)硬件中斷(HWI)有兩個∶一是DM6437和C5402通信過程所用的McBSP,鍵盤數(shù)據(jù)讀入時觸發(fā)中斷;另一個是UART中斷,PC上位機(jī)有控制指令發(fā)送時就會觸發(fā)UART中斷,進(jìn)入UART中斷服務(wù)程序?qū)⒕途wUART接收數(shù)據(jù)軟中斷,第一個中斷服務(wù)程序中和第二個中斷觸發(fā)的軟中斷中都將就緒TSK1,讀取控制指令,選定算法模式,記錄最終選擇的狀態(tài),并對Mail_box賦新值。因為多個算法任務(wù)都處于掛起狀態(tài),一旦mail_box對應(yīng)自身之前的Pend值,對應(yīng)的算法任務(wù)將會立即就緒,如果當(dāng)前線程的優(yōu)先級都小于對應(yīng)算法優(yōu)先級,算法線程將會立即執(zhí)行。
視頻圖像處理算法完成后,還可以實現(xiàn)對圖像的濾波、LCD顯示關(guān)鍵信息。線程處理完成后視頻圖像輸出任務(wù)就緒,還原視頻信號,回放處理后的視頻[5]。
為了測試基于DSP/BIOS的多任務(wù)視頻圖像處理平臺,移植幾種算法來驗證處理效果。軟件平臺上常見算法的移植有圖像增強(qiáng)算法移植、圖像閾值算法移植、邊沿檢測算法移植和圖像濾波算法移植等。
如圖2所示,圖像增強(qiáng)算法移植包括任務(wù)2執(zhí)行的單直方圖算法移植和任務(wù)3執(zhí)行的雙直方圖算法移植。任務(wù)3在任務(wù)2的基礎(chǔ)上增添了對整幅圖像提取最佳閾值提取(OTSU),以此閾值將原圖像劃分為兩個子圖,分別均衡[6]。
邊沿檢測算法移植使用任務(wù)5的圖像邊沿檢測算法。相對于其他任務(wù),圖像的邊沿檢測任務(wù)為獨立任務(wù),可用來檢測任務(wù)之間的切換實時性。
圖像濾波算法移植采用了任務(wù)7的滑動平均濾波算法。任務(wù)7作為非必需任務(wù),可根據(jù)按鍵選擇是否添加在任務(wù)1~任務(wù)6后。
PC與TMS320DM6437串口通信采用波特率為19.2 kHz,傳輸數(shù)據(jù)格式為1 bit停止位,8 bit數(shù)據(jù)位,無校驗位。在PC接收數(shù)據(jù)時,接收200個8 bit數(shù)據(jù),均與TMS320DM6437內(nèi)存中存儲的數(shù)據(jù)相同,可見傳輸過程誤碼率極低。如果PC發(fā)送數(shù)據(jù),TMS320DM6437接收成功,LCD會相應(yīng)顯示,同時處理器切換不同算法。LCD顯示串口接收成功界面顯示如圖3所示,上位機(jī)界面如圖4所示。
圖3 LCD顯示串口接收成功圖
圖4 上位機(jī)界面
本系統(tǒng)中多線程最高優(yōu)先級為UART接收和M cBSP中斷,其次為軟中斷UART數(shù)據(jù)讀入和UART發(fā)送,最后為任務(wù),任務(wù)中劃分為多個算法的任務(wù),其相互間通過按鍵或PC指令切換,其線程間根據(jù)Mail_box(n)通信,其同步是根據(jù)SEM(m),在DSP/BIOS調(diào)試界面可見多線程間切換示意圖,如圖5所示,可見程序運行正常。
圖5 多線程切換示意圖
本視頻圖像采集處理平臺軟件上移植了多種視頻圖像處理算法,以下將演示每一個圖像處理算法在本系統(tǒng)平臺所表現(xiàn)的效果,如圖6~圖8所示。
圖6(a)中最左邊的一幅圖像為原始圖像,中間及右邊中的圖像為經(jīng)過單直方圖處理后的結(jié)果,中間和右邊的圖像區(qū)別為均衡系數(shù)不同,可見經(jīng)過單直方圖增強(qiáng)后前景和背景區(qū)別明顯增強(qiáng)。圖6(b)中左邊的一幅圖像為原始圖像,中間及右邊的圖像為經(jīng)過雙直方圖處理的結(jié)果,中間和右邊的圖像區(qū)別為雙直方圖中的均衡系數(shù)不同。可見,經(jīng)過雙直方圖增強(qiáng)后,不僅前景和背景區(qū)別明顯增強(qiáng),而且保持原背景亮度信息。
圖6 直方圖處理結(jié)果圖
圖7 最大類間閾值處理結(jié)果
圖8 拉普拉斯邊沿檢測結(jié)果
圖7(a)中圖像信息依次分別為原始圖像、二值化后圖像。系統(tǒng)采用最佳閾值提取算法,提取合適閾值。由圖可見,二值化后的圖像有噪點,由于閾值上下有波動或光線原因,因此采用3×3滑動平均濾波,對局部噪聲濾除,圖7(b)即為濾波后的圖像,可見噪點明顯降低,圖像連續(xù)性較好。
如圖8所示,本系統(tǒng)對邊沿檢測算法處理時采用對整幀圖像處理,圖8(a)為原始圖像,圖8(b)為拉普拉斯邊沿檢測結(jié)果,可見系統(tǒng)已經(jīng)檢測到圖像的邊沿。
該軟件平臺實時性相對高,在視頻圖像播放處理數(shù)據(jù)時不會出現(xiàn)明顯的延時和卡頓;在用鍵盤或PC發(fā)送控制指令切換算法時同步效果很好,無可視延時。多任務(wù)的調(diào)度和同步不容易出現(xiàn)死循環(huán),當(dāng)改變調(diào)度次序時也能夠繼續(xù)正常工作。人機(jī)交互界面LCD顯示能夠隨著平臺狀態(tài)變化及時顯示提醒。TMS320DM6437通過UART向PC發(fā)送數(shù)據(jù)時誤碼率低。平臺上處理的常見圖像處理算法均能夠獲得良好的效果,可見該視頻圖像采集處理平臺軟件性能總體上優(yōu)異。
[1]王俊.基于嵌入式系統(tǒng)的圖像處理軟件平臺的實現(xiàn)[J].儀表技術(shù),2006(2)∶10-22.
[2]李彬.基于DSP/BIOS的RTDX實時信號處理系統(tǒng)的實現(xiàn)[J].科技信息前沿報,2009,33(2)∶33-41.
[3]劉家兵.基于DSP/BIOS的圖像采集處理平臺軟件設(shè)計研究[D].哈爾濱:哈爾濱工程大學(xué),2008.
[4]張葉.基于TMS320C6x系列DSP/BIOS平臺的實時電視跟蹤系統(tǒng)設(shè)計[J].電子器件,2007,30(1)∶300-302.
[5]祝佳磊.基于Linux平臺的圖像采集系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2012,33(6)∶2334-2337.
[6]周杰.DSP/BIOS實時多任務(wù)操作系統(tǒng)內(nèi)核的研究[J].科技傳播,2010(12)∶208-220.