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

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

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

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

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

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

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