新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

作者: 時(shí)間:2016-10-18 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:為了解決在一個(gè)屏幕上收看多個(gè)信號(hào)源的問(wèn)題,對(duì)基于技術(shù)的視頻圖像畫(huà)面分割器進(jìn)行了研究。研究的主要特色在于構(gòu)建了以為核心器件的視頻畫(huà)面分割的硬件平臺(tái),首先,將DVI視頻信號(hào),經(jīng)視頻解碼芯片轉(zhuǎn)換為數(shù)字視頻圖像信號(hào)后送入異步FIFO緩沖。然后,根據(jù)畫(huà)面分割需要進(jìn)行視頻圖像數(shù)據(jù)抽取,并將抽取的視頻圖像數(shù)據(jù)按照一定的規(guī)則存儲(chǔ)到圖像存儲(chǔ)器。最后,按照數(shù)字視頻圖像的數(shù)據(jù)格式,將四路視頻一路編碼輸出,實(shí)現(xiàn)了四路視頻圖像分割的功能,提高了系統(tǒng)集成度,并可根據(jù)系統(tǒng)需要修改設(shè)計(jì)和進(jìn)一步擴(kuò)展功能,增加了系統(tǒng)的靈活性,適用于多種不同領(lǐng)域。

本文引用地址:http://butianyuan.cn/article/201610/308536.htm

隨著計(jì)算機(jī)、DSP、超大規(guī)模集成電路等技術(shù)的發(fā)展,畫(huà)面分割器開(kāi)始采用硬件設(shè)計(jì)。首先,將各路視頻信號(hào)轉(zhuǎn)換成數(shù)字視頻信號(hào);然后,在數(shù)字領(lǐng)域?qū)Ω髀芬曨l信號(hào)進(jìn)行處理。使電路的設(shè)計(jì)、調(diào)試得到了很大的改善。但是,設(shè)計(jì)中所使用的獨(dú)立的邏輯電路較多,有的甚至使用專用的DSP芯片去處理視頻畫(huà)面的分割。雖然可以滿足對(duì)視頻圖像數(shù)據(jù)處理速度的要求,但是還需要外加CPU去協(xié)調(diào)系統(tǒng)工作,使得整個(gè)系統(tǒng)仍顯得體積較大,而且系統(tǒng)成本較高。隨著半導(dǎo)體加工工藝的不斷發(fā)展,在結(jié)構(gòu)、速度、工藝、集成度和性能方面都取得了很大的進(jìn)步和提高。本文將詳細(xì)介紹基于FPGA開(kāi)發(fā)技術(shù)的視頻圖像畫(huà)面分割器的軟硬件設(shè)計(jì)與實(shí)現(xiàn)。

1 系統(tǒng)總體設(shè)計(jì)

本系統(tǒng)選用Altera公司的CycloneIII系列中的EP3C40F780C7型號(hào)FPGA作為核心處理芯片,提出和設(shè)計(jì)了一個(gè)多路視頻圖像數(shù)據(jù)的采集、處理、顯示,實(shí)現(xiàn)視頻圖像畫(huà)面分割器。

Cyclone III系列FPGA是Altera公司的低功耗、高性能和低成本的可編程邏輯器件,具有獨(dú)特的低功耗體系結(jié)構(gòu),以非常低的成本提供豐富的存儲(chǔ)器和專用乘法器資源。在視頻和圖像處理等高強(qiáng)度算法應(yīng)用中,這些特性使該FPGA成為ASSP、ASIC以及分立數(shù)字信號(hào)處理器的理想替代方案。

1.1 硬件結(jié)構(gòu)設(shè)計(jì)

整個(gè)系統(tǒng)主要由DVI接口電路、DVI信號(hào)解碼電路、FPGA及其配置電路、DDR2 SDRAM數(shù)據(jù)存儲(chǔ)電路及DVI信號(hào)編碼電路組成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

從圖1中可以看出,從DVI接口接收到DVI信號(hào)后通過(guò)解碼芯片SiI1161進(jìn)行解碼,轉(zhuǎn)換成并行的數(shù)字信號(hào),然后進(jìn)入FPGA對(duì)四路視頻信號(hào)進(jìn)行提取、存儲(chǔ)、合成等功能,進(jìn)行處理后的數(shù)據(jù)通過(guò)編碼芯片SiI164再轉(zhuǎn)換為DVI視頻信號(hào),就可以接到顯示器上顯示了。

1.2 軟件結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)的軟件設(shè)計(jì)是系統(tǒng)功能實(shí)現(xiàn)的關(guān)鍵。在系統(tǒng)的硬件平臺(tái)的基礎(chǔ)上,通過(guò)對(duì)FPGA編程實(shí)現(xiàn)對(duì)視頻解碼芯片輸出的實(shí)時(shí)數(shù)字視頻數(shù)據(jù)接收,并根據(jù)畫(huà)面合成需要,對(duì)有效視頻圖像數(shù)據(jù)進(jìn)行提取和存儲(chǔ),然后將各路視頻數(shù)據(jù)合成一路輸出到顯示器。系統(tǒng)實(shí)現(xiàn)功能的系統(tǒng)框圖如圖2所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

以下重點(diǎn)介紹一下視頻信號(hào)的提取和合成。

1.2.1 提取模塊設(shè)計(jì)

1)圖像提取原理

視頻畫(huà)面盡管看起來(lái)好像是連續(xù)運(yùn)動(dòng)的,其實(shí)那是一系列靜止的圖像,這些圖像切換得足夠快,使得畫(huà)面看起來(lái)像是連續(xù)運(yùn)動(dòng)的,如圖3所示。一種稱為場(chǎng)同步(vertical sync)的特定時(shí)序信息被用于指定新圖像從什么時(shí)候開(kāi)始顯示;每張靜止圖像是由掃描線(scan line)組成的,即沿著顯示器從上到下、一行接著一行進(jìn)行顯示的數(shù)據(jù)線,另一種稱為行同步(horizontal sync)的時(shí)序信息用于指定新掃描線什么時(shí)候開(kāi)始顯示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

行同步和場(chǎng)同步信息通常通過(guò)以下3種方式之一進(jìn)行傳輸:

①單獨(dú)的行同步和場(chǎng)同步信號(hào);

②單獨(dú)的復(fù)合同步信號(hào);

③嵌入視頻信號(hào)的復(fù)合同步信號(hào)。

本系統(tǒng)采用的是數(shù)字視頻,采用的是技術(shù)①。

DV支持超過(guò)1 600×1 200的PC圖形分辨率和包括720p、1 080 i和1 080 p的HDTV分辨率,本設(shè)計(jì)采用的輸入分辨率為1 280×720/60 Hz,像素時(shí)鐘為74.25 MHz。DVI信號(hào)經(jīng)SiI1161解碼后得到帶像素時(shí)鐘的24位并行R、G、B數(shù)字信號(hào)及H、V、DE信號(hào),它們之間的相互關(guān)系如圖4所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

其中,當(dāng)DE為1時(shí),處理有效視頻,當(dāng)DE為0時(shí),處理HSYNC和VSYNC信號(hào)。SiI1161輸出的數(shù)字視頻信號(hào)一幀由750行視頻數(shù)據(jù)組成,每一場(chǎng)有效視頻行為720行,每一行又有1 650個(gè)像素,其中有效像素有1 280個(gè),這些是在視頻過(guò)程中要用到的數(shù)據(jù),每一個(gè)像素都包含R、G、B 3種信號(hào)。

本設(shè)計(jì)根據(jù)H、V、DE信號(hào)對(duì)有效視頻數(shù)據(jù)進(jìn)行定位,并根據(jù)的需要把所需的有效視頻數(shù)據(jù)提取出來(lái)。在實(shí)現(xiàn)的過(guò)程中利用狀態(tài)機(jī)來(lái)判斷有效視頻數(shù)據(jù),如圖5所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

狀態(tài)機(jī)缺省狀態(tài)為idle狀態(tài)。先在idle狀態(tài)檢測(cè)場(chǎng)信號(hào)由高變低,進(jìn)入有效數(shù)據(jù)行,再判斷H與DE的高低狀態(tài),進(jìn)而檢測(cè)到有效視頻數(shù)據(jù),當(dāng)H由高變低,DE為高的這段視頻數(shù)據(jù)則為有效視頻數(shù)據(jù)。這樣則可以根據(jù)視頻圖像合成的需要對(duì)視頻數(shù)據(jù)進(jìn)行選擇提取。

2)圖像提取模塊設(shè)計(jì)

基于上述有效視頻數(shù)據(jù)的提取原理可以提取任何一個(gè)數(shù)據(jù)行或任何一個(gè)象素,由于不同的圖像合成需要提取的有效視頻數(shù)是不同的。本設(shè)計(jì)為四畫(huà)面分割,需要對(duì)每一路輸入信號(hào)進(jìn)行1/4壓縮,即需要對(duì)有效數(shù)據(jù)進(jìn)行隔行隔點(diǎn)提取。有效視頻數(shù)據(jù)提取程序框圖如圖6所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

由圖可知:接收到輸入信號(hào)后,根據(jù)視頻數(shù)據(jù)提取原理,檢測(cè)有效的視頻數(shù)據(jù),每來(lái)一個(gè)時(shí)鐘,接收一個(gè)視頻數(shù)據(jù)存儲(chǔ)到RAM模塊中;然后對(duì)RAM模塊中存放的數(shù)據(jù)取平均值;接著對(duì)這些平均值隔行隔點(diǎn)提取,把提取出的數(shù)據(jù)送入異步FIFO中,方便讀寫(xiě)入DDR2 SDRAM中。

隔行隔點(diǎn)提取有效數(shù)據(jù)就是要將一些像素丟棄,本設(shè)計(jì)采用鄰域平均法來(lái)改善縮放后的視頻圖像質(zhì)量。鄰域平均法的原理是將原圖中一個(gè)像素值和它周?chē)徑?個(gè)像素值相加,然后將求得的平均值(除以9)作為新圖中該像素的值。它采用模板計(jì)算的思想,模板操作實(shí)現(xiàn)了一種鄰域運(yùn)算,即某個(gè)像素點(diǎn)的結(jié)果不僅與本像素有關(guān),而且與其鄰域點(diǎn)的像素值有關(guān)。鄰域平均法的數(shù)學(xué)公式表達(dá)為:

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

其中f(i,j)為給定的圖像,經(jīng)過(guò)鄰域平均處理后的圖像為g(i,j),M是所取鄰域中各鄰近像素的坐標(biāo)N是鄰域中包含的鄰近像素的個(gè)數(shù)。

1.2.2 圖像合成和編碼模塊設(shè)計(jì)

1)圖像合成原理

在像素域的多畫(huà)面合成中,首先,對(duì)原圖像按像素進(jìn)行抽取,分別將多路圖像按照一定的比例縮小。然后,按照一定的規(guī)則將多路圖像進(jìn)行排列,排列后的圖像即為多路合成的圖像。最后,將合成的圖像編碼輸出,即可在同一個(gè)屏幕顯示多個(gè)畫(huà)面,完成對(duì)多路圖像的合成。

合成后的視頻圖像是逐行顯示的,而對(duì)于將圖像以逐行方式“繪制”到屏幕上的設(shè)備,每張圖像都是從顯示器的左上角開(kāi)始,一直向右移動(dòng),直到到達(dá)顯示器的右邊緣為止,然后向下掃描一行,重復(fù)地從左到右進(jìn)行掃描,這個(gè)過(guò)程一直持續(xù)到整個(gè)屏幕全部被刷新一次為止,如圖7所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

SiI1161輸出的完整的一幀圖像數(shù)據(jù)結(jié)構(gòu)如圖8所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

以四路為例,首先,要分別對(duì)原圖像進(jìn)行1/4比例縮小。一幀視頻圖像有效顯示的圖像數(shù)據(jù)為26~745行,則在垂直方向上隔行抽取有效視頻行,使垂直方向縮小為原來(lái)的1/2。

在水平方向上,每行有效視頻由1 280個(gè)像素組成,每隔一個(gè)像素抽取一個(gè)有效視頻,使水平方向縮小為原來(lái)的1/2。這樣經(jīng)過(guò)垂直和水平方向的抽取所得到的圖像縮小為原圖像的1/4。

然后,按照一幀圖像數(shù)據(jù)的排列格式對(duì)抽取的各路圖像的像素進(jìn)行排列。抽取的第一路圖像的行與第二路圖像的行組成一整行,第三路圖像的行與第四路圖像的行組成一整行,四路圖像的行組成新的一幀圖像的圖像數(shù)據(jù)。

最后,將四路合成圖像數(shù)據(jù)經(jīng)過(guò)SiI164編碼輸出,通過(guò)逐行掃描在一個(gè)顯示器上顯示四路圖像,即完成了四路視頻圖像合成。

2)圖像合成模塊設(shè)計(jì)

視頻圖像畫(huà)面合成的實(shí)現(xiàn)方法主要分為兩大類:像素域合成和壓縮域合成?;谙到y(tǒng)的圖像數(shù)據(jù)為24位R、G、B數(shù)字視頻格式,所以在視頻圖像畫(huà)面合成中采用像素域內(nèi)多畫(huà)面合成的方法。四路視頻圖像合成的實(shí)現(xiàn)過(guò)程如下:

首先,分別在垂直方向和水平方向上抽取有效的視頻數(shù)據(jù),將四路圖像各縮小為原圖像的1/4。這部分功能由有效視頻數(shù)據(jù)提取模塊實(shí)現(xiàn),該模塊在前面已經(jīng)做過(guò)詳細(xì)介紹。然后將提取的各路圖像數(shù)據(jù)按找一定順序排列,即按照一定的規(guī)律存儲(chǔ)到DDR2 SDRAM中。各路圖像數(shù)據(jù)的地址按照上一節(jié)介紹的地址產(chǎn)生方法實(shí)現(xiàn),都有各自固定的存儲(chǔ)空間。

在完成各路視頻圖像的抽取,存儲(chǔ)后,就要對(duì)抽取的各路視頻圖像的進(jìn)行四畫(huà)面合成。根據(jù)720P系統(tǒng)數(shù)字信號(hào)的數(shù)據(jù)格式,把有效視頻數(shù)據(jù)從存儲(chǔ)器中采用順序讀取出來(lái),在相應(yīng)的H、V、DE信號(hào)的位置,送視頻編碼輸出,完成四路視頻圖像的合成。在合成的過(guò)程中,H、V、DE信號(hào)及時(shí)鐘信號(hào)都由第一路輸入的視頻信號(hào)產(chǎn)生。四路視頻合成圖像的排列方式如圖9所示。

基于FPGA的視頻圖像畫(huà)面分割器設(shè)計(jì)

2 調(diào)試結(jié)果

經(jīng)過(guò)軟硬件的綜合調(diào)試,整個(gè)視頻圖像畫(huà)面分割系統(tǒng)便可以正常工作了。

采集的多路視頻圖像經(jīng)過(guò)FPGA圖像合成處理后,可以在一個(gè)顯示器顯示多路視頻圖像。

3 結(jié)束語(yǔ)

文中采用FPGA開(kāi)發(fā)技術(shù)實(shí)現(xiàn)了視頻圖像畫(huà)面分割器的畫(huà)面分割的功能。研究的主要特色在于構(gòu)建了以FPGA為核心器件的視頻畫(huà)面分割的硬件平臺(tái),通過(guò)硬件形式來(lái)實(shí)現(xiàn)視頻四畫(huà)面分割,圖像的提取、存儲(chǔ)等都在一片F(xiàn)PGA內(nèi)實(shí)現(xiàn),提高了系統(tǒng)的集成度,所有的模塊設(shè)計(jì)都是利用Verilog HDL編程實(shí)現(xiàn),和軟件實(shí)現(xiàn)方法相比,系統(tǒng)在處理速度方面有了顯著的提高。輸入/輸出的信號(hào)都為DVI信號(hào),實(shí)現(xiàn)了高清視頻畫(huà)面分割。



關(guān)鍵詞: FPGA DDR2 SDRAM 視頻提取 圖像合成

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉