曹飛,甄國涌,陳建軍
(中北大學電子測試技術國家重點實驗室,山西太原 030051)
隨著時代的發展,視頻監控技術已經廣泛應用在各行各業,而且高速率、高清化、高壓縮率成為新發展要求[1]。實際應用中的圖像數據量比較龐大,如果不加優化處理直接存儲本地,將導致存儲資源非常緊張[2]。例如典型的監控系統CIF 格式視頻,分辨率為352×288,一般為RGB24 位圖像深度、幀頻25 fps,記錄一小時需25 GB 的存儲資源。若同等情況下記錄1080P 視頻,則需約1.22 T 的容量,普通的存儲設備難以滿足要求。而且在一些特殊領域,例如航天航空、無人機等,存儲資源和傳輸鏈路帶寬是無法完全滿足要求的,必須要將圖像數據經過壓縮處理[3-4]。所以在圖像采集處理和存儲過程中,壓縮編碼已不可或缺,壓縮損傷少、壓縮比高的編碼算法尤為重要,具有重要的現實意義。
為了滿足嵌入式設備中日益增長的高速、高清、高壓縮率圖像傳輸的要求,該設計采用高動態CMOS 圖像傳感器作為圖像捕獲前端,集成H.264 壓縮硬核的高性能ARM 芯片作為圖像采集傳感器,高效率的DC/DC 電壓芯片作為電壓模塊,設計了一種高性能的圖像采集壓縮系統。
系統設計方案如圖1 所示,整體分為四大模塊:圖像采集模塊、控制模塊、存儲模塊、通信模塊。圖像采集模塊采用AR0230CS CMOS 傳感器,其相關寄存器通過I2C 接口配置,使輸出8 位數字圖像數據;控制模塊采用海思公司的Hi3516D 芯片,對CMOS圖像數據進行采集、H.264 編碼壓縮等處理,同時接收通信模塊下發的命令來重新配置系統的幀率、分辨率等參數;存儲模塊使用16 bit 的DDR3 和256MB的SPI NOR FLASH,其中DDR3 用作嵌入式板端Linux 系統的運行空間,FLASH 用作存放引導Linux啟動的uboot、內核鏡像、文件系統等必要文件,FLASH 的啟動模式通過硬件電路配置為3 bytes 地址模式;通信模塊的協議采用TCP、百兆以太網接口,將編碼輸出的圖像數據送至PC 端上位機顯示、存儲,也可以將上位機的圖像配置參數下發到控制模塊,滿足多種圖像格式的應用需求。

圖1 總體方案設計
Hi3516D 是海思開發的一款專業高端SOC 芯片,定位于高清IPCamera 產品應用,擁有先進低功耗架構設計和低功耗工藝。處理器內核采用ARM Cortex A7,時鐘頻率600 MHz,最大能力支持5M Pixel輸入,1080P@60fps輸出[5-6]。其優異編碼圖像質量、H.264 多碼流編碼性能,在滿足不同的IPCamera產品需求、性能、圖像質量要求的同時,可極大降低ebom 資源。這一切使得Hi3516D 在低功耗、高圖像質量、高壓縮率方面表現優異,因此該系統設計采用高性能的Hi3516D 作為主控芯片。
該設計在最大輸出能力1080P 分辨率的前提下,為了降低系統的功耗、增加圖像動態范圍,采用了低功耗、高動態的CMOS 圖像傳感器AR0230CS作為圖像捕獲前端。AR0230CS 是一款1/2.7 英寸CMOS 數字圖像傳感器,有源像素陣列為1 920 H×1 080 V,在此分辨率下輸出最大幀頻為60 fps。它專為低光和高動態范圍的場景性能而設計,最大動態范圍達96 dB,信噪比達41 dB。COMS 為了降低功耗,芯片工藝上采用一個晶體管只采樣一個顏色分量的方法,利用差值計算相鄰像素的值,這樣同時也簡化了原始圖像的數據大小。
圖2 為AR0230CS 與Hi3516D 的硬件連接圖[7]。AR0230CS 可以使用HiSPi 接口傳輸數據,Hi3516D通過自身集成的MIPI_RX 控制器接收圖像數據。AR0230CS 圖像傳感器采用Hi3516D 輸出的27 MHz作為輸入時鐘;SDATA 信號為I2C 的雙向數據線、SCLK 信號為I2C 的時鐘線,Hi3516D 通過 這兩條總線對AR0230CS 寄存器進行配置,主要配置的功能寄存器有寬動態模式選擇、圖像大小、曝光時間等參數。MIPI_RX 接口包含1 組差分時鐘線MIPI_CLK和4 組數據差分線MIPI_DATA,MIPI_RX 底層數據包包含短包和長包數據,短包用來同步,長包用來傳送數據,這樣硬件上省去了幀同步和行同步硬件連接[8-9]。RESET_BAR 為復位信號,當抓拍或視頻采集功能重啟時,Hi3516D 需要對AR0230CS 進行復位操作,寄存器清零,再次配置。在PCB 設計上,AR0230CS 為敏感元件,器件布局與Hi3516D 需相隔較大距離,避免集中散熱。
該設計獲取外部5 V 直流輸入供電、內部兩級降壓模式,首先通過電源轉換芯片MP2122 將5 V 轉化為3.3 V、1.1 V 供ARM 使用,1.5 V 供DDR3 使用,然后通過電源芯片TPS82084 將3.3 V 轉換為1.8 V、2.8 V,供圖像傳感器使用。圖3 為一路電源芯片MP2122 的硬件電路圖。

圖2 AR0230CS與Hi3516D的硬件連接圖

圖3 MP2122硬件電路圖
由于輸出電源支路較多,故使用了高性能的電源芯片。其中MP2122 是一款效率高達93%的DC/DC降壓芯片,具有2.7~6 V寬動態輸入,雙路2 A PWM輸出,開關頻率為固定1 MHz,靜態電流為45 μA,使得MP2122 為整體系統提供了穩定、低功耗的電源保障。而TPS82084 是一款效率高達95%的DC/DC 降壓芯片,具有2.5~6 V 寬動態輸入,靜態電流為17 μA,優勢是自身集成了電感,可以簡化設計、減少外部元器件并節省PCB 面積,為圖像傳感器所處的特殊位置提供了空間便利。
MP2122 輸出電壓可以通過R3、R5動態調節,調整結果為該設計中需要輸出電壓為1.1 V,根據計算及芯片手冊推薦值可得R1=12.7 kΩ、R2=12.7 kΩ。
由于輸入電源中存在紋波干擾,因此須在電源電路的輸入端和電源地之間并聯加入0.1μF和10 μF電容(C1、C2)以減少外部的高低頻擾動。同時為了保證電源電壓減小輸出紋波、穩定輸出,輸出端串聯2.2 μH 電感(圖3 的L1、L2),并聯0.1 μF、10 μF 電容(圖3 的C5、C6和C7、C8)。在PCB 的設計上,電源全部使用整平面層供電,所以每個濾波電容需要緊靠電源管腳放置,盡量減小寄生電感的產生。且電源芯片周圍盡量多敷銅,以增強PCB 板的有效散熱。
Hi3516D 內部集成圖像捕獲單元,可以接收HiSPi 等MIPI_Rx 接口的圖像信號,采集之前需要配置VI 輸入接口類型為HiSPi 的1080P 圖像輸入,即修改程序為stViConfig.enViMode=SAMPLE_VI_MODE_ HiSPi _1080P。系統在進行緩存池配置和MPP(海思多媒體軟件平臺)初始化后,圖像數據開始輸入[10-12]。
圖像輸入程序流程如圖4 所示,首先打開MIPI接口設備文件,將接口模式配置成HiSPi 模式,設置VI_DEV_ATTR_S 結構體,其中包含圖像輸入設備屬性(HI_MIPI_VI_SetDevATTR 接口)、圖像分辨率(寬、高度參數為stDevAttr.stDevRect.u32Width 和stDevAttr.stDevRect.u32Height)等圖像信息,調用HI_MIPI_VI_EnableDev 函數啟動圖像輸入設備;然后定義并設置結構體變量VI_CHN_ATTR_S,這個結構體定義了圖像輸入通道屬性,主要包含逐行掃描、目標圖像的大小、像素格式等配置,調 用API 接口HI_MIPI_VI_EnableChn 函數啟動圖像物理通道。至此,圖像輸入模塊結束,將采集到HiSPi 接口的圖像數據送至下一模塊。

圖4 圖像輸入流程圖
Hi3516D 內部集成了一個H.264 硬件編解碼器,圖像編碼程序流程如圖5 所示。首先,定義并設置結構體變量VENC_CHN_ATTR_S,這個結構體定義了通道屬性,包含編碼器屬性配置(VENC_ATTR_S)、圖像寬度高度等信息;然后,調用函數HI_MIPI_VENC_CreateChn 創建H.264 編碼通道,并調用函數HI_MIPI_VENC_StartRecvPic 開始接收圖像;最后,調用HI_MIPI_SYS_Bind 函數將VPSS(圖像處理模塊)通道與編碼通道綁定在一起,用于創建線程接收H.264 壓縮碼流[13-15]。至此,圖像編碼模塊結束,將壓縮完的圖像數據保存到本地或者通過傳輸接口送至外部。

圖5 圖像編碼流程圖
該測試采用客觀評價標準PSNR(峰值信噪比)來分析圖像質量,PSNR 越高,質量越好。通常來講,PSNR 值大于28 dB 時,圖像質量無明顯差異,處于[35 dB,40 dB]區間時,人眼已分辨不出圖像之間的差異[16-17]。具體采用FFmpeg 軟件將VENC 模塊編碼輸出的H.264 文件轉換成VI 模塊采集輸出的YUV文件,再通過Matlab 軟件計算H.264 文件相對YUV文件的PSNR 值。
文中測試選取了4 種典型分辨率、幀頻25 fps、兩種拍攝畫面(實驗室的普通活動、網絡視頻的激烈打斗畫面),每種情況分別計時15 min、30 min、45 min,最后得出PSNR 平均值,統計情況如表1 所示。

表1 多種分辨率、不同場合的PSNR 測試
分析表1 可知,該系統對于平緩畫面的壓縮質量較劇烈畫面更好,而且每種情況下的PSNR 都處于[36 dB,37 dB]區間,客觀表明本采集壓縮系統圖像質量良好,符合較高的實際需求。系統采集壓縮后的圖像如圖6 所示。
根據4.1 節的測試條件,計算壓縮比=YUV 文件大小/H.264 文件大小,結果如表2 所示。
分析表2 可知,該系統對于劇烈畫面的壓縮比較平緩畫面更高,因為劇烈畫面的PSNR 要低于平緩畫面,導致可能存在丟幀現象,所以壓縮后的劇烈畫面文件大小較小。整體平均壓縮比大于150∶1(YUV文件大小∶H.264 文件),壓縮性能良好。

圖6 1 920×1 080分辨率的系統輸出圖片

表2 多種分辨率、不同場合的壓縮比測試
文中設計采用高動態AR0230CS 圖像傳感器作為圖像捕獲前端、集成H.264 壓縮硬核的高性能Hi3516D 芯片作為控制核心、高效率的電源模塊,支持多種分辨率,最大輸出能力為1 920×1 080@30fps,重建圖像序列平均PSNR 大于36 dB,圖像清晰流暢、穩定可靠,存儲文件壓縮比大于150∶1,較大地節省了存儲資源,滿足較高的嵌入式實際應用需求。