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