降噪、去區塊、銳化、色彩校正:深入解析影片修復濾鏡
降噪、去區塊、去色帶、銳化、白平衡與色差校正各自怎麼運作,該照什麼順序套用,附 FFmpeg 實測數據。
重點速覽
影片修復濾鏡各自修一種損傷,而套用的順序決定它們是互相幫忙還是互相拆台。先去隔行,在原始尺寸下去區塊和降噪,校正色彩,然後縮放、輕度銳化,最後才加抖動或顆粒。對雜訊做銳化,或對剛加上的顆粒做降噪,等於白做。
- 每種修復濾鏡針對一種損傷:雜訊、壓縮區塊、色帶、畫面偏軟、偏色或色邊。先判斷是哪種損傷,再挑濾鏡。
- 順序很重要:在原始尺寸下去隔行、去區塊、降噪,接著修色,然後縮放、輕度銳化,最後才加抖動或顆粒。
- 各種降噪器用不同方式拿紋理換掉雜訊。在我們的測試中,非局部均值幾乎把平坦的天空洗得一乾二淨,樹葉上的雜訊卻留著;再加強力道,就抹掉了 17% 的樹葉細節。
- 銳化只是讓原本就有的邊緣更陡,用力過頭就會出現白邊黑邊。它無法增加細節。
- 有兩種不同的問題都被叫做「顏色不對」:偏色要靠白平衡修正,色差則要把紅、藍通道重新對齊。
每種修復處理什麼
修復從診斷開始。下表列出常見的損傷、怎麼辨認,以及我們針對每種損傷測試過的濾鏡。如果分不清顆粒、雜訊和壓縮瑕疵,請先看 顆粒、雜訊與壓縮瑕疵的差別。
| 損傷 | 看到的現象 | 修復方式 | 我們測試過的 FFmpeg 濾鏡 |
|---|---|---|---|
| 感光元件雜訊 | 每幀都在變的斑點,暗部最嚴重 | 降噪 | hqdn3d、atadenoise、nlmeans、fftdnoiz、bm3d |
| 壓縮區塊 | 漸層和移動區域出現一格一格的方塊 | 去區塊 | deblock、spp、pp7、fspp、uspp |
| 振鈴與蚊式雜訊 | 邊緣和文字周圍有蠕動的點點和波紋 | 去振鈴(軟門檻)或降噪 | spp 搭配 mode=soft、nlmeans |
| 色帶 | 天空、牆面和淡入淡出出現明顯的階梯 | 去色帶,再以 10 位元編碼 | deband、gradfun |
| 畫面偏軟 | 邊緣不夠俐落 | 銳化,或用模型放大 | unsharp、cas |
| 偏色 | 白色看起來偏橘、偏藍或偏綠 | 白平衡 | colorchannelmixer、grayworld、greyedge |
| 橫向色差 | 紅青或藍黃色邊,越往畫面邊緣越明顯 | 縮放紅、藍通道 | 對拆出的平面使用 perspective |
| 交錯紋 | 移動的邊緣出現梳子狀的線條 | 去隔行 | bwdif |
為什麼順序很重要
每一步都會改變下一步看到的東西,所以濾鏡放錯位置,可能抵銷前一步的效果,或放大它原本該去除的損傷。

- 先去隔行。 其他濾鏡都假設畫面是完整的幀。遇到交錯掃描的圖場,降噪器會把交錯紋當成紋理,縮放器則把它抹成重影。請見 如何為影片去隔行。
- 在任何會移動像素的處理之前去區塊。 去區塊濾鏡是依照編碼器的區塊格線工作的,而降噪和縮放會把格線弄糊、弄偏。
- 在銳化或調色之前降噪。 銳化和提高對比會連同細節一起放大雜訊。
- 在銳化之前修色。 趁邊緣還軟的時候校正偏色、重新對齊色彩通道;銳化會讓色邊變得更清楚。
- 只縮放一次, 而且在清理過的畫面上進行,免得殘留的損傷跟著被放大。
- 在輸出尺寸下銳化,而且要輕。
- 最後才加抖動和顆粒。 之後任何平滑處理,都會去掉用來掩蓋色帶或蠟質感的細微雜訊。
- 用足夠的位元編碼。 10 位元編碼能讓平滑的漸層不再出現色帶。
我們在一段帶有細紋理、加了雜訊的合成片段上,驗證了降噪與銳化的順序。先銳化再降噪,平坦區域留下的雜訊比較多(依我們的量測為 14.5,反過來做則是 12.2),對乾淨片段的 PSNR 是 26.6 dB,反過來做是 27.7 dB。只降噪的話是 30.3 dB,殘留 8.0:任何銳化都會犧牲一些乾淨度,所以素材需要多少就用多少。
降噪:五類濾鏡
雜訊是每一幀都在變的隨機變化;細節則是固定不動、或跟著場景一起移動的結構。每種降噪器都用自己的方式利用這個差異。
- 空間濾鏡 把每個像素和同一幀裡的鄰近像素平均。速度快,但分不出細紋理和同樣大小的雜訊,所以兩者都會變軟。
- 時域濾鏡 把同一個像素在鄰近幀之間平均。靜止的細節因為重複出現而得以保留,雜訊則被平均掉。會動的東西會被抹成拖影,除非濾鏡能偵測運動或先對齊畫面;這個問題請見 時間一致性、閃爍與鬼影。FFmpeg 的
atadenoise是自適應時域平均,hqdn3d則結合了輕度的空間處理和時域處理。 - 非局部均值 把每個像素換成一批像素的平均值,這些像素周圍的區塊長得相似,不論它們位在搜尋範圍內的哪裡。如作者所說,最相似的像素不一定離得近。天空、牆面這類重複的區域能找到很多相似的區塊;獨特的紋理則很少。
- 變換域濾鏡 把畫面區塊轉換到頻率表示,真實結構會集中在少數幾個強係數上,雜訊則稀疏地分散在所有係數上,接著把弱的係數縮小。
fftdnoiz用可納入鄰近幀的 3D FFT 來做。BM3D 則先把相似的 2D 區塊疊成 3D 組,讓表示更加稀疏。 - 學習式降噪器 用乾淨與帶雜訊的成對圖片訓練網路。DnCNN 學的是直接預測雜訊本身(殘差學習);FFDNet 多吃一張雜訊等級圖作為輸入,所以一個模型就能處理不同、不均勻的雜訊等級;FastDVDnet 同時使用多幀,並省去耗時的運動補償階段。
我們的測試結果
我們在一段 1080p 範例片段(陽光下的樹葉襯著藍天)的 30 幀上,加入每幀都在變的高斯雜訊,亮度約為 255 階中的 8 階。接著在筆電 CPU(Intel Core i7-1360P)上執行 FFmpeg 的各種降噪器,再拿每個結果和乾淨片段比較:
| 濾鏡與設定 | 類型 | 30 幀耗時 | PSNR(亮度) | 平坦天空的殘留誤差 | 樹葉的誤差 | 保留的樹葉細節 |
|---|---|---|---|---|---|---|
| 無(帶雜訊的輸入) | 基準 | 不適用 | 30.3 dB | 8.8 | 8.9 | 99% |
hqdn3d(預設值) | 空間加時域 | 1.0 秒 | 30.7 dB | 8.1 | 8.7 | 99% |
hqdn3d=8:6:12:9 | 空間加時域 | 0.8 秒 | 31.5 dB | 6.1 | 8.0 | 97% |
atadenoise(門檻 0.1 與 0.2) | 時域 | 0.9 秒 | 31.1 dB | 4.9 | 8.5 | 94% |
nlmeans=s=6 | 非局部均值 | 31.7 秒 | 32.2 dB | 1.1 | 8.1 | 98% |
nlmeans=s=10 | 非局部均值 | 31.8 秒 | 31.0 dB | 1.0 | 8.9 | 83% |
fftdnoiz=sigma=8:prev=1:next=1 | 變換域,3 幀 | 3.8 秒 | 33.7 dB | 4.3 | 6.4 | 98% |
bm3d=sigma=30 | 變換域 | 8.1 秒 | 34.0 dB | 1.3 | 6.2 | 91% |
「誤差」是和乾淨片段差值的標準差,所以在樹葉部分,殘留的雜訊和損失的紋理都會算進去。「保留的樹葉細節」是乾淨片段中的細微樹葉紋理,在結果中還留下多少比例。

這些數字說明了:
- 快速濾鏡對付強雜訊幾乎沒有作用。
hqdn3d用預設值,只把天空的誤差從 8.8 降到 8.1。它適合輕度雜訊,或在較強的濾鏡之前先跑一遍。 - 非局部均值本來就不均勻。
s=6時把天空清到 1.1,樹葉卻幾乎和原本一樣雜(8.1),因為獨特的紋理找不到幾個相似的區塊可以平均。到了s=10,樹葉失去了 17% 的真實細節,PSNR 也下降:這就是 AI 修復為什麼看起來像塑膠 所說的蠟質感。 - 變換域濾鏡兩頭都顧到了。 前後各取一幀的
fftdnoiz,以 33.7 dB 保留了 98% 的樹葉細節。bm3d的 PSNR 分數最高,達 34.0 dB,但過程中去掉了 9% 的樹葉細節。 - 速度相差可達 40 倍。 在我們的 CPU 上,
nlmeans處理 1080p 大約每秒一幀;另一段 1080p 片段的 121 幀花了 192 秒。
關於 bm3d 有一點要注意:FFmpeg 文件說,除非 group 大於預設值 1,否則它不做區塊匹配。在我們的版本中,調高這個值會讓濾鏡慢 15 倍以上,雜訊卻沒有減少,所以表中用的是預設值,它的作用是變換域濾鏡,而不是完整的 BM3D。
表中的兩行指令,可以直接拿去改:
ffmpeg -i input.mp4 -vf "nlmeans=s=6" -c:v libx264 -crf 16 -c:a copy denoised.mp4ffmpeg -i input.mp4 -vf "fftdnoiz=sigma=8:prev=1:next=1" -c:v libx264 -crf 16 -c:a copy denoised.mp4從低強度開始,往上調到平坦區域的雜訊不再礙眼為止,然後在 100% 縮放下檢查人臉、布料和樹葉。簡短實用的操作說明,請見 如何用 AI 為影片降噪。
壓縮損傷:區塊、振鈴與色帶
大多數編碼格式會把每一幀切成區塊、做變換,再把最捨得丟的細節四捨五入掉。這種捨入會帶來三種損傷:
- 區塊效應。 捨入得太粗時,相鄰區塊在交界處就對不上,出現格線。MPEG-2、MPEG-4 Part 2(DivX 與 Xvid 時代的檔案)和 Motion JPEG 會呈現 8×8 的方塊。H.264 和 HEVC 會在編解碼器內部過濾區塊邊緣,所以它們的損傷多半看起來是糊糊的、一片一片的,而不是格子狀;如何修復有馬賽克的影片 兩種都有示範。
- 振鈴與蚊式雜訊。 高頻被捨掉後,銳利的邊緣和文字旁邊會留下波紋,而且每幀都在蠕動。
- 色帶。 平滑的漸層如果被 8 位元流程或把天空壓平的編碼器存成太少階,就會變成看得見的階梯。
去區塊
我們把樹葉片段以低位元率編碼成 MPEG-2,再量測 8 像素區塊交界處的亮度落差比其他地方強多少(1.0 代表看不出格線;乾淨片段為 0.99,MPEG-2 檔案為 2.08)。
| 濾鏡 | 做法 | 區塊感分數 | PSNR(亮度) |
|---|---|---|---|
| MPEG-2 檔案 | 基準 | 2.08 | 27.7 dB |
deblock=filter=strong | 在看起來像階梯的區塊交界處做平滑 | 1.78 | 27.7 dB |
pp7=qp=12 | 在錯開的位置對 DCT 係數做門檻處理 | 1.43 | 27.4 dB |
spp=quality=4:qp=12 | 在多個錯位上重新壓縮,再取平均 | 1.24 | 27.6 dB |
spp=quality=4:qp=24 | 同上,強度更高 | 1.04 | 26.4 dB |
uspp=quality=3:qp=12 | 類似 spp,但每個錯位都用真正的編碼器編碼 | 1.03 | 27.5 dB |
有兩個重點。一是去區塊能把格線藏起來,但找不回編碼器丟掉的東西:中等設定下 PSNR 幾乎沒變,強度調到最高的 spp 設定因為畫面變糊,掉了 1.3 dB。二是 spp、pp7、fspp 和 uspp 需要量化值。解碼器有提供時,它們會從串流中讀取;在我們的測試中,直到自己設定 qp,它們才有作用。從 12 左右開始,只有區塊還在時才往上調:
ffmpeg -i old.mpg -vf "spp=quality=4:qp=12" -c:v libx264 -crf 16 -c:a aac deblocked.mp4針對文字和邊緣周圍的振鈴,spp 還有 mode=soft,FFmpeg 文件形容它去振鈴的效果較好,但可能比較糊。
去色帶
色帶需要的處理和銳化正好相反:階梯要先被融開,然後還得防止它再出現。在 KwaFlux 內建範例片段中的一片天空上(帶有真實的壓縮色帶),我們量測了處理前後每一列平坦區段的長度:
- 原片: 平坦區段平均 10.4 像素,其中 20% 長達 24 像素以上,看起來就是一條條色帶。
- **
deband:** 平均 2.8 像素,這麼長的區段只剩 0.8%。 - **
gradfun:** 1.3 像素,沒有這麼長的區段。FFmpeg 文件說它是專為播放設計的,因為壓縮往往會丟掉它加的抖動,讓色帶再次出現。

所以要保留的檔案,請先去色帶,再以 10 位元編碼,多出來的色階能撐住平滑後的漸層。原因請見 8 位元與 10 位元影片:
ffmpeg -i input.mp4 -vf "deband" -c:v libx264 -crf 16 -pix_fmt yuv420p10le -c:a copy debanded.mp4銳化而不出白邊
銳化是提高邊緣的對比。經典做法「反銳化遮罩」(unsharp mask)會從畫面減去一份模糊的副本來找出邊緣,再把這個差值乘上一個量加回去。副作用是過衝:邊緣亮側出現一條亮線,暗側出現一條暗線。這就是白邊和黑邊。
AMD FidelityFX 的對比自適應銳化(CAS)會逐像素調整銳化量:本來就銳利的區域少加一點,缺乏細節的區域多加一點。
我們對一道從 60 階過渡到 180 階的柔和邊緣做銳化,量測過衝的幅度:
| 濾鏡 | 黑邊(低於 60 的階數) | 白邊(高於 180 的階數) |
|---|---|---|
unsharp,5×5,量 1.5 | 4 | 2 |
unsharp,7×7,量 2.5 | 20 | 16 |
cas=strength=0.5 | 約 2 | 無 |
cas=strength=1.0 | 35 | 2 |

FFmpeg 文件認為 unsharp 的量在 −1.5 到 1.5 之間是合理的,我們 2.5 的測試說明了原因。CAS 在中等強度下很乾淨,開到滿強度時卻畫出了四者中最深的黑邊,所以「自適應」不代表怎麼設定都安全。兩個習慣能讓銳化不失分寸:
- 縮放之後再銳化, 在觀眾實際觀看的尺寸下做,並在那個尺寸的 100% 縮放下判斷。
- 記住銳化做不到什麼。 它讓保留下來的邊緣更陡,但找不回因為失焦或動態模糊而失去的細節。這類問題請見 如何修復模糊的影片。
ffmpeg -i input.mp4 -vf "cas=strength=0.4" -c:v libx264 -crf 16 -c:a copy sharpened.mp4偏色與色差
偏色:白平衡
攝影機誤判光線時就會偏色,所有顏色都朝同一個方向偏:鎢絲燈讓白色變橘,陰影處讓白色變藍。校正的方法是縮放紅、綠、藍三個通道,直到中性的東西重新看起來是中性的。各種方法的差別,在於怎麼找出「中性」:
- 灰色世界 假設場景的平均反射率是無彩色的。場景顏色豐富時有效,被單一顏色主導時就會失靈。
- 灰色邊緣 由 van de Weijer、Gevers 和 Gijsenij 提出,假設場景中平均的*邊緣差異*是無彩色的,受大片單色區域的影響較小。
- 已知的中性參考 量測你確定是白色或灰色的東西,例如灰卡、白牆或白色的船身,再算出讓它變回中性的增益。
我們在內建範例片段中一幀海上小船的畫面加上暖色偏,再用三種方式校正,量測和原始畫面的平均色差(ΔE,越低越接近):
| 方法 | 對原始畫面的平均 ΔE | 白色船身,紅減藍 |
|---|---|---|
| 原始畫面 | 基準 | −6 |
| 加上暖色偏 | 19.9 | 39 |
grayworld | 15.4 | 36 |
greyedge | 8.9 | 9 |
依船身算出的增益(colorchannelmixer) | 5.9 | 0 |

灰色世界的失敗就跟教科書寫的一樣:畫面大半是藍天和大海,所以它把天空中和了,船身還是橘的。灰色邊緣大致修好了。依船身算出的增益最接近原片。計算方法是取中性區塊的 RGB 值,再把綠色值分別除以紅色和藍色。我們的船身讀數是 156、144、117,所以紅色增益是 144 ÷ 156 = 0.923,藍色是 144 ÷ 117 = 1.232:
ffmpeg -i input.mp4 -vf "colorchannelmixer=rr=0.923:bb=1.232" -c:v libx264 -crf 16 -c:a copy balanced.mp4沒有中性參考時,灰色邊緣是比較保險的自動選項。照 FFmpeg 文件對這類濾鏡的建議,在線性光下執行:
ffmpeg -i input.mp4 -vf "zscale=transfer=linear,format=gbrpf32le,greyedge=difford=1:minknorm=5:sigma=2,zscale=transfer=bt709,format=yuv420p" -c:v libx264 -crf 16 -c:a copy balanced.mp4如果偏色之外色彩還又平又灰,調色往往是更快的解法;這部分請見 AI 調色。
色差:重新對齊通道
色差是鏡頭的問題:玻璃對不同波長的折射程度不同,所以各個顏色落不到同一個位置。它分為兩種:
- 橫向色差(倍率色差)讓每個顏色的放大倍率略有不同。色邊通常是紅青或藍黃,畫面中央沒有,越往邊緣越明顯。縮小光圈沒有用,但後製可以處理:縮放紅、藍通道,讓它們重新和綠色對齊。
- 軸向色差(縱向色差)讓每個顏色在不同距離對焦,所以畫面任何位置的高對比邊緣周圍都會出現紫邊或綠邊,多半發生在光圈全開時。縮放修不了它;遮罩或降低色邊的飽和度,只能把它藏起來。
為了測試修正效果,我們以中心為基準,把棋盤格測試圖的紅色通道放大 0.5%、藍色縮小 0.5%,再量測邊緣附近紅藍差異的平均值:
| 版本 | 左緣 | 中央 | 右緣 |
|---|---|---|---|
| 乾淨的測試圖 | 0 | 0 | 0 |
| 模擬的橫向色差 | 37.5 | 2.3 | 37.5 |
整體平移通道(rgbashift) | 77.3 | 43.3 | 6.9 |
| 徑向修正(反向縮放) | 0.5 | 0.5 | 0.5 |

整體平移是常見的錯誤:因為橫向色差隨著與中心的距離增加,它對齊了一邊,另一邊的誤差卻加倍。徑向修正以中心為基準,把紅色縮小、藍色放大。用 FFmpeg 的 perspective 濾鏡可以做到次像素精度;下面的數字對應 1920 × 1080 的畫面和 0.5%,請量測你自己的素材再重新計算(邊距分別是寬 × (1 − 1/1.005) 和高 × (1 − 1/1.005) 的一半):
ffmpeg -i input.mp4 -filter_complex "[0:v]format=gbrp,extractplanes=r+g+b[r][g][b];[r]perspective=x0=4.776:y0=2.687:x1=1915.224:y1=2.687:x2=4.776:y2=1077.313:x3=1915.224:y3=1077.313:interpolation=cubic:sense=destination[r2];[b]perspective=x0=4.776:y0=2.687:x1=1915.224:y1=2.687:x2=4.776:y2=1077.313:x3=1915.224:y3=1077.313:interpolation=cubic:sense=source[b2];[g][b2][r2]mergeplanes=0x001020:gbrp,format=yuv420p" -c:v libx264 -crf 16 -c:a copy fixed.mp4技巧: 在我們的測試中,不論怎麼寫,extractplanes 都依 R、G、B 的順序輸出平面,所以 extractplanes=g+b+r 第一個給的仍然是紅色。請依 R、G、B 的順序替輸出命名,否則通道會對調。RAW 轉檔軟體和帶有鏡頭描述檔的剪輯軟體會自動做這項校正,如果你的鏡頭在它們的資料庫裡,用它們比較省事。
完整的 FFmpeg 處理鏈
以下用一行指令走完整個順序,對象是一段又舊、有區塊、有雜訊、帶暖色偏的 720p 片段,放大到 1080p:
ffmpeg -i input.mp4 -vf "bwdif=mode=send_frame:deint=interlaced,spp=quality=4:qp=12,hqdn3d=4:3:6:4.5,colorchannelmixer=rr=0.92:bb=1.23,scale=1920:-2:flags=lanczos,cas=strength=0.4,deband,noise=c0s=4:c0f=t" -c:v libx264 -crf 16 -preset slow -tune grain -pix_fmt yuv420p10le -c:a copy restored.mp4| 濾鏡 | 步驟 | 說明 |
|---|---|---|
bwdif=mode=send_frame:deint=interlaced | 去隔行 | 只處理標記為隔行的幀;逐行素材可以拿掉 |
spp=quality=4:qp=12 | 去區塊 | 只用在看得出區塊的素材 |
hqdn3d=4:3:6:4.5 | 降噪 | 就是把預設值寫出來;雜訊較重時換成 fftdnoiz 或 nlmeans |
colorchannelmixer=rr=0.92:bb=1.23 | 白平衡 | 換成依你自己的中性區塊算出的增益 |
scale=1920:-2:flags=lanczos | 縮放 | 傳統放大;AI 放大器就放在這個位置 |
cas=strength=0.4 | 銳化 | 輕度,在輸出尺寸下進行 |
deband | 去色帶 | 把漸層中的階梯融開 |
noise=c0s=4:c0f=t | 顆粒 | 每幀都在變的細緻亮度顆粒 |
-tune grain -pix_fmt yuv420p10le | 編碼 | 保住顆粒和漸層;10 位元 H.264 能播放的裝置較少,所以當作母帶用 |
在我們的筆電上,這條處理鏈把一段 720p 範例片段的 150 幀處理成 1080p H.264 High 10,花了 32.8 秒。交付時,再把母帶編碼成 HEVC Main 10,或帶顆粒的 8 位元 H.264。
AI 模型的定位與發展方向
傳統濾鏡只有幾個參數,對雜訊長什麼樣子有一套固定的想法。學習式模型則用從範例中學到的想法取代它:
- 單張圖片模型(DnCNN、FFDNet,以及之後的修復網路)學習乾淨畫面與退化畫面之間的差異,一次就能去除雜訊、區塊和模糊。
- 多幀模型 結合多個對齊後的幀,所以出現在不只一幀裡的細節是找回來的,而不是猜出來的。FastDVDnet 證明了不需要耗時的運動補償步驟也能做到。對齊失敗時,它們會留下拖影,這正是 時間一致性、閃爍與鬼影 的主題。
- 生成式模型(GAN 與擴散模型)會加入輸入裡沒有的紋理。這既是它們細節的來源,也是風險所在;AI 修復為什麼看起來像塑膠 談到了其中的取捨,以及 2026 年朝單步擴散修復發展的趨勢。
傳統濾鏡的教訓依然適用:先修復再放大,保留一些紋理,在 100% 縮放和播放中判斷。
KwaFlux 的做法
- 智能修復把各步驟結合起來。 在 畫質修復 中,智能修復 會先檢查片段,再結合降噪、銳化、色彩與亮度校正、放大,以及人臉與細節修復,並參考鄰近幀。
- 場景修復針對單一種損傷。 夜景 處理暗光雜訊,膠片去噪 處理顆粒,另外還有 去霧、去雨、動漫 和 上色。
- 去隔行排在最前面。 畫質修復工作台依序執行 去隔行、畫質修復、補幀,和本文建議的順序相同。
- 偏色交給調色處理。 AI 調色 裡的 智能調色 會「自動校正偏色和發灰」。
- 多步驟任務保持 10 位元。 匯出分成多個步驟執行時,步驟之間傳遞的是 10 位元 H.264 檔案,反覆的 8 位元捨入不會增加色帶。
- 先預覽,再比較。 渲染 1、3 或 5 秒的預覽,判斷運動之前先選 跟隨原幀率,並打開 預覽後自動畫質對比 查看分數。橫向色差請在匯入前,用上面的指令或剪輯軟體的鏡頭校正先修好。
問題排解
| 問題 | 可能原因 | 解決方法 |
|---|---|---|
| 降噪後臉像蠟像 | 強度太高,或非局部濾鏡抹掉了紋理 | 調低強度;在 100% 縮放下比較皮膚;最後加細顆粒 |
| 銳化後雜訊更明顯 | 在降噪之前銳化,或銳化過度 | 先降噪;最後再輕度銳化 |
| 邊緣出現白色或黑色輪廓 | 銳化量太高 | 調低銳化量;試試 0.3 到 0.5 的 cas |
| 匯出後色帶又出現 | 8 位元編碼,或抖動在壓縮中流失 | 在最終編碼前去色帶,並以 10 位元編碼 |
| 移動物體後方拖影 | 時域降噪器把運動也平均了 | 調低時域強度,或改用能感知運動的濾鏡 |
| 去區塊沒有任何效果 | 串流沒有提供量化值 | 自己設定 qp,從 12 左右開始 |
| 自動白平衡把天空變灰 | 在單一顏色主導的場景用了灰色世界 | 改用灰色邊緣,或依已知的中性物體算增益 |
| 色邊只修好一邊 | 整體平移了通道 | 改成以中心為基準縮放紅、藍通道 |
做不到的事
- 沒有任何降噪器能分開大小和對比都相同的雜訊與細節。 總得犧牲一些,由你決定犧牲什麼。
- 去區塊是把區塊邊緣藏起來,不是找回編碼器丟掉的東西。
- 銳化提高的是邊緣對比,不會增加解析度。
- 縮放通道修不了軸向色差,也修不了過曝高光周圍的紫邊。
- 自動白平衡只是估計。 沒有中性參考時,它是在猜光線。
結語
好的修復是一連串小而精準的修補:先診斷損傷,讓每個濾鏡待在不會抵銷其他濾鏡的位置,問題一看不出來就停手。能量測就量測,在 100% 縮放和播放中比較,寧可保留一點紋理,也不要追求一塵不染的畫面。
KwaFlux 在你自己的 GPU 上執行畫質修復。AI 處理在你自己的 GPU 上執行,媒體檔案不會為了處理而上傳。可在 Windows 10(64 位元,1809 或更新版本)、Windows 11,以及搭載 Apple Silicon 的 macOS 12 或更新版本上執行。預覽不需要帳號:任何片段都能渲染 1、3 或 5 秒的預覽。僅在匯出、轉換、檔案修復和從連結下載檔案時需要登入並購買付費方案。
用你自己的真實素材實測效果
下載 KwaFlux,付費前先在自己的素材上免費預覽效果——無需註冊,在你的 GPU 上處理,媒體檔案不上傳。 影片預覽可選 1、3或5 秒;防抖預覽可選 5、15或30 秒。
常見問題
降噪要在銳化之前還是之後?
之前。銳化會提高所有邊緣尺度的對比,雜訊也包括在內,之後再降噪就得處理更多東西。在我們的測試中,先降噪在平坦區域留下的雜訊較少(12.2 對比 14.5),和乾淨片段比較的分數也較高。
哪種影片降噪濾鏡保留的細節最多?
沒有哪個濾鏡適合所有情況,要看素材和雜訊。在我們的測試中,使用鄰近幀的頻率域濾鏡保留了 98% 的樹葉紋理,分數排第二。請在 100% 縮放下比較裁切,做法可參考 如何用 AI 為影片降噪。
銳化能修好模糊的影片嗎?
部分可以。銳化會讓還在的邊緣更陡,所以稍微偏軟的素材看起來會更清楚,但找不回因為失焦或動態模糊而失去的細節,用力過頭還會出現白邊黑邊。真正的模糊請見 如何修復模糊的影片。
為什麼匯出後色帶又出現了?
因為 8 位元編碼會再次對平滑後的漸層做捨入,而壓縮往往會丟掉用來掩蓋階梯的細微抖動。在最終編碼前才去色帶,交付規格允許的話以 10 位元編碼,再加一點顆粒,讓平坦區域保有些許紋理。
自動白平衡可靠嗎?
有時候可靠。自動方法是根據假設來估計光線:灰色世界預期場景平均起來是灰色,遇到單一顏色主導時就失靈,灰色邊緣則撐得比較好。依你確定是白色或灰色的東西量出增益,是比較可靠的修正方式。
後製能去除色差嗎?
部分可以。橫向色差(色邊越往畫面邊緣越明顯)可以用以中心為基準縮放紅、藍通道來校正。軸向色差,也就是畫面任何位置的亮邊周圍出現的紫邊或綠邊,只能遮罩或降低飽和度。
參考資料
- Buades, Coll, and Morel, "Non-Local Means Denoising," Image Processing On Line, 2011 (averaging similar pixels, which need not be close) (2026-10-22 查閱)
- Lebrun, "An Analysis and Implementation of the BM3D Image Denoising Method," Image Processing On Line, 2012 (grouping similar 2D patches into 3D groups) (2026-10-22 查閱)
- Zhang et al., "Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising" (DnCNN, residual learning) (2026-10-22 查閱)
- Zhang, Zuo, and Zhang, "FFDNet: Toward a Fast and Flexible Solution for CNN-Based Image Denoising" (noise-level map input) (2026-10-22 查閱)
- Tassano, Delon, and Veit, "FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation" (multi-frame denoising without motion compensation) (2026-10-22 查閱)
- AMD GPUOpen, "AMD FidelityFX Contrast Adaptive Sharpening (CAS)" (per-pixel sharpening amount) (2026-10-22 查閱)
- van de Weijer, Gevers, and Gijsenij, "Edge-Based Color Constancy," IEEE Transactions on Image Processing, 2007, author's copy (gray-world and gray-edge assumptions) (2026-10-22 查閱)
- Wikipedia, "Chromatic aberration" (axial and transverse types; transverse corrected by radial scaling, axial hard to remedy in post) (2026-10-22 查閱)
- FFmpeg Filters Documentation (`hqdn3d`, `atadenoise`, `nlmeans`, `bm3d`, `fftdnoiz`, `deblock`, `spp`, `uspp`, `deband`, `gradfun`, `unsharp`, `cas`, `grayworld`, `greyedge`, `perspective`, `extractplanes`, `bwdif`) (2026-10-22 查閱)
- x264 source, x264.c help text (`--tune grain` settings) (2026-10-22 查閱)

