基于FPGA的雙線性插值算法設計與分析

      網友投稿 1288 2025-03-31

      基于FPGA的雙線性插值算法設計與分析

      前言

      1、幾種常見插值類型

      1.1 最鄰近插值

      1.2 雙線性插值

      1.3 雙三次插值

      2、FPGA實現雙線性插值

      2.1 準備工作

      2.2 實現的難點

      2.3 整體的RTL圖

      2.3.1 坐標轉換模塊

      2.3.1.1 雙線性插值代填充坐標公式:

      2.3.1.2 小數部分的處理

      2.3.1.3 小數部分的表示

      2.3.1.4 系數的表示

      2.3.2 內存管理模塊

      2.3.3雙線性插值模塊

      3、仿真波形簡單分析

      前言

      在視頻圖像幾何校正或圖像配準坐標系轉換中,往往需要進行縮放、旋轉、透視變換等幾何變換操作。要想進行縮放旋轉操作,就要得到輸入輸出圖像之間的映射關系,也可稱之為幾何變換關系。

      幾何變換的基本結構,包括兩種如下左圖的前向映射和右圖的逆向映射

      -

      向前映射適合于處理流輸入,例如 來自一個攝像機的輸入,其每個輸入像素 能被映射到 指定輸出圖像中的位置。

      逆向映射更適合于產生數據流輸出,例如圖像數據流輸出到顯示器,因為對于每個輸出像素,逆向映射指定了 像素值來自于 輸入圖像的什么位置

      地址的話,一般由行列計數器提供,通過行列計數器獲得某點坐標,從而根據二維坐標到一維地址的轉換地址計算得到。

      但是按照這種映射關系,輸出圖像的像素可能被映射到輸入圖像的非整數坐標上,因此需要采用插值技術。

      1、幾種常見插值類型

      1.1 最鄰近插值

      網上有很多解釋,可自己查閱

      最簡單但鋸齒嚴重

      基本原理:選擇距離期望位置最近的像素(相當于復制粘貼

      1.2 雙線性插值

      基于FPGA的雙線性插值算法設計與分析

      核心思想:分別在xy兩個方向上進行一次插值。

      比如下圖所示,已知四個紅色點的像素值且為整數,求最終落在非整數位置的P的像素值。我們可以先在x方向上進行插值,得到插值結果R1和R2,然后在y方向上繼續進行插值,即可得到插值點P。

      1.3 雙三次插值

      效果更平滑,和雙線性插值類似,只不過用相鄰16個點,復雜且消耗資源多。

      一般來說,雙線性插值是一個折中選擇。

      2、FPGA實現雙線性插值

      2.1 準備工作

      100*100的mif文件,為提前將圖像數據存儲在RAM中

      用雙線性插值來實現100100圖像到256256圖像的放大操作。

      雙線性插值公式

      2.2 實現的難點

      算法中小數部分到底該如何處理

      如果求出插值公式中的系數,以及周圍四個點的坐標

      求出四個點之后,為加快速度,如何將四個點的像素值同時讀出

      2.3 整體的RTL圖

      上圖可看到,包含五個模塊:坐標轉換模塊,內存管理模塊,雙線性插值計算模塊,分頻模塊,VGA顯示模塊。重點看前三個模塊。

      2.3.1 坐標轉換模塊

      為了解決小數部分的問題。

      2.3.1.1 雙線性插值代填充坐標公式:

      首先如下是采用最近鄰實現縮放的公式:

      為達到更好的效果,進行了如下優化

      由此可以計算出目標像素點,對應原圖像像素點的坐標。

      2.3.1.2 小數部分的處理

      我們采用擴大倍數的方式來處理小數部分,因為要100100擴大到256256,因此需要擴大512倍,才能沒有小數部分,所以公式改變:

      2.3.1.3 小數部分的表示

      由于擴大到了256*256,256用9位寬表示,因此直接用20位位寬來表示srcX,Y

      所以高10位表示整數,低10位表示小數部分。

      //高10位為整數部分 assign coordinate_x = src_x[19:10]; assign coordinate_y = src_y[19:10];

      //低10位為小數部分 assign coordinate_xx = src_x[9:0]; assign coordinate_yy = src_y[9:0];

      2.3.1.4 系數的表示

      系數包含,u,1-u,v,1-v。因為擴大了512倍數,所以1-u,變成了512-擴大后的小數部分的u

      assign coefficient2 = {1'b0,src_x[8:0]}; //u assign coefficient1 = 'd512 - coefficient2; // 1-u assign coefficient4 = {1'b0,src_y[8:0]}; //v assign coefficient3 = 'd512 - coefficient4; //1-v

      2.3.2 內存管理模塊

      采用4個RAM來解決同時讀取四個點對應像素的問題

      調用IP核的方法,將之前的mif文件存儲進去即可

      2.3.3雙線性插值模塊

      將系數和四個坐標代入公式

      assign data_1 = coefficient1*coefficient3*doutbx; //(1-u)*(1-v)*f(i,j) assign data_2 = coefficient2*coefficient3*doutbx1;//u*(1-v)*f(i+1,j) assign data_3 = coefficient1*coefficient4*doutby;//(1-u)*v*f(i,j+1) assign data_4 = coefficient2*coefficient4*doutby1;//u*1-v*f(i+1,j+1)

      因為擴大了512倍數,因此還要將結果縮小512倍。所以取高8位

      3、仿真波形簡單分析

      設計計數器,看插值圖像是否完成

      -可看到,最后接收65536個數據。(從0開始)

      插值結果的正確性,可以用matlab或者python驗證

      例如,如下是我們采用matlab或者python生成的圖像數據(相當于mif文件)

      截取部分數據進行查看,能看到是相對應的。

      依次驗證也能得到該設計正確,觀察波形圖正確后,即可上板驗證。

      還可采用之前文章的方法,將數據從波形中導出,便于查看數據。

      - always @ (posedge clk) begin if (!start) j <=0; else if (j<65535) j <= j+1; else j<= 65535; end //如下想要將256*256圖像的65536個數據導出 integer w_file; initial w_file = $fopen("data_out.txt"); always @(j) begin $fdisplay(w_file,"%h",doutb); //十進制的輸出 if(j == 21'd65535) ; //共寫入65536個數據 end

      也能生成對應的文檔,其中數據與matlab或者python生成的圖像數據一樣,說明插值成功。

      波形成功后,加入了VGA顯示模塊,想要直接屏幕顯示效果,但目前打不開modelsim,下次再試

      參考:

      https://blog.csdn.net/weixin_43070186/article/details/86601714

      CSDN:H19981118的博客_Fighting_XH_CSDN博客-FPGA基礎,modelsim仿真測試,FPGA圖像處理領域博主

      FPGA

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣制作biaoge(怎樣制作表格和隱藏多余文字)
      下一篇:excel中去掉空格的教程
      相關文章
      亚洲中文字幕无码久久2017| 国产成人A人亚洲精品无码| 亚洲精品偷拍视频免费观看| 亚洲免费电影网站| 久久久久亚洲av无码尤物| 亚洲精品二区国产综合野狼| 亚洲中文字幕无码中文字在线| 国产产在线精品亚洲AAVV| 国产成人精品久久亚洲高清不卡| 亚洲一区二区无码偷拍| 亚洲日韩精品无码AV海量| 亚洲综合欧美色五月俺也去| 精品国产日韩久久亚洲| 亚洲中文字幕无码久久| 亚洲欧好州第一的日产suv| 亚洲成av人无码亚洲成av人| 久久亚洲精品成人无码| 亚洲 小说区 图片区 都市| 亚洲av无码成人精品区| 久久久久久亚洲精品不卡| 亚洲色精品vr一区二区三区 | 亚洲人成在线中文字幕| 亚洲国产av高清无码| 456亚洲人成在线播放网站| 中文日韩亚洲欧美制服| 亚洲国产成人AV在线播放 | 亚洲精品人成在线观看| 亚洲精品视频在线播放| 亚洲精品韩国美女在线| 亚洲国产日韩精品| 老子影院午夜伦不卡亚洲| 亚洲精品无码久久久| 亚洲午夜爱爱香蕉片| 久久亚洲精品视频| 77777_亚洲午夜久久多人| 亚洲国产精品成人精品软件| 亚洲无人区码一二三码区别图片| 在线播放亚洲精品| 一本久久a久久精品亚洲| 亚洲无线电影官网| 亚洲乱码中文字幕小综合|