分类: C/C++
2009-04-08 21:04:11
去交錯亦称“反交错”(deinterlacing)是將(即)(interlace)影像訊號轉換為()(progressive)影像的一種方法。
因為裝置處理速度以及頻寬的限制下,,例如或是,都是使用交錯式訊號取代漸進式訊號。但是現代新型的顯示設備例如、、或是()等,都只支持(progressive scan),因此在這些設備上需要有去交錯的功能以將交錯式訊號轉換為逐行信号。
一個動態影像是由一連串連續的靜態影像所組成的,其中每一個靜態影像稱為幀(frame),而動態影像中每秒所包含靜態影像的數量則稱為幀(速)率(frame per second, fps)。
而在顯示器上顯示動態影像的方式有兩種:
因為一個場只有一個幀一半的資訊,因此在裝置處理速度無法即時的處理整個幀的資訊以及傳輸頻寬不夠即時傳輸整個幀的情形下,使用交錯掃描可以節省一 半的資訊量且可以為持相同的更新率。在以往陰極射線管顯示器(Cathode Ray Tube, CRT)很難一次掃描整個螢幕,因此無法使用漸進掃描。但是因為屏幕上螢光的餘暉加上視覺暫留效應,使得交錯掃描在陰極射線管顯示器上運作的相當順利。所 以廣播電視系統例如NTSC每秒59.94場,PAL則為每秒50場。
現在新式的顯示設備的速度已經夠快可以即時的處理且掃描整個幀,因此都是使用漸進掃描。但是在這些新型的顯示設備上直接播放交錯式影像會產生嚴重的 閃爍現象,且因為交錯式訊號兩行只有一行有影像另一行則是全黑的,所以亮度看起來會減少一半。由於有上述這些問題,所有使用漸進掃描的新式顯示設備都需要 有去交錯的功能。
根據影像來源的不同,去交錯的方法可以分為以下兩類:
上圖為數位攝影機拍攝的交錯式影像的一個範例,這是兩個連續的場,每個場都只有一半的行有圖像。可以看的出來人物的動作及相對位置都有所不同,因此若我們直接將這兩個場結合在一起將產生「鋸齒」的效果。''
3:2 Pulldown是將每秒24幀的漸進式影像轉換為每秒60場的交錯式影像的程序;先將每個幀拆開成為兩個場,場A與場B;接下來以「第一幀的場A、第一 幀的場B、第一幀的場A、第二幀的場B、第二幀的場A、第三幀的場B、第三幀的場A、第三幀的場B、第四幀的場A、第四幀的場B」的順序排列,這樣四個幀 就可以拆解成十個場,而接下來的每四個幀也是像上面那個順序排列,這樣就能產生出每秒60場的交錯式影像。
而要將源自電影的交錯式影像去交錯是相當簡單的,只要去交錯的裝置偵測到第一個場與第三個場是一樣的,那麼去交錯裝置就會轉換到解3:2 Pulldown的模式。「只要將收到的前兩個場合併為一個幀,第三個場丟棄,第四個與第五個場合併成為第二個幀,第六個場丟棄,第七個與第八個場合併成 為第三個幀,第九個與第十個場合併成為第四個幀。」然後一直重複以上的順序就可以完美的重建原來的每秒24幀的電影影像。
跟源自電影的影像不同的是,電影原本就是漸近式影像,因此可以完美的去交錯;但是原本就紀錄成交錯式影像,在之後無論用任何方法都無法完美的回覆失 去的一半資訊。在這裡去交錯的方法可以分為四大類,根據顯示器的大小、去交錯的時間以及價格因素,不同的去交錯裝置會在這些去交錯方法中選擇最適合的一 個。
這是種非常容易且非常節省資源的一種去交錯方法,通常只需要一行像素的緩衝記憶體以及簡單的內插。例如「line doubling」,這是一種最常見的單一場去交錯方法,簡單來說就是將一個場放大成為一個幀的大小再播出,若是影像來源是每秒60場的交錯式影像,使用 這個去交錯方法將可以得到每秒60幀的漸進式影像。使用這個去交錯方法的好處為非常簡單且非常快速,硬體的成本將會非常低,但是缺點是畫質會看起來比較鬆 散,不銳利;且若是影像中含有橫向的細線,在某些場可能會剛好沒有被掃描到,因此重建出來的影像細線的部份看起來會有閃爍的感覺。
上圖是一個使用「line doubling」去交錯方法的範例,使用簡單的內插演算法,看以看得出來畫質相當鬆散;若是改使用更複雜的內插演算法將可以提昇一些內插的品質。''
場間去交錯就是將連續的兩個場結合為一個幀的方法。例如「weave」,他是將連續的兩個場直接結合成為一個幀,不做任何修改;由於在垂直方向保留 了全部的解析度(不像line doubling只有一半的解析度),因此使用「weave」去交錯得到的畫質比使用「line doubling」好,但是只有在畫面靜止不動的地方,在畫面有移動的地方會有明顯的橫向條紋以及鋸齒;若是連續的兩個場剛好是屬於影像中場景變換的部 份,那麼使用「weave」會發生將兩個不同場景合併成為一個幀的所謂鬼影的現象。另外使用「weave」去交錯將會把每秒60場的交錯式影像轉換為每秒 30幀的漸進式影像。場間去交錯方法需要一個場大小的緩衝記憶體,比起單一場去交錯方法所需要的略多,但硬體還是相當的簡單及便宜。
上圖是使用「weave」去錯方法的範例,在畫面靜止不動的地方畫質比起使用「line doubling」去交錯銳利的多,例如在觀眾席的部份。但是在畫面中移動快速的網球選手身上出現了許多惱人的橫向線條,這是由於兩個場拍攝的時間不同所造成的現象。''
動態適應性去交錯方法是偵測影像中何處是動態的,以及何處是靜態的;在畫面中靜態的部份使用場間去交錯以得到垂直方向完整的解析度,而在動態的部份 使用單一場去交錯以避免鋸齒以及鬼影的現象。使用這個方法偵測動態的演算法是相當重要的,不好的演算法也會導致一些偵測錯誤使得畫面中出現一些惱人的線 條。使用動態適應性去交錯方法需要比較快速的硬體去計算動態偵測演算法,另外也需要一或多個場的緩衝記憶體,演算法使用越多的場來偵測動態將會越準確,但 是相對的需要更好更昂貴的硬體。
動態補償去交錯方法根據鄰近的場使用動態估計(motion estimation)去預測鄰近的場之間畫面中物體的移動,藉由動態估計可以得到的畫面中每一個方塊(macroblock)的動態向量(motion vector),然後使用前一個場以及動態向量可以重建出一個新的場,在將此兩個場合併完成去交錯。使用這個去交錯方法將會得到非常好的影像品質,因為這 個去交錯方法作了非常複雜且精準的預測;但是動態估計需要非常大量的計算,且也需要非常大的緩衝記憶體去暫存每個方塊估計的結果,這使得使用動態補償去交 錯方法的去交錯裝置非常的昂貴且速度緩慢,使得它目前無法應用在消費性產品以及有即時需求的顯示設備上。
一個影片從被拍攝到被使用者觀看經過了許多的程序與不同的途徑;最終使用者得到的影像品質會因為去交錯時間的不同而有所改變。