胡顯華
【摘要】 就如何采用低成本FPGA來實現(xiàn)高清晰監(jiān)視系統(tǒng)的主流方案進行分析研究。
【關(guān)鍵詞】 FPGA;視頻監(jiān)視;HD監(jiān)視攝像機
視頻監(jiān)視這一新的視頻市場應(yīng)用逐步向高清晰技術(shù)(HD)過渡,需要性能相對較高的視頻處理能力。HD監(jiān)視攝像機采用高質(zhì)量H.264編碼器對圖像直接進行編碼,圖像可以通過標準以太網(wǎng)連接實現(xiàn)無失真?zhèn)鬏?。對HD視頻流實時編碼的主要類H.264編碼器需要采用結(jié)合了高性能信號處理架構(gòu)和低成本、低功耗特性的硬件平臺,最新一代低成本FPGA成為實現(xiàn)這種平臺的理想選擇。介紹HD監(jiān)視攝像機的體系結(jié)構(gòu),以及怎樣采用低成本FPGA構(gòu)建整個系統(tǒng)。
HD監(jiān)視攝像機體系結(jié)構(gòu)
新的高清晰IP攝像機是所有IP聯(lián)網(wǎng)數(shù)字系統(tǒng)的終端設(shè)備。這些IP攝像機采集HD視頻,經(jīng)過預(yù)處理、編碼,通過以太網(wǎng)發(fā)送編碼后的數(shù)據(jù)流。所有信號處理功能都必須在一個器件中實現(xiàn),以滿足這類系統(tǒng)苛刻的成本和功耗要求。
(圖1所示為這類攝像機的頂層體系結(jié)構(gòu))。除了編碼引擎,高性價比設(shè)計還集成了攝像傳感器預(yù)處理功能、幀緩沖存儲控制器、用于系統(tǒng)控制的嵌入式處理器,以及以太網(wǎng)MAC。目的是提高整個系統(tǒng)的集成度,降低成本和功耗。
這一設(shè)計包括攝像傳感器前端模塊、視頻壓縮模塊、以太網(wǎng)MAC模塊、嵌入式處理器,以及向所有其他模塊提供存儲功能的多端口幀緩沖。
多端口幀緩沖用作匯集器。所有其他模塊與幀緩沖進行雙向數(shù)據(jù)傳送,和別的模塊進行通信。攝像傳感器接收到的視頻圖像被送入攝像傳感器前端模塊。攝像傳感器前端模塊處理視頻數(shù)據(jù),將視頻存儲到幀緩沖中。然后,H.264編碼器讀取幀緩沖中的視頻數(shù)據(jù),完成編碼過程。H.264編碼器將壓縮后的比特流送回幀緩沖,進行存儲。最后,以太網(wǎng)MAC模塊讀取幀緩沖中壓縮后的比特流,將其發(fā)送至以太網(wǎng)。
采用這種集成方式,電路板上的其他元件只有攝像傳感器、DDR2-SDRAM、閃存和以太網(wǎng)PHY芯片(圖2所示為這類系統(tǒng)的各個組成部分)。
詳細設(shè)計
H.264編碼器模塊
該設(shè)計中使用的H.264編碼器是EyeLytics公司提供的IP內(nèi)核,它針對監(jiān)視應(yīng)用進行了優(yōu)化。這一內(nèi)核具有很多監(jiān)視功能,包括多通道支持、恒定質(zhì)量速率控制、幀內(nèi)/幀間模式、QPEL、CABAC,并且邏輯門數(shù)量較少。
“Raster to Block”模塊(圖3左側(cè)所示)按照光柵掃描順序讀取來自幀緩沖的圖像,以宏模塊格式重新排列這些圖像。然后,將其發(fā)送至運動估算引擎和空間估算引擎。運動估算引擎讀取來自幀緩沖的參考圖像,搜索參考圖像,找到當前宏模塊的運動矢量。運動估算引擎還確定了每一宏模塊所使用的最佳劃分。
H.264規(guī)范支持4種不同的幀間預(yù)測宏模塊劃分以及4種不同的子宏模塊劃分。最佳運動矢量和最佳劃分以及相應(yīng)的估算宏模塊編碼成本被送至模式確定模塊。最佳運動矢量和最佳劃分信息還被送至運動補償引擎。運動補償引擎獲得相應(yīng)的參考區(qū),完成半象素和四分之一象素濾波,為當前宏模塊產(chǎn)生幀間預(yù)測。
空間估算引擎使用同一圖像中相鄰象素值,找到當前宏模塊的最佳估算值。H.264規(guī)范共定義了9種幀內(nèi)4x4亮度模式、4種幀內(nèi)16x16亮度模式和4種幀內(nèi)色度模式。空間估算引擎確定當前宏模塊中使用的最佳亮度和色度模式。最佳模式以及相應(yīng)的估算宏模塊編碼成本被送至模式確定模塊。模式確定模塊比較宏模塊編碼成本,確定要使用的最佳預(yù)測。預(yù)測可以是幀內(nèi)或者幀間預(yù)測。最佳幀內(nèi)模式被發(fā)送至幀內(nèi)預(yù)測引擎。幀內(nèi)預(yù)測引擎使用鄰近象素值為當前宏模塊產(chǎn)生幀內(nèi)預(yù)測。
基于模式確定結(jié)果,變換和量化引擎從當前宏模塊中提取出預(yù)測值。然后,它進行變換和量化,產(chǎn)生量化系數(shù)。宏模塊信息采集器收集量化系數(shù)和其他宏模塊信息,例如,運動矢量、幀間預(yù)測模式和幀內(nèi)預(yù)測模式等。采集信息被送至CABAC模塊,產(chǎn)生最終的比特流。使用基于前后關(guān)系的自適應(yīng)二進制算法編碼來完成這一工作。得到的比特流被送至幀緩沖。
通過以下三步來產(chǎn)生運動估算引擎和運動補償引擎使用的參考圖像:逆量化、逆變換和解塊。解塊模塊減少了圖像中的塊狀假象。將處理后的圖像發(fā)送至幀緩沖,用作下一幀周期的參考圖像。
目前基于DSP SoC的方案在監(jiān)控市場占主流地位。一些FPGA廠商希望能在差異化和客戶定制化方面顯示出自己的優(yōu)勢。通過針對監(jiān)控應(yīng)用將FPGA器件和MPU/DSP結(jié)合在一起,設(shè)計師能從可編程協(xié)處理器的固有靈活性中得到好處,還可利用FPGA將精力集中在開發(fā)算法上,以充分利用MPU/DSP的處理能力。