費重程
(廣州颯特紅外股份有限公司,廣東廣州,510730)
TMS320DM6446(簡稱DM6446)視頻處理芯片主要包括ARM926EJ-S處理器、MS320C64x+DSP內核、視頻處理系統(VPSS)和外圍設備。該芯片具有性能高和低功耗低等優勢[1];由于芯片內部帶有DSP核,因此為實現視頻編碼器的提供了條件。
在視頻系統應用中,DM6446的ARM端采用Linux系統,該端負責應用程序加載和I/O端口處理;DSP端采用DSP/BIOS系統,該端負責視頻信號的編解碼算法處理;同時DSP端的功能相當于ARM端的“遠程服務器”。對于運行在DSP端的算法(符合xDM標準),只需要通過調用Codec Engine提供的VISA API接口與DSP/BIOS鏈接模塊,然后將數據傳送到共享內存DDR2中,實現ARM端與DSP端的內部間通信。TI公司的軟件參考架構[2]包括應用層(APL)、信號處理層(SPL)和輸入輸出層(I/O)。
本系統的視頻解碼芯片采用TI公司的TVP5146,輸入的PAL制復合視頻信號經過TVP5146視頻解碼芯片[3]轉換成8bit YUV4:2:2格式的數字視頻信號,該信號對接DM6446的視頻前端(VPFE),經過視頻前端(VPFE)的預處理操作,應用程序再通過函數mmap()獲得視頻數據的緩存地址。通過 V4L2 API獲取視頻數據的采集如圖1所示。
(1)開啟視頻捕捉設備,開啟成功,則獲取相應的文件描述符,如果開啟失敗,則返回錯誤信息;選擇視頻的輸入,然后通過VIDIOC_QUERYCAP獲取視頻設備的性能參數,對設備是否具有采集的能力進行查詢,將結果存放于V4L2的結構體中。
(2)通過VIDIOC_S_FMT設置當前驅動的視頻捕獲格式,如視頻輸入制式、圖像的寬度和高度等,本系統設為PAL制式,分辨率為720x576。
(3)通過VDIOC_REQBUFS在采集設備上分配存儲區,利用函數mmap()將內核的地址空間映射到用戶的地址空間,從而獲取數據;然后利用V4L2中的緩沖隊列實現多緩沖輪流采集,例如采用兩個緩存,當緩存1捕捉數據時,緩存2傳輸數據;當緩存2捕捉數據時,緩存1傳輸數據,采用這種乒乓操作可以提高效率。

圖1 V4L2視頻采集流程圖
(4)采集完成后可通過調用VIDIOC_STREAMOFF停止視頻采集,使用函數close()關閉視頻設備,同時釋放掉前面分配的內存空間,可以通過函數munmap()釋放。
在達芬奇平臺上,GPP+DSP結構是一種典型的異構式分布體系,GPP采用Linux操作系統,DSP采用TI的DSP/BIOS實時操作系統,通過Codec框架實現雙核架構各盡其職且良好通信,DSP處理器與ARM之間通過共享的DDR內存作為通信信道。Codec框架包括Codec server和Codec Engine兩部分。本文直接利用Codec Engine調用TI提供的H.264算法包,將采集的視頻數據使用Codec Engine進行編碼,實現H.264視頻編碼[4-7]。編碼線程流程圖如圖2所示。

圖2 編碼線程流程圖
本文利用達芬奇TMS320 DM6446的優勢,通過Codec Engine實現ARM端對系統的控制與DSP端對視頻數據的處理,最終實現視頻數據的采集及H.264算法的視頻編碼。
參考文獻
[1]陳興.基于Davinci 的圖像壓縮編解碼與網絡傳輸[D].北方工業大學,2007.
[2]Texas Instruments Incorporated,TMS320DM6446 DVEVM v2.0 Getting Started Guide[M]. Texas Instruments Incorporated,2009.
[3]Texas Instruments Incorporated, TVP5146 Data Manual[M]. Texas Instruments Incorporated,2007.
[4]張起貴.最新DSP技術——“達芬奇”系統、框架和組件[M].北京:國防工業出版社,2009.
[5]Texas Instruments Incorporated,xDAIS-DM(Digital Media)User Guide[M]. Texas Instruments Incorporated,2007.
[6]Texas Instruments Incorporated,xDAIS DSKT2 User’s Guide[M]. Texas Instruments Incorporated,2007.
[7]劉媛.基于DM6446達芬奇平臺視頻編碼器的軟件開發[D].北京化工大學,2011.