
影像縮放演算法:最鄰近、雙線性、雙三次與 Lanczos
放大影像時,必須產生原圖中不存在的新像素值;縮小影像時,則要捨棄細節,同時避免把精細圖樣變成錯誤形狀。兩者都是訊號重建與重新取樣,因此選用的濾波器會決定銳利度、模糊、混疊與振鈴現象。
日文原文發布: 2026-04-27
縮放不只是改變網格尺寸
點陣影像是有限的樣本陣列。將 100 × 100 的影像放大到 200 × 200,需要四倍的輸出像素;縮小時則必須把多個來源像素的資訊合併。
- 放大:重建既有樣本之間的數值。
- 縮小:先移除較小網格無法表示的頻率,再重新取樣。
把來源影像視為連續訊號的取樣結果,就能理解為什麼沒有任何一種方法適合所有影像。
Nyquist–Shannon 取樣定理與混疊
與 Harry Nyquist、Claude Shannon 相關的取樣定理指出:若要無失真地重建頻寬受限訊號,取樣頻率必須高於訊號最高頻率的兩倍。若縮小影像前沒有充分濾波,高於新 Nyquist 極限的頻率會折回較低頻率。
在影像中,這會表現為摩爾紋、鋸齒狀斜邊、閃爍細節,或精細圖樣變成另一種圖樣。因此,高品質縮圖在概念上是:
低通濾波 → 在較小網格上取樣
最鄰近:保留像素邊界
最鄰近插值法會為每個輸出座標選擇距離最近的來源像素。
output(x, y) = input(round(x / scaleX), round(y / scaleY))
它速度快,也不會產生中間色。這正是像素藝術、遮罩與許多圖表所需要的效果;但用於照片放大會產生明顯方塊,縮小時若處理不慎也會嚴重混疊。
雙線性:混合四個相鄰像素
雙線性插值會混合周圍四個像素。若 fx 與 fy 是來源網格內的相對距離:
output = (1-fx)(1-fy) I00
+ fx (1-fy) I10
+ (1-fx) fy I01
+ fx fy I11
它的計算成本低,也廣泛受到繪圖硬體加速。缺點是畫面容易變柔和,尤其在反覆轉換後更為明顯。
雙三次與 Mitchell–Netravali:一系列三次濾波器
雙三次插值通常使用 4 × 4 鄰域與可分離的三次核函數。「雙三次」是一系列濾波器的統稱,而不是單一通用方法;不同參數會改變銳利度、模糊與振鈴程度。
Catmull 與 Rom 在 1974 年描述了一種局部插值樣條;Keys 在 1981 年發表廣泛採用的三次卷積公式;Mitchell 與 Netravali 則在 1988 年提出雙參數家族。其中常用的均衡設定為 B = 1/3、C = 1/3。
| 範例 | 典型特性 |
|---|---|
| Catmull–Rom | 銳利、通過原始樣本點,強烈邊緣附近可能振鈴 |
| 三次 B 樣條 | 平滑且相對柔和 |
| Mitchell–Netravali | 在模糊與振鈴之間取得平衡 |
Lanczos:加窗 sinc 濾波器
理想的頻寬受限重建核是 sinc 函數,但它的支撐範圍無限大,實作上並不實際。Lanczos 核將 sinc 乘上另一個 sinc 視窗,並把範圍限制在有限半徑內:
sinc(x) = sin(πx) / (πx)
L(x) = sinc(x) × sinc(x/a), |x| < a
a = 2 與 a = 3 是常見的實用選擇。Lanczos 在縮小影像時通常能保留精細細節,但強烈明暗交界可能出現亮暗光暈。增加波瓣數會提高運算量,也不保證每張影像都更好看。
如何選擇濾波器
| 用途 | 實用起點 |
|---|---|
| 像素藝術或索引遮罩 | 最鄰近 |
| 即時紋理顯示 | 雙線性 |
| 一般縮圖 | 雙三次或 Mitchell–Netravali |
| 照片縮小 | Lanczos 或設計良好的面積濾波器 |
| 大幅縮小 | 面積/方框濾波或分階段縮小 |
| 創意式大幅放大 | AI 超解析度,但應揭露細節是推估產生 |
務必檢查邊緣、細線、文字與重複圖樣。人像上看起來銳利的濾波器,可能在介面圖形上產生無法接受的光暈。
CSS image-rendering 表示偏好,不指定固定核函數
img {
image-rendering: auto;
image-rendering: smooth;
image-rendering: high-quality;
image-rendering: pixelated;
image-rendering: crisp-edges;
}
CSS Images 將這些值定義為繪製偏好,並未要求每個瀏覽器與裝置使用完全相同的數學核函數。需要保留清楚像素邊界時可使用 pixelated,並針對目標瀏覽器與縮放倍率進行測試。
AI 放大無法還原真實原貌
超解析度模型可以根據訓練資料中學到的模式,生成看似合理的紋理。這可能產生好看的結果,但新增細節是推估出來的,而不是從來源影像量測所得。
對證據、科學量測、醫療工作,或任何重視忠實度多於外觀的用途,應保留原始檔,並使用行為可記錄的確定性重新取樣方法。
重點整理
- 縮放會重建訊號,並在新的網格上取樣。
- 縮小時需要低通濾波,以降低混疊。
- 最鄰近插值保留離散像素;雙線性速度快但較柔和。
- 雙三次是一系列具有不同取捨的三次濾波器。
- Lanczos 是實用的加窗 sinc 濾波器,畫面可很銳利但可能振鈴。
- AI 放大會創造合理細節,並不等同於還原證據。
參考資料與來源
- Nyquist(1928)— Certain Topics in Telegraph Transmission Theory ↗
- Shannon(1949)— Communication in the Presence of Noise ↗
- Keys(1981)— Cubic Convolution Interpolation for Digital Image Processing ↗
- Mitchell 與 Netravali(1988)— Reconstruction Filters in Computer Graphics ↗
- Lanczos(1938)— Trigonometric Interpolation of Empirical and Analytical Functions ↗
- W3C CSS Images Module Level 3 — image-rendering ↗
編輯說明
本文使用 AI 協助編輯,並於發布前由編輯確認。內容仍可能包含事實、解讀或時效上的錯誤;進行重要判斷前,請查閱所列的一手資料或官方文件。

