雙線性插值
雙線性插值是常用的插值算法,是許多圖像處理算法的組成部分。
雙線性插值由包圍目前目标像素點的4個像素點的數值通過與目前像素點的相對位置偏移進行插值計算。
如下圖所示:
由 4 個紅點的數值通過雙線性插值計算中間綠點的數值 g。
公式如下:
g = ( w − x w × h 00 + x w × h 01 ) × h − y h + ( w − x w × h 10 + x w × h 11 ) × y h g=(\frac{w-x}{w}\times h00+\frac{x}{w}\times h01)\times\frac{h-y}{h}+(\frac{w-x}{w}\times h10+\frac{x}{w}\times h11)\times\frac{y}{h} g=(ww−x×h00+wx×h01)×hh−y+(ww−x×h10+wx×h11)×hy
在 FPGA 實作時,為了不進行除法計算,最好通過算法設計将 w × h w\times h w×h 的數值設定為 2 的指數,這樣就可以通過截去低位的方法實作除法。
在 sysgen 中使用 Slice 子產品截去低位時使用與二維卷積濾波相同的截位辦法。
乘法系數及輸入的 4 個像素點值根據算法設計取得。
具體的 sysgen 實作可以參考後續的自适應直方圖均衡一文的說明。