《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的視頻監(jiān)測系統(tǒng)
基于FPGA的視頻監(jiān)測系統(tǒng)
徐紹劍1, 陳子平2, 劉惠貞3
摘要: 以FPGA為核心芯片的視頻監(jiān)測系統(tǒng),結合MAX+PLUSII介紹了用VHDL進行的FPGA設計,實現對視頻信號的實時監(jiān)測。詳細描述了對圖像靜止的判斷,并指出了在FPGA設計過程中應注意的問題。
Abstract:
Key words :

  摘  要:FPGA為核心芯片的視頻監(jiān)測系統(tǒng),結合MAX+PLUSII介紹了用VHDL進行的FPGA設計,實現對視頻信號的實時監(jiān)測。詳細描述了對圖像靜止的判斷,并指出了在FPGA設計過程中應注意的問題。

    關鍵詞: FPGA  VHDL  視頻監(jiān)測

 

  電視信號質量的優(yōu)劣直接關系到廣大人民群眾的切身利益。電視也是現代化大眾傳媒工具和信息工具,其重要性不言而喻。為了確保電視信號高質量、不間斷地播出,必須對播出質量進行實時監(jiān)測。電視視頻實時監(jiān)測系統(tǒng)就是針對這一目的而設計的。

  實時視頻監(jiān)測系統(tǒng)的主要定性監(jiān)測指標有:“是否藍屏”、“是否黑屏”、“是否無圖像”和“圖像是否出現靜止”等,其中對于“圖像出現靜止”的實時監(jiān)測具有待處理數據量大且判別方式復雜等特點,同時還要保證處理過程的實時性。所以這是實時視頻監(jiān)測系統(tǒng)中的難點,也是本文的重點。本文主要闡述了采用VHDL硬件描述語言對現場可編程門陣列(Field Programmable Gate Array,FPGA)進行設計,實現大數據量高速處理的算法,以達到對圖像靜止實時監(jiān)測的目的。

1 視頻監(jiān)測系統(tǒng)簡介

  系統(tǒng)結構如圖1所示。系統(tǒng)采用Philip公司的視頻A/D芯片SAA7114H,將模擬電視信號轉化為數字信號,同時產生同步信號。用ALTERA公司的ACEX1K系列EP1K30芯片作為控制器進行高速數據的讀寫及比較操作,而以高速SRAM作為存儲器。

 

  視頻信號進入SAA7114H后,可以得到行場同步信號以及量化后的象素值。然后可以在FPGA中,通過判斷有無行場同步信號以得出是否有圖像。還可以通過對YUV值的判斷知道是否為藍屏或是黑屏,也可以將某場象素值保存,并與下一場進行比較,就可以知道是否為圖像靜止。用于比較的門限可以通過8051進行設置,比較的結果送到8051中做進一步的處理。

2  對“圖像靜止”判斷的實現

  分析“圖像出現靜止不動”的特點是:相鄰二場或多場圖像的畫面相同,此時的視頻信號采樣后的相鄰二場中相同點的象素值應該是相近的。所以,只要能判斷出二場象素值是否相近就可以判斷圖像是否靜止。故在系統(tǒng)中,需要將上一場的各點象素值存入SRAM中,并在新一場信號到來時,先讀出SRAM中相應點的數值,進行比較,然后將新的數據存入SRAM,等待下一場數據到來時重復以上動作。

  根據以上的算法,系統(tǒng)需要FPGA產生SRAM地址及讀寫控制信號和比較控制信號,并進行數據的比較。由于待處理數據量大且系統(tǒng)的實時性要求,故對數據的比較以流水方式在時鐘的驅動下按拍分解進行。

2.1 視頻信號采樣

  要實現對模擬電視視頻信號的數字化監(jiān)測,首先要對視頻信號進行數字化處理。這里采用Philips公司的SAA7114H芯片對模擬電視信號進行數字化。SAA7114H具有6路視頻輸入,可以對PAL制、NTSC制和SECAM等制式的全電視信號進行自適應的A/D轉換,輸出格式為Y:U:V=4:2:2的數字視頻碼流,量化后的YUV值與模擬視頻信號亮度及色度的對應關系如圖2所示。在SAA7114H芯片內部集成了抗混迭濾波和梳狀濾波等,可以直接輸出高質量的數字視頻信號。它具有自動的場頻檢測特性,且可以直接從I/O腳輸出場同步信號IGPV、行同步信號IGPH及其時序關系如圖3所示的象素時鐘ICLK,而省去了同步電路的設計。芯片內部鎖相環(huán)技術的集成使得系統(tǒng)的可靠性和穩(wěn)定性均有很大提高。

 

 

  SAA7114H還可以通過對控制字的設置,直接控制行同步的有效時間。這些控制字可以用CPU通過I2C總線進行配置。這樣,可以很方便地避開行消隱期的采樣,而直接對有效數據進行處理。

2.2 FPGA的模塊設計

  本系統(tǒng)的核心控制部分由1片ALTERA公司基于SRAM工藝的ACEX1K系列FPGA實現。它可實現在系統(tǒng)多次編程,特別適合于實驗板和多功能樣機的設計。這里,采用了Top-Down的設計方法,以VHDL語言進行控制部分的設計。下面先根據系統(tǒng)指標要求,將系統(tǒng)的功能細分如下。

  (1)控制信號產生和比較部分

  本模塊產生SRAM的讀寫控制信號nRDOUT、nWROUT和比較時鐘CMPCLK,并且對讀出的數據進行實時比較。其中nRDOUT和nWROUT都必須滿足相應SRAM的時序要求,CMPCLK必須在數據從SRAM讀出并穩(wěn)定之后才可以有動作。為了便于從上層軟件來控制底層硬件的操作,將何時讀SRAM并進行比較的權力交給CPU,由SEL來控制,并且可以在需要時將SRAM中的數據讀入CPU。其控制信號時序如圖4所示。

 

  在CPU需要對數據進行比較時,將數據從SRAM中讀出(nRDOUT低電平有效),并與當前數據進行比較,若二者之差在DIFFERENT內則輸出EN為高電平,否則為低電平。當EN為高電平時,在CMPCLK的上升沿開始計數。數據比較模塊仿真結果如圖5所示。

 

  (2)數據預處理和地址產生部分

  為了使在SRAM的相應地址準確地存入相鄰二場相同位置的象素值,需要慎重對待SRAM地址的產生,且要避免對行消隱期的數據進行處理??梢杂肧AA7114H的控制字來控制IGPH的有效寬度,而讓IPGH、IPGV和ODDEVEN作為使能信號。

  在系統(tǒng)中,SAA7114H輸出的象素時鐘高達27MHz(即周期為37ns),而要在如此短的時間內完成數據的讀寫比較,對SRAM是極大的考驗。但可以采用多通道、多SRAM的方法來降低對單個SRAM的讀寫頻率,不過這樣會大大占用FPGA的I/O口,增加系統(tǒng)的成本。因此在系統(tǒng)中,基于夠用的原則,只對奇場象素中的亮度(Y)進行讀寫比較,這樣數據處理的周期可增加到148ns。該部分的VHDL實現如下:

  ARCHITECTURE behav OF AddrGen IS

              SIGNAL addrclk :STD_LOGIC;

              SIGNAL  temp :INTEGER RANGE 0 TO 3;

              SIGNAL addrtemp:STD_LOGIC_VECTOR

  (18 DOWNTO 0);

  BEGIN

              PROCESS(ICLK,AddrEN)

              BEGIN

                     IF (AddrEN=′0′) THEN//只在IPGH &

             IPGV & ODDEVEN=1時進行操作

                       temp <=0;

                     ELSIF (ICLK′EVENT AND ICLK=′1′) THEN

                       IF (temp=1) THEN

                 //取UYVY格式象素

                 //中的Y值

                            BPD<=IPD;

                       END IF;

                       temp<=temp+1;

                     END IF;

              END PROCESS;

              PROCESS(ICLK,TEMP)

              BEGIN

                     IF (ICLK′EVENT AND ICLK=′0′) THEN

                       IF TEMP=1 THEN  //當象素值為Y值

                     //時,生成地址產生時鐘

                            addrclk<=′1′;

                       ELSE

                            addrclk<=′0′;

                       END IF;

                     END IF;

              END PROCESS;

              PROCESS (addrclk,AddrCLR)//生成Y值保存的地址

              BEGIN

                 IF (AddrCLR=′0′) THEN

                      addrtemp<=(OTHERS=>′0′);

                 ELSIF(addrclk′EVENT AND addrclk=′1′) THEN

                      addrtemp<=addrtemp+1;

                 END IF;

              END PROCESS;

              Yclk<=addrclk;

              ADDRESS<=addrtemp;

    END behav;

  (3)與SRAM的接口

  VHDL在語法上提供了in、out、buffer、inout四種端口形式。buffer端口是會傳遞的,也就是說,與buffer端口相連接的必須還是buffer端口,而in/out端口的信號流向不是很明確。因此通常情況下,只有在與SRAM或CPU的雙向數據線連接時使用in/out端口。要注意的是:在仿真時,in/out端口自動分為in和out端口;在輸入數據時,讓out保持三態(tài),而在要輸出數據時打開,此時需注意要滿足三態(tài)的要求,否則容易出現信號沖突的情況。由于ALTERA公司的器件不支持內部三態(tài),因此內部信號不能賦給高阻,所以建議在底層文件中不要直接使用in/out,而是分別用in和out來實現相同的功能,在頂層文件中用in/out端口或用圖形輸入時直接用bidir即可,如圖6所示。

 

  借助于VHDL語言及其綜合工具,可以不關心具體器件的選擇。但是在系統(tǒng)設計中需要注意,不能僅從軟件的角度來看待VHDL問題。VHDL語句最終是要用硬件實現的,所以應充分考慮到每一條語句在實際中所對應的電路。

3  小  結

  本系統(tǒng)采用專用視頻A/D芯片進行模數轉換,用FPGA作為控制處理器,可以大大提高系統(tǒng)的運行速度,減小電路板的尺寸,降低系統(tǒng)設計的難度,增加系統(tǒng)的可靠性和設計的靈活性。用VHDL語言進行FPGA設計,具有方法簡單、易讀和可重用性強等特點。

  本系統(tǒng)能夠很好地實現對電視視頻的實時定性監(jiān)測。本設計已成功應用于某電視信號監(jiān)測系統(tǒng)中,并取得良好效果。

 

參考文獻

1  Altera Corporation.ACEX1K Programmable Logic Family Data Sheet.2000

2  Philips Semiconductors.SAA7114H Data Sheet.2000

3  黃正瑾,徐堅.CPLD系統(tǒng)設計技術入門與應用.北京:電子工業(yè)出版社,2002

4  曾繁泰,陳美金.VHDL程序設計.北京:清華大學出版社,2001

此內容為AET網站原創(chuàng),未經授權禁止轉載。