[分享] 摄影机拍摄毛片噪声处理方法

楼主: cbreak (cbreak)   2013-08-05 18:35:23
大家好: 相信大家在拍摄上多少会遇到噪声的问题,我们总是希望用 "最快速" "最没有副作用" "最能保留清晰度与色彩" 的方式去除噪声,但这三点往往无法同时满足,如著名的N**tVideo / M*g*c Bullet 除噪声插件虽然效果很不错,但处理时间却非常久,且我们的拍摄片段也不一定是很重的噪声,也许只是一点点色块的长时间拍摄记录,我们通常不太可能会去花时间使用耗时的降噪处理‧因此小弟在此分享自己过去处理影片噪声的方法与经验,希望对大家有用!
我们先来看看几张图片:
http://dl.dropboxusercontent.com/s/fzr6e3k1qgrly6d/NR01.JPG 图一:原图
http://dl.dropboxusercontent.com/s/96lviip3cxg85ee/NR02.JPG 图二:去除色彩噪声
http://dl.dropboxusercontent.com/s/ghex09bx1529amm/NR03.JPG 图三:原图灰阶化
http://dl.dropboxusercontent.com/s/hmvx91trw7ey7j2/NR04.JPG 图四:去除色彩及亮度(时间轴平滑)噪声
http://dl.dropboxusercontent.com/s/1kqzdli36j6oyom/NR05.JPG 图五:去除色彩及亮度(空间及时间轴平滑)噪声
http://dl.dropboxusercontent.com/s/vf14q9uo0ixzefz/NR06.JPG 图六:黑画面80分钟
http://dl.dropboxusercontent.com/s/tk17ibalxuxi8xn/NR07.JPG 图七
恩恩!看了这几张图片,应该有对我们要讨论的主题比较有感觉了,接着我们就开始来探讨吧!
一、噪声的种类:
噪声若依呈现的形式来分,可分为:
1. 色彩噪声:如原图,我们可以感觉到有花花绿绿的点或色斑(红绿蓝),这种噪声在单CCD/CMOS的机子上通常会较明显,原因是Bayer滤镜对色彩是有"估算"的成分在,一但传感器提供的SNR(通常是低光环境)开始降低,再用SNR不高的像素群去估算色彩,当然会估算成错的‧
2. 亮度噪声:单纯的亮度不带颜色,是以亮点或暗点(灰点)的方式展现,看起来的感觉就是画面有杂点在闪‧
所以首先呢,要先确定您的拍摄片段里,噪声是属于哪一种的‧不过事实上,这两种噪声通常是伴随一起出现的,只是程度的表现不同而已‧如我们去除图一的色彩噪声后,在图二中我们依然可以看到有杂点,那就是亮度噪声‧到此我先提四点:
(1)人眼对亮度比对色彩敏感‧
(2)去除色彩噪声通常不会影响影像清晰度,只会稍微影响色彩(色彩阶层)‧
(3)去除亮度噪声通常就必须适度与清晰度妥协‧
(4)把影像灰阶化(如图三)做测试,若因此看不到任何噪声了,表示您的影片只有色彩噪声,没有亮度噪声‧恭喜您! 这是最好处理,也最没有副作用的,色除色彩噪声后,画面几乎就是干净的‧(但图三是有亮度噪声的)
二、噪声的处理
依噪声处理的方式,可分为两大类:
1.空间(spatial)轴:照片的后制去噪声处理就是此方式,也应该只有此种方式‧因为单一张照片要去除噪声,当然只能在此照片里找寻,例如跟邻近的像素做平均,或一些较复杂的方式,如Bilateral、NL-Means....等,这是写论文的在研究的,我们只要知道大概就好‧总之就是想办法在同一个画面(Frame)中拿别块来补(平均)这块,或单一个点太亮了,所以猜他很可能就是噪声所以削弱他,来达到减少噪声的效果‧
2.时间(temporal)轴:
有用过相机"连拍六张合成"吧! 其实原理是一样的,因为噪声通常是闪动的,所以连续六个(或N个)Frame噪声都不太一样,我们可以将这多个Frame做平均,噪声就会变小了! 但细节上是要考虑到一些问题,如权重及阀值等,才不会造成移动时有拖影‧时间轴的做法从单纯的线性、DCT、FFT都有‧FFT是分析闪动的频率(要从时间轴去看),然后把高频去除,达到去除闪动噪声的效果‧
到此我们再提出几点:
(1)3D-NR即是空间+时间轴的NR‧
(2)不管空间轴还是时间轴NR,都还是可以色彩与亮度分开(或单纯)处理的‧
(3)时间轴处理通常较空间轴处理较不会影响清晰度‧
OK,您可以再回头看一次上面的图,应该更了解了吧!
三、开始来噪声:
首先,您要准备两种工具,avisynth与virtualdub‧这两个是影像处理工具,上面都可挂一堆实用的滤镜,我目前发现最实用的去噪声滤镜就是在这两平台上‧(反而不是在非编软件上)‧但这两者的使用方法,烦请问一下Google大神了,恕在此不多做介绍‧
OK,我来说一下我用过的众多去噪声滤镜,我认为最实用的吧!
情况一,画面只有轻微色斑:建议使用avisynth的Cnr2(),只去除色彩噪声就好‧速度非常快,完全跟得上拨放速度,几乎没感觉‧Cnr2("ooo", 255, 5, 192, 6, 214, 6, 214, false, false)
情况二,比情况一多了些微杂点闪动:多加上avisynth的hqdn3d(0,0,4,0)来平滑亮度噪声,几乎不太影响清晰度,处理速度稍微慢一点‧
情况三,色斑严重(如图一),也有亮度噪声:使用hqdn3d(0,0,6,0)再加上virtualdub的CCD(30,0),速度再慢一些,处理完就如图四,清晰度还OK‧
情况四,经过上述处理后还是觉得有噪声:把hqdn3d(0,0,6,0)改成hqdn3d(4,0,6,0)成为图五,噪声可降更低,但清晰度有妥协,影像没层次呆呆的‧
情况五,以上全部都不满意:也许就只能试试看N**tVideo / M*g*c Bullet这一类的商业软件,但处理时间会变成5到10倍!
四、结论:
每一种去噪声滤镜其实多少都有副作用,会造成一些人工痕迹,如hqdn3d(0,0,10,0)大概就可以感觉到有拖影了! 上面分享给大家的参数是我自己测试过不太感觉出副作用的值,当然大家还是可以再试试看,也许可以找出更适合的参数设置‧:)
五、连结:
Cnr2:
http://avisynth.org.ru/docs/english/externalfilters/cnr2.htm
hqdn3d:
http://akuvian.org/src/avisynth/hqdn3d/
CCD(Camcorder Color Denoise):
http://acobw.narod.ru/
另外有兴趣还可以试试:
FFT3DFilter(3D):
http://avisynth.org.ru/fft3dfilter/fft3dfilter.html
DCTFun4b(空间轴):
http://avisynth.org/warpenterprises/files/dctfun4b_25_dll_20060205.zip
您可以将上面hqdn3d(4,0,6,0)改成hqdn3d(0,0,6,0)加上dctfun4b(4,0),也就是将空间去亮度噪声的任务交给DCTFun4b,处理时间会再更多一些,但是结果会比图五再锐利一点点(只是一点点),如图七‧

Links booklink

Contact Us: admin [ a t ] ucptt.com