交錯、反交錯與IVTC —— 從入門到放棄
我在對視訊進行反交錯處理的時候,發現中文網路上難以找到系統講解交錯原理以及簡明扼要指導如何利用MeGUI/AVS進行IVTC/反交錯的文章。
網上找到的大多都是神仙討論天書筆記,許多概念也糾纏在一起……
所以斗膽在這裡整理一個入門級的介紹,也作為自己的參考資料。
不歡迎一切轉載。
一、隔行掃描與逐行掃描
為了更好地說明交錯,得先從傳送影象的原理講起。
在傳送電檢視像的時候,將每幀影象分解為畫素,之後一個一個畫素、一行一行順序傳送的方式叫做掃描。
逐行掃描是非常容易理解的掃描方式。將這一幀的影象從左至右從上至下掃描完成之後,輸出一張完整的影象。掃完第一幀再繼續掃第二幀,如此迴圈。由於每一次輸出的影象都是完整的畫面,所以觀眾觀看的時候會覺得影象非常穩定細膩。
逐行掃描(Progressive Scan)
但是這樣的掃描方式需要有相當大的頻寬來傳送這些電訊號,尤其在早期的時候由於技術限制和成本高昂,很難以實現。
怎麼辦呢?為了減少頻寬,人們採用了隔行掃描的方式。
原理是將一幀的這一幅畫面分為兩個場來掃描。
完整的一幀 → 奇數行(奇場) → 偶數行(偶場)
先掃描奇數行得到第一場(奇場/Field 1/Odd Field),然後掃描偶數行得到第二場(偶場/Field 2/Even Field)。兩個場加起來組成完整的畫幅。快速播放的時候由於視覺暫留效應,人眼不會注意到兩場只有一半的掃描行,而會看到完整的一幀。
隔行掃描(Interlace Scan)
通常有一種誤解是,偶場和奇場是由同一幀的畫面分拆得來的。
實際上,攝像機採集的方式和隔行掃描顯示的方式是完全相同的。當攝像機採集影象時,偶場和奇場不是同時採集的。
以每秒60場的攝像機為例,偶場的採集在奇場的1/60秒之後進行。
只要影象中沒有出現變化,比如說是靜止的場景,兩個場會補足對方形成完整流暢的畫面。
但我們不是生活在PPT裡,一旦畫面出現變化,交錯(interlace)便出現了。
運動的汽車出現了交錯
記得上文強調過兩個場並不是同一幀的畫幅,而是分處不同時間的。
當運動發生時,物體會在第一場處於位置A,而在下一場移動到位置B。此時兩個場不能互相補足對方,畫面上就會有一些交錯。
這個動圖演示了一個番茄從左向右的移動過程。由於每一個場和上一個場的位置都有細微的不同,交錯便這樣出現了。
以上是一些幫助你更好理解交錯原理的背景知識,接下來我們更進一步。
二、交錯、反交錯與IVTC
當你發現你手上的視訊出現類似上文中的橫紋拉絲情況,在想辦法掛濾鏡反交錯之前,首要任務是需要確認視訊和橫紋的型別究竟是什麼。
如果如上文所說,因為這是由隔行掃描錄製的視訊(interlaced video),那麼我們需要做的是反交錯(Deinterlacing)。
但還有另一種更常見的情況是,隨著時代發展,如今逐行掃描已經漸漸普及。
於是影像本身是逐行掃描視訊,但是為了在不同制式的電視和DVD裡能正常播放和儲存,許多時候要將原始視訊進行一些處理。
這種轉換的過程名為Telecine,縮寫為TC,中文叫膠捲過帶。
全世界最通用的兩種電視制式為北美+日本為主的NTSC制式(30fps),與中國大陸+香港+歐洲為主的PAL制式(25fps)。
全世界電影拍攝的一般幀率都是24fps。
舉例來說,要將24fps的視訊轉換為NTSC所要求的30fps。24/30=4/5,意味著原視訊中的每4幀都要增加1幀。
經過Telecine輸出的視訊,一秒內的幀總數就由24幀增加為30幀了。
這個轉換的方法叫做3:2 pull down。是將原視訊拆分為偶場和奇場之後,在每兩幀後新增一個第三幀的方法,如下圖這般。
轉換成果如大家所見,也就是常說的5爛2,每5幀裡有2幀是爛的。
3:2 pulldown 下的Telecine
上圖是一個NTSC制式的3:2 pulldown例子。可以看到第1-2幀為交錯的,之後3-4-5是正常的,再接著6-7為交錯,8-9-10為正常,如此每5幀爛2幀的迴圈。
Euro pulldown下的Telecine
也有其他情況,比如說將24fps的電影轉換為PAL制式的25fps。如果你的視訊如上圖這般是13幀正常影象,接著12幀交錯影象。那麼極有可能是遇見了Euro pulldown。
Interlaced video
而如果幀幀都交錯呢,多半可以說這是一個Interlaced視訊了(這種從攝製源頭就是交錯的視訊也被稱為true interlaced video)。
True interlaced video現在仍頻繁出現於大部分的體育賽事、演唱會DVD,部分電視劇集和一些低成本電影,以及大量的紀錄片和花絮/幕後裡。
除了上文這些常見的Interlace與Telecine……在處理片源時我們還會遇見非常多的奇葩情況。
比如強行把NTSC制式的碟壓進PAL DVD裡的,比如片源經過了無數道手的剪輯和壓制之後再次Telecine的,比如整體60i系統+正片24p+片尾和特典是24t+24p+30p再內建一個60i字幕的(沒錯索尼我在說你)
處理這些片源確實會把人逼瘋,對此我也只能說……
相信你一定可以久病成醫的:D
三、使用MeGUI進行反交錯處理
接下來我們進入到實戰階段。使用MeGUI來進行反交錯處理。
在中文網路裡,不論是處理Interlaced還是Telecine視訊都會用“反交錯”這一個詞。
但因兩者原理有些許不同,準確來講
處理Interlaced視訊叫反交錯(Deinterlacing),處理Telecine視訊叫做Inverse Telecine(IVTC)。
如果視訊只是單純的Telecine,那麼是可以通過IVTC實現完美還原的。
但如果是Interlaced視訊,則永遠無法補足從源頭損失的那一半資訊,只能通過不同的演算法和濾鏡來儘量達成較好的視覺效果。
在這裡推薦一下Deinterlacing Algorithms By Rebeca Sanz Serrano,是一篇非常優秀的論文,細緻比較了不同的反交錯演算法之間的優劣。
基本邏輯是,先確認交錯種類。
可以IVTC的就不要上Deinterlacing。單純的TC視訊明明可以通過IVTC來完美還原,無腦Deinterlacing反而會讓它白白損失清晰度。
以及勤預覽。每幀每幀檢查效果。
單純的Telecine視訊
通過觀察是否為非常規律的交錯(例如5爛2)來判斷。
(MeGUI的自動分析偶爾會誤判,不要過分依賴自動分析)
解決辦法:
MeGUI內建濾鏡TIVTC
或因MeGUI自帶decomb,可以直接寫Telecide() ,例子:
Telecide(Guide=1,Post=False)
Decimate(Cycle=5) #5幀迴圈的語句 複雜的情況可以在這裡根據視訊來調整
當你很確定自己的視訊就是5幀迴圈,也可以省略decimate:
Telecide(Guide=1,Show=true)
需要做Deinterlacing的視訊。
不同的反交錯濾鏡究竟哪個更好是在壓制界幾十年爭論不息的話題……
簡單來說,對視訊的清晰度和整體質量沒有完美要求的話,可以選擇Yadif。
速度快,對CPU沒什麼壓力。然而產出的視訊對完美主義者不甚友好,損失了清晰度不說,線條邊緣偶爾還會殘留鋸齒。但是當片源本身也是清晰度不夠高的DVD時,Yadif很多時候也夠用。
而對於疑難雜症視訊或者完美主義者,可以選擇QTGMC等大型濾鏡,成品質量相當不錯。就是非常非常非常耗時。
碰到解決不了的問題視訊,以及值得自己在上面砸十幾個小時的珍貴檔源就轟上去QTGMC吧。
下圖是一個對目前常見的Deinterlacing濾鏡的速度與質量比較。
這個測試是MSU的釋出者做的,所以可以不要管MSU :P
如上文所說,Yadif以及MeGUI內建的Tdeint是常見的快速而低質濾鏡,QTGMC則恰好相反。
還有位於兩者之間的nnedi3。在對Yadif效果不滿意時可以嘗試換nnedi3再試試看。
常見的交錯視訊基本可以通過這幾個濾鏡來解決。
再過問題重重的檔源就需要手動調整了,非我力不能及,歡迎大神們討論如何神仙反交錯。
以及、處理動畫片源又是另一個世界的事情了……
本文基本所有配圖都非原創,Link在下面列出,感謝數十年來孜孜不倦與視訊壓制作鬥爭的各國前輩們。
願天國再也沒有interlace。
封面圖是十八歲剛剛出道時的山本美月,沒什麼特別的含義,只是因為我喜歡:)
Link
http://foro.doom9.org/ivtc-tut.htm (聖經,這一篇不讀不行)
Nicky Pages' Digital Solutions (非常全面詳細的一個介紹,講解交錯與TC)
What is Progressive scan 3/2 pulldown? (最清晰地講解掃描和Telecine的一篇)
http://www.infognition.com/tutorials/rip_guides/interlaced.html (如何判斷交錯的種類)
Deinterlacing - VideoLAN Wiki (比較詳細地介紹了Deinterlacing的不同濾鏡)
Compressor 3 User Manual(IVTC基礎介紹)
如果之後還有力氣大概會再詳細寫寫濾鏡比較,但是寫這篇的工作量已經有點超出我想象了。