亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        雙三次卷積模板插值算法的FPGA實(shí)現(xiàn)

        2014-03-21 09:59:30陳志杰凌朝東魏騰雄
        液晶與顯示 2014年1期

        陳志杰,凌朝東,魏騰雄

        (華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361008)

        1 引 言

        在很多的場合需要高分辨率的大圖像顯示,現(xiàn)在受限于液晶和信號傳輸,單個液晶屏并不能做的非常大,所以現(xiàn)在一般采用多個液晶屏進(jìn)行拼接來實(shí)現(xiàn)大分辨率大圖像的顯示,為了使不同的原始輸入圖像的分辨率能夠在拼接大屏幕上匹配顯示,就必須對輸入的視頻圖像進(jìn)行縮放以匹配輸出的分辨率,滿足拼接屏幕的要求[1]。這是插值算法在縮放上的一個應(yīng)用實(shí)例,插值算法的應(yīng)用很廣泛,除視頻圖像縮放,視頻圖像的旋轉(zhuǎn)也會用到插值算法。

        現(xiàn)代的插值算法包括線性和非線性插值、有理插值、曲面重構(gòu)和自適應(yīng)區(qū)域插值等,但很多算法都由于過于復(fù)雜難于在硬件上實(shí)現(xiàn),在硬件上實(shí)現(xiàn)常用的插值算法有最鄰近插值算法,雙線性插值算法,雙三次插值算法等[2]。最鄰近插值簡單且直觀,但得到的圖像質(zhì)量不高。雙線性內(nèi)插值法計算量大,具有低通濾波器的性質(zhì),使高頻分量受損,所以可能會使圖像輪廓在一定程度上變得模糊[3]。雙三次插值法用16個相鄰點(diǎn)做插值,它消除了最鄰近插值的階梯狀邊界問題,解決了雙線性插值模糊的問題能夠克服以上兩種算法的不足,計算精度高,但計算量大[4-7]。本設(shè)計采用雙三次插值算法,但為提高計算效率,對雙三次插值計算進(jìn)行了離散化處理,變實(shí)數(shù)運(yùn)算為整數(shù)運(yùn)算[8]。有效克服雙三次插值算法計算量大的問題。提出了實(shí)現(xiàn)雙三次卷積模板算法的硬件電路的實(shí)現(xiàn)方法,避免三次方的計算,使次算法能夠在沒有顯著增加硬件資源的同時得到令人滿意的圖像縮放效果。

        2 雙三次插值算法

        2.1 基函數(shù)數(shù)學(xué)模型

        在數(shù)值分析中,插值算法可用通式表示為

        其中:h(x-xk)為插值基函數(shù),ck為第k 個原函數(shù)的值。不同的插值算法只是基函數(shù)及選取的插值點(diǎn)個數(shù)n不同。如果基函數(shù)的最高次冪為三次且在定義域內(nèi)基函數(shù)的一階、二階導(dǎo)數(shù)連續(xù),則稱該算法為三次插值算法,若在二維方向上應(yīng)用該算法即雙三次插值算法。

        系統(tǒng)采用Keys提出的三次插值基函數(shù),雙三次插值算法基函數(shù)是利用三次多項式h(ω)來逼近理論上最佳插值函數(shù)sin(π×ω)/(π×ω),其基函數(shù)h(ω)的表達(dá)式如下:

        2.2 實(shí)現(xiàn)過程

        圖像為二維信號,所以,圖像縮放的插值算法要在二維方向應(yīng)用上述算法。先在水平方向,假設(shè)所求插值像素點(diǎn)為F,首先,每一行依據(jù)上述插值原理,得到4 個臨時插值像素點(diǎn)的像素值F0,F(xiàn)1,F(xiàn)2,F(xiàn)3。

        其中:Fk+4i為輸入圖像鄰近16個點(diǎn)的像素值,兩像素點(diǎn)的距離為單位1。然后,以Fi為原函數(shù),在垂直方向依據(jù)同樣的原理求得所需插值點(diǎn)F 的值,即

        2.3 算法離散化,模板化實(shí)現(xiàn)方法

        由上述可知計算時需要h(Δx)和h(Δy)這兩個值,如果Δx 和Δy 直接代入基函數(shù)進(jìn)行計算,需要大量的乘法和浮點(diǎn)運(yùn)算,會占用大量的系統(tǒng)資源,這里采用將h 的值離散化,模板化進(jìn)行計算。計算每一目標(biāo)像素灰度值,需要計算出目標(biāo)像素點(diǎn)和源像素點(diǎn)的水平、垂直距離,然后根據(jù)距離帶入公式算出相應(yīng)的加權(quán)系數(shù)。

        將水平距離和垂直距離Δx,Δy 平均分割為4份,Δx,Δy 都在[0,1]的范圍內(nèi),分為[0,1/4],[1/4,1/2],[1/2,3/4],[3/4,1],如果Δx,Δy 的值落入到這4個范圍中的一個,將Δx,Δy 都取這個范圍內(nèi)的平均值,即如果在[0,1/4]則取1/8,如果在[1/4,1/2]則取3/8,如果在[1/2,3/4]則取5/8,如果在[3/4,1]則取7/8。

        在進(jìn)行水平方向的卷積時需要用到

        這個為加權(quán)系數(shù),計算一個點(diǎn)的時候需要4個像素的點(diǎn)和這個加權(quán)系數(shù)進(jìn)行卷積。按上面的范圍進(jìn)行計算加權(quán)系數(shù),得到水平方向加權(quán)系數(shù)的4個目標(biāo)(每個數(shù)左移18位,用移位計算在硬件里方便實(shí)現(xiàn)):

        同理垂直方向

        3 插值算法的FPGA 實(shí)現(xiàn)

        3.1 實(shí)現(xiàn)框圖

        FPGA 采用的是Lattice的ECP3 系列的芯片,其框圖如圖1所示。

        圖1 FPGA 實(shí)現(xiàn)的原理圖Fig.1 Block diagram of FPGA implementation

        如圖1所示,數(shù)據(jù)進(jìn)入到FPGA 后進(jìn)行水平方向的插值計算,水平方向計算完,由于計算垂直插值時需要用到圖像相鄰的4行數(shù)據(jù),所以將水平方向插值計算結(jié)果的數(shù)據(jù)送入外部的存儲器進(jìn)行存儲,然后從外部存儲器中讀出數(shù)據(jù)進(jìn)行垂直方向的插值。

        3.2 行卷積的實(shí)現(xiàn)

        根據(jù)上面的分析,行卷積的實(shí)現(xiàn)為取相鄰的4個像素點(diǎn)與相應(yīng)的模板進(jìn)行卷積計算得到結(jié)果。所以行卷積的計算就是如何取得相鄰的4個像素點(diǎn)和如何取得相應(yīng)的模板。在一行上4個相鄰的像素點(diǎn)需要同時取得,這樣才能提高計算速度,為了同時得到4個相鄰的像素點(diǎn),輸入緩存用4個雙口RAM,在視頻圖像進(jìn)入FPGA 時,將一行的數(shù)據(jù)同時寫入4個RAM 中,同時讀取時4個RAM取相鄰地址的數(shù)據(jù),就得到了一行中4個相鄰的像素點(diǎn)。而相應(yīng)的模板需要根據(jù)縮放的比例來進(jìn)行計算得到。圖2為行卷積實(shí)現(xiàn)的框圖。

        需要根據(jù)縮放比例計算出目標(biāo)像素點(diǎn)對應(yīng)到源像素點(diǎn)的位置,這個用scale factor 模塊來實(shí)現(xiàn),知道目標(biāo)像素點(diǎn)對應(yīng)到源像素點(diǎn)的位置就能得出需要的模板??s放比例用一個16.16的定點(diǎn)小數(shù)來實(shí)現(xiàn),高16位表示整數(shù)部分,低16位表示小數(shù)部分。計算時采用累加來實(shí)現(xiàn),每一次都加上縮放比例,這樣就能得到相鄰的4個像素點(diǎn)和相應(yīng)的模板。其modelsim 的仿真結(jié)果如圖3所示,仿真時采用放大1.6 倍時一行圖像數(shù)據(jù)的情況。

        圖2 行卷積實(shí)現(xiàn)原理圖Fig.2 Block diagram of line convolution implementation

        圖3 scale_factor的仿真波形Fig.3 Waveform of scale_factor simulation

        其中l(wèi)ine為目標(biāo)圖像對應(yīng)到源圖像的整數(shù)部分的值,x_distance為對應(yīng)到源圖像的小數(shù)的值,這樣根據(jù)整數(shù)部分可以得到相鄰的4個像素點(diǎn),根據(jù)距離可以得到相應(yīng)的模板。其中x_distance小數(shù)部分為左移16 位的結(jié)果。根據(jù)上面的計算可以得到卷積的像素點(diǎn)和模板,然后將得到的數(shù)據(jù)送入乘加器就能得到行卷積的計算結(jié)果。乘加器用Lattice芯片上的硬件乘加器進(jìn)行實(shí)現(xiàn),硬件乘加器的速度能夠滿足要求。

        對行卷積整體仿真時,利用matlab采集一整幅圖片的像素點(diǎn),將圖片的像素點(diǎn)轉(zhuǎn)化成RGB的格式,用十六進(jìn)制存在文本中,然后利用modelsim 對文本的讀寫功能,產(chǎn)生一個模擬的VGA時序視頻信號,信號包括時鐘信號、行同步信號、場同步信號、數(shù)據(jù)使能信號和數(shù)據(jù)信號。將這幾個信號在testbeach中生成,給行卷積的模塊,將行卷積的計算結(jié)果通過modelsim 對文本的操作寫入到文本當(dāng)中,將得到的仿真文本的數(shù)據(jù)和matlab仿真數(shù)據(jù)進(jìn)行比對,做到兩個仿真結(jié)果的數(shù)據(jù)是一樣的,說明硬件描述語言對算法的行卷積能夠?qū)崿F(xiàn)。

        3.3 外部存儲器

        系統(tǒng)支持1 080p高清視頻,1 080p視頻的分辨率為1 920×1 080,如果當(dāng)視頻的幀率為60 Hz時,RGB每位采用8bit,這樣一幀圖像的大小為1 920×1 080×24bit約為2M×24bit,進(jìn)行處理時為了提高計算效率采用乒乓操作,所以一幀需要的存儲為4M×24bit,所以采用一片512M 的,數(shù)據(jù)寬度為16bit的DDR3 就能滿足圖像緩存的需要。DDR3的寫入速度非常快,比視頻的像素流快,所以,我們不可能來一個像素寫入一個值,這樣操作繁瑣,這就有必要在前面做一個像素的緩存器,如果視頻圖像的一行像素數(shù)據(jù)存入到緩存中時,將緩存中的數(shù)據(jù)一起寫入到DDR3。

        DDR3控制器利用現(xiàn)有的IP 核來實(shí)現(xiàn)。其實(shí)現(xiàn)框圖如圖4所示。

        圖4 DDR3控制器實(shí)現(xiàn)框圖Fig.4 Block diagram of DDR3controller

        主要包括4個FIFO,4個FIFO 分別為發(fā)生請求讀寫DDR 時,將請求讀寫ddr的地址放入fifo中。ddr_init模塊主要是負(fù)責(zé)ddr的初始化,ddr_ctrl_state主要負(fù)責(zé)處理DDR 進(jìn)行讀寫的狀態(tài)控 制,ddr3_sdram_mem_top 是Latticed 的DDR3的IP核。

        其中ddr_ctrl_state的內(nèi)部是設(shè)計一個狀態(tài)機(jī),來實(shí)現(xiàn)ddr的讀寫控制狀態(tài),其狀態(tài)轉(zhuǎn)移圖如圖5所示。

        以下是各個狀態(tài)所表示的含義:

        上電相關(guān)狀態(tài):

        S_POWER_UP表示上電開始狀態(tài)。

        圖5 DDR 的狀態(tài)轉(zhuǎn)移圖Fig.5 State diagram of DDR ctroller

        S_CHIP_CONFIG 表示芯片配置狀態(tài)。

        S_CONIG_END 表示等待芯片配置完成狀態(tài)。

        S_IDLE表示系統(tǒng)空閑等待狀態(tài)。

        讀DDR 相關(guān)狀態(tài):

        S_RD_RQ0表示讀DDR,讀取FIFO 得到位置數(shù)據(jù)。

        S_RD_RQ1表示讀DDR,讀取FIFO 得到位置數(shù)據(jù)。

        S_RD_RQ2表示讀DDR,讀取FIFO 得到位置數(shù)據(jù)。

        S_RD_RQ3表示讀DDR,讀取FIFO 得到位置數(shù)據(jù)。

        S_WAIT_RD_RQ 表示需要幾個時鐘(m2~m4),從FIFO 中讀出位置參數(shù)。

        S_DDR_RD_CMD 表示位置參數(shù)準(zhǔn)備好,對DDR IP寫入讀命令和相應(yīng)地址。

        S_WAIT_RD_END 表示等待DDR 將數(shù)據(jù)讀完。

        寫DDR 相關(guān)狀態(tài):

        S_WR_RQ0表示寫1端口數(shù)據(jù)狀態(tài)。

        S_WR_RQ1表示寫2端口數(shù)據(jù)狀態(tài)。

        S_WR_RQ2表示寫3端口數(shù)據(jù)狀態(tài)。

        S_WAIT_WR_RQ 表示需要幾個時鐘(m2~m4),從FIFO 中讀出位置參數(shù)。

        S_DDR_WR_CMD 表示位置參數(shù)準(zhǔn)備好,對DDR IP寫入讀命令和相應(yīng)地。

        S_WAIR_WR_END 表示等待DDR 將數(shù)據(jù)寫完。

        3.4 列卷積的實(shí)現(xiàn)

        列卷積的計算方法和行卷積的計算方法相同,其實(shí)現(xiàn)框圖如圖6所示。只是列卷積時需要得到相鄰四列的像素值,這個可以通過每次從DDR3中讀出相鄰的四列放入4 個RAM 中,這樣從每一個RAM 中可以得到相鄰四列的4個像素值。

        其中DDR 數(shù)據(jù)讀取控制模塊主要是根據(jù)圖像插值算法的需要從DDR 中讀出相鄰的4 行,分別放入到4 個RAM 中,然后通過控制RAM的地址來讀取列相鄰的4 個像素點(diǎn)。同時系數(shù)讀取控制器也根據(jù)需要讀出相應(yīng)的列插。

        圖6 列卷積實(shí)現(xiàn)框圖Fig.6 Block diagram of column convolution implementation

        3.5 資源使用情況

        此算法是在Lattice ECP3-17EA 來實(shí)現(xiàn)的,圖7為實(shí)現(xiàn)此算法的資源的情況,從圖片中可以看出這個算法占用的資源不是很多,所以在此FPGA 芯片上實(shí)現(xiàn)此算法還是可行的。

        3.6 結(jié)果與討論

        做試驗時,先用matlab 將算法用軟件來實(shí)現(xiàn),將仿真得到的結(jié)果保存。通過硬件描述語言實(shí)現(xiàn)后,用modelsim 仿真,同樣利用modelsim的讀寫功能,對一張圖片進(jìn)行仿真,結(jié)果保存在文件里,將matlab得到的結(jié)果和modelsim 得到的仿真結(jié)果進(jìn)行比較,可以發(fā)現(xiàn)兩個結(jié)果是完全一樣的。說明用硬件語言實(shí)現(xiàn)了該算法。

        圖7 FPGA 資源的使用情況Fig.7 Use of FPGA resources

        將雙三次插值算法改成模板方法實(shí)現(xiàn),省去了很多的浮點(diǎn)計算,使其在硬件上耗費(fèi)更少的資源。將圖像看成二維的,先計算水平的插值,再算垂直的插值,這樣在硬件上也可以減少資源,水平和垂直同時計算,一次要取臨近的16個點(diǎn),然后進(jìn)行16個乘加運(yùn)算,而先水平后垂直,一次只需取4個點(diǎn),需要4個乘加運(yùn)算,相當(dāng)于需要兩次的4個乘加運(yùn)算。這樣可以減少乘加器的數(shù)量。

        4 結(jié) 論

        雙三次插值算法能夠得到令人滿意的圖像縮放效果,但因其算法復(fù)雜,硬件上實(shí)現(xiàn)很少應(yīng)用,而本文通過分析雙三次插值的基本原理,提出了將圖像分為二維來進(jìn)行計算,先水平后垂直實(shí)現(xiàn)雙三次插值算法的硬件實(shí)現(xiàn)思路。同時將計算過程離散化,化浮點(diǎn)計算為整數(shù)計算,避免了三次方的計算。通過實(shí)驗可以發(fā)現(xiàn),利用FPGA 實(shí)現(xiàn)雙三次卷積模板算法可以比實(shí)現(xiàn)雙三次插值算法節(jié)約硬件資源。同時可以得到不錯的圖像效果,適合工程的應(yīng)用。

        [1] Xiang Z Q,Zou X C,Liu Z L.An high quality image scaling engine for large-scale LCD[C].ICSP2006 Proceedings,Wuhan,China:ICSP,2006.

        [2] 王增發(fā),孫麗娜.CFA 圖像實(shí)時插值在FPGA 上的應(yīng)用[J].液晶與顯示,2013,28(4):615-619.Wang Z F,Sun L N.Application of CFA images interpolation algorithm in FPGA real-time system [J].Chinese Journal of Liquid Crystals and Displays,2013,28(4):615-619.(in Chinese)

        [3] 孫紅進(jìn).FPGA 實(shí)現(xiàn)的視頻圖像縮放顯示[J].液晶與顯示,2010,25(1):130-133.Sun H J.FPGA realization of video lmage zooming display[J].Chinese Journal of Liquid Crystals and Displays,2010,25(1):130-133.(in Chinese)

        [4] 張阿珍,劉政林,鄒雪城,等.基于雙三次插值算法的圖像縮放引擎的設(shè)計[J].微電子學(xué)與計算機(jī),2007,24(1):49-51.ZHANG A Z,LIU Z L,ZOU X C,et al Design of image scaling engine based bicubic interpolation algorithm[J].Microelectronics &Computer,2007,24(1):49-51.(in Chinese)

        [5] 王會鵬,周利莉,張杰.一種基于區(qū)域的雙三次圖像插值算法[J].計算機(jī)工程,2010,36(19):216-218.Wang H P,Zhou L L,Zhang J.Region-based bicubic image interpolation algorithm [J].Computer Engineering,2010,36(19):216-218.(in Chinese)

        [6] Li Y H,Zhen J,Li J H,et al.The hardware realization of the bicubic interpolation enlargement algorithm based on FPGA[C]//Third International Symposium on Information Processing,Qingdao,China:ISIP,2010:277-281.

        [7] Nuno-Maganda M A,Arias-Estrad M O.Real-time FPGA-based architecture for bicubic interpolation:An application for digital image scaling[C]//Proceedings of the 2005 International Conference on Reconfigurable Computing and FPGAs,Puebla City,Mexico:Computer Society,2005:31-42.

        [8] 高成敏,陳良,林永和.雙三次卷積模板算法[J].計算機(jī)工程與應(yīng)用,2009,45(17):151-154.Gao C M,Chen L,Lin Y H.Bicubic convolution template algorithm[J].Computer Engineering and Applications,2009,45(17):151-154.(in Chinese)

        [9] 樊博,王延杰,孫宏.FPGA 實(shí)現(xiàn)高速實(shí)時多端口圖像處理系統(tǒng)的研究[J].液晶與顯示,2013,28(4):620-625.Fan B,Wang Y J,Sun H.High speed real-time multiport image algorithm in FPGA real-time system[J].Chinese Journal of Liquid Crystals and Displays,2013,28(4):620-625.(in Chinese)

        久久夜色精品国产九色| 中日av乱码一区二区三区乱码| 久久免费大片| 亚洲一区二区女优av| 日本超级老熟女影音播放| 国产电影一区二区三区| 小12箩利洗澡无码视频网站| 久热re在线视频精品免费| 国产又湿又爽又猛的视频 | 黄色录像成人播放免费99网| 亚洲精品一区二在线观看| 三个男吃我奶头一边一个视频| 男女啪啪视频高清视频| 亚洲av无码国产精品永久一区| 国产精品揄拍100视频| 果冻国产一区二区三区| 开心激情视频亚洲老熟女| 久久99精品久久水蜜桃| 911精品国产91久久久久| 日本一区二区三深夜不卡| 在线观看视频日本一区二区| 免费国产黄网站在线观看可以下载 | 国产成人精品成人a在线观看| 精品无码一区二区三区小说| 国产一级内射一片视频免费| 中国老熟妇506070| 亚洲成av人最新无码| 亚洲av网站首页在线观看| 欲女在线一区二区三区| 激情综合一区二区三区| 国内视频偷拍一区,二区,三区| 亚洲在战AV极品无码| 午夜男女靠比视频免费| 久久人人爽av亚洲精品| 国产精品成人免费视频网站京东| 久久青草国产免费观看| av高清视频在线麻豆免费观看| 亚洲狠狠婷婷综合久久久久| 亚洲中文字幕无码一区| 粉嫩小泬无遮挡久久久久久| 日韩一区二区三区精品视频|