OV7670和ADV611的圖像采集與壓縮系統設計
引言
本文引用地址:http://dyxdggzs.com/article/201610/306316.htm隨著(zhù)圖像傳感器、DSP及計算機技術(shù)的快速發(fā)展,圖像監控系統已經(jīng)被人們用于生活、工業(yè)控制、科學(xué)研究等各個(gè)領(lǐng)域,因此圖像信息的采集得到了廣泛的應用。根據對磁懸浮試驗線(xiàn)通信基站系統診斷的需要,設計了圖像信息采集及其壓縮傳輸的子系統,將基站的圖像監控信息作為整個(gè)系統診斷數據的一部分實(shí)時(shí)地傳回控制室。鑒于傳輸帶寬有限以及原始圖像數據的冗余性,對原始圖像數據進(jìn)行壓縮處理。由于圖像的突變性較大,在控制壓縮率時(shí)采用了PID控制算法。在接收終端對壓縮后的數據進(jìn)行解碼處理,就可以得到實(shí)時(shí)的監控圖像。
1 系統原理及結構
該系統作為整個(gè)磁懸浮試驗線(xiàn)通信基站診斷系統的一部分,系統的結構圖如圖1所示。

OV7670采集到的圖像信息經(jīng)過(guò)ADV611壓縮處理后,由FPGA通過(guò)低電壓差分信號(LVDS)將壓縮后的數據傳輸到板卡的控制模塊,由控制模塊將包括監控圖像數據在內的診斷數據組幀后傳輸到控制中心。OV7670圖像傳感器是OmniVision公司生產(chǎn)的CMOS圖像傳感器,其體積小,工作電壓低,內部集成了感光矩陣、模擬信號處理器、數字信號處理器、DSP處理器、寄存器控制接口以及影像處理單元。它主要具有以下特點(diǎn):
①內部有效感光陣列為640×480,最大幀率為30 fps。
②標準的SCCB接口,兼容I2C總線(xiàn)接口。
③支持RawRGB/GRB4:2:2、RGB565/555/444、YUV4:2:2和YCbCr4:2:2等多種輸出格式。
④50/60 Hz自動(dòng)檢測。
OV7670內部提供大量的控制寄存器,通過(guò)SCCB總線(xiàn)配置寄存器就可以輸出不同的圖像格式。
圖像壓縮模塊采用的是ADI公司推出的基于小波變換的ADV611圖像解壓縮編碼CMOS芯片,它能夠對符合CCIR-601格式的數字圖像進(jìn)行從視覺(jué)元損壓縮到高達7500:1壓縮和解壓縮。主要特點(diǎn)如下:
①可編程的控制“質(zhì)量窗”(Quality Box)。
②精確的壓縮比控制。
③單場(chǎng)獨立壓縮。
④集成DARM接口控制器。
芯片集成無(wú)縫視頻和主機接口,內置片內SRAM,能以較少的器件實(shí)現適合各種應用的系統級解決方案。
2 系統設計
2.1 圖像采集模塊設計
SCCB總線(xiàn)是OmniVision公司推出的串行攝像頭控制總線(xiàn)(Serial Camera Control Bus),兼容I2C總線(xiàn)接口,最高傳輸速率可達400 Kb/s,OV7670內部寄存器的配置和圖像數據的輸入與輸出是通過(guò)SCCB總線(xiàn)交換的,SCCB總線(xiàn)的時(shí)序圖如圖2所示。

SCCB總線(xiàn)由片選信號線(xiàn)SCCB_E、時(shí)鐘信號線(xiàn)SIO_C和數據信號線(xiàn)SIO_D構成。在與主設備數據交換過(guò)程中,當SIO_C是高電平時(shí),SCCB_E從高電平向低電平切換時(shí)表示數據傳輸開(kāi)始,SCCB_E線(xiàn)由低電平向高電平切換時(shí)表示數據傳輸停止。發(fā)送到SIO_D線(xiàn)上的每個(gè)字節必須為8位,每次傳輸可以發(fā)送的字節數量不受限制,首先傳輸的是數據的最高位MSB,每個(gè)字節后必須跟一個(gè)響應位ACK。SCCB總線(xiàn)的控制功能完全是由SIO_C、SIO_D兩條總線(xiàn)上電平的狀態(tài)以及兩者之間的相互配合實(shí)現的,其過(guò)程如圖3所示。

OV7670支持兩種地址格式:從設備地址ID—Ad—dress,包括讀地址和寫(xiě)地址,其中地址的高7位用來(lái)選中從設備,最低位是讀寫(xiě)控制位(R/W),低電平表示發(fā)送數據,高電平表示讀數據;內部寄存器地址Sub—Address,用于執行對寄存器單元進(jìn)行操作,支持地址單元連續的多字節順序讀寫(xiě)操作。對OV7670的寄存器的寫(xiě)操作由三部分構成,先寫(xiě)設備地址,再寫(xiě)寄存器地址,最后向指定寄存器寫(xiě)數據,即ID-Address+SUB-Address+W-Data。OV7670的設備地址為0x42,最后一位用來(lái)判斷讀寫(xiě),即讀的時(shí)候為0x43。依次發(fā)送ID-Address+SUB-Ad-dress+W-Data。讀操作時(shí),需要先發(fā)送從設備地址和寄存器地址,然后再次發(fā)送從設備地址,讀取指定寄存器的數據,即{ID-Address+SUB-Address}+{ID-Address+R-Data)。在系統中,使用Verilog語(yǔ)言實(shí)現SCCB總線(xiàn)協(xié)議,Modelsim中的仿真結果如圖4所示。

由圖4可知,在SIOC為高,SIOD拉低時(shí),數據傳輸開(kāi)始,SIOD線(xiàn)在SIOC線(xiàn)上的時(shí)鐘的作用下,開(kāi)始傳輸數據。由圖4可知,第一個(gè)傳輸的字節位為0x42(01000010),即OV7670的設備地址,緊接著(zhù)是一個(gè)從設備響應信號ACK。
2.2 圖像壓縮模塊設計
ADV611主要由質(zhì)量窗控制模塊、小波濾波器組、游程編碼和Huffman編碼、I/O接口以及DRAM控制器組成。壓縮編碼時(shí),從它的數字視頻接口接收原始的OV76708位的數字圖像信號,經(jīng)幀抽取和小波變換后得到一系列不同尺度、不同方向的42個(gè)塊信號(Mallat Block),再經(jīng)過(guò)游程編碼和哈夫曼編碼獲得壓縮數據,送入集成于片內的512×32位大小的FIFO緩沖區,一旦FIFO的數據量達到主機在寄存器里的預設值時(shí),ADV611就發(fā)出中斷請求信號,從它與主處理器的接口輸出壓縮數據比特流,解碼時(shí)是相反的過(guò)程。ADV611內部原理框圖如圖5所示。

當圖像從一幅簡(jiǎn)單的圖像切換到含有豐富高頻細節的復雜圖像時(shí),圖像壓縮后比特率就會(huì )發(fā)生很大的變化。為了獲得恒定的壓縮碼率,ADV611在圖像壓縮方面采用了自適應的量化方案。一般情況下,人眼對圖像的高頻部分的敏感度沒(méi)有對低頻部分的敏感度高,所以ADV611對通過(guò)小波變換后得到的42個(gè)Block,根據每個(gè)Block對圖像的重要性不同,采取不同的量化帶寬/量化系數BW(解碼是為RBW),即對不同的寄存器自適應地輸入適當的量化系數,然后經(jīng)過(guò)編碼壓縮得到比較恒定的碼流。對于每一場(chǎng)圖像,ADV611都要單獨地計算其量化系數,但由于前后兩場(chǎng)圖像的相關(guān)性較大,ADV611是將前一場(chǎng)圖像的統計信息傳送到與之相連的FPGA來(lái)計算本場(chǎng)圖像的量化系數。ADV611輸出的前一場(chǎng)圖像的統計信息包括:
①各個(gè)Mallat子塊數據的平方和;
②Y、Cb、Cr各個(gè)分量的和;
③Y、Cb、Cr各個(gè)分量的最大值和最小值;
④前一場(chǎng)圖像壓縮后的數據大小。
ADV611計算量化系數的流程如圖6所示。

其中R0,R1為傳輸信道所允許的最小和最大比特率,壓縮比例Sk為每個(gè)Block的量化系數,最小值為0,最大值為1,BW(bn)為每個(gè)Block的量化系數。在計算Sk時(shí),采用了PID控制算法:
Sk=Err×Kp+Err_int×Ki+Err_dir×Kd (1)
式中,Err為系統實(shí)際輸出與目標輸出的偏差;Kp是比例系數,成比例地反映控制系統的偏差信號;Ki是積分系數,用于消除靜差,提高系統的無(wú)差度;Kd為微分系數,反映偏差信號的變化速率。PID控制將系統偏差通過(guò)線(xiàn)性組合構成控制量,對被控對象進(jìn)行控制。由式(1)可以得到每個(gè)Block的壓縮比例Sk,根據壓縮系數通過(guò)公式(2)和(3)就可以計算每個(gè)Block的量化系數:

結語(yǔ)
本文介紹了基于OV7670和ADV611對磁懸浮試驗線(xiàn)通信基站的實(shí)時(shí)圖像監控系統的設計,并對SCCB總線(xiàn)協(xié)議的實(shí)現和圖像壓縮算法進(jìn)行了分析。實(shí)驗結果表明,解壓后圖像的失真度與壓縮比成負相關(guān),這是由于圖像壓縮時(shí)對圖像進(jìn)行幀抽取和量化系數的截斷所帶來(lái)的。
評論