- 相關推薦
一種用CPLD實現視頻信號運動檢測的方法
摘要:介紹了一種采用CPLD外加SRAM存儲芯片,對ITU601格式數字視頻信號進行運動檢測的方法。在此基礎上,給出了一個實現這種檢測方法的例子。在這個例子中,用Philips公司的視頻處理芯片SAA7113的輸出信號作為數字視頻源,用Lattice公司的CPLD芯片LC4128V對視頻信號進行運動檢測。在數字錄像、數字監控等領域內,人們通常只對場景內存在的物體運動感興趣。在這種情況下,需要對輸入的視頻信號進行預處理,識別場景中是否存在物體運動,也就是進行運動檢測,然后再決定是否做進一步的處理,例如錄像、報警等。對于錄像系統,通過運動檢測,能夠避免不必要的數字錄像,有效地減少系統所需存儲空間;同時可以加快檢索速度,提高資料有效性。對于監控系統,運動檢測是一種監視場景信息的有效手段。
很多數字視頻信號處理系統通常會選用DSP芯片作為主處理芯片。由于DSP對數字信號的處理是通過編程實現各種算法的,只通過軟件就可以方便地加入某些功能,因此沒有必要添加額外的硬件來完成運動檢測。但是有很多系統,由于各種原因需要選用其它芯片來完成視頻信號的處理,例如華邦的W9968x系列芯片,由硬件完成信號的處理,其算法已經被固化在芯片的內部電路中,不能隨意更改。這一類芯片功能比較單一,但速度快、價格便宜,通?梢宰鳛槟承┫到y的專用芯片。對于這種情況,就需要考慮用另外的方法來實現運動檢測。本文介紹的用CPLD進行運動檢測的方法就是針對這一類情況的。該方法是通過附加一片CPLD芯片和一片SRAM芯片構成一個低成本的運動檢測模塊的。
1 運動檢測原理
運動檢測的實現方法有硬件實現的也有軟件實現的,但基本思想大同小異,都是對相隔一定時間的兩幀視頻數據進行抽樣,并對抽樣數據進行比較,如果比較結果顯示這兩幀數據存在比較大的差異,那么就認為數據輸入場景中存在物體的運動,反之就認為沒有運動存在。
本文介紹的用CPLD實現運動檢測的方法也是基于這種思想,但和一般的實現方法有所不同,其實現方法有一定的特色。
通常情況下,在實現上述思想的過程中,需要兩個緩存區分別存放兩幀抽樣數據,然后對這兩幀數據進行比較并對比較結果進行統計,最后得出比較結果。這樣做需要較大的SRAM作為緩存,而且往往需要單片機或者DSP對CPLD進行控制,并將其作為兩幀數據的比較器。這樣,運動檢測模塊的獨立性會受到限制,而且CPLD的功能只是一個抽樣控制器。
本文提出的方法只對一幀抽樣數據進行緩存,在對第二幀數據進行抽樣時讀取第一幀中與此刻抽樣的數據相對應的緩存數據,并將兩者進行比較,用一個計數器記錄比較結果,如果差值超過閾值,計數器加一,否則不加。當這個計數值超過某一個規定數值的時候,就認為輸入視頻數據中存在著物體運動。這樣做的好處是需要的緩存區較小,而且CPLD可以單獨對數據進行處理,提高運動檢測模塊的獨立性,運動檢測模塊可以單獨調試。
2 用CPLD實現運動檢測
下面通過實例說明用CPLD實現運動檢測的過程,并給出部分VHDL程序。在這個實例中,模擬視頻信號從CCD攝像頭輸入,經過SAA7113芯片預處理后,輸出數字視頻信號。該信號分作兩路:一路輸入到CPLD進行運動檢測,另一路則輸入到芯片W99682,對信號進行JPEG壓縮等進一步處理。
示例中用到的CPLD是Lattice公司的LC4128V-75T100C,它具有128個宏單元、7.5ns的延時。SRAM芯片是ISSI公司的63LV1024,其容量為128K×8bit,具有10ns的延時。CPLD檢測到運動后,通過中斷,要求W99682對信號做進一步處理。其系統結構圖如圖1(省略了部分與運動檢測無關的元件)所示。
2.1 SAA7113的輸出信號
SAA7113是Philips公司推出的一款功能強大的視頻信號預處理芯片,最基本的功能是模/數轉換,輸出的數字視頻信號符合ITU601標準。ITU601是長寬比為4?3和16?9的數字電視信號標準,它對數字電視信號的各項參數進行了詳細的描述和規范。在我國,通常采用的都是4?2?2采樣格式、PAL制式、長寬比為4?3的數字電視信號。SAA7113的輸出信號就是指這一格式的信號。這種格式信號的主要特征是:
(1)有三個正交分量:亮度分量Y、色度分量Cb和Cr。
(2)25幀/秒的幀率,每幀兩場,每幀掃描625行。
(3)對于亮度分量Y,每行抽樣864次,對于色度分量Cr和Cb,每行抽樣432次。
(4)8bit或者10bit的PCM編碼。
(5)量化:0和255用于同步;1到254表示抽樣結果的PCM碼;對于亮度分量Y,16表示黑色,235表示白色;對于色度分量Cb或者Cr,128表示沒有色度。
(6)有三個信號用于同步輸出數據:行同步信號SHS(15.6kHz)、場同步信號SVS(50Hz)和象素數據同步信號SPCLK(27MHz)。
包括消隱期在內,每幀數據掃描625行,每行抽樣864個象素,因此總的分辨率是864×625。一幀數據分作奇偶兩場,從上一幀的624行到本幀的310行是奇場,其中上幀624行到本幀22行是奇場消隱期,從23行到310行是奇場有效行;從本幀311行到623行是偶場,其中311到335行是偶場消隱期,336到623行為偶場有效行。圖2是一幀的示意圖。
對于幀內的每一行,共有864個象素,其中從第0個到第719個為有效象素,共計720個,從720個到863個為消隱期象素。每個象素都抽。俜至,每兩個象素則抽取一個Cr和一個Cb分量。圖3是幀內一行以及象素抽樣數據排列格式的示意圖。表格第一行是亮度分量Y,第二行是色度分量Cr,第三行是色度分量Cb。
2.2 抽樣
從SAA7113視頻輸出數據格式的介紹可以看到,保存完整的一幀數據(包括消隱期數據在內)需要864×625×2=1.08×106Byte的SRAM,需要1M以上的存儲空間,這顯然是不可取的,必須對幀數據進行抽樣。本文介紹的方法的抽樣規則如下:
(1)抽取一幀數據的奇場或者偶場。做比較的兩場抽樣數據必須
【一種用CPLD實現視頻信號運動檢測的方法】相關文章:
用CPLD實現單片機讀寫模塊03-20
專用鍵盤接口芯片的一種CPLD實現方案03-18
基于CPLD的RS485通信實現方法研究03-07
一種Flyback軟開關實現方法03-18
一種檢測轉子位置的可靠方法03-07
Boost電路的一種軟開關實現方法03-18
換體DMA高速數據采集電路的CPLD實現03-18
在CPLD管理下實現高效多串口中斷源03-19