網上找到的大多都是神仙討論天書筆記,許多概念也糾纏在一起……
為了更好地說明交錯,得先從傳送影象的原理講起。
在傳送電檢視像的時候,將每幀影象分解為畫素,之後乙個乙個畫素、一行一行順序傳送的方式叫做掃瞄。
逐行掃瞄是非常容易理解的掃瞄方式。將這一幀的影象從左至右從上至下掃瞄完成之後,輸出一張完整的影象。掃完第一幀再繼續掃第二幀,如此迴圈。由於每一次輸出的影象都是完整的畫面,所以觀眾**的時候會覺得影象非常穩定細膩。
逐行掃瞄(progressive scan)
但是這樣的掃瞄方式需要有相當大的頻寬來傳送這些電訊號,尤其在早期的時候由於技術限制和成本高昂,很難以實現。
怎麼辦呢?為了減少頻寬,人們採用了隔行掃瞄的方式。
原理是將一幀的這一幅畫面分為兩個場來掃瞄。
完整的一幀 → 奇數行(奇場) → 偶數行(偶場)
隔行掃瞄(interlace scan)
通常有一種誤解是,偶場和奇場是由同一幀的畫面分拆得來的。
實際上,攝像機採集的方式和隔行掃瞄顯示的方式是完全相同的。當攝像機採集影象時,偶場和奇場不是同時採集的。
以每秒60場的攝像機為例,偶場的採集在奇場的1/60秒之後進行。
只要影象中沒有出現變化,比如說是靜止的場景,兩個場會補足對方形成完整流暢的畫面。
但我們不是生活在ppt裡,一旦畫面出現變化,交錯(interlace)便出現了。
運動的汽車出現了交錯
記得上**調過兩個場並不是同一幀的畫幅,而是分處不同時間的。
當運動發生時,物體會在第一場處於位置a,而在下一場移動到位置b。此時兩個場不能互相補足對方,畫面上就會有一些交錯。
這個**演示了乙個番茄從左向右的移動過程。由於每乙個場和上乙個場的位置都有細微的不同,交錯便這樣出現了。
以上是一些幫助你更好理解交錯原理的背景知識,接下來我們更進一步。
但還有另一種更常見的情況是,隨著時代發展,如今逐行掃瞄已經漸漸普及。
這種轉換的過程名為telecine,縮寫為tc,中文叫膠卷過帶。
全世界最通用的兩種電視制式為北美+日本為主的ntsc制式(30fps),與中國大陸+香港+歐洲為主的pal制式(25fps)。
全世界電影拍攝的一般幀率都是24fps。
轉換成果如大家所見,也就是常說的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
interlaced video
true interlaced video現在仍頻繁出現於大部分的體育賽事、演唱會***,部分電視劇集和一些低成本電影,以及大量的紀錄片和花絮/幕後裡。
除了上文這些常見的interlace與telecine……在處理片源時我們還會遇見非常多的奇葩情況。
比如強行把ntsc制式的碟壓進pal ***裡的,比如片源經過了無數道手的剪輯和壓制之後再次telecine的,比如整體60i系統+正片24p+片尾和特典是24t+24p+30p再內建乙個60i字幕的(沒錯索尼我在說你)
處理這些片源確實會把人逼瘋,對此我也只能說……
相信你一定可以久病成醫的:d
接下來我們進入到實戰階段。使用megui來進行反交錯處理。
但因兩者原理有些許不同,準確來講
在這裡推薦一下deinterlacing algorithms by rebeca sanz serrano,是一篇非常優秀的**,細緻比較了不同的反交錯演算法之間的優劣。
基本邏輯是,先確認交錯種類。
以及勤預覽。每幀每幀檢查效果。
通過觀察是否為非常規律的交錯(例如5爛2)來判斷。
(megui的自動分析偶爾會誤判,不要過分依賴自動分析)
解決辦法:
megui內建濾鏡tivtc
或因megui自帶decomb,可以直接寫telecide() ,例子:
telecide(guide=1,post=false)
telecide(guide=1,show=true)
不同的反交錯濾鏡究竟哪個更好是在壓制界幾十年爭論不息的話題……
下圖是乙個對目前常見的deinterlacing濾鏡的速度與質量比較。
這個測試是msu的發布者做的,所以可以不要管msu :p
如上文所說,yadif以及megui內建的tdeint是常見的快速而低質濾鏡,qtgmc則恰好相反。
還有位於兩者之間的nnedi3。在對yadif效果不滿意時可以嘗試換nnedi3再試試看。
再過問題重重的檔源就需要手動調整了,非我力不能及,歡迎大神們討論如何神仙反交錯。
以及、處理動畫片源又是另乙個世界的事情了……
願天國再也沒有interlace。
封面圖是十八歲剛剛出道時的山本美月,沒什麼特別的含義,只是因為我喜歡:)
(聖經,這一篇不讀不行)
nicky pages' digital solutions (非常全面詳細的乙個介紹,講解交錯與tc)
what is progressive scan 3/2 pulldown? (最清晰地講解掃瞄和telecine的一篇)
(如何判斷交錯的種類)
deinterlacing - videolan wiki (比較詳細地介紹了deinterlacing的不同濾鏡)
如果之後還有力氣大概會再詳細寫寫濾鏡比較,但是寫這篇的工作量已經有點超出我想象了。
kvm安裝centos7 KVM從入門到放棄
在ubuntu16上裝的,qemu,kvm裡裝的ubuntu10,可用。配置網橋部分沒做,ubuntu10可以執行,網路功能暫時沒有嘗試。linux中國 如何在 ubuntu 18.04 伺服器上安裝和配置 kvm zhuanlan.zhihu.com 編譯前,需要把系統裡的config檔案copy...
C 從入門到放棄 基本語法與函式
1.有符號整數 sbyte,short,int,long 無符號整數 byte 8位 ushort,uint,ulong 2.浮點數 float 32位 double,decimal 3.其他 char 16位 bool,string.1.隱式轉換 如 short int 2.顯式轉換 short ...
Android從入門到精通第12章 執行緒與訊息處理
建立執行緒 thread.start thread.sleep 1000 thread.interrupt handler訊息傳遞機制 在新建立的執行緒中操作ui介面。迴圈者looper簡介 android中,乙個執行緒對應乙個looper物件,而乙個looper物件又對應乙個messagequeu...