<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的視頻圖像處理算法的研究與實(shí)現

基于FPGA的視頻圖像處理算法的研究與實(shí)現

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

摘要 為有效提高應用領(lǐng)域中畫(huà)面顯示的清晰度、分辨度等問(wèn)題,提出了一種基于的實(shí)時(shí)算法。文中介紹了系統的整體結構,然后針對模塊介紹了視頻圖像的緩存及圖像分割,并針對視頻的輸出顯示要求,重點(diǎn)介紹了基于算法的實(shí)現。ModelSim的仿真結果表明,該算法符合顯示系統的要求。

本文引用地址:http://dyxdggzs.com/article/201610/308498.htm

關(guān)鍵詞 ;;;;

隨著(zhù)網(wǎng)絡(luò )信息化的發(fā)展,顯示設備作為獲取信息的直接手段,有著(zhù)不可或缺的作用。為滿(mǎn)足用戶(hù)對更大屏幕的觀(guān)看需要以及使信息顯示更優(yōu)化,大屏幕拼接技術(shù)應運而生。大屏幕圖像尺寸的增大使在普通顯示器上不易察覺(jué)的細節暴露無(wú)遺,提高了可視化的準確性。高分辨率圖形圖像數據處理和可視化,用于解決基于單一硬件顯示設備無(wú)法可視化的高分辨率圖形圖像。

而拼接控制器是大屏幕系統中的核心顯示控制設備。拼接控制器的核心是其處理能力和穩定性,基于計算機體系構架的傳統控制器,其性能和穩定性完全取決于它所依賴(lài)的計算機,無(wú)論傳統控制器如何改進(jìn),最多只能算量的積累,難以獲得質(zhì)的提升。采用大規模FPGA陣列式組合處理構架,全嵌入式硬件設計的拼接控制器集視頻信號采集、實(shí)時(shí)高分辨率數字圖像處理、二維高階數字濾波等高端圖像處理技術(shù)于一身,具有強大的處理能力。

本文正是在這種背景下,設計了一種基于FPGA的算法,實(shí)現實(shí)時(shí)數字視頻的分割、插值放大,通過(guò)并行處理機制,保證了視頻的實(shí)時(shí)處理和畫(huà)面流暢。

1 系統總體概述

文中將完成一路監控攝像頭采集的畫(huà)面在2×2的液晶拼接屏上顯示一幅完整大圖的效果。

系統的總體框架圖如圖1所示。由網(wǎng)絡(luò )攝像頭采集到的視頻信號,經(jīng)過(guò)DVI接收器后,發(fā)出數據及控制信號供給FPGA。通過(guò)FPGA主控芯片對輸入的視頻信號進(jìn)行分割、插值放大等處理;視頻輸出模塊將FPGA處理后的數據再通過(guò)DVI接口輸出到屏幕上。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

只要數據讀出速度高于寫(xiě)入速度,就不會(huì )使圖像產(chǎn)生突變現象,從而達到實(shí)時(shí)處理的目的。

2 FPGA模塊的實(shí)現

FPGA內部系統對視頻圖像的處理如圖2所示。主要分為幀存儲模塊、分割模塊、插值模塊3部分。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

2.1 幀模塊及存儲模塊

DVI接口是將顯卡中經(jīng)過(guò)處理的待顯示R、G、B數字信號與水平同步信號(Hsync,行同步信號)、垂直同步信號(Vsync,場(chǎng)同步信號)進(jìn)行組合,按最小非歸零編碼,將每個(gè)像素點(diǎn)按10 bit(8 bit像素數據和2 bit控制信號)的數字信號進(jìn)行并串轉換,把編碼后的R、G、B數字流與像素時(shí)鐘4組信號按照最小化傳輸差分信號(Transition Minimized Differential Signal,TMDS)方式進(jìn)行傳輸。

FPGA的分時(shí)切換邏輯是依據輸入視頻流的垂直同步控制信號Vsync發(fā)生由高電平到低電平的轉換,以此作為新數據幀到來(lái)的標識,如圖3所示。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

當FPGA內部的信號控制采集信號為0時(shí),采集系統停止工作,地址發(fā)生器不計數。當其為1時(shí),系統處于采集狀態(tài)。首先只有Vsync上升沿到來(lái)后,才允許Hsync通過(guò),從而保證采集的圖像為完整的一幀圖像。當Vsync上升沿到來(lái)后,對所有計數器及觸發(fā)器清零。Vsync上升沿后,場(chǎng)消隱延時(shí)用來(lái)對Hsync計數,場(chǎng)消隱期后,可以采集圖像。行同步計數器對Hsync進(jìn)行計數。在計數的每一行中,當Hsync上升沿到來(lái)時(shí),行消隱延時(shí)對其計數。行消隱過(guò)后,點(diǎn)同步計數器開(kāi)始對其計數。當行同步計數停止計數時(shí),一幀圖像采集完畢,等待下一個(gè)Vsync到來(lái)。

數據緩沖區為兩片SDRAM,以一幀圖像為單位進(jìn)行切換控制。采用乒乓存儲機制完成數據的無(wú)縫緩沖與處理。乒乓操作可以通過(guò)“輸入數據選擇控制”和“輸出數據選擇控制”按節拍、相互配合地進(jìn)行來(lái)回切換,將經(jīng)過(guò)緩沖的數據流沒(méi)有停頓地送到“后續處理”模塊。

2.2 分割模塊

由于一個(gè)像素的輸出值只取決于輸入圖像的相應像素值,因此,可通過(guò)對每個(gè)輸入像素依次進(jìn)行處理這種流水化的處理模式,來(lái)實(shí)現對圖像的點(diǎn)操作。由于每個(gè)像素是單獨處理的,所以點(diǎn)操作很容易并行實(shí)現。因此,可以把圖像分割成若干部分,然后再對每個(gè)部分單獨進(jìn)行處理。

視頻分割模塊實(shí)現單幀視頻圖像的分割剪裁,得到4路完整格式的子視頻像素流,并控制4個(gè)子視頻的相互時(shí)序關(guān)系,各個(gè)拼接屏幕的像素點(diǎn)的掃描規律相同,均為逐行掃描形式,并且子視頻像素點(diǎn)顯示同步,即行同步和場(chǎng)同步。

2.3 算法的實(shí)現

實(shí)現圖片處理的插值方法有很多,例如最近鄰插值、雙線(xiàn)性插值、雙三次插值等。最近鄰插值是最簡(jiǎn)單的插值方式,但當圖像中的像素灰度級有細微變化時(shí),該方法會(huì )在圖像中產(chǎn)生人工的痕跡。雙三次插值可以得到更平滑的結果,但在存儲管理更復雜,并增加了邏輯資源的消耗。因此,選取了雙線(xiàn)性插值方法。

與點(diǎn)操作的圖像分割不同,雙線(xiàn)性插值屬于幾何變換,其輸出的像素通常并不是來(lái)自同一個(gè)輸入像素位置。因此需要一些形式的緩存來(lái)處理由幾何形狀改變而引起的延遲。

本文采用預載入緩存的方法來(lái)緩沖圖像數據,并使用雙端口RAM來(lái)實(shí)現行緩沖器的設計方案。

采用雙口RAM可在一個(gè)時(shí)鐘周期內同時(shí)在每一行上提供兩個(gè)輸入像素,即提供了所有的4個(gè)像素。然后將數據輸送到插值計算模塊。而整幅圖像的存儲將保存在外部的幀緩存中,每個(gè)時(shí)鐘周期只能對其進(jìn)行一次訪(fǎng)問(wèn)。每個(gè)像素應僅從外部存儲器中讀取一次,然后暫存在片上緩存中用于隨后的窗口。將數據預載入緩存,每次訪(fǎng)問(wèn)時(shí)直接從緩存中讀取像素,如圖4所示。共需計算兩次:一次用于載人緩存;一次用于執行插值。輸入和輸出像素間的映射采用前向映射。

基于FPGA的視頻圖像處理算法的研究與實(shí)現
基于FPGA的視頻圖像處理算法的研究與實(shí)現

視頻插值模塊實(shí)現對視頻按比例因子進(jìn)行雙線(xiàn)性插值放大處理。雙線(xiàn)性插值算法的基本原理如圖5所示,圖中的下標i和f表示各自坐標的整數和小數部分。雙線(xiàn)性插值是采用可分離的線(xiàn)性插值將4個(gè)最近的像素值組合,如式(1)。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

線(xiàn)性插值的結果與插值的順序無(wú)關(guān)。先進(jìn)行y方向的插值,然后進(jìn)行x方向的插值,所得結果相同。將式(1)進(jìn)行分解,則有

基于FPGA的視頻圖像處理算法的研究與實(shí)現

當輸入分辨率有所變化而引起縮放因子變化時(shí),FPGA內的數字邏輯能實(shí)時(shí)計算出式(2)中的系數xf和yf。而非僅計算幾種固定縮放比例,從而提高了算法模塊的利用率。

若以將攝像機1 024×576分辨率的圖轉化為1 366×768的圖為例,則水平縮放因子sc_x和垂直縮放因子sc_y均為0.75。若將水平因子直接帶入編寫(xiě)程序,則會(huì )報錯。采用浮點(diǎn)數表示法,轉換后得到的10位16進(jìn)制數,計算出系數xf和yf均為h300。

在實(shí)際設計中,為避免運算過(guò)于復雜,把復雜的運算分成幾個(gè)步驟,分別在不同的時(shí)鐘周期完成。插值計算的邏輯結構模塊如圖6所示。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

系統包含3種不同的時(shí)鐘頻率:原像素點(diǎn)頻率clkin、輸出像素點(diǎn)頻率clkout和系統主時(shí)鐘頻率clksys。令系統主時(shí)鐘頻率為4倍的原像素點(diǎn)頻率,則使用Verilog語(yǔ)言及ModelSim SE 10。1 a和Quartus II仿真環(huán)境進(jìn)行編譯,得到雙線(xiàn)性插值計算模塊的仿真波形如圖7所示。為程序書(shū)寫(xiě)方便,將采集的4個(gè)像素值標為a、b、c、d,經(jīng)過(guò)插值模塊后的輸出像素值為p。從仿真波形可看出,完成了雙線(xiàn)性插值計算模塊的實(shí)現。

基于FPGA的視頻圖像處理算法的研究與實(shí)現

3 結束語(yǔ)

針對大屏幕特點(diǎn),從拼接控制器入手,提出了一種基于FPGA實(shí)現的視頻實(shí)時(shí)處理系統。主要采用雙線(xiàn)性插值法,討論了如何用FPGA實(shí)現,并進(jìn)行邏輯結構的優(yōu)化,提高系統性能,并對雙線(xiàn)性進(jìn)行仿真,驗證了算法在拼接顯示系統中的可行性。圍繞拼接控制器這個(gè)應用方向,還有更多的問(wèn)題需要進(jìn)行研究,例如畫(huà)面自由疊加與漫游,單屏分割,自動(dòng)圖像識別重建等。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>