基于DM368的視頻捕獲與編解碼系統設計
計的結構圖如圖5所示。

在本次視頻編解碼軟件設計中,DM368自帶了MPEG4和H.264視頻編解碼算法。在安裝好的開(kāi)發(fā)環(huán)境中,進(jìn)入算法庫文件夾,查找MPEG4視頻壓縮算法與解壓算法。圖中顯示的庫文件提供的是可以直接被APP端使用的,下一步就是編寫(xiě)相應的應用程序。

設計視頻處理應用程序,主要需要編寫(xiě)Capture、encodedecode和display3個(gè)部分的代碼。在Capture中主要使用前綴為 “Capture_”的函數,這些函數直接使用了V4L2的相應函數接口,從而幫助軟件從底層獲取與視頻處理相關(guān)的數據。其主要執行流程如圖所示。

在視頻編解碼軟件部分中,主要使用了DM368自帶的視頻編解碼算法,在編程之前需要首先配置encodedecode.cfg文件。配置參數如下:

配置完成后,在應用程序中便可以創(chuàng )建編碼算法句柄調用算法庫。編碼與解碼都需要首先打開(kāi)engine,然后創(chuàng )建算法句柄,接著(zhù)操作算法控制函數與算法處理函數。最后執行完畢刪除編碼算法句柄,并關(guān)閉engine。以編碼為例,流程圖如圖所示。

在Linux下實(shí)現視頻輸出程序display,是通過(guò)操作framebuffer實(shí)現的。該幀緩存提供了個(gè)多種操作方法。開(kāi)發(fā)者想要在顯示屏中顯示視頻其實(shí)就是將解壓后的視頻數據寫(xiě)入framebuffer中來(lái)完成的。至此視頻處理應用程序編寫(xiě)完畢。
4 系統測試
在Linux開(kāi)發(fā)環(huán)境中打開(kāi)終端,更改路徑進(jìn)入源代碼文件夾:cd/dvsdk_2_10_01_18/drsdk_demos_2_10_00_17/dm365/encodedecode。輸入 make,Makefile文件會(huì )自動(dòng)編譯整個(gè)工程。將編譯好的整個(gè)文件夾復制到nfs共享路徑下。使用串口與網(wǎng)線(xiàn),將電路板與開(kāi)發(fā)主機相連。最后連接顯示器與模擬視頻輸出端口。上電之后更改當前路徑到測試目錄,首先加載該視頻測試程序所需的驅動(dòng)模塊:./loadmodules_sd.sh。加載完成后打開(kāi)運行測試程序./video可以看到編解碼視頻的輸出情況,移動(dòng)攝像頭可以看到視頻有明顯延時(shí)。顯示情況如圖所示。

5 結論
經(jīng)實(shí)驗表明,該系統可以對攝像頭采集到的模擬視頻信號進(jìn)行采樣量化,并實(shí)現對原始視頻數據MPEG4編解碼的功能,最終將視頻數據穩定輸出到顯示屏上。本次設計達到了預期的目標。DM368芯片功能比較全面,硬件設計相對更簡(jiǎn)便,又擁有豐富的軟件資源和算法庫支持,可以大大縮減相關(guān)視頻處理項目的開(kāi)發(fā)周期,并同時(shí)在很大程度上增強系統可靠性。該設計除此之外該系統還支持H.264編解碼,可以通過(guò)網(wǎng)絡(luò )接口和Linux運行平臺進(jìn)行網(wǎng)絡(luò )傳輸。整個(gè)平臺功能豐富可擴展性高,為其他視頻處理設計提供了參考。
評論