双三次插值图像旋转_4K/8K电视中的超分辨率技术到底是啥?让我来告诉你(二-插值篇)...
昨天的文章中,寫了在4K/8K電視中的超分辨率算法究竟是什么,它的應用場景有哪些以及現在常用的超分辨率算法有哪幾大類,如有不清楚的,可以翻看昨天的文章,今天書接上文,具體來聊一聊三類超分辨率算法中的第一種,基于插值的超分辨率算法。
什么是插值?
圖像的插值,也稱之為圖像的縮放,即使用連續的插值核函數對離散的圖像進行采樣,通過圖像待插值點已知部分鄰域的像素信息來計算出待插值點的像素信息。
在數字圖像處理過程中,因為要得到的目標圖像和源圖像之間,往往分辨率大小不同,就需要通過插值來實現圖像的縮放。所要得到的目標圖像的好壞,直接取決于所采用的插值方法的優劣。
基本的插值方法有哪些?
- 最鄰近插值
插值過程中只是利用了鄰域內一個像素點,如下圖所示:
圖中P為待插值點, A點和B點為待插值點P領域內的源圖像點。如上圖所示,假設A和B兩點之間的距離經過歸一化處理為1,因為d2 < d1,所以將B的像素值賦給待插值點 。
- 雙線性插值
雙線性插值的主要思想是在橫向和縱向分別進行線性插值,在每一單個方向上有2個像素點參與插值。仍以上圖為例,P點的像素值可以由下式計算得到:
在一維線性插值算法中,待插值點可以由鄰域內兩個源圖像點通過加權求和得到。其中加權系數和和待插值點與兩個源圖像點之間的偏移量絕對值成反比關系。
- 雙三次插值
雙三次插值是在待插值點的橫向和縱向分別進行插值,且在每個方向上利用的源圖像點為四個,如下圖的情況所示。
一維三次插值函數對應的卷積公式為:
式中:
P——待插值點;
A 、B 、C 、D —— 領域內的源圖像像素點;
ha 、hb 、hc 、hd ——為根據下面公式偏離量計算出的三次多項式。
此類算法利用了待插值點周圍領域的16個,進行4次縱向插值和一次橫向插值或者4次橫向插值和一次縱向插值計算出待插值點信息。
上面三種插值算法的插值結果如何?
最鄰近插值算法的優點為原理簡單,能夠滿足實時性要求,但是因為整個插值過程中只是利用了最鄰近的一個像素點信息,致使經過插值得到的圖像連續性差,在邊緣區域,鋸齒現象十分明顯。
雙線性插值算法使用了待插值點鄰域內的四個像素點,在一定程度上解決了最鄰近插值中容易出現鋸齒的問題,但是缺點是計算量變大,實時性比最鄰近插值要差。
雙三次插值算法利用了待插值點周圍領域的16個,進行4次縱向插值和一次橫向插值或者4次橫向插值和一次縱向插值計算出待插值點信息。所以它的插值效果較好,但是,它的計算復雜度也相應增加,不過一般情況下,還是能夠滿足實時性要求。
三種插值算法的共同問題:因為基于插值核的縮放算法,由于沒有對圖像的內容特性進行考慮,所以在圖像的高頻區域處理效果不理想。表現到空域,就是圖像在邊緣區域和紋理部分一般效果較差。
如何解決圖像邊緣區域和紋理區域插值效果不佳的問題?
為了解決這個問題,有人提出了基于圖像局部區域內容特性的插值算法。
這類算法提出的前提是:對高分辨率圖像進行下采樣的一個集合就是低分辨率圖像,并且在采樣過程中,把位于局部區域的相關特性也一起采樣得到。所以根據這些采樣得到的相關特性,可以對低分辨率進行插值運算,獲得高分辨率圖像。
這類算法一般一般先進行邊緣檢測,對邊緣部分和非邊緣部分進行不同的處理。
因為這類算法是基于了圖像內的協變特性,所以對邊緣區域的處理效果較好,但是因為在具體實現過程中,有大量的矩陣運算,非常不利于硬件實現,所以我沒有深入研究,就不再贅述。
基于插值的算法總結
基于插值的算法,因為運算過程簡單,算法運行效率較高,能夠滿足實時性要求,且硬件實現相對簡單。但是,因為插值算法,沒有考慮去模糊過程,只能對圖像進行放大操作,不能提升圖像分辨率,所以對圖像的視覺質量提升十分有限,已經不能滿足實際的需要。
參考資料:
[1] Meijering E. A chronology of interpolation: from ancient astronomy to modern signal and image processing[J]. Proceedings of the IEEE, 2002.
總結
以上是生活随笔為你收集整理的双三次插值图像旋转_4K/8K电视中的超分辨率技术到底是啥?让我来告诉你(二-插值篇)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPU资源分配
- 下一篇: CUDA从入门到精通(零):写在前面