基于TMS320DM642的網(wǎng)絡攝像機的設計
3 軟件設計及實現(xiàn)
TI公司的DSP開發(fā)軟件包括集成開發(fā)環(huán)境(CCS)、實時操作系統(tǒng)(DSP/BIOS)、第三方算法庫標準(eXpressDSP).DSP/BIOS是一個用戶可裁剪的實時操作系統(tǒng),包含內存管理、線程管理、中斷、外設管理和任務調度等功能.另外,還需使用JPEG標準進行圖像壓縮,因為采用JPEG進行網(wǎng)絡傳輸時,如果出現(xiàn)網(wǎng)絡短暫阻塞,可將當前幀拋棄而不影響下一幀的圖像,所以能夠保證系統(tǒng)的實時性要求.在本系統(tǒng)中調用了TI提供的JPEG算法庫來完成JPEG壓縮.
3.1軟件流程結構
根據(jù)本系統(tǒng)的要求,整個軟件系統(tǒng)分為五個任務模塊,每個模塊完成穩(wěn)中有降自的功能.這五個任務模塊分別為輸入任務、處理任務、輸出任務、網(wǎng)絡任務以及控制任務,其流程如圖4所示.下面敘述任務間調度及分別完成的功能.
(1)輸入任務
該任務模塊主要完成將VP口采集到的數(shù)字圖像存入動態(tài)分配的內存空間中,圖像格式為YUV4:2:2(可根據(jù)需要進行設置),分辨率為720×480.然后對該圖像色度信號進行4:2:0重采樣,這樣做的目的是為了調用JPEG算法庫.完成以上兩步后,輸入任務模塊發(fā)出一個消息給處理任務模塊,告知圖像在內存空間的中位置,讓處理任務模塊去做進一步的處理.接著,輸入任務模塊等待處理任務模塊回復,收到回復消息后,繼續(xù)采集下一幀圖像.
(2)處理任務模塊
該任務模塊主要完成JPEG壓縮.處理任務模塊首先獲得一個從輸入任務模塊發(fā)出的消息,并且從中得到圖像數(shù)據(jù).接著進行JPEG壓縮,如前所述,壓縮調用了JPEG算法庫,其壓縮的速度和性能比較好.在處理任務模塊完成圖像壓縮后,發(fā)出三個消息:第一個發(fā)給輸入任務模塊,使其繼續(xù)采集下一幀圖像;第二個發(fā)給網(wǎng)絡任務模塊,把JPEG圖像在內存中的位置以及字節(jié)數(shù)告訴網(wǎng)絡任務模塊供其處理,同時,處理任務模塊將等待網(wǎng)絡任務模塊回復消息;最后一個消息發(fā)給輸出任務模塊,告知原始圖像在內存中的位置,讓輸出任務模塊把它輸出到LCD進行顯示.同樣,它也將等待輸出任務模塊回復消息.
(3)輸出任務模塊
該任務模塊完成將采集到的原始圖像輸出LCD進行顯示.由于采集到的是YUV圖像,而本系統(tǒng)的LCD使用RGB信號作為輸入,這需要經(jīng)過數(shù)字圖像格式轉換,該轉換交由CPLD完成.
(4)網(wǎng)絡任務模塊
該任務模塊完成網(wǎng)絡傳輸功能.分三部分實現(xiàn):第一部分先獲得一個從處理傷模塊發(fā)出的消息,從中得到JPEG圖像的大小和在內存中的位置,并通過UDP協(xié)議的Socket套接字將其發(fā)送給客戶.同時發(fā)出一個消息給處理任務模塊,告知已獲得JPEG圖像,可進行下一幀圖像的壓縮.第二部分進行協(xié)議棧的初始化,包括IP地址、子網(wǎng)掩碼和網(wǎng)關的設定.如果要連接Internet,必須設置DHCP,動態(tài)分配IP地址.除此以外,還要選擇哪種網(wǎng)絡服務,DM642支持Telnet、HTTP、Data server等服務,本系統(tǒng)使用HTTP服務.第三部分為加載網(wǎng)頁,在PC機上用HTML編寫網(wǎng)頁,在該網(wǎng)頁中內嵌一段JavaApplet小程序以實現(xiàn)本系統(tǒng)和客戶端的交互.HTML文件不能直接加載給DM642,必須在DOS環(huán)境下使用binsrc插件把它轉換成用C語言描述的數(shù)據(jù)數(shù)組.當用戶通過IE瀏覽器訪問本系統(tǒng)時,HTTP服務器通過嵌入式文件系統(tǒng)訪問內存中的HTML網(wǎng)頁(即訪問那個用C語言描述的數(shù)據(jù)數(shù)組),該文件系統(tǒng)是基于RAM的文件系統(tǒng),它駐留在OS.LIB中.同時,JavaApplet小程序隨同HTML文件下載到客戶端 并由IE瀏覽器解釋執(zhí)行.
(5)控制任務模塊
該任務模塊完成在HTML網(wǎng)頁上對JPEG壓縮性能的控制.在網(wǎng)頁中接收的用戶自定義參數(shù),通過DSP/BIOS中的郵箱機制傳北宜給處理任務模塊,從而修改JPEG的壓縮參數(shù),改變壓縮質量.圖5所示即為接收用戶修改參數(shù)的對話框,1表示壓縮質量最差,100表示壓縮質量最好.
這些任務的初始化在系統(tǒng)的main()函數(shù)里實現(xiàn).另外,對DM642芯片的初始化(包括初始化寄存器、二級緩存(L2)的設置等)均在dm642init()函數(shù)中完成,該函數(shù)定義在DSP/BIOS的用戶初始化函數(shù)列表中,在此不再贅述.
本文提出的基于TMS320DM642的網(wǎng)絡攝像機的設計方案已經(jīng)成功實現(xiàn).在客戶端打開IE瀏覽器,即可看到實時監(jiān)控的圖像,圖像顯示較流暢,在局域網(wǎng)內的圖像幀率可以達到30幀/秒.而且可以同時采集多路視頻信號,滿足多個客戶的連接請求.本系統(tǒng)滿足了目前寬帶環(huán)境中的網(wǎng)絡視頻會議以及視頻監(jiān)控的要求,其應用前景十分廣泛.
評論