?

基于SOPC的實時圖像存儲系統的設計

2009-01-20 02:08聶孟慶
中國集成電路 2009年10期

聶孟慶 余 愚

摘要:基于目前實時圖像存儲的解決方案研究的現狀與發展趨勢,本文研究了基于SOPC技術的實時圖像存儲設計方案。使用ALTERA公司的Nios II軟核處理器作為總控制器,采用CCD傳感器加ADV7181B視頻解碼芯片進行實時圖像數據采集,SDRAM用來存放實時圖像數據與程序,VGA控制器控制實時圖像顯示。

關鍵詞:片上可編程系統;實時圖像;視頻解碼;同步動態隨機存儲器

1引言

隨著高速圖像處理技術的應用領域不斷擴大,對圖像處理速度的要求也越來越高,當前基于軟核處理器的圖像處理系統成為研究的熱點。微電子技術的迅猛發展為高速圖像處理系統提供了硬件基礎,其中內嵌軟核處理器的現場可編程門陣列 (FPGA)滿足了圖像處理系統中對速度、集成度、可靠性的要求。FPGA的應用越來越廣泛,大容量高速度的FPGA以及SOPC技術的出現,為圖像采集和處理提供了一種新的解決方案,使用FPGA來構建基于片上可編程系統(SOPC)的圖像處理系統,充分利用SOPC Builder中自帶的各種IP核控制器,減少底層硬件的開發[1,2],已成為一種趨勢。

2系統基本架構

圖1為基于SOPC的實時圖像處理系統的基本架構,視頻解碼芯片ADV7181B首先對CCD攝像頭

所采集的信號進行A/D轉換,轉換為YUV空間格式數據,然后再將YUV空間轉換到RGB空間;FPGA通過I?C配置模塊核對視頻解碼芯片ADV7181B進行參數配置, ADV7181B的時鐘信號由一片27MHz的晶振提供,產生內部所需的27MHz的LLC(行鎖定系統時鐘)信號。通常使用二分頻信號LLC2(13.5MHz)來同步整個圖像采集系統,輸出8位標準的ITU656 YUV4:2:2格式的數據;A/D轉換后的數據通過SDRAM控制器存儲到SDRAM中;VGA顯示模塊是用來將SDRAM中的視頻數據通過VGA顯示器實時顯示出來。

3 視頻解碼芯片的I2C總線配置

為了控制總線上的設備,必須要遵守一個特定的協議(I2C總線協議)。I2C總線為同步傳輸總線,總線信號完全與時鐘同步。I2C總線上與數據傳輸有關的信號有起始信號S、終止信號P、應答信號以及位傳輸信號。首先,I2C總線控制器發起一個數據傳輸的起始條件是:SCLK信號保持高電平,而SDA信號由高電平變為低電平。這意味著一個地址或者數據流傳輸已經開始。外圍設備都監視著SCLK和SDA信號并等待著起始條件及正確的地址。起始條件滿足后,就會送出一個8位的設備地址,所有的外圍設備開始相應起始條件并轉換下一個8位寄存器地址(7位地址+1位讀寫位)。在發送時由高位到低位依次傳輸。外圍設備識別出傳輸地址后作出反應,在第九個時鐘脈沖把數據線變為低電平,這被視為一個確認位。此時其他所有設備退出總線并使總線保持閑置狀態,設備監視SCLK和SDA,等待起始條件并等待爭取的傳輸地址的時刻即為閑置狀態。接下來開始將8位數據寫入或者讀出寄存器,讀寫位決定了數據的傳輸方向。當時鐘線SCLK為高電平,而數據線SDA由低電平變為高電平時,表示一次數據傳輸完成,停止I2C總線,等待下一次的傳輸開始。圖2為I2C總線的數據傳輸時序圖[4]。

ADV7181B內部共有240個控制寄存器,可通過配置這些控制寄存器來設定和實現ADV7181B的各種功能。由于ADV7181B輸出8位ITU656 YUV4:2:2格式的數字視頻信號,在此要求下,只要對ADV7181B的40個寄存器的內容進行配置即可,這40個寄存器的地址和配置數據如表1所示。

配置數據存儲在查找表LUT_DATA中,LUT-DATA為16位,包括了ADV7181B的寄存器地址和寄存器數據,配置時逐個寫入寄存器的值,寄存器索引代碼為LTU_INDEX。每個寄存器配置分三步,使用mSetup-ST來表示當前進行到哪一步。第一步準備數據,將8位從設備地址與存儲在LTU_DATA中的寄存器地址合并為24位數據,并將mI2C_GO設置為1,啟動I2C傳輸;第二步檢測傳輸結束信號,如果檢測到傳輸結束(此時mI2C_END=1),但ACK信號不正常,重新發送數據;如果檢測到傳輸結束且ACK信號正常,則進入第三步,將寄存器索引加1,準備下一次數據的傳輸。

在SOPC Builder自帶的IP核庫中并沒有I?C配置模塊IP核,此模塊是根據ADV7181B芯片的寄存器特點以及功能要求自行設計,并以IP核的形式通過Avalon總線鏈接到SOPC系統上。

4視頻解碼

CCD攝像頭采集到的數據經過視頻解碼芯片進行A/D轉換后,輸出8位YUV 4:2:2格式視頻數據流,然后經過視頻解碼模塊將其轉換為ITU656標準的視頻數據流,這些信號包括8位的視頻圖像數據,行同步信號,場同步信號以及行參考信號。PAL制式下,每秒掃描25幀,每幀包含奇偶兩場圖像。每幀圖像含有625行數據,其中有效圖像數據576行,奇偶場各288行,23~311行是偶場視頻數據,336~624行是奇場視頻數據,每行圖像數據包含720個像素,故標準的數字化PAL制式電視標準分辨率為720*576。在27MHz時鐘頻率下,意味著每秒27MB的數據速率:(13.5*8+6.75*8*2)Mbit/s=27MB/s=625*25*1728,即每行有1728字節的數據,其傳輸順序為:CbYCrYCbYCrY………,需要指出的是CbYCr指的是對同一個地址進行的亮度和色差采樣,接下來的Y對應下一個亮度采樣。

圖3為ITU656標準的每行數據結構,每行數據包含水平控制信號和YCbCr視頻數據信號。每行開始的288字節為行控制信號,開始的4字節為EAV信號(有效視頻結束),緊接著是280個固定填充數據,最后是4字節的SAV (有效視頻起始) 信號。SAV和EAV信號有3字節的前導:FF、FF、00;最后1字節XY表示該行位于整個數據幀的位置及如何判定SAV、EAV[5]。由SDRAM的工作特性可知,只在每個時鐘周期的上升沿讀取視頻解碼芯片傳過來的視頻數據。當偵測到連續三個字節為FF0000時,可知SAV或EAV的到來,接著判斷第四個字節的第四位,如果為0即表示有效數據的開始,此時啟動行列計數器,開始對接下來的圖像數據進行解碼,然后根據每個8位數據自身的信息,得到Y、Cb和Cr分量的值。

5SDRAM存儲器設計

因為實時圖像處理系統要進行大批量的高速圖像數據采集,對數據的速度要求比較高,而且數據量比較大,在此采用ICSI公司的數據寬度為8位、存儲容量為32MB的 IS42S83200B SDRAM來存儲數據,它與FPGA的連接關系如圖4所示[1]。

經過視頻解碼后輸出8位的ITU656 YUV4:2:2格式的視頻數據,由于SDRAM位寬同樣為8位,因此可以將亮度信號Y和色差信號Cb與Cr分別單獨存儲到一個地址空間中,相當于一個采樣周期產生一個SDRAM地址。另外,由于VGA的顯示分辨率為640*480,則必須要提取出適合VGA的分辨率的圖像。從PAL制式有效分辨率中提取出640*576有效分辨率圖像數據存儲到SDRAM地址空間中,然后從中讀取480行送給VGA控制器即可。

5.1 SDRAM控制器的設計

SDRAM是同步動態隨機存儲器,同步是指與系統時鐘同步,從而避免了不必要的等待周期,減少數據存儲的延遲時間。動態是指為了提高存儲容量,SDRAM芯片采用硅片電容存儲信息,但是必須要不斷地給電容充電才能保持數據信息不丟失。SDRAM的主要信號有控制信號(CS片選信號,CKE時鐘使能信號,DQM輸入輸出使能信號,CAS、RAS、WE讀寫控制命令字),地址信號(BA0和BA1頁地址選擇信號,A0~A12地址信號,行列地址選擇信號),數據信號(DQ0~DQ15雙向數據)。這些信號均為系統時鐘同步輸入、輸出信號。上電后,SDRAM控制器必須對SDRAM進行初始化操作,然后SDRAM進入正常工作狀態,等待控制器進一步的讀寫和刷新操作指令。SDRAM的所有的操作都是在指令的引導下進行的,基本命令如表2所示。

具有Avalon接口的SDRAM控制器IP核包含在SOPC Builder中,它為片外SDRAM提供一個Avalon從接口,可以比較方便的在FPGA中定制一個與SDRAM芯片連接的系統。SDRAM控制器IP核可以根據實際使用的SDRAM芯片進行相應的配置[3]。

5.2隔行掃描轉換為逐行掃描

由于PAL制電視信號是隔行掃描, 將一幀圖像分為奇數場和偶數場分別掃描,數字化以后格式仍然不變,而VGA采用的是逐行掃描方式。因此,在將數據存儲到SDRAM以前,還需要將奇數場和偶數場的數據再還原成一幅完整的圖像,將隔行掃描變為逐行掃描。具體實現過程為:設計一個行計數器,在進行奇數場數據采集時,從0開始計數,每次加2,計數值依次為0,2,4,…,572,574;當進行偶數場數據采集時,從1開始計數,每次加2,計數值依次為1,3,5,…,573,575,該計數器實際上就相當于SDRAM地址發生器。當VGA控制器從SDRAM中讀取數據時,只需按順序讀取地址讀取出所需的480行即可,這樣讀取出來的數據就是一幀完整的適合VGA顯示的圖像。

6VGA顯示

VGA控制器IP核集成在SOPC Builder中,可以根據系統具體情況進行定制。VGA控制器發出讀有效信號到SDRAM中,SDRAM將視頻數據傳給MUX,通過轉換模塊將YUV4:2:2格式的視頻數據流轉換為YUV4:4:4格式的視頻數據,使得每個像素都包含完整的亮度分量Y、色度分量Cb和Cr,然后將YUV4:4:4格式的視頻數據通過YCbCr-RGB模塊由 YUV空間轉換到RGB空間,再將RGB空間數據傳送給VGA控制器,VGA控制器同時產生VGA的行場同步信號VGA_HS和VGA_VS會同24位RGB數據一起傳送到視頻編碼芯片VGA DAC7123中,最后通過顯示器將圖像實時顯示出來[6]。

7結束語

本文重點介紹了基于SOPC技術實時圖像的數據存儲。系統各模塊主要使用了SOPC Builder自帶的IP核進行定制,由于IP核具有非常靈活的可定制特性和可移植特性,使得工作重心轉移到系統設計方面,而不再是各模塊編寫方面,改變了傳統的設計思路。本系統的實現是基于DE2-70多媒體開發實驗板,經過驗證,該方案充分保證了各模塊之間的協調性與并行性,較好的實現了實時圖像數據處理所要求的實時性、高速性,另外也充分體現了SOPC系統的高集成度、低功耗以及靈活高效的特點。在本系統基礎上,可以進一步展開模式識別、運動目標檢測以及視頻圖像壓縮等方面的研究。

參考文獻

[1] 李蘭英等.Nios II嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.

[2] 侯建軍,郭勇.SOPC技術基礎教程[M].北京:清華大學出版社,北京交通大學出版社,2008.

[3] 王誠,吳繼華等.Altera FPGA/CPLD設計(基礎篇&高級篇)[M].北京:人民郵電出版社,2005.

[4] Multiformat SDTV Video Decoder ADV7181B datasheet[Z].Analog Devices Ltd,2004.

[5] 祝長峰,肖鐵軍. 基于FPGA的視頻圖像采集系統的設計[J].計算機工程與設計,2008,29(17):4404~4407.

[6]DE2-70 User Manual Version 1.01[Z]. Terasic Technologies Ltd,2007.

作者簡介

聶孟慶,碩士研究生,主要研究方向為計算機視覺與模式識別;

余愚,教授,主要研究方向計算機視覺與智能控制。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合