圖像放大方法概述

 影視製作領域,往往會涉及到將低分辨率的圖像放大爲高分辨的圖像的問題,有時候還會涉及到 非正方形像素到正方形像素的調整問題。本章將在圖像放大算法,像素寬高比調整方法以及圖像序列放大批處理技術等三方面的問題與讀者進行探討。

一、 圖像放大算法
 
    圖像放大有許多算法,其關鍵在於對未知像素使用何種插值方式。以下我們將具體分析幾種常見的算法,然後從放大後的圖像是否存在色彩失真,圖像的細節是否得到較好的保存,放大過程所需時間是否分配合理等多方面來比較它們的優劣。
當把一個小圖像放大的時候,比如放大400%,我們可以首先依據原來的相鄰4個像素點的色彩值,按照放大倍數找到新的ABCD像素點的位置並進行對應的填充,但是它們之間存在的大量的像素點,比如p點的色彩值卻是不可知的,需要進行估算。
圖1-原始圖像的相鄰4個像素點分佈圖
圖2-圖像放大4倍後已知像素分佈圖

 
1、最臨近點插值算法(Nearest Neighbor)
最鄰近點插值算法是最簡單也是速度最快的一種算法,其做法是將放大後未知的像素點P,將其位置換算到原始影像上,與原始的鄰近的4周像素點A,B,C,D做比較,令P點的像素值等於最靠近的鄰近點像素值即可。如上圖中的P點,由於最接近D點,所以就直接取P=D。
這種方法會帶來明顯的失真。在A,B中點處的像素值會突然出現一個跳躍,這就是出現馬賽克和鋸齒等明顯走樣的原因。最臨近插值法唯一的優點就是速度快。
 
2、雙線性插值算法(Bilinear Interpolation)
其做法是將放大後未知的像素點P,將其位置換算到原始影像上,計算的四個像素點A,B,C,D對P點的影響(越靠近P點取值越大,表明影響也越大),其示意圖如下。
圖3-雙線性插值算法示意圖
其具體的算法分三步:

第一步插值計算出AB兩點對P點的影響得到e點的值。
圖4-線性插值算法求值示意圖
對線性插值的理解是這樣的,對於AB兩像素點之間的其它像素點的色彩值,認定爲直線變化的,要求e點處的值,只需要找到對應位置直線上的點即可。換句話說,A,B間任意一點的值只跟A,B有關。
第二步,插值計算出CD兩點對P點的影響得到f點的值。
第三步,插值計算出ef兩點對P點的影響值。
雙線性插值算法由於插值的結果是連續的,所以視覺上會比最鄰近點插值算法要好一些,不過運算速度稍微要慢一點,如果講究速度,是一個不錯的折衷。
 
3、雙立方插值算法(Bicubic Interpolation)
    雙立方插值算法與雙線性插值算法類似,對於放大後未知的像素點P,將對其影響的範圍擴大到鄰近的16個像素點,依據對P點的遠近影響進行插值計算,因P點的像素值信息來自16個鄰近點,所以可得到較細緻的影像,不過速度比較慢。
 
圖5-雙線性插值算法4個鄰近點影響未知點信息示意圖

圖6-雙立方插值算法16個鄰近點影響未知點信息示意圖
 
不過雙立方插值算法與雙線性插值算法的本質區別不僅在於擴大了影響點的範圍,還採用高級的插值算法,如圖所示。
圖7-非線性插值算法求值示意圖
 
要求A,B兩點之間e點的值,需要利用A,B周圍A-1,A,B,B+1四個點的像素值,通過某種非線性的計算,得到光滑的曲線,從而算出e點的值來。
所謂“雙”或者叫“二次”的意思就是在計算了橫向插值影響的基礎上,把上述運算拓展到二維空間,再計算縱向插值影響的意思。
雙立方插值算法能夠得到相對清晰的畫面質量,不過計算量也變大。該算法在現在的衆多圖像處理軟件中最爲常用,比如Photoshop,After Effects,Avid,Final Cut Pro等。
爲了得到更好的圖像質量,在以上的基礎上,許多新的算法不斷涌現,它們使用了更加複雜的改進的插值方式。譬如B樣條(B-SPline), 米切爾(Mitchell)等插值算法,它們的目的是使插值的曲線顯得更平滑,圖像邊緣的表現更加完美。
 
4、 自適應樣條插值極其增強技術( S-Spline  &  S-Spline  XL)
與上述經典的插值方法最大的區別在於, S-Spline 採用了一種自適應技術,那些傳統的方法總是依據周圍的像素點來求未知點的色彩值,也就是說需要求解的色彩值僅僅依靠該像素點在圖像中的位置,而非實際的圖像的像素信息,而自適應樣條算法還會考慮實際圖像的像素信息。 實驗表明,經過 S-Spline 算法得到的圖像效果要優於雙立方插值算法。
現在 S-Spline 算法又出現了增強版 S-Spline  XL,新版本的 S-Spline XL 算法較 S-Spline 而言畫面的銳度得到進一步增強,物體的輪廓更加清晰,邊緣的鋸齒現象大大減弱,圖像感受更加自然。
二、 圖像放大算法 實際測試 
現在我們來對以上幾種插值算法進行實際測試,看看它們的效果。首先打開原始的圖像bird.jpg.這是一個分辨率爲360×270的圖像。
圖8-原始圖像
 
我們採用 BenVista 公司著名的 PhotoZoom Pro 2 軟件,在pc電腦上進行測試,電腦的CPU配置爲Inter Core 2 T5500 1.66GHz,分別採用以上5種插值方法把原始圖像放大8倍得到5個2880×2160的圖像。
圖9-最臨近點插值N earrst_ N eighbour
 
圖10-雙線性插值B ilinear
 
圖11-雙立方插值B icubic
 
圖12-自適應樣條插值S-S pline
 
圖13-自適應樣條增強性插值S-S pline_ XL
 
對比以上各圖並結合實驗數據,我把效果參數列舉如下表。
插值類型
主觀感受
圖像輪廓
總體評價
處理耗時
最臨近點插值
N earrst_ N eighbour
馬賽克現象嚴重
不清晰
最差
5秒
雙線性插值
B ilinear
圖像模糊,不銳利
邊緣不清晰,有鋸齒現象
6秒
雙立方插值
B icubic
圖像較模糊,較銳利
鋸齒現象有所改善
折中
8秒
自適應樣條插值
S-S pline
圖像相對清晰,銳利
邊緣變得清晰,鋸齒現象消失
18秒
自適應樣條增強
S-S pline_ XL
圖像清晰,銳利
邊緣銳利,清晰
最好
20秒

   顯然,爲了得到最好的圖像放大質量,在可選條件下,我們應該使用自適應樣條插值增強(S-S pline_ XL)技術來放大圖像。
三、像素寬高比調整 
現在我們就以35mm膠片拷貝的4k等效分辨率4096×3112爲標準,使用自適應樣條插值增強(S-S pline_ XL)技術,對SD-NTSC制式720×486(720×480)分辨率的圖像進行放大。同時來說明如何調整非正方形像素到正方形像素的調整方法。
以NTSC_720×486的圖像爲例,它與4k膠片等效分辨率4096×3112而言,存在顯示比例不同的問題,爲了最大化保留畫面的信息,我們以信箱模式爲例進行調整,同時我們還要考慮NTSC制式像素寬高比變化的問題。
    我們知道NTSC圖像的像素的寬高比並不是1:1的,而是0.9:1。在方形像素顯示模式下,調用NTSC圖像時候,我們發現圖像會發生變形,即感覺畫面被壓扁了。如圖所示:
                   
          圖14-NTSC長方形像素示意圖                                                                                 圖15-方形像素示意圖
 
圖16-方形像素顯示模式下NTSC圖像縱向被壓縮示意圖
 
現在我們從 BenVista PhotoZoom Pro 2.3.2 軟件中,先調整像素寬高比變形問題,再調整畫面放大參數。
打開 BenVista PhotoZoom Pro 2.3.2 軟件,它不僅支持單幅圖像的放大處理,還可以批處理圖像序列幀,此版本支持tif,png,tga,bmp等圖像格式,在使用的時候我們需要生成軟件所支持的格式,一般用tif或png格式。
 
1).關閉maintain aspect tatio,然後預調整新生成的圖像寬度爲720×0.9=648,校正因畫面像素寬高比變化導致的畫面變形現象,參數調整如圖所示。
 
圖17-預調整參數示意圖
 
2).現在調整新生成的圖像寬度值爲4096,調整高度值爲486×(4096/648)=3072。即等比例放大預生成的圖像到35mm膠片的等效分辨率大小,隨後定義放大的插值方式爲S-S pline_ XL即可。
不過由於畫幅比例問題,當使用 35 mm膠片進行記錄時,由於其4k等效分辨率爲4 0 96  x  3112,所以膠片的上下邊將留出一定的黑邊。
 
四、圖像放大批處理 
    通過以上的分析,我們瞭解了使用 BenVista PhotoZoom Pro 2.3.2 軟件放大單幀圖像的方法,再結合它的批處理技術,就可以實現對圖像序列的放大了。
     在其工具欄中直接啓動new Batch選項,然後點擊Add Images按鈕添加圖像序列幀,然後選中所有的幀,依據源格式以及所需要生成的圖像尺寸,結合上面的分析數據填充放大的後的圖像尺寸和插值運算模式,並制定生成路徑後點擊運行,便可以實現圖像序列的批處理。
圖18-添加圖像序列示意圖
 
    經過一定時間的處理,我們便能得到大尺寸圖像序列幀畫面了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章