【Handbrake】DeinterlaceとDecombを比較してみた【インターレース解除】 | USBメモリー収集家のブログ

USBメモリー収集家のブログ

PC通販・購入レビュー

テーマ:

※最後に一部訂正があります

Handbrakeでインターレース解除をする場合、FiltersタブにDeinterlaceとDecombという2つの解除方法があります。どちらも同じく映像の櫛状ノイズを解消させる効果があるので、Ver.0.9.8以降では同時に使用することが出来なくなりました…となると、当然「どちらがより最適なのか?」という疑問が湧きます。

公式サイトでは製作者が「DeinterlaceだとSlowerでもソースによっては上手く解除されない場面が多い、DecombのDefaultを使えば完璧!」と、解説をしています。しかし、自分の環境ではDecombの方が上手く解除されない場面が多いので変だなぁとずっと思っていました。
今回いろいろ検証した結果、ほぼ完璧にインターレース解除をする事に成功したので、その方法をご紹介します。

まずは、検証結果の比較画像をご覧ください。

【比較画像1:実写背景映像】

 

 


【比較画像2:実写人物映像】

※分かり易い様に、比較画像1・2ともに2倍に拡大しています
 

元画像
SD画質のMPEG-2映像をPowerDVD14Ultraでインターレース解除しながら再生し、Winshotという画面キャプチャーソフトでBMP保存。

 

Decomb、Deinterlace、Custom
HandbrakeのPresetからHigh Profileを選び、Filtersタブだけそれぞれ変更し、エンコード。MPC-HC(設定は全てデフォルト)で再生。元画像と同じくWinshotでBMPキャプチャー。

 

比較画像1、2:
1は、風船がユラユラゆっくりと空へ舞い上がって遠のいて行く映像の一部分。
2は、人物が比較的ゆっくりと何度も瞬きをしている映像の瞳の部分。
キャプチャーした各BMP画像をWin8.1標準のペイントで貼りあわせて、2倍に拡大。ブログ用にPNGで保存。

 

検証する上でこちらのHandBrake解説@Wikiを参考にさせていただきました(このWikiは公式のユーザーガイド&FAQを有志の方が翻訳してくださったものの様です)。
 

DecombはDefaultを選んでいます。
Wikiのデインターレースフィルタの詳細解説にあるようにインターレースを検出したフレームに効果があり、自動判別し、櫛状ノイズがないフレームは処理しないのでDeinterlaceより若干速く劣化も最小限と良い事だらけみたいですが、検出を自動判別するという事は未検出(処理しなければいけないフレームを見逃す)や誤検出(してはいけないフレームを処理したり、しなければいけないフレームを処理しない)といった事も起きるというわけです。
比較画像1では誤検出により処理されていないようです。比較画像2では3枚の内1番シャープにエンコードされていますが、細かく激しく動くまつ毛部分は1番潰れています。

 

DeinterlaceはSlowerを選んでいます。
比較画像1では上手く解除出来てるように見えますが赤風船の上下が切れてしまっています。比較画像2ではDecombと同様に細かく激しく動く場面は潰れています。
Wikiの解説によると、3つの手法があるが全てのフレームに対して処理を行うので混合素材(特にアニメや映画等の特殊な映像効果があるソース)は苦手とあります。しかも実は、3つある手法の内mcdeint(動き補償デインターレース)はFast・Slow・Slower・Bobのどれを選んでも使用されず、Customを選ばなければ有効にならないとあります
動き補償処理がされてないから検出が曖昧な場面があったというわけです。これは個人的に衝撃的な事実でした。動画として見比べた場合はDecombよりもDeinterlace Slowerが最適だと、ずっと思い込んでエンコードしてきたので
mcdeint(動き補償デインターレース)は高品質だが処理が膨大で時間がかかりすぎるからデフォルト設定には反映していないようです。

 

そこで今回の検証のメイン、Deinterlace Customです。
設定値はWikiを参考に、3:-1:3:1を入力。Slower+mcdeint:3というわけで1番処理時間がかかる設定にしました。

ソース:23分39秒のSD画質MPEG-2
PCスペック:Cire i5-4570S@定格、メモリ4GBx2、SSD
mcdeint 無し(Deinterlace Slower)=8分24秒/84.35fps
mcdeint 有り(Deinterlace Custom)=7分36秒/93.25fps

 

え~と、動き補償有りの方が48秒も速いんですが
結果は先の比較画像のとおり、若干シャープさに欠けますがディティールの潰れもなく、元画像と遜色ない出来なので設定値はきちんと反映されていると思います。
この逆転劇はどういう事だ?とmcdeintについてもっとよく調べてみたら、このフィルタが登場した10年程前のPCでは今のh.265並みにクソ遅いものだったみたい。どうやら公式ユーザーガイドは10年以上更新していないらしい。たぶん、この10年で飛躍的にPCが進化したりエンコードエンジンの進化だったりで処理が最適化されたから速いんじゃないだろうか?


まぁ、理由はさっぱり分からないけれども、むしろこのCustom設定をDeinterlace Defaultにして欲しいくらい自分の環境では効果抜群なのは事実です


一部記事訂正:2016/02/08
記事を読んだ方よりご指摘がありまして、訂正をいたします。
mcdeintについてですが、Ver.0.10以降は削除されて使用出来ないらしいです。肝心な事を書き忘れていましたが、上記比較で使用しているのはVer.0.10.3でした。

この場合、実行エラーでCustom設定値は無効。インターレースの解除はされているので、FiltersタブのDeinterlaceはOffにはなっていないが、FastかSlowが適用されいるのではないかという事のようです。
ログを見てもフィルター設定値の記述もバグってはいなかったし、Encode Completedで終了していたので正常に動作していると思い込んでいました


【比較エンコードした時のログ】

さらに再度いくつか別のソースで試したところ、Fastと同じ結果になりました。
なので、比較画像のCustomはFastだと思って見てください。そして、もう完全に自分の考えを改めなければ…

 

 

いつも使っている参考資料本

 

 

 

関連商品メモ