隨著各種數位影像輸出技術成熟,和以往必須經過放大機將底片顯影於相紙上的昂貴價格相比,大幅面輸出成為一般人都可以負擔的照片製作成本。相對地,越大尺寸的影像輸出若要兼顧影像品質和精細度,就必須有越高品質的數位圖檔來源。肩負數位輸入端的相機感光元件能夠擷取的像素數量雖然不斷往上攀升,但對於極大尺寸的輸出成品仍有向上追求的空間,一般消費等級的數位相機更是力有未逮。此時數位圖檔可藉由軟體放大,以求達到更大尺寸的輸出成品,不同軟體和演算法間的差異勢必成為細節中的魔鬼。本文就市面主流的影像處理軟體實際縮放影像測試,比較不同軟體的差異和優劣供影像創作者參考。

擴檔原理

點陣圖檔的本質是由一個個獨立的像素整齊排列而成,所以像素的多寡決定了圖檔的真實大小,詳細說明可見數位影像檔案設定概述。為了要輸出至更大的尺寸就必須增加圖檔像素,以避免輸出作品出現像素鋸齒狀的瑕疵問題。從此衍生出來的解決方案是採用內插法計算來增加像素,也就是所謂的內插補點,這是目前各款影像軟體的主流方式,但內插方式則各有巧妙。本次測試除市占最高的Adobe Photoshop (CC 2018版)外,另有BenVista PhotoZoom Pro 7、ON1 Resize 2018等專業擴檔軟體,再加上完全不同原理的Topaz Gigapixel AI 4。測試使用四款軟體共計16種不同的演算方式,分別套用在四張不同類別的原始圖片,以及四個不等的放大比例,比較超過250張圖片。

在正式開始測試之前我們先簡單認識一下影像放大的方式,前面提到目前主流方式為內插法,也就是使用數學公式在像素間內插計算出原本不存在的像素資訊。自然地,放大品質就取決於內插公式的準確性,可見以下的圖例幫助理解(取自維基百科)。以最簡單的線性內插來說明,就是直接取相鄰兩點依距離等比例計算數值,應用到二維圖檔上則是取相鄰四點的資料做計算。另一個常見的方式是使用三次函數內插,必須取前後四點的數值計算三次函數,應用到平面圖檔中就必須依周邊 4x4=16 個像素的資料做計算。這個方法可以得到更為平順的數據,也就代表影像會較為平滑。這兩種內插計算方式是最普遍的,各家軟體還有其他自己獨特的運算方式來加強影像放大的效果。

由以上說明我們可以知道,點陣圖檔的放大本質就是數學的內插公式計算,端看各家應用的公式不同而有成效上的差異,但都無法避免影像模糊、失去細節和產生偽影等問題,只能盡量降低影響。由於內插公式無法判斷運算的圖檔內容,只依像素的 RGB (or CMYK) 數值計算,無法兼顧銳利/模糊、高反差/低反差、複雜細節/平滑漸層等各式不同的影像,這被稱為非適應性 (non-adaptive) 演算,也就是不論圖檔內容是什麼都套用一樣的計算公式。

部分開發者察覺到這一限制,於是著手撰寫了針對不同影像內容能夠改變計算方式的演算法,這就稱為自適應性演算 (adaptive interpolation)。例如在大部分影像區域使用高階內插函數 (high order polynomials)以獲得更平順的影像過渡,但偵測到相鄰像素色彩數值差異較大時判斷為銳利邊緣,在該處使用其他內插方法來保留邊緣避免模糊。這在 ON1 的招牌演算法 genuine fractals 和 Photozoom Pro 的 s-spline 演算法中得到了實踐,Photoshop 裡的 preserve details 2.0 (保留細節2.0)也採取了類似的方法。自適應性演算法可說是程式半智慧地因應圖檔特性選擇更好的內插方式,相比傳統非適應性內插法能夠大大提升影像放大後的物體邊緣銳利度。

測試內容

談完內插補點的原理之後正式來到測試的內容,本次測試使用的四張圖檔如下,分別為風景照片、人像照片、繪畫翻拍、地圖掃描(印刷品)。

landscape.jpg

portrait.jpg

painting.jpg

printing.jpg

風景照片為M43相機拍攝,總像素是3448 x 4592,約15.8 MP。人像照片取自Canon相機範例圖檔,大小為5184 x 3456 pixels共17.9 MP。繪畫翻拍圖檔為美國國家美術館藏雷諾瓦畫作公開授權,影像尺寸2563 x 2727 pixels。印刷地圖檔案由紐約公共圖書館公開授權,尺寸為5556 x 3970 pixels。

測試共使用了四個軟體,其中Photoshop是最為普及的專業影像編輯軟體,目前的第20版 (CC 2018) 共有以下五種演算法:

‧ nearest neighbor (最接近像素)
‧ bilinear (縱橫增值法)
‧ bicubic (環迴增值法)
‧ preserve details (保留細節)
‧ preserve details 2.0 (保留細節2.0)

前三項是較為基本的內插方式,以單純的計算公式插補點,preserve details大幅提升了影像放大的精細度和銳利度,去年新增的2.0版Adobe宣稱對於邊緣過度銳利的偽影做了優化修正。

第二個擴檔軟體是 ON1,獨家的 genuine fractals 演算法基植於數學中的碎形理論。碎形理論原本是應用在影像壓縮的演算上,在 90 年代開發出用於影像縮放的演算法,並在1997年發行第一套商業軟體,後於2005年被ON1收購成為現今我們認識的ON1 Resize。

photozoom.jpg

第三個軟體是專門執行影像放大的 Photozoom Pro,內建相當多種演算法,也包括 Photoshop 內建的三種基本內插公式。除此之外還收錄許多不同的數學內插法計算公式,如右圖所示共有多達12種演算法條列如下:

‧ Nearest Neighbor (最近相鄰)
‧ Bilinear (雙線性)
‧ Hermite (法國數學家Charles Hermite發明的內插法)
‧ Bell
‧ Mitchell
‧ Catmull-Rom
‧ B-Spline
‧ Bicubic (雙立方)
‧ Lanczos (匈牙利數學家Cornelius Lanczos發明的內插法)
‧ S-Spline
‧ S-Spline XL
‧ S-Spline Max

Photozoom陪伴許多攝影師從早期數位相機畫素只有數百萬的年代走過,作為一個老牌影像插補點軟體擁有驚人的多種演算法選擇。不過其中仍然是以獨家的S-Spline作為招牌,從開發至今最新的第7版也發展出S-Spline XL和S-Spline Max兩個增強版。

最後使用的一套軟體是Topaz Gigapixel AI,Topaz這家公司以Topaz Studio聞名,主要是後端修圖的小型軟體。但去年釋出Gigapixel AI後震驚業界,利用人工智能深度學習演算法執行的擴檔軟體,不使用內插補點而是由AI計算重新「畫出」影像的細節。過去也曾有其他服務使用AI擴檔,但都必須將圖片上傳在伺服器計算完成之後再下載回來,圖檔最大尺寸也有許多限制。由於人工智能訓練的快速進化,Gigapixel AI從beta發表至今不到一年的時間就已改版至4.0.3,目前國外使用測試都有相當高的評價。

測試使用以上四款軟體共計16種不同的演算方式進行圖檔處理,若有可調整參數時皆使用軟體預設值,若有遮罩銳利化功能全部皆關閉,以單純比較演算法本身的效果。Photozoom體驗版輸出圖檔皆會被添加浮水印,其他軟體則採限時使用無浮水印限制,但對於效果比較的影響不大故仍以浮水印檔案呈現。

風景擴檔比較

將圖檔以每種演算法分別擴大到原始1.5倍大小,這是在一般使用情境中最常見的情況,稍微擴大圖檔以符合輸出所需。以下是各種補點演算法同區域的局部截圖,可點擊圖片另開分頁放大觀看。

nearest 最接近像素法的結果和直接把像素格點放大相同,可作為原始圖檔的比較基準。其中B-Spline和Bell兩種演算法明顯是最為模糊的,甚至比Bilinear縱橫增值法效果還要差,Hermite、Mitchell和Catmull-Rom也沒有多好的表現。再來是因為photoshop內建所以最常被使用的Bicubic環迴增值法,Lanczos和S-Spline的表現非常接近。幾種自適應性演算法明顯都比傳統內插公式有更好的效果,S-Spline XL在其中表現是較差的,但仍然比Bicubic要好得多。Genuine Fractals和Preserve Detail效果很接近,Preserve Detail 2.0有些微的提升但不明顯,S-Spline Max在物體輪廓的銳利度上表現又更好一些。但這些演算法在AI面前全都顯得模糊不堪,讓人覺得是套上了模糊濾鏡一樣,只能說人工智慧的應用讓影像放大進入了下一個世代。

接著我們將放大倍率調整至兩倍,也就是總像素提升到原本的四倍之多,同樣將各種演算法的局部擷取如下。測試結果和1.5倍相當接近,解析度最好的仍是Gigapixel AI,接著是各式自適應演算法,傳統演算法效果較不理想。但可見到在兩倍的放大後,部分演算法出現了不自然的過度銳利感,必須因應影像內容稍加調整軟體的參數予以改善。

landscape_2_nearest.jpg landscape_2_bilinear.jpg landscape_2_hermite.jpg landscape_2_bell.jpg

landscape_2_mitchell.jpg landscape_2_catmull-rom.jpg landscape_2_b-spline.jpg landscape_2_bicubic.jpg

landscape_2_lanczos.jpg landscape_2_s-spline.jpg landscape_2_s-spline xl.jpg landscape_2_s-spline max.jpg

landscape_2_genuine fractals.jpg landscape_2_preserve detail.jpg landscape_2_preserve detail 2.jpg landscape_2_AI.jpg

最後也是本篇測試的最高放大倍率四倍,各個演算法的表現沒有太大變化,唯獨Photoshop的Preserve Details 2.0在某些區域勝過了Photozoom Pro的S-Spline Max,兩者各有擅長的部份但整體仍是S-Spline Max銳利度更高。Gigapixel AI則是在部分區域和其他演算法有類似的「平庸」表現,但某些區塊卻出現了驚人的解析度,甚至是超越原圖無中生有算出原本不存在的細節。這簡直是科幻電影的情節正式成為現實,但尚未臻完美所以產生同一影像不同區域解析度落差較大和偽影的問題。

landscape_4_nearest.jpg landscape_4_bilinear.jpg landscape_4_hermite.jpg landscape_4_bell.jpg

landscape_4_mitchell.jpg landscape_4_catmull-rom.jpg landscape_4_b-spline.jpg landscape_4_bicubic.jpg

landscape_4_lanczos.jpg landscape_4_s-spline.jpg landscape_4_s-spline xl.jpg landscape_4_s-spline max.jpg

landscape_4_genuine fractals.jpg landscape_4_preserve detail.jpg landscape_4_preserve detail 2.jpg landscape_4_AI.jpg

經過以上三種不同放大倍率的測試結果,Gigapixel AI以壓倒性的解析度宣告影像放大的新時代來臨,以下就四家軟體的招牌演算法偕同比較,可以點擊圖片後下載至電腦放大觀看。

人像擴檔比較

人像照片一樣採用各種演算進行不同放大倍率的解析度比較,取眼睛部分焦內成像的位置做局部截圖。

portrait_1.5_nearest.jpg portrait_1.5_bilinear.jpg portrait_1.5_hermite.jpg portrait_1.5_bell.jpg

portrait_1.5_mitchell.jpg portrait_1.5_catmull-rom.jpg portrait_1.5_b-spline.jpg portrait_1.5_bicubic.jpg

portrait_1.5_lanczos.jpg portrait_1.5_s-spline.jpg portrait_1.5_s-spline xl.jpg portrait_1.5_s-spline max.jpg

portrait_1.5_genuine fractals.jpg portrait_1.5_preserve detail.jpg portrait_1.5_preserve detail 2.jpg portrait_1.5_AI.jpg

人像的差異不如風景照片來的明顯,不過解析度表現和前段描述差異不大,Gigapixel AI有著壓倒性的勝利,但稍顯過於銳利,自適應性演算法也仍然比傳統內插補點效果更好。Photoshop的Preserve Details 2.0沒有比Preserve Details要好,從Adobe的官方說明看來這應是故意安排的,避免過於銳利的不自然感。ON1的Geniune Fractals和Photozoom Pro的S-Spline Max間變得難以分出優劣,但還是都勝過傳統演算法。

portrait_2_nearest.jpg portrait_2_bilinear.jpg portrait_2_hermite.jpg portrait_2_bell.jpg

portrait_2_mitchell.jpg portrait_2_catmull-rom.jpg portrait_2_b-spline.jpg portrait_2_bicubic.jpg

portrait_2_lanczos.jpg portrait_2_s-spline.jpg portrait_2_s-spline xl.jpg portrait_2_s-spline max.jpg

portrait_2_genuine fractals.jpg portrait_2_preserve detail.jpg portrait_2_preserve detail 2.jpg portrait_2_AI.jpg

兩倍和四倍放大的比較沒有太大差異,就不再一一說明,想要更詳細觀看可直接點選圖片後另行下載。

portrait_4_nearest.jpg portrait_4_bilinear.jpg portrait_4_hermite.jpg portrait_4_bell.jpg

portrait_4_mitchell.jpg portrait_4_catmull-rom.jpg portrait_4_b-spline.jpg portrait_4_bicubic.jpg

portrait_4_lanczos.jpg portrait_4_s-spline.jpg portrait_4_s-spline xl.jpg portrait_4_s-spline max.jpg

portrait_4_genuine fractals.jpg portrait_4_preserve detail.jpg portrait_4_preserve detail 2.jpg portrait_4_AI.jpg

最後以四家軟體的招牌演算法做比較,差異雖不如風景照片那麼明顯,但放大查看仍舊是Gigapixel AI的銳利度遙遙領先。不過連原本模糊的粉刺都一一被刻劃清晰的豐富細節,Gigapixel AI對於美少女糖水照是否如此適用還有討論空間。其他三種演算法對於人臉都有相當不錯的成果,但若畫面中有其他物體如充滿細節的衣服布料或是周邊物件,這些演算法還是無法與AI匹敵。

portrait_s.jpg

繪畫翻拍比較

經過前面兩種圖像的比較,大致可以了解到若影像含有大量高頻細節時,各演算法間的差異會較為明顯。整體而論AI遠遠優於自適應性演算法,傳統非適應性內插法效果是最差的。

painting_1.5_nearest.jpg painting_1.5_bilinear.jpg painting_1.5_hermite.jpg painting_1.5_bell.jpg

painting_1.5_mitchell.jpg painting_1.5_catmull-rom.jpg painting_1.5_b-spline.jpg painting_1.5_bicubic.jpg

painting_1.5_lanczos.jpg painting_1.5_s-spline.jpg painting_1.5_s-spline xl.jpg painting_1.5_s-spline max.jpg

painting_1.5_genuine fractals.jpg painting_1.5_preserve detail.jpg painting_1.5_preserve detail 2.jpg painting_1.5_AI.jpg

在應用到傳統繪畫翻拍的圖檔時各演算法間差異更加明顯,由於原始圖檔有極為銳利的豐富細節,自適應性演算法對於邊緣的處理可以更加優化,拉大了與傳統演算法的差距。值得一提的是Photoshop Preserve Details 2.0比Preserve Details要好出非常多,和人像照片有極為不同的結果。可見Adobe的確在偵測到人像照片時刻意降低Preserve Details 2.0的銳利度,使用在油畫翻拍圖檔時完全解放這個演算法的真正威力,甚至比同樣是自適應演算法ON1的Geniune Fractals要好上一截,但和油畫筆觸恍若真實呈現眼前的Gigapixel AI比起來各家都有段距離。

painting_2_nearest.jpg painting_2_bilinear.jpg painting_2_hermite.jpg painting_2_bell.jpg

painting_2_mitchell.jpg painting_2_catmull-rom.jpg painting_2_b-spline.jpg painting_2_bicubic.jpg

painting_2_lanczos.jpg painting_2_s-spline.jpg painting_2_s-spline xl.jpg painting_2_s-spline max.jpg

painting_2_genuine fractals.jpg painting_2_preserve detail.jpg painting_2_preserve detail 2.jpg painting_2_AI.jpg

放大比例調整至兩倍和四倍時的狀況沒有差異,想要更仔細觀看比較可以點擊圖片另開分頁放大比較。

painting_4_nearest.jpg painting_4_bilinear.jpg painting_4_hermite.jpg painting_4_bell.jpg

painting_4_mitchell.jpg painting_4_catmull-rom.jpg painting_4_b-spline.jpg painting_4_bicubic.jpg

painting_4_lanczos.jpg painting_4_s-spline.jpg painting_4_s-spline xl.jpg painting_4_s-spline max.jpg

painting_4_genuine fractals.jpg painting_4_preserve detail.jpg painting_4_preserve detail 2.jpg painting_4_AI.jpg

同樣以四種軟體運算法放大比較,可見到Photoshop Preserve Details 2.0和Photozoom Pro S-Spline Max明顯比ON1的Geniune  Fractals要好。Preserve Details 2.0在微小的細節上表現比S-Spline Max更好且較為自然,對於這類近乎擁有完美細節的原始圖檔Adobe在處理上要更勝一籌,當然細節最銳利的仍是Topaz Gigapixel AI。

掃描印刷地圖測試

最後測試的圖片是經過掃描的地圖印刷稿,原件應該充滿極多的細節和線條,但由於數位化品質不佳並未保存太多細節,是擴檔處理的嚴苛考驗。

printing_1.5_nearest.jpg printing_1.5_bilinear.jpg printing_1.5_hermite.jpg printing_1.5_bell.jpg

printing_1.5_mitchell.jpg printing_1.5_catmull-rom.jpg printing_1.5_b-spline.jpg printing_1.5_bicubic.jpg

printing_1.5_lanczos.jpg printing_1.5_s-spline.jpg printing_1.5_s-spline xl.jpg printing_1.5_s-spline max.jpg

printing_1.5_genuine fractals.jpg printing_1.5_preserve detail.jpg printing_1.5_preserve detail 2.jpg printing_1.5_AI.jpg

整體銳利度順序和其他類別的圖檔測試沒有太大差異,但可明顯見到在1.5倍放大後Gigapixel AI演算法就已出現明顯的不自然感。

printing_2_nearest.jpg printing_2_bilinear.jpg printing_2_hermite.jpg printing_2_bell.jpg

printing_2_mitchell.jpg printing_2_catmull-rom.jpg printing_2_b-spline.jpg printing_2_bicubic.jpg

printing_2_lanczos.jpg printing_2_s-spline.jpg printing_2_s-spline xl.jpg printing_2_s-spline max.jpg

printing_2_genuine fractals.jpg printing_2_preserve detail.jpg printing_2_preserve detail 2.jpg printing_2_AI.jpg

再往上調升放大倍率後整體情況依舊類似,可見到在影像內容較明確的地方Gigapixel AI可以發揮出相當強大的效能,但在原圖即已丟失太多細節的部份會出現許多偽影。

printing_4_nearest.jpg printing_4_bilinear.jpg printing_4_hermite.jpg printing_4_bell.jpg

printing_4_mitchell.jpg printing_4_catmull-rom.jpg printing_4_b-spline.jpg printing_4_bicubic.jpg

printing_4_lanczos.jpg printing_4_s-spline.jpg printing_4_s-spline xl.jpg printing_4_s-spline max.jpg

printing_4_genuine fractals.jpg printing_4_preserve detail.jpg printing_4_preserve detail 2.jpg printing_4_AI.jpg

把四款軟體的當家演算法並排一起檢視,Gigapixel AI仍舊是獲得了壓倒性的勝利,不是避免放大造成的解析度損失,反而是依靠人工智慧運算猜測原本應該有的細節。雖然說有部分不自然的邊緣和偽影問題,這必須再調整軟體的參數進一步改正。

運算耗時

Gigapixel AI在以上各圖檔的解析度測試中都遙遙領先,同樣地在運算時間上也呈現後無來者的態勢 (笑)。以下圖表記錄各種演算法在擴大風景照片至四倍的運算時間,使用同一台電腦運算紀錄,雖是老舊的文書處理電腦,但可作為各演算法間的比較。

可見到大多數演算法都可以在一分鐘之內完成運算,至多兩分多鐘也可完成運算,唯有S-Spline Max耗時超過12分鐘。這很有可能是肇因於Photozoom Pro的程式效率問題,同樣的Bicubic內插法Photozoom花了53秒才完成,相比Photoshop僅需要2.7秒。若依此比例計算,Photozoom若擁有Photoshop的效率也可在一分鐘之內完成計算,耗用資源反而應該比Preserve Details 2.0要低才對,見圖表淺綠色數據。不過這僅是就邏輯上的計算,實際上S-Spline Max是Photozoom Pro獨家的演算法,沒有辦法使用其他軟體運算佐證,也許計算複雜度就是這麼困難也說不定。

再看看Gigapixel AI驚人的時間,足足高達1小時又17分鐘!雖然很大一部分原因是AI演算法針對顯示卡晶片最佳化,而測試的電腦並未安裝獨立顯示卡所以改採CPU運算模式導致,但在許多國外的測試中Gigapixel AI的運算時間也是和運算結果同樣驚人。就時間效率和演算效果來說,Photoshop Preserve Details 2.0取得極佳的平衡,和Photozoom Pro S-Spline Max銳利度差距微小有時甚至勝出,但幾乎只需要1/10的運算時間。

檔案尺寸

在完成超過250張的圖檔後,發現不同演算法的檔案容量有明顯差異,雖然不同軟體會造成一定影響,但可明顯看出演算法的差異。為求比較基準相同,除Gigapixel AI無法調整之外軟體的jpge檔案壓縮率設定至接近,Photozoom Pro並設定至風景照片Bicubic擴檔和Photoshop存檔容量相同。

size.jpg

Photozoom Pro的S-Spline MAX檔案容量約是所有演算法平均(不含Gigapixel AI)的1.4倍,S-Spline XL也達到1.3倍,其他演算法則介於0.8至1.1之間可說是相當接近。可以發現Gigapixel AI又再度鶴立雞群,檔案容量驚人的肥大,平均幾乎達到了其他演算法的10倍之多,已經足足是同像素未壓縮TIFF檔的一半。

結語

從以上漫長的實測結果可以得出結論:不在乎運算時間和硬碟空間下,Topaz Gigapixel AI是追求最高品質的創作者首選。令人驚訝且無可匹敵的解析度,甚至可以超過原始圖檔計算出原本不存在的細節。但在部分原圖品質不佳時容易出現偽影,需要多花心思調整或擷取其他演算法的圖檔做局部修正。而對於有時間和空間限制的商業工作來說,Photoshop Preserve Details 2.0達到最佳的平衡,優異的解析度以及快速的運算時間,且少有偽影的問題還附加避免人像過度銳利的自動判斷能力,是極為方便萬用的演算法。

雖然本篇的出發點是大幅圖像輸出,但其實擴檔的應用遠不止於此,例如原圖需要裁切造成像素不足時,或是舊相機拍攝的圖檔過小時,一個好的擴檔演算法都可以讓作品效果更為優異。現今照片已經少有輸出成實體,但需要輸出時通常是對於該張作品有一定的期待或是有展示需求,有了好的擴檔軟體輔助若遇到畫素不足的問題就不會再遺憾扼腕。尤其是Gigapixel AI的推出,利用電腦的運算能力藉由人工智能深度學習的演算方式達到前所未見的品質。該公司也推出基於AI運算的DeNoise AI去雜點軟體和Sharpen AI銳化軟體,進階攝影者的google camera也許有了解答。

 

 

 

one more thing..

還記得本文開頭說的「測試16種演算法,套用四張圖片以及四個放大比例」嗎?1.5倍、2倍、4倍.. 好像還少了一個?是的,假如我們把圖檔縮小呢?請見 →測試續篇

arrow
arrow

    MfA lab. 發表在 痞客邦 留言(0) 人氣()