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