基于DaVinci?平臺的網絡視頻解碼系統分析與設計
OS層是硬件層上的操作系統層,由Linux、BIOS 6兩個操作系統構成。Linux運行A8核上,BIOS 6運行在M3核[5]。
本文引用地址:http://www.j9360.com/article/264525.htm平臺層運行在操作系統層上,屏蔽軟硬件復雜性,抽象業務層所需要的功能接口,向上支撐業務層。基于A8核的平臺層由調試打印、第三方庫、設備抽象、utility、OS/Posix Lib、Comm以及MCFW多通道框架接口構成。MCFW是TI提供的一套用來處理多媒體視頻的接口。A8核端由Syslink/IPC、Link Bitstream、Link API、MCFW API組成。VPSS M3核端由Syslink/IPC、HDVPSS Drivers、Links Capture/Display/SW Mosaic組成。Video M3核由Syslink/IPC、Decode/Encode、Links Decode/Encode組成。核與核之間的數據交互由Syslink/IPC實現。816X是一個多核SOC設備,各個核之間的通信需要通過軟件設計來實現。芯片的主處理器是A8,A8核端的Link API用來創建、控制、連接Links。通常由該處理器引導加載各個從處理器,包括了Video-Media Controller,VPSS-Media Controller等。其中解碼核實由Video-Media Controller負責管理的。引導加載過程包括從處理器的電源管理,復位控制,在合適的寄存器中寫入從處理器執行的入口點。為了有效地實現多核通信,軟件還充分利用了郵箱中斷和自旋鎖功能實現。Mailbox為處理器通過寫寄存器,向其他處理發送中斷機制。A8,Media Controller等之間通過系統級的Mailbox進行通信。3個HD VICP2S的IP模塊有各自獨立的郵箱。SOC通過自旋鎖[6](SpinLock)方便實現了系統共享資源的互斥。
業務層由系統管理、在線升級、配置管理、stream、在線調試、告警/事件、codec_hdvpss幾個模塊組成。管理/配置總線用來實現業務層模塊間的通信,共享內存(高速數據通道)用來實現stream模塊與codec_hdvpss模塊之間的高速數據傳遞。系統管理模塊是A8軟件子系統首先執行的一個模塊,實現初始化系統資源、創建運行其他的模塊,最后監聽其他模塊的運行狀態以及喂狗、控制運行狀態。升級模塊是一個較為獨立的模塊,不會與其他模塊有數據交互。實現3個核的軟件程序文件的在線升級。配置管理是業務層的中控模塊,接收主控板發過來的配置信息,控制、協調其他幾個模塊的運行。Stream模塊與網絡交互,獲取網絡發過來的碼流數據,經共享內存(高速數據通道)傳遞到模塊做進一步處理。在線調試模塊是一個較為獨立的模塊,不會與其他模塊有數據交互,實現軟件的在線查看運行狀態等功能。告警/事件模塊向主控發送本軟件的告警/事件信息。Codec_hdvpss模塊從共享內存(高速數據通道)獲取碼流數據,進行codec以及視頻處理輸出。
接口層有三個部分,分別是板間/外交互、PHY、信號交換模塊。板間/外交互是指解碼板與主機的交互,接收主控板的配置管理消息,處理并返回。PHY模塊是指解碼板與網絡的交互,獲取H.264的碼流。信號交換模塊是指解碼板輸出視頻數據到邏輯芯片的數據交換模塊。
軟件系統的主要功能是最大支持同解6路1080P@30 H.264碼流,解碼延時小于50毫秒(Codec模塊收到碼流數據到解碼輸出到FPGA的延時);同時還具備啟動、監聽其他任務,監控單板硬件狀態,管理系統硬件狗、運行燈,接收主控的配置信息,對軟件系統以及硬件系統進行配置,檢測到有異常或某些重要事件發生等功能。
5 總結
本文根據目前一些網絡視頻解碼應用現狀限制,提出了一種帶PCI-E接口的網絡視頻解碼系統。該系統采用了目前TI強大的視頻編解碼平臺DM816X并和FPGA邏輯芯片聯合應用,實現了單板6路1080P@30Hz/32路D1的網絡視頻解碼;在單臺服務器中可以插入多張該單板,從而實現上百路網絡視頻解碼,同時不會降低服務器的性能。該設計系統在筆者設計的視頻解碼平臺中得到實際應用和驗證,運行效果良好,并大大降低了單路視頻解碼的成本,具有很高的實用價值。
參考文獻:
[1]齊兵,王群生,楊春玲.H.264解碼芯片的比較與研究.電視技術,2006(9)
[2]代健美,耿華芳,劉作學.基于DaVinci技術的H.264解碼系統,兵工自動化:2012(4)
[3]周立國,梁淮寧,謝冬冬,等.基于PCI Express總線的數據傳輸卡的設計與實現[J].電子測量技術;2007(11)
[4]胡桂陽,盧月瓊,李昌禧.用單片機制作的直流穩壓可調電源.電子世界:2005(12)
[5]李宗海,陳蜀宇,李海偉.嵌入式Linux系統在ARM平臺上的構建.計算機系統應用,2010(10)
[6]casevison.Dm8168 多核通信[R/OL].(2012-5-9).http://blog.csdn.net/shanghaiqianlun/article/details/7551518
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)linux相關文章:linux教程
評論