基于MPC82xx處理器和專用編解碼芯片的DVR設(shè)計(jì)
近幾年來(lái),DVR在安防監(jiān)控領(lǐng)域應(yīng)用越來(lái)越廣泛,傳統(tǒng)的模擬錄像技術(shù)已經(jīng)逐漸被數(shù)字錄像技術(shù)取代,后者可以達(dá)到更好的圖像質(zhì)量和提供更大的存儲(chǔ)容量。目前DVR已廣泛應(yīng)用到金融、文博、酒店、交通、商業(yè)、醫(yī)院、工廠、學(xué)校、樓宇、小區(qū)物業(yè)管理等各個(gè)領(lǐng)域。從發(fā)展趨勢(shì)來(lái)看,多媒體監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域還在不斷擴(kuò)展。
目前,已經(jīng)有一些公司推出了基于X86的DVR,但是功耗、成本、體積、穩(wěn)定性方面還是有所欠缺。華恒科技目前提供基于PowerPC的嵌入式Linux開(kāi)發(fā)平臺(tái)可以滿足這方面應(yīng)用,本文所闡述的便是以PowerPC處理器和專用音視頻編解碼芯片為核心開(kāi)發(fā)的嵌入式DVR產(chǎn)品設(shè)計(jì)。該設(shè)計(jì)利用嵌入式PowerPC CPU實(shí)現(xiàn)系統(tǒng)控制、存儲(chǔ)、傳輸?shù)?,以及利用專用芯片?shí)現(xiàn)MPEG-1、-2、-4的音視頻編解碼,適合于中高端DVR的開(kāi)發(fā)。
嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)是PowerPC CPU重要的軟件基礎(chǔ)。和Windows不一樣,Linux在市場(chǎng)上有多種發(fā)行版本,所有發(fā)行版本都包含相同的Linux內(nèi)核、基本工具和應(yīng)用,不同的發(fā)行版本主要是在附加的工具鏈、應(yīng)用、配置以及各種內(nèi)核補(bǔ)丁上有所不同。嵌入式Linux主要是在實(shí)時(shí)性增強(qiáng)、內(nèi)核精簡(jiǎn)和裁減、支持多種CPU結(jié)構(gòu)(如PowerPC CPU)等方面做了改進(jìn)和提高。尤其因?yàn)長(zhǎng)inux對(duì)于網(wǎng)絡(luò)的良好支持,很多服務(wù)器、網(wǎng)絡(luò)設(shè)備現(xiàn)在都基于Linux操作系統(tǒng)來(lái)開(kāi)發(fā)。
目前在PowerPC處理器上運(yùn)行的ppcLinux操作系統(tǒng)是帶MMU的Linux操作系統(tǒng),專門(mén)針對(duì)PowerPC處理器作了裁減和優(yōu)化。我們使用的是官方發(fā)布的開(kāi)源免費(fèi)的版本,開(kāi)發(fā)商無(wú)需考慮授權(quán)及付費(fèi)方面的問(wèn)題。
基于ppcLinux開(kāi)發(fā),軟件可以基于C語(yǔ)言編寫(xiě),同時(shí)也支持C++、Java等,使用針對(duì)PowerPC的GNU GCC編譯工具編譯,和在普通Linux操作系統(tǒng)上開(kāi)發(fā)非常接近。并且在普通Linux操作系統(tǒng)上開(kāi)發(fā)的軟件也大多能夠方便地移植過(guò)來(lái)。在開(kāi)發(fā)外設(shè)接口驅(qū)動(dòng)方面,ppcLinux支持內(nèi)核加載以及動(dòng)態(tài)insmod加載的方式,為開(kāi)發(fā)者擴(kuò)展接口、外設(shè)功能提供了極大的便利。
嵌入式處理器
MPC82xx是Freescale Power QUICC II系列的32位嵌入式處理器。該系列處理器面向網(wǎng)絡(luò)基礎(chǔ)設(shè)施、存儲(chǔ)設(shè)備及電信產(chǎn)品中需要SoC集成與PCI連接的系統(tǒng)的應(yīng)用需求,提供了一種基于PowerPC架構(gòu)的性價(jià)比較高的方案。其主要應(yīng)用包括:DVR系統(tǒng);路由器/交換機(jī);嵌入式計(jì)算;網(wǎng)絡(luò)存儲(chǔ);遠(yuǎn)程集線器;RAID系統(tǒng)的磁盤(pán)控制系統(tǒng);LAN到WAN網(wǎng)橋/路由器;xDSL系統(tǒng)等。
MPC8250是PowerQUICC II系列目前最先進(jìn)的為電信和網(wǎng)絡(luò)市場(chǎng)而設(shè)計(jì)的集成通信微處理器。與MPC860相似,MPC8250也有兩個(gè)主要的組成部分:嵌入的PowerPC內(nèi)核和通信處理模塊(CPM)。由于CPM分擔(dān)了嵌入式PowerPC核的外圍工作任務(wù),這種雙處理器體系結(jié)構(gòu)功耗要低于傳統(tǒng)的體系結(jié)構(gòu)的處理器。CPM同時(shí)支持3個(gè)快速的串行通信控制器(FCC)、1個(gè)多通道控制器(MCC)、4個(gè)串行通信控制器(SCC)、2個(gè)串行管理控制器(SMC)、1個(gè)串行外圍接口(SPI)和一個(gè)I2C接口。
MPC8250 1.5W的低功耗,-40°C至105°C的工作溫度范圍,是該款多功能和高性能芯片的另外兩個(gè)良好特性。華恒將該款芯片同華恒嵌入式Linux v3.0操作系統(tǒng)整合的HHPPC8250-3FEC-PCI-R1型開(kāi)發(fā)套件為用戶在網(wǎng)絡(luò)和通信產(chǎn)品的開(kāi)發(fā)方面提供巨大的開(kāi)發(fā)潛力,并幫助客戶縮短開(kāi)發(fā)周期,加速產(chǎn)品的上市。
目前華恒科技推出的基于MPC8250的開(kāi)發(fā)平臺(tái):可以支持標(biāo)準(zhǔn)PCI接口PCI-IDE陣列卡、視頻卡、USB接口卡、WLAN無(wú)線網(wǎng)卡、MiniPCI接口的WLAN無(wú)線網(wǎng)卡等等,開(kāi)發(fā)商可以基于基本開(kāi)發(fā)平臺(tái)自由擴(kuò)展、集成各種不同的應(yīng)用。該系列處理器中可供選擇的還有MPC8241/8245、MPC8260等。
編解碼芯片選擇
原始的視頻數(shù)據(jù)量很大,需要占用非常高的帶寬。如果需要進(jìn)行長(zhǎng)時(shí)間的錄像、存儲(chǔ),必須在保證在一定圖像質(zhì)量的前提下通過(guò)壓縮技術(shù)盡量降低視頻資料的碼率,減少需要存儲(chǔ)的數(shù)據(jù)量,以滿足更長(zhǎng)時(shí)間的存儲(chǔ)要求和減少成本,同時(shí)也可以更好的滿足網(wǎng)絡(luò)監(jiān)控的要求。目前在網(wǎng)絡(luò)監(jiān)控、視頻點(diǎn)播等產(chǎn)品應(yīng)用中,MPEG-4格式的視頻壓縮算法較為流行,其碼率一般在數(shù)百Kbps到1Mbps左右。
視頻壓縮算法的效率決定了監(jiān)控產(chǎn)品的圖像質(zhì)量和應(yīng)用前景。要實(shí)現(xiàn)成熟的編解碼算法,需要投入大量的研發(fā)資源,而采用相應(yīng)的編解碼ASIC芯片則可以避免軟件算法方面的投入。
VW2010是實(shí)時(shí)MPEG-1、-2和-4音視頻系統(tǒng)編解碼芯片(同時(shí)壓縮、解壓或編碼、解碼),完全兼容ISO/IEC-11172-2、ISO/IEC-13818-2、ISO/IEC-14496-2和ITU-T H.263(基線)。視頻編碼部分接收未壓縮的ITU-R.BT.656數(shù)字視頻信號(hào)。它將輸入和壓縮的視頻轉(zhuǎn)換為MPEG-1、-2、-4或H.263格式。
其音頻編碼部分接收雙通道分立的I2S數(shù)字音頻格式數(shù)據(jù)并具有輸入濾波功能,它可將每路音頻轉(zhuǎn)換為MPEG-1、MPEG-2、MP3、AAC或AC-3音頻格式。VW2010為網(wǎng)絡(luò)應(yīng)用輸出傳輸流或?yàn)榇鎯?chǔ)應(yīng)用輸出節(jié)目流。視頻解碼部分接收MPEG位流并輸出ITU-R.BT.656數(shù)字視頻。音頻解碼器接收MPEG-1、MPEG-2、MP3、AAC或AC-3位流并輸出I2S、S/P-DIF或IEC-61937壓縮音頻。VW2010是該DVR系統(tǒng)中完成音視頻編解碼的主芯片。
VW2010不但可以產(chǎn)生MPEG-2格式的數(shù)據(jù)碼流,而且可以產(chǎn)生MPEG-4格式的數(shù)據(jù)碼流。它對(duì)壓縮數(shù)據(jù)的碼率可在128Kbps到6Mbps之間可調(diào),以適應(yīng)各種用戶的需要。低碼率的文件適合網(wǎng)絡(luò)傳播并節(jié)省存儲(chǔ)空間,而高碼率的文件具有最佳的聲、視覺(jué)播放效果。而且,VW2010可以單獨(dú)編碼音頻數(shù)據(jù)并能實(shí)現(xiàn)MP3的功能特性。
下面列出一些目前在DVR產(chǎn)品中應(yīng)用較為廣泛的音視頻編解碼芯片方案:
ASIC:IME6400、Vweb2010、Wis7007;
DSP:Blackfin 532加多媒體PCI Bridge SAA7146、PNX1302加畫(huà)面分割芯片AQ424;
高端:PNX1501、DM642。
應(yīng)用系統(tǒng)組成及特點(diǎn)
該系統(tǒng)的核心芯片只有兩片(VW2010及MPC8250),并能通過(guò)標(biāo)準(zhǔn)的PCI總線完成交互控制。嵌入式CPU MPC8250集成度高,不但節(jié)省了傳統(tǒng)的PCI橋芯片、以太網(wǎng)MAC,還減少了外圍電路設(shè)計(jì)的難度和工作量。VW2010外圍的A/D、D/A等芯片可以通過(guò)MPC8250的串行I2C接口,方便地完成相應(yīng)的初始化和制式轉(zhuǎn)換。整個(gè)系統(tǒng)對(duì)電源種類要求很低,減少了對(duì)電源部分的設(shè)計(jì)壓力和成本。由于采用嵌入式Linux操作系統(tǒng),并且處理器本身的指令與普通x86的處理器不同,不易被黑客及病毒攻擊,保證了整個(gè)系統(tǒng)的安全性能。該系統(tǒng)架構(gòu)如圖1。
視頻信號(hào)先經(jīng)過(guò)視頻接收電路進(jìn)行前端處理(包括阻抗匹配、限幅和鉗位),然后通過(guò)視頻解碼電路產(chǎn)生符合VW2010視頻接口標(biāo)準(zhǔn)的ITU656信號(hào)。視頻解碼電路的核心是一個(gè)視頻解碼芯片,該解碼芯片用于對(duì)CVBS信號(hào)進(jìn)行A/D轉(zhuǎn)換和編碼,以產(chǎn)生ITU656標(biāo)準(zhǔn)的并行數(shù)字電視信號(hào)。高檔的視頻解碼器還支持圖像尺寸縮放(scaling)和幀提取(decimating)功能,如飛利浦的SAA7114、SAA7115以及Rockwell公司的BT829A等。由于VW2010的視頻輸入為ITU656/D1格式,所以只需要選擇具有基本A/D轉(zhuǎn)換和編碼功能的視頻輸入處理芯片如SAA7113即可。
在模擬音頻信號(hào)經(jīng)過(guò)模擬音頻接收電路進(jìn)行前端處理后,便可通過(guò)音頻ADC電路產(chǎn)生符合VW2010音頻接口標(biāo)準(zhǔn)的I2S信號(hào)。
VW2010是壓縮卡的核心處理芯片,該芯片除可完成音、視頻信號(hào)的編碼外,還可提供對(duì)解碼器和ADC的控制(通過(guò)I2S總線),其編碼產(chǎn)生的MPEG流可通過(guò)芯片內(nèi)部集成的PCI接口輸出。VW2010的解壓操作是壓縮操作的逆過(guò)程,基本原理類似。
在VW2010根據(jù)系統(tǒng)的配置將該音視頻信號(hào)壓縮編碼為MPEG-1、-2或-4格式的音視頻數(shù)據(jù)后,主CPU MPC8250通過(guò)PCI總線將壓縮編碼后的音視頻數(shù)據(jù)以文件的形式存入IDE接口的硬盤(pán)或CDROM-R/W中(需操作系統(tǒng)的支持)。同時(shí),在VW2010內(nèi)部可將編碼后的音視頻數(shù)據(jù)直接解碼輸出到相應(yīng)的D/A轉(zhuǎn)換器中,完成對(duì)用戶的實(shí)時(shí)播放。
硬件設(shè)計(jì)注意事項(xiàng)
采用嵌入式的處理器,相對(duì)來(lái)說(shuō)在電路設(shè)計(jì)方面要簡(jiǎn)單很多,華恒科技目前提供基于MPC8250的開(kāi)發(fā)平臺(tái)及參考設(shè)計(jì),而VW2010目前有成熟的PCI編解碼卡。采用現(xiàn)成的嵌入式Linux開(kāi)發(fā)平臺(tái)和音視頻編解碼卡,用戶前期僅需在外圍接口板進(jìn)行簡(jiǎn)單的擴(kuò)展,即可快速推出產(chǎn)品樣機(jī),減少前期開(kāi)發(fā)的周期和成本。在完成前期工程樣機(jī)及相關(guān)軟件開(kāi)發(fā)后,開(kāi)發(fā)者可以進(jìn)一步將整個(gè)系統(tǒng)重新整合,重新設(shè)計(jì)硬件電路板。
由于電路的復(fù)雜性,且采用了高速數(shù)字電路,加上對(duì)電磁兼容(EMC)的設(shè)計(jì)要求,設(shè)計(jì)硬件電路時(shí)需考慮以下幾點(diǎn):
1.對(duì)于處理PCI及SDRAM等控制接口的時(shí)鐘線時(shí),要盡量使各線的長(zhǎng)度及阻抗匹配,并要求對(duì)電路中的高速時(shí)鐘線進(jìn)行覆銅屏蔽;
2.采用六層電路板,可以降低回路噪聲,提高電路的穩(wěn)定性;
3.對(duì)于視頻的A/D芯片而言,應(yīng)盡量做到模擬地與數(shù)字地隔離。避免數(shù)字電路對(duì)模擬電路產(chǎn)生干擾,提高采樣的精度;
4.對(duì)于高速的數(shù)據(jù)總線應(yīng)盡量添加排阻,以達(dá)到阻抗匹配的目的。并應(yīng)盡量減少走線長(zhǎng)度,減小電路中電流的環(huán)路面積。
系統(tǒng)軟件開(kāi)發(fā)
編解碼的工作已經(jīng)可以實(shí)現(xiàn),實(shí)際音視頻碼流的采集、存儲(chǔ)、傳輸必須要操作系統(tǒng)來(lái)控制和完成,首先需要實(shí)現(xiàn)的是VW2010在Linux下的設(shè)備驅(qū)動(dòng)程序。Linux系統(tǒng)下的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)技術(shù)已經(jīng)相當(dāng)成熟,具體使用和開(kāi)發(fā)這里不再贅述。目前VW2010已經(jīng)在PC平臺(tái)上有較為廣泛的應(yīng)用,相應(yīng)的廠商已經(jīng)可以提供基于Windows、Linux操作系統(tǒng)成熟的驅(qū)動(dòng)支持。
目前流行的板卡主要有這樣一些功能:水印、中文OSD疊加、時(shí)間戳疊加、Logo疊加、Mosaic遮蔽、單幀捕獲、強(qiáng)制關(guān)鍵幀輸出、動(dòng)態(tài)改變壓縮幀率參數(shù)、動(dòng)態(tài)調(diào)節(jié)視頻參數(shù)、動(dòng)態(tài)改變幀結(jié)構(gòu)、動(dòng)態(tài)檢測(cè)、雙碼流、板載加密區(qū)。一般回放庫(kù)支持文件方式播放和實(shí)時(shí)流播放,變速播放、回放抓圖、回放亮度對(duì)比度調(diào)節(jié)、動(dòng)態(tài)丟幀。網(wǎng)絡(luò)庫(kù)支持UDP/TCP傳送,支持多播(MultiCast)和雙向通訊。采用現(xiàn)成的編解碼卡,無(wú)論基于PC或是嵌入式平臺(tái)上開(kāi)發(fā)都需要考慮相關(guān)軟件開(kāi)發(fā)工具包(SDK)的穩(wěn)定性、易用性、兼容性、功能的完整性和技術(shù)服務(wù)水平。
除了考慮板卡的這些基本功能之外,還需要考慮的一點(diǎn)是板卡生產(chǎn)廠商的產(chǎn)品序列是否齊全,板卡SDK是否兼容,從而保護(hù)軟件開(kāi)發(fā)投入。比如說(shuō),由于國(guó)家DVR標(biāo)準(zhǔn)沒(méi)有限制壓縮標(biāo)準(zhǔn),DVR系統(tǒng)不存在互連互通的需求,各個(gè)廠家之間的碼流格式并不兼容,因此如果有網(wǎng)絡(luò)集中監(jiān)控上電視墻的需求,一定需要壓縮板卡供應(yīng)商提供硬解碼卡,否則就很難實(shí)現(xiàn)。
采用現(xiàn)成的編解碼卡,降低了開(kāi)發(fā)DVR產(chǎn)品的門(mén)檻,但往往可能受到上游廠商技術(shù)、供貨、價(jià)格等方面的限制。在積累足夠的技術(shù)經(jīng)驗(yàn)時(shí)可以考慮自主開(kāi)發(fā),如果開(kāi)發(fā)商選用其他編解碼芯片,可以先調(diào)研一下相應(yīng)的芯片是否應(yīng)用成熟廣泛,相關(guān)的生產(chǎn)廠商、代理商、第三方是否可以提供足夠的支持。