nicolish!

インターレース

最終更新:

nicolish

- view
管理者のみ編集可

インターレース


このシリーズは、動画をうp出来て
作業内容の意味も一通り分かってるくらいの人を対象に
画質向上のための技術/理論寄りの知識を提供します

今回はインターレース変換。
TVに映す事を考えて作られた映像を、PC向けにいじくる話。
だから、純粋にPCのために作られた動画を扱う人にはあんま関係ない。

01.インターレースとは

動画を編集する時に、こんなシマシマを見た事は?
これがインターレース縞と呼ばれる奴

インターレースの発祥は、TVが発明された頃に遡る
TVは、60fpsで画面を表示する事ができる

でも、電波の都合により
30fpsくらいが送信できる限界だと判明!
30fpsだと、人間の目には微妙にカクついて見える

30fps分の映像データで、60fpsの動画を実現できないか?
男たちの無謀とも言える挑戦が始まった
(BGM:地上の星)

勿論正攻法では無理なので、卑怯な技を使う
1フレーム分の画像を2枚に水増しして表示させる
これで60fps達成だ、この方針で行こう

さて、どうやって水増ししよう
前後のフレームの平均値を取ってフレームを生成する?
いや、んな処理はTVにやらせるには重過ぎる

変な事を考える人がいるもので。
フレームを、横に1pxずつスライスして
1,3,5,7行目だけ更新したあと、2,4,6,8行目だけ更新
というのを繰り返して60fpsを実現する事を考えついた

この仕組みは、TVととても相性がいい
TVは、上から順に横に線を引っ張って(走査という)
それを下まで繰り返して絵を描いている
だから、この方法での描画は負担にならない
1行おきにすればいいだけだからね

こういうのを
飛び越し走査方式、という
英語で言うと、インターレース方式
(対して、インターレースでない映像は、プログレッシブと呼ぶ)

で、最初っからこうやるって分かってるから
映像送信の時、奇数行目と偶数行目を別々に送ってくる
それぞれを奇数フィールド、偶数フィールドという

だから、TVの信号というのは30fpsと60fpsの中間のような変な形式になってる
そういう仕組みだから当たり前なんだけど

ここまでのまとめ

  • TVは、1秒間に60回映像を更新する(60Hz)
  • TVの映像信号は、基本的には30fpsの情報量しか持たない
  • 1フレームを奇数行と偶数行、2つのフレームに分解して順番に走査する事でフレームレートを見かけ上倍にできる
  • これをインターレース走査と呼ぶ

2.インターレース縞の原理

なんで縞々になっちゃうのか、の話

インターレース走査によって、TVは60fpsを実現できた
これによってカクつきは解消されたのだけれど、別の問題が起きてくる

いわゆるチラつき。
1/60という知覚出来ないペースではあるけれど
映像はシマシマに更新されていく

TVは元々構造上チラつくように出来てる
だからインターレースのアラが見えにくい
(とはいえTVを見て目が疲れるのは、これが結構大きい)
けど、PCはそうではない

PCモニタはインターレース描画をせず、まあ普通に全部描く
PCはTVのようなインターレース信号を扱えない
インターレース映像を、どうにかしてプログレッシブ映像に変換するしかない

何も考えないでTVの映像を動画編集ソフトで読み込む
するとソフトは大抵の場合、奇数フィールドと偶数フィールドを足して1枚の絵を作る
インターレースな60fpsの映像が
プログレッシブな30fpsの映像になるわけだ

でも、奇数フィールドと偶数フィールドは、同じ瞬間のフレームではない
本来、1/60秒ほど時間がズレたフレームなわけだ
これを単にくっつけると、当然ズレが生じる

そう、これがインターレース縞の正体
動いている部分を中心に、この1/60秒の違いが
幅1pxの横縞としてあらわれるわけだ

ここまでのまとめ

  • PCでは、奇数フィールドと偶数フィールドをまとめて1フレームとする事でインターレースをプログレッシブに変換する
  • その際、奇数フィールドと偶数フィールドの1/60秒の時間の差が映像のズレ、インターレース縞となってあらわれる

3.インターレース解除

対策。これは割と簡単

インターレース縞を防ぐにはどうすればいいか
解決策はいくつかある、簡単な順に行こう

ひとつめ
1,3,5,7行目を、1,2,3,4行目ってことにして、60fpsの映像にする
縦方向の解像度を半分にするわけだ
縦横比を維持するため、横幅も半分にする
解像度が半分になるけど、60fps確保できるしまあ悪くない

ふたつめ
しましまの隙間の部分をカンで埋める
できるのは60fps、解像度は元のまま
だけどカンで埋めてるので、垂直方向の解像度が甘くなる
すぐ上とすぐ下の平均、で埋めるので、なんとなくボケる
画質はひとつめの奴を拡大したのと大差ない(多少マシ)

みっつめ。
シマシマの部分をカンで埋めるんだけど、奇数と偶数の片方は捨てる
奇数と偶数で、カンで推定した部分が食い違ったりするのを防ぐ
垂直方向にもボケるし30fpsになるしでちょっとアレ。

よっつめ。
なんとなく平均を取った感じにして適当に誤魔化す。
できるのは30fps、解像度は同じ

どれがいいか?場合による。

動きが大きい(特に横方向の動きが大きい)動画の場合
60fpsを維持しつつ適当に推測するふたつめの方法が合っている
解像度は犠牲になるが、映像の滑らかさが維持される
スポーツ動画などに向いた方法

映像の綺麗さを取るなら、最後の方法
なんとなく平均っぽいものを取って30fpsにする
インターレース解除方法に「自動」を指定するとこれになる。

どの方法をとっても、情報量は増えはしないのがポイント。
60fpsを維持すれば解像度が犠牲になる。
解像度を求めれば30fpsに落とす事になる。
どっちを優先するか、だね。基本は解像度重視で行った方が無難。

ここまでのまとめ

  • インターレース解除を行なうと、インターレース縞を消せる
  • その際、フレームレートか解像度のどちらかが犠牲になる
  • どちらを優先するべきかは、動画の性質と編集方針次第

4.実践編

実際にはどんな感じになってるのかな、と。

まず、ソースがインターレースかどうかを確認。
編集ソフトで開いて、動きの大きいところをコマ送りにする。
シマシマが見えたらインターレース。

インターレースがかかってるのは、当たり前だけどまず地上波TV
ハイビジョンはインターレースのと、プログレのがある
どれはどうとか言ってる暇があったら、実際確認した方が早い

DVDビデオもインターレース
基本的にTV表示用だから、TV用に最適化してあるわけだ

たーだー!ここで注意点がひとつ。
特にTVアニメなんだけど、これは単純なインターレースではない
(もしかしたら普通の映画もかもしれない)
これらにはテレシネ変換という処理と、インターレース化を
同時にかけてあって、その結果縞模様が出てる事がある

テレシネ変換が何かはややっこしいのでまた今度。
どうすりゃいいかだけ先に書いておくと
少々変になるのを承知の上でインターレース解除をするか
じゃなかったら逆テレシネ変換と呼ばれる
インターレース化&テレシネ変換を解除するための特有の方法を使う

で、あとゲーム機からの出力。
これもTV用にインターレースな事が多い
SFC以前の古いハードだと、奇数と偶数の片方しか出力していない事もある
だからエミュとかでやると画面が超小さかったりするよね
(縞の間を詰めて、ついでに横幅も詰める処理をしてるわけ)

とまあ、色々あるわけだけど
結論としてはこんな感じです

ここまでのまとめ

  • インターレースかどうかの確認は目で見るのがベスト
  • TVアニメの場合は逆テレシネ変換をかけるのが理想的。インターレース解除でもかなり良好になる
  • その他のソースの場合、普通にインターレース解除してOK

インターレース解除を自動で行なうフィルタやソフトには、多種多様なバリエーションがある
けど、把握しきってるわけじゃないし、説明するとキリがないのでその辺はパス
記事メニュー
目安箱バナー