万圣节特惠不给糖,就修片!三档同时降价,永久授权立省 $30截至 11 月 2 日 23:59(美西时间)

查看定价

去噪、去块、锐化、校色:视频修复滤镜深度解析

去噪、去块、去色带、锐化、白平衡和色差校正分别怎样起作用,应该按什么顺序做,附 FFmpeg 实测数据和可直接套用的命令。

要点速览

视频修复滤镜各管一类损伤,执行顺序决定了它们是互相帮忙还是互相拆台。先去隔行,在原始尺寸上去块、降噪,接着校色,然后缩放、轻度锐化,最后加抖动或颗粒。先锐化再降噪会放大噪点,降噪放在加颗粒之后又会把刚加的颗粒抹掉,前面的功夫就白做了。

  • 每种修复滤镜只针对一类损伤:噪点、压缩方块、色带、发软、偏色或色边。先认清损伤,再挑滤镜。
  • 顺序很重要:在原始尺寸上先去隔行、去块、降噪,再校色,然后缩放、轻度锐化,最后加抖动或颗粒。
  • 各种降噪器拿噪点换纹理的方式不同。在我们的测试里,非局部均值几乎把平坦的天空洗得干干净净,树叶里的噪点却留着;再加大强度,树叶细节就被抹掉了 17%。
  • 锐化只是让原有的边缘更陡,用力过猛就会描出光晕,它补不出细节。
  • 人们常说的“色差”其实是两类问题:偏色要靠白平衡来校,镜头色差要靠重新对齐红、蓝通道来修。

每种修复解决什么问题

修复从诊断开始。下表列出常见的损伤类型、怎样辨认,以及我们针对每一类测试过的滤镜。如果分不清颗粒、噪点和压缩痕迹,先看颗粒、传感器噪点还是压缩痕迹。

损伤看到的现象修复方式我们测试过的 FFmpeg 滤镜
传感器噪点每帧都在变的细碎斑点,暗部最明显降噪hqdn3d、atadenoise、nlmeans、fftdnoiz、bm3d 等
压缩方块渐变和运动区域里出现一格一格的方块去块deblock、spp、pp7、fspp、uspp 等
振铃和蚊式噪声边缘和文字周围有爬动的点状波纹去振铃(软阈值)或降噪spp 加 mode=soft,或 nlmeans
色带天空、墙面和渐隐里出现明显台阶去色带,再用 10 bit 编码deband、gradfun 两种
发软边缘不够利落锐化,或用模型放大unsharp、cas 两种
偏色白色发橙、发蓝或发绿白平衡colorchannelmixer、grayworld、greyedge 等
横向色差红青或蓝黄色边,越靠近画面边缘越宽缩放红、蓝通道拆出通道后用 perspective 处理
梳齿纹运动物体边缘出现梳子状横纹去隔行bwdif 滤镜

为什么顺序很重要

每一步都会改变下一步看到的画面,所以滤镜放错位置,要么抵消前一步的成果,要么把本该去掉的损伤放大。

修复顺序流程图:去隔行、去块、降噪、校色、缩放、锐化、去色带和加颗粒、10 bit 编码
  • 先去隔行。 其他滤镜都假设处理的是完整的帧。对隔行的场直接处理,降噪器会把梳齿纹当成纹理,缩放器会把它抹成重影。详见怎样给视频去隔行。
  • 在任何移动像素的操作之前去块。 去块滤镜依据编码器留下的块网格工作,降噪和缩放都会把网格弄糊、弄偏。
  • 在锐化和调色之前降噪。 锐化和提高对比度会把噪点和细节一起放大。
  • 在锐化之前校色。 趁边缘还软的时候校正偏色、重新对齐颜色通道;锐化之后,色边也会被一起锐化。
  • 只缩放一次, 而且在清理过的画面上缩放,免得把残留的损伤一起放大。
  • 在输出尺寸上锐化,而且要轻。
  • 最后再加抖动和颗粒。 放在它们后面的平滑步骤,会把用来掩盖色带或蜡感的细微噪声抹掉。
  • 用足够的位深编码。 10 bit 编码能防止平滑的渐变重新出现色带。

我们在一段带细纹理、加了噪点的合成片段上验证了降噪和锐化的先后顺序。先锐化再降噪,平坦区域留下的噪点更多(按我们的测量是 14.5,反过来是 12.2),与干净片段相比的 PSNR 也更低(26.6 dB,反过来是 27.7 dB)。只降噪不锐化得分 30.3 dB,残留 8.0:任何锐化都要付出一点干净度的代价,所以素材需要多少就用多少。

降噪:五类滤镜

噪点是每一帧都在变的随机波动;细节是固定不动、或随画面一起运动的结构。每种降噪器都在利用这个区别,只是方式不同。

  • 空间滤镜 把每个像素和同一帧里的相邻像素做平均。速度快,但分不清同样大小的细纹理和噪点,所以两者会一起变软。
  • 时间滤镜 在相邻几帧之间,对同一位置的像素做平均。静止的细节反复出现,所以能保住;噪点则被平均掉。运动的东西会被拖出尾迹,除非滤镜先检测运动或先把帧对齐;这个问题见时间一致性、闪烁与鬼影。FFmpeg 的 atadenoise 是自适应的时间平均,hqdn3d 则把轻度的空间处理和时间处理结合在一起。
  • 非局部均值 用搜索窗口里周围小块长得相似的像素来平均当前像素,不管这些像素在哪里。用论文作者的话说,最相似的像素不一定离得近。天空、墙面这类重复的区域能找到很多匹配,独特的纹理就找不到几个。
  • 变换域滤镜 把画面分块变换到频率域。在那里,真实的结构集中在少数几个强系数上,噪点则薄薄地摊在所有系数上,于是把弱系数压小就能去噪。fftdnoiz 用三维 FFT 做这件事,还能把相邻帧算进去。BM3D 会先把相似的二维小块叠成三维组,让表示更加稀疏。
  • 学习型降噪器 用成对的干净图和噪声图训练网络。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、两种强度的 nlmeans 和 bm3d,各自标出分数

这些数字说明:

  • 快速滤镜对付不了强噪点。 默认设置的 hqdn3d 只把天空误差从 8.8 降到 8.1,适合轻微的噪点,或者在更强的滤镜之前先过一遍。
  • 非局部均值天生不均匀。 s=6 时,它把天空洗到了 1.1,树叶却几乎和原来一样吵(8.1),因为独特的纹理找不到多少相似的小块来平均。调到 s=10,树叶丢掉了 17% 的真实细节,PSNR 反而下降:这正是AI 修复为什么有塑料感里说的蜡感。
  • 变换域滤镜两头兼顾。 前后各用一帧的 fftdnoiz 保留了 98% 的树叶细节,得分 33.7 dB。bm3d 的 PSNR 在表里最高,为 34.0 dB,但顺带抹掉了 9% 的树叶细节。
  • 速度差了 40 倍。 在我们的 CPU 上,nlmeans 处理 1080p 大约每秒一帧;处理另一段 1080p 片段的 121 帧,用了 192 秒。

关于 bm3d 要提醒一句:FFmpeg 文档说明,group 参数大于 1 时它才做块匹配,而默认值就是 1。在我们用的版本里,调大这个参数后滤镜慢了 15 倍以上,噪点却没有减少,所以表里用的是默认设置。这样它相当于一个变换域滤镜,而不是完整的 BM3D。

下面是表里的两条命令,可以直接改来用:

ffmpeg -i input.mp4 -vf "nlmeans=s=6" -c:v libx264 -crf 16 -c:a copy denoised.mp4
ffmpeg -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 bit 流程造成的,还是编码器把天空压平了,都会变成看得见的台阶。

去块

我们把树叶片段以低码率编码成 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 设置因为把画面抹糊,PSNR 掉了 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 文档说它只为播放设计,因为压缩往往会丢掉它加的抖动,让色带重新出现。
上排:MPEG-2 方块、deblock 和 uspp,300% 放大。下排:有色带的天空、deband 和 gradfun,对比度提高四倍

所以,要长期保存的文件,先去色带,再用 10 bit 编码,多出来的级数能保住平滑后的渐变。原因见8 bit 与 10 bit 视频:

ffmpeg -i input.mp4 -vf "deband" -c:v libx264 -crf 16 -pix_fmt yuv420p10le -c:a copy debanded.mp4

锐化而不出光晕

锐化就是提高边缘的对比度。经典做法 USM(反锐化掩模)先用画面减去一份模糊的副本,找出边缘,再把这份差值乘上一个强度加回去。副作用是过冲:边缘亮的一侧多出一条亮线,暗的一侧多出一条暗线,这就是光晕。

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 级
unsharp 和 cas 两种强度下的边缘亮度曲线,以及树枝衬着天空的裁切:原片、强度 2.5 的 unsharp 出现白边、强度 0.5 的 cas

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 bit 的 H.264 能播放的设备较少,适合当母版

在我们的笔记本上,这条处理链把一段 720p 样片的 150 帧处理成 1080p 的 H.264 High 10,用时 32.8 秒。发布时,再把母版编码成 HEVC Main 10,或者加了颗粒的 8 bit H.264。

AI 模型的位置和发展方向

传统滤镜只有几个参数,对“噪点长什么样”有固定的假设。学习型模型把这个固定假设换成了从样本里学来的知识:

  • 单帧模型(DnCNN、FFDNet 以及之后的各种修复网络)学习干净画面和受损画面之间的差别,一遍就能去掉噪点、方块和模糊。
  • 多帧模型 结合几帧对齐后的画面,出现在多帧里的细节是找回来的,而不是猜出来的。FastDVDnet 证明了不做开销很大的运动补偿也能做到。对齐失败时,它们会留下拖影,这正是时间一致性、闪烁与鬼影讨论的问题。
  • 生成式模型(GAN 和扩散模型)会补出输入里没有的纹理,这既是它们细节丰富的来源,也是风险所在;AI 修复为什么有塑料感讲了其中的取舍,以及 2026 年单步扩散修复的趋势。

传统方法的经验依然适用:先修复再放大,留一点纹理,在 100% 缩放和播放状态下判断。

在 KwaFlux 里怎样处理

  • 智能修复把几个步骤合在一起。 在AI 画质修复里,智能修复 会先检查片段,再把降噪、锐化、色彩与亮度校正、放大,以及人脸与细节修复组合起来,并参考相邻帧来工作。
  • 场景修复专攻一类损伤。 夜景 处理弱光噪点,胶片去噪 处理颗粒,另有 去雾、去雨、动漫 和 上色。
  • 去隔行排在最前面。 画质修复工作台依次执行 去隔行、画质修复和补帧,与本文建议的顺序一致。
  • 偏色交给调色。 AI 调色 里的 智能调色 会“自动校正偏色和发灰”。
  • 多步骤任务保持 10 bit。 导出分几步执行时,步骤之间传递的文件是 10 bit 的 H.264,反复的 8 bit 舍入不会带来新的色带。
  • 先预览,再对比。 渲染 1、3 或 5 秒的预览;判断运动之前选 跟随源帧率;打开 预览后自动画质对比 查看分数。横向色差要在导入之前修好,用上面的命令或剪辑软件的镜头校正都可以。

问题排查

问题可能原因解决办法
降噪后人脸像打了蜡强度太高,或非局部滤镜抹掉了纹理降低强度;在 100% 缩放下对比皮肤;最后补一点细颗粒
锐化后噪点更明显先锐化后降噪,或锐化过度先降噪;最后轻度锐化
边缘出现白边或黑边锐化强度太高降低强度;试试强度 0.3 到 0.5 的 cas 滤镜
导出后色带又出现8 bit 编码,或抖动在压缩中丢失在最终编码前去色带,并用 10 bit 编码
运动物体后面拖着尾迹时间降噪器把运动也平均了降低时间强度,或改用能识别运动的滤镜
去块滤镜毫无效果码流没有提供量化参数手动设置 qp,从 12 左右开始
自动白平衡把天空校成灰色单一颜色占主导时用了灰度世界法改用灰度边缘法,或按已知中性物算增益
色边只修好了一侧整体平移了通道改为以中心为基准缩放红、蓝通道

做不到的事

  • 没有哪种降噪器能分开大小、反差都相同的噪点和细节。 总要舍弃一些,取舍由你决定。
  • 去块只能藏起块边,找不回编码器丢掉的东西。
  • 锐化只提高边缘对比度,不增加分辨率。
  • 缩放通道修不了轴向色差,也修不了过曝高光周围的紫边。
  • 自动白平衡只是估计。 没有中性参照时,它只是对光线的猜测。

结语

好的修复是一连串有针对性的小修补:先诊断损伤,让每个滤镜都待在不会拆别人台的位置,问题一消失就停手。能测量就测量,在 100% 缩放和播放状态下对比,宁可留一点纹理,也别追求一尘不染的画面。

KwaFlux 在你自己的 GPU 上运行AI 画质修复。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 bit 编码会把平滑后的渐变再舍入一次,压缩又往往会丢掉掩盖台阶的细微抖动。在最终编码前去色带,交付条件允许时用 10 bit 编码,再加一点颗粒,让平坦区域保留些许纹理。

自动白平衡可靠吗?

有时可靠。自动方法是根据假设来估计光线:灰度世界法假设场景平均是灰色,单一颜色占主导时就会失灵;灰度边缘法更稳一些。按你确定是白色或灰色的东西测出的增益更可靠。

镜头色差能在后期去掉吗?

部分可以。横向色差的色边越往画面边缘越宽,可以以中心为基准缩放红、蓝通道来校正。轴向色差表现为画面任何位置亮边周围的紫边或绿边,只能用蒙版遮掉或降低饱和度。

参考资料

  1. Buades, Coll, and Morel, "Non-Local Means Denoising," Image Processing On Line, 2011 (averaging similar pixels, which need not be close) (2026-10-22 查阅)
  2. 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 查阅)
  3. Zhang et al., "Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising" (DnCNN, residual learning) (2026-10-22 查阅)
  4. Zhang, Zuo, and Zhang, "FFDNet: Toward a Fast and Flexible Solution for CNN-Based Image Denoising" (noise-level map input) (2026-10-22 查阅)
  5. Tassano, Delon, and Veit, "FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation" (multi-frame denoising without motion compensation) (2026-10-22 查阅)
  6. AMD GPUOpen, "AMD FidelityFX Contrast Adaptive Sharpening (CAS)" (per-pixel sharpening amount) (2026-10-22 查阅)
  7. 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 查阅)
  8. Wikipedia, "Chromatic aberration" (axial and transverse types; transverse corrected by radial scaling, axial hard to remedy in post) (2026-10-22 查阅)
  9. FFmpeg Filters Documentation (`hqdn3d`, `atadenoise`, `nlmeans`, `bm3d`, `fftdnoiz`, `deblock`, `spp`, `uspp`, `deband`, `gradfun`, `unsharp`, `cas`, `grayworld`, `greyedge`, `perspective`, `extractplanes`, `bwdif`) (2026-10-22 查阅)
  10. x264 source, x264.c help text (`--tune grain` settings) (2026-10-22 查阅)
  • 降噪
  • 视频修复
  • 视频画质

KwaFlux 作者兼编辑。文章经 KwaFlux 编辑部审阅,依据产品调研记录与公开发布的规格。