畢業(yè)論文:基于fpga的視頻圖像分割技術—系統(tǒng)設計
題目:基于fpga的視頻圖像分割技術—系統(tǒng)設計
院(系) 信息科學與工程學院
專 業(yè) 電子信息工程
屆 別 2012屆
摘 要
隨著多媒體技術的發(fā)展 ,視頻圖像得到了廣泛應用. 而視頻分割技術更是為視頻理解、視頻編碼等領域廣泛應用. 所謂視頻分割就是把視頻中重要的或人們感興趣的物體或對象 (Video Object, VO)與背景分割開來 ,或者說就是要劃出分別具有一致屬性的一個個區(qū)域 ,同時區(qū)分背景區(qū)域和前景區(qū)域.早期的多畫面分割器設計使用了很多的模擬器件,這時的電路開發(fā)周期長,產品的調試,修改升級比較困難,成本較高。在這里采用FPGA芯片,完成圖像的處理和硬件電路各個部分工作的協(xié)調,從而提高系統(tǒng)的集成度和性能。
本
論文首先根據(jù)視頻信號的處理過程和典型視頻圖像處理系統(tǒng)的構成提出了基于FPGA的視頻圖像處理系統(tǒng)總體框圖,主要由視頻信號輸入模塊,視頻信號處理模塊和視頻信號輸出模塊3個部分組成。然后分別具體介紹每個模塊的結構功能:視頻輸入模塊采用視頻解碼芯片AD9983A將采集的多路模擬視頻信號轉換成8位RGB數(shù)字信號送到FPGA,實現(xiàn)高分辨率視頻圖像的采集;視頻處理模塊主要由Lattice公司的 ECP2M系列LFE2M20SE芯片完成,根據(jù)需要對輸入的數(shù)字視頻信號進行處理,完成視頻信號的分割與合成;視頻輸出模塊將 FPGA 處理后的信號經過ch7301視頻編碼芯片驅動輸出到顯示器。
圖像分割算法繁多,運動圖像的分割可先分解為一幀幀圖像,然后利用時-空圖像的灰度和梯度信息進行分割。本文利用MAILAB,實現(xiàn)了簡單背景下一幀圖像的分割。
關鍵詞:現(xiàn)場可編程邏輯門陣列;視頻信號;圖像分割與合成
ABSTRACT
With the development of multimedia technology, video is widely used. And video segmentation technology has a e*tensive use in the field of video understanding, and video coding applications .Video segmentation is to separate the mportant or interesting object ( Video Object, VO ) in the video from background.. Or that is to divide areas with the same attribute , and distinguish background and foreground regions . Early divider design use a lot of analog circuit, development cycle is very long . It is difficult for product to test and modify to upgrade . Cost is high. Here the FPGA chip help complete image processing and coordinate the hardware circuit ,so as to improve the system integration and performance.
In this paper according to the video signal processing and typical video signal image processing system,I design a video image processing system diagram which is based on FPGA.It mainly consists of input modular,a video signal processing modular and the video signal output modular. Then introducing structure and function of each modular. The video input modular uses AD9983A video decoder chip to collect the analog video signal and convert it into a 8 bit RGB digital signal for FPGA, achieving
high video signal capture resolution; Video processing modular is mainly composed of LFE2M20SE chip which belong to Lattice companys ECP2M series, completing video signal segmentation and synthesis to meet the need of digital video signal processing; Video output modular send the signal after FPGA processing to ch7301,
and drive the output to a monitor.
There are a lot of Image segmentation algorithm. Segmentation
……(新文秘網http://120pk.cn省略3976字,正式會員可完整閱讀)……
176 144 25344
計算機圖形 QVGA 320 240 76800
廣播 CIF 352 288 101376
計算機圖形 VGA 640 480 307200
廣播 NTSC 720 480 345600
廣播 PAL 720 576 414720
計算機圖形 SVGA 800 600 480000
計算機圖形 *GA 1024 768 786432
廣播 HDTV 1280 720 921600
計算機圖形 S*GA 1280 1024 1310720
計算機圖形 U*GA 1600 1200 1920000
計算機圖形 Q*GA 2048 1536 3145728
表1 常見的屏幕分辨率和幀率的比較
隔行掃描方式源于早期的模擬電視廣播技術, 這種技術需要對圖像進行快速掃描,以便最大限度地降低視覺上的閃爍感,但是當時可以運用的技術并不能以如此之快的速度對整個屏幕進行刷新。于是,將每幀圖像進行“交錯”排列或分為兩場,一個由奇數(shù)掃描線構成, 而另一個由偶數(shù)掃描線構成。
NTSC/(PAL)的幀刷新速率設定為約 30/(25)幀/秒。于是,大片圖像區(qū)域的刷新率為 60(50)Hz,而局部區(qū)域的刷新率為 30(25)Hz,這也是出于節(jié)省帶寬的折中考慮,因為人眼對大面積區(qū)域的閃爍更為敏感。
隔行掃描方式不僅會產生閃爍現(xiàn)象,也會帶來其它問題。例如,掃描線本身也常?梢姟R驗 NTSC 中每場信號就是 1/60s 時間間隔內的快照,故一幅視頻幀通常包括兩個不同的時間場。當正常觀看顯示屏時,這并不是一個問題,因為它所呈現(xiàn)的視頻在時間上是近似一致的。然而,當畫面中存在運動物體時,把隔行場轉換為逐行幀(即解交織過程),會產生鋸齒邊緣。解交織過程非常重要,因為將視頻幀作為一系列相鄰的線來處理,這將帶來更高的效率。
隨著數(shù)字電視的出現(xiàn),逐行(即非隔行)掃描已經成為一種具有更高圖像品質的流行的輸入和輸出視頻格式。在這種方式下,整幅圖像將從上到下依次刷新,其掃描速率約為相應隔行系統(tǒng)的掃描速率的兩倍, 這消除了隔行掃描產生的許多弊病。在逐行掃描中,由兩場信號來表示一幀視頻的方式不再使用。
1.1.3視頻編碼格式ITU‐R BT.601 和 ITU‐R BT656。
每個 BT.601 像素分量(Y、Cr 或 Cb)被量化為8或者10 bit 信息,NTSC 和PAL的有效視頻畫面中每行有 720 個像素。不過,它們在垂直分辨率方面存在差異。30 幀/s 的 NTSC 有 525 行(線)(包括垂直消隱或者回掃區(qū)),而PAL 有625 行線,25 幀/s 。
ITU-R BT.656 (前 CCIR-656) BT.601規(guī)劃了對視頻進行數(shù)字編碼的方法, 而BT.656則實際定義了實施BT.601所必需的物理接口和數(shù)據(jù)流。它同時定
義了位并行和位串行模式。位并行模式只需要27MHz的時鐘(在NTSC 30 幀/s條件下)以及8或10條連線(具體取決于像素的分辨率)。所有的同步化信號都嵌入到數(shù)據(jù)流中,因此無需額外添加硬件連線。
圖1.1示出了ITU-R BT. 656中分別針對525/60 (NTSC) 和625/50(PAL) 系統(tǒng)的幀劃分方法的特性 。
行數(shù) F V H H
1-3,
311-312 1 1 1 0
23-310
264-282 0 1 1 0
20-263 0 0 1 0
283-525 1 0 1 0
垂直消隱
場1 有效視頻
垂直消隱
場2 有效數(shù)據(jù)
525
垂直消隱
場1 有效視頻
垂直消隱
場2 有效數(shù)據(jù)
垂直消隱
行數(shù) F V H H
1-22,
266-282 0 1 1 0
4-19 0 0 1 0
313-315
624-625 1 1 1 0
336-623 1 0 1 0
1
圖1.1 ITU-RBT.656幀劃分
在BT.656標準中,水平(H) 、垂直(V)和場(F)信號作為嵌入到視頻數(shù)據(jù)流中的一串字節(jié)來發(fā)送,這一串字節(jié)構成了一個控制字。有效視頻起點(SAV)和有效視頻終點(EAV)信號指示了每行讀入的數(shù)據(jù)單元的開始和結束。SAV出現(xiàn)在H發(fā)生1-0切換時,EAV出現(xiàn)在H發(fā)生0-1切換時。 整個視頻場由有效的視頻+水平消隱(EAV和SAV代碼之間的空間)以及垂直消隱(V=1的空間)組成。
視頻的場從F位的切換開始。 “奇數(shù)場”由F=0表示,而F=1則表示偶數(shù)場。逐行掃描的視頻并不區(qū)分場1和場2, 而隔行掃描的視頻則要求專門對每個場進行獨立的處理,因為每個場交替的掃描行組合起來最終形成實際的視頻圖像。
8-bit Data 10-bitData
D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
Preamble 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Control Byte 1 F V H P3 P2 P1 P0 0 0
表2更為詳細地示出了SAV和EAV代碼。請注意,視頻數(shù)據(jù)有一個由三個字節(jié)構成的前導碼(8bit視頻是0*FF, 0*00,0*00,,而10bit視頻則是0*3FF, 0*000, 0*000),后面跟隨著*Y狀態(tài)字,這個字除了包含F(xiàn)(場), V(垂直消隱) 和 H (水平消隱)位之外,還包含了4個保護位,以實現(xiàn)單位錯誤的檢測和糾正。請注意,F(xiàn)和V只能作為EAV序列的一部分來變化(即,從H = 0切換到H = 1)。請注意,對于10bit視頻來說,增加的兩位實際上是最低位,而不是最高位。
表2 SAV/EAV前導碼
•F = 0 ,場 1 •F = 1, 場 2
•V = 1 垂直消隱期間 •V = 0 未在垂直消隱期內
•H = 0 SAV •H = 1 EAV
•P3 = V *OR H •P2 = F *OR H
•P1 = F *OR V •P0 = F *OR V *OR H
1.1.4視頻信號的處理過程
一幅平面圖像可以看成是由許許多多的小單元組成,在圖像處理系統(tǒng)中,這些組成畫面的細小單元稱為像素。像素越小,單位面積上的像素數(shù)目就越多,由
其構成的圖像就越清晰。電視系統(tǒng)中把構成一幅圖像的各像素傳送一遍稱為進行了一個幀處理,或稱為傳送了一幀。將組成一幀圖像的像素,按順序轉換成電信號的過程稱為掃描。在PAL制中,圖像掃描是隔行的,即一幀圖像分兩次掃描,
掃描到的兩幅圖像分別稱作奇數(shù)場和偶數(shù)場。視頻圖像信號的處理過程就是拍攝視頻信號的逆過程。攝像頭輸出的是標準PAL制電視信號。攝像頭通過光電轉換實現(xiàn)圖像到視頻信號的轉換,也就是掃描的過程。攝像頭每掃描一行圖像,加入一個行脈沖,每掃描完一場圖像加入一個場同步信號。同時為了保證掃描逆程光柵不顯示,應加入和同步信號同周期的消隱信號。對視頻信號進行處理,需要先進行A/D轉換、行/場同步信號的分離等步驟。采用專用的視頻信號進行轉換,然后再啟用工具處理數(shù)字圖像信號并得到需要的結果。最后將結果用適當?shù)姆绞竭M行傳輸。
視頻信號處理流程如下圖1.2所示。
圖1.2 視頻信號處理基本流程
PAL制電視信號轉化為數(shù)字視頻信號后,控制信號有三個:場參考電壓信號VREF,行參考電壓信號HREF,奇偶場信號ODD。VREF高電平表示有效圖像信號。ODD信號高電平表示為奇數(shù)場,低電平表示偶數(shù)場。H REF信號表示一行有效的圖像數(shù)據(jù),一行圖像數(shù)據(jù)包括720個像素。
1.2視頻圖像分割處理系統(tǒng)設計
系統(tǒng)結構如圖1.3所示,從系統(tǒng)結構圖可以看出,系統(tǒng)主要包括視頻信號輸入模塊,視頻信號處理模塊和視頻信號輸出模塊等3個部分組成。各個模塊主要功能為:視頻輸入模塊將采集的多路視頻信號轉換成數(shù)字信號送到FPGA;視頻處理模塊主要由FPGA完成,根據(jù)需要對輸入的數(shù)字視頻信號進行處理;視頻輸出模塊將FPGA處理后的信號輸出到顯示器。
實際電路板如下圖所示:
第二章 具體電路設計分析
2.1視頻源
本電路由兩個VGA接口輸入模擬視頻信號,VGA接口是一種D型接口,上面共有15針空,分成三排,每排五個。VGA接口是顯卡上應用最為廣泛的接口類型,
多數(shù)的顯卡都帶有此種接口。接口實物圖及引腳定義如表1所示:
管腳 定義
1 紅基色red
2 綠基色green
3 藍基色blue
4 地址碼ID Bit(也有部分是RES,或者為ID2顯示器標示位2)
5 自測試(一般為GND)
6 紅地
7 綠地
8 藍地
9 保留
10 數(shù)字地
11 地址碼(ID0顯示器標示位0)
12 地址碼(ID1顯示器標示位1)
13 行同步
14 場同步
15 地址碼(ID3顯示器標示位3)
模式 場掃描時序
刷新速率 像素時間 場周期 同步脈沖 后肩 有效時間 前肩
Pi*
width Frame
period Sync
pulse Back
porch Active
time Front
porth
O P Q R S
Hz us us lin us lin us lin us lin us lin
640*480 60 0.039683 16667 525 63 2 952 30 15365 484 286 9
640*480 72 0.032103 13889 520 80 3 694 26 12927 484 187 7
720*400 70 0.035352 14286 449 64 2 1018 32 12854 404 350 11
720*350 70 0.035352 14286 449 64 2 1814 57 11263 354 1145 36
800*600 56 0.027902 17857 625 57 2 571 20 17257 604 - -1
800*600 60 0.025132 16667 628 106 4 557 21 16030 604 - -1
800*600 72 0.020052 13889 666 125 6 438 21 12596 604 730 35
640*480 75 0.031746 13333 525 51 2 762 30 12292 484 229 9
640*480 66 0.033403 15152 525 87 3 1068 37 13968 484 29 1
模式 行掃描時序
分辨率 刷新
速率 像素
時間 行周期 同步脈沖 后肩 有效時間 前沿
A B C D E
Hz us us pi* us pi* us pi* us pi* us pi*
640*480 60 0.039683 31.75 800 3.81 96 1.786 45 25.635 646 0.516 13
640*480 72 0.032103 26.71 832 1.28 40 4.013 125 20.738 646 0.674 21
720*400 70 0.035352 31.82 900 3.82 108 1.803 51 25.666 726 0.530 15
720*350 70 0.035352 31.82 900 3.82 108 1.803 51 25.666 726 0.530 15
800*600 56 0.027902 28.57 1024 2.01 72 3.488 125 22.489 806 0.586 21
800*600 60 0.025132 26.54 1056 3.22 128 2.136 85 20.256 806 0.930 37
800*600 72 0.020052 20.85 1040 2.42 120 1.223 61 16.162 806 1.063 53
640*480 75 0.031746 25.40 800 3.05 96 1.429 45 20.508 646 0.413 13
640*480 66 0.033403 28.86 864 2.14 64 3.106 93 21.578 646 2.038 61
下面選一種最常用的VGA(640*480,60 Hz)圖像格式的信號時序來分析解釋:
(1)場掃描(又稱為“垂直掃描” )周期
場掃描周期TVSYNC是指顯示器掃描一幀完整畫面需要的時間。該周期通過Vsync場同步信號來同步。每場有一個低電平場同步脈沖,該脈沖的寬度tWV=63μs(2行)。場周期=1s/60hz=16.683ms,每場525行(line)。其中480行(有些資料為484行)為有效顯示行,45行(有些資料為41行)為場消隱期。場消隱期包括場同步時間(低電平場同步脈沖)tWV(2行)、場消隱前肩(又稱“前沿”)tHV(13行)(有些資料為9行)、場消隱后肩(又稱“后沿”)tVH(30行),共45行。
(2)行掃描(又稱為“水平掃描”)周期
行掃描周期THSYNC是指顯示器掃描一行需要的時間。該周期通過Hsync行同步信號來同步。每行有一個低電平行同步脈沖,該脈沖的寬度tWH=3.81μs(96像素)。行周期=16.683ms/525行=31.78μs,每行800像素(pi*)。其中640像素(有些資料為646像素)為有效顯示區(qū),160像素(有些資料為154像素)為行消隱期。行消隱期包括行同步時間(低電平行同步脈沖)tWH(96像素),行消隱前肩(又稱“前沿”)tHC(19像素)(有些資料為13像素)和行消隱后肩(又稱“后沿”)tCH(45像素),共160像素。
(3)復合消隱信號
復合消隱信號是行消隱信號和場消隱信號的邏輯與,在有效顯示期復合消隱信號為高電平,在非顯示區(qū)域它是低電平。
2.2視頻輸入模塊
2.2.1 模數(shù)轉換器AD9983
2.2.1.1主用芯片簡介
AD9983(以下簡稱AD,如圖2.1)為美國Analog Devices公司生產的3路8位模數(shù)轉換器件,最大轉換率達170MS/s(百萬次采樣/每秒),多用于捕獲個人計算機或
工作站的RGB信號。近年來,在視頻信號處理領域得到廣泛的應用。AD內含60個寄存器00H-3CH,用來對AD進行初始化和控制。針對不同的應用環(huán)境,這些寄
圖2.1 AD9983
存器需寫入相應的值,才能使AD正常工作。AD的初始化是其工程應用的前提。AD初始化過程依靠AD9983的SDA(Pin 66)和SCL(Pin67)引腳進行,時序符合I2C總線的時序標準。我們可直接采用帶有I2C總線接口的單片機對AD進行初始化,但是目前帶有I2C總線接口的單片機數(shù)量較少并且價格普遍較高。對于不帶I2C總線接口的單片機,我們可以采用模擬I2C總線技術使用其普通I/O口來模擬I2C總線時序,實現(xiàn)對外圍器件的讀、寫操作。
2.2.1.2 、I2C總線傳輸協(xié)議簡介
I2C是Philips公司推出的芯片間串行傳輸總線,以兩根連線(SDA和SCL)即可實現(xiàn)完善的全雙工同步數(shù)據(jù)傳送,具有規(guī)范完整、結構獨立和使用簡單等特點。I2C總線的時鐘線SCL和數(shù)據(jù)線SDA均為雙向傳輸線。數(shù)據(jù)線上每傳輸一位數(shù)據(jù)都要求時鐘線上有1個時鐘脈沖與其相對應。
I2C總線數(shù)據(jù)傳送包括三種重要的時序狀態(tài)起始信號、終止信號和應答信號:
起始信號:在時鐘線保持高電平期間,數(shù)據(jù)線出現(xiàn)由高電平向低電平變化時啟動I2C總線;
終止信號:在時鐘線保持高電平期間,數(shù)據(jù)線出現(xiàn)由低電平向高電平變化時停止I2C總線;
應答信號:I2C總線數(shù)據(jù)傳送時,每傳送一個字節(jié)數(shù)據(jù)后都必須有應答信號,應答信號在第9個時鐘位上出現(xiàn),接收器輸出低電平為應答信號(A),輸出高電平則為非應答信號(/A)。
2.2.1.3、AD進行初始化
采用單片機MSP430F135對AD進行初始化,必須解決以下幾個問題:首先是產生I2C總線的時鐘信號;其次是實現(xiàn)I2C總線的開始信號、停止信號、位傳輸信號和判斷應答信號;再次是要確定AD9983A不同寄存器的設置數(shù)據(jù)。
1、I2C總線時鐘的產生
一般情況下,F(xiàn)PGA的時鐘頻率較高,常為幾十MHz,而I2C總線的時鐘頻率為幾百kHz,用圖2.2的方式可借助于FPGA的時鐘獲得I2C總線的時鐘。需要說明的是,圖中工作時鐘的頻率應為I2C總線時鐘頻率的M倍。這是因為系統(tǒng)中的任何一個I2C總線上的信號都是用M個工作時鐘的周期來完成,而D觸發(fā)器則是為了確保工作時鐘的占空比為50%而設計的!11】
圖2.2 12C總線時鐘產生圖
假設FPGA時鐘為125MHz,I2C總線時鐘為200 kHz,M為8,則工作時鐘為1.6 MHz,再考慮到D觸發(fā)器相當于2分頻,則
N= 125MHz/(200 kHz*8*2) = 391
2、關鍵信號的產生和傳輸
根據(jù)前面對I2C總線開始信號的討論,利用8個工作時鐘產生一個I2C總線信號,很容易設計出I2C總線的開始信號。即規(guī)定:第1個脈沖上升沿到第3個脈沖上升沿之間,SCL為低、SDA為高;第3個脈沖上升沿到第5個脈沖上升沿之間,SCL為高、SDA為高;第5個脈沖上升沿到第7個脈沖上升沿之間,SCL為高、SDA為低;第7個脈沖上升沿到第9個脈沖上升沿之間,SCL為低、SDA為低。這樣經過8個脈沖周期,就可產生一個開始信號!11】
停止信號也很容易照此設計,在此不再累贅。
而對于數(shù)據(jù)bit位的傳輸,根據(jù)I2C總線規(guī)范要求,在數(shù)據(jù)位的傳輸過程中,
SDA信號在SCL信號為高電平期間不容許發(fā)生跳變,可用SCL高電平期間的前、后各1個脈沖來作為數(shù)據(jù)的建立時間和保持時間。由此得到如圖6所示的數(shù)據(jù)bit的傳輸設計。
3、 AD9983A寄存器的設置
對AD9983A進行初始化本質上是對AD9983A內部的每個寄存器的每一位寫入相應的數(shù)值,AD9983A其中每個寄存器都有一個子地址。在對多個連續(xù)的寄存器進行操作時,寄存器地址有自動加1功能,所以確定第1個子地址后,可以不考慮地址的變化,順序寫入各寄存器的數(shù)值即可實現(xiàn)寄存器的連續(xù)設置。另外,在對AD9983A初始化時,還需要確定從地址,而從地址由硬件連接圖決定,當芯片引腳A0(pin22)信號是低電平時,表示AD9983A的寫地址為4CH。芯片的各個寄存器的意義可以參考附錄AD9983A的文檔資料 ……(未完,全文共62086字,當前僅顯示11167字,請閱讀下面提示信息。
收藏《畢業(yè)論文:基于fpga的視頻圖像分割技術—系統(tǒng)設計》)