[HOME] [return]

24fps化とインターレース解除


考え方

知られているとおり, アニメ作品や映画は伝統的に24fps(フレーム/秒)で作られています. TV放送やDVD収録の際にこれらはインターレース60fps(フィールド/秒)に変換され, キャプチャリングの際に30fps(フレーム/秒)のぎざぎざ入り画像になります. これについて, とかく24fps化ばかりが話題にされますが, 必ずしもそうではなくて, 難易度やインターレース解除と相談しながら適切な方法を取るべきなのです.

まず, 知ってるとは思いますが, なぜぎざぎざになっているかについて. 元の24fpsで作られたアニメの, たとえば8コマ分を取ってきたとしましょう これを放映用に30fpsに直すには, 24:30=8:10ですから, 単純に考えると2コマ追加して10フレームの映像にします.

(24fps) 12345678 →(30fps) 1233456778

が, これでは(元の番号で)3コマ目と7コマ目が2倍の長さ表示されることになり, スクロールのシーンなどで時々カクっカクっと引っかかっているように見えちゃいます.

そこで, TV放送は実際にはインターレース60fpsであることを利用して, 上で挿入された3の部分は, 奇数ラインのみが送られる前半フィールドは3の映像(の奇数ぶぶん), 後半の偶数ラインフィールドは4の内容を送ってやります. 7の部分も, 同様に7と8の内容を混ぜて送ります. こうやって奇数と偶数ラインが別のコマから合成されたところが, 30fpsキャプチャしたときにぎざぎざになるところです.

こうすると, 3,4,7,8が他のコマの1.5倍の長さ表示されるわけで, 2倍異なっていた単純バージョンよりはだいぶマシに見えます. 実際は最初から60fpsであることを念頭に配分するので, もっと頻繁に混合フィールドを作ってやり, できるだけスクロール等がスムーズに見えるようにします. (VOB2MPEGさんに詳しく解説されています)

対策の方針

このぎざぎざを解除し, なおかつスムーズに流れる動画を作れば良いのですが, いくつか方法があります

24fps化

どこのコマが混合で作られているかを判定し, 混合の入るパターンを正確にフォローすれば, 元の12345678と並んだ24fps動画を再構成できます. しかし言うほど簡単ではありません.

自動でやるには, aviutilで

  1. フレームレートを24fps自動
  2. 24←30の間引きには24fpsの処理を使うにチェック
  3. インターレース解除も24fps自動

とします. 番組の最初がスクロールで始まる (ラーゼフォンのような) 番組ではうまくいきますが, 最初が長時間静止画だったり, 真っ黒だったりするアニメではたいてい失敗します. その時はもう手動しかありません. 自分でコマ送りを使って, 混合フィールドの出現パターンを見つけて, 3:2テレシネ変換のどの部分に当たるか指定します. 動画新聞さんにその様子があります.

60fps化

インターレース60fpsの動画をTVで見てる時は まともに見えるということは, コマごとに1.5倍程度の長さのゆらぎは許容できるということです. よって, プログレッシブTVと同じ原理で, 60fpsの各フィールドから, 抜けてるラインを補間して60フレーム/秒の動画を作ればTVと同じように見えるはず.

しかし現在ではマシンパワー的に30fpsのVGA再生がぎりぎりなのでちょっとつらい. やるなら同じ画像が続く所はNULLフレーム挿入ですまして, 違う絵のところだけを実フレームにすることになりますが, それには実質24fps解除と同じだけの情報をもっていないとダメなので, 簡単化にはなっていない. 現在では簡単化とは別の方向で, 24/30fps混合アニメを理想的な タイミングで表示する方法として利用されています. 完全に理想的になる公倍数である120fps化というものもあるようです.

30fps2重化

最初に挙げた例では, 3のところでは, 直前のコマである3のコピーでは無くて, 3と4の平均的なコマが表示されれば違和感が無かったということです.

よってもう少し手を抜いて, 60fpsのように1コマを時間方向に2分割せずに, 単純に3のところを, 3と4を半透明にして重ね合わせた1枚絵で済ましてしまおう, というもの. つまり, 完成した30fps動画のあちこちに モーションブラーのようにぶれた絵が入ることになります. 速めのスクロールのシーンでは, これでもまじめに24fps化したものと大差無く見えます. 加えて, 30fpsのシーンが混ざったアニメでも全く問題が起きません.

安物のDVDオーサリングツールでMPEG2を作ったりすると強制的にこうなっています. なぜなら, これが上に挙げた方法の中で (パワー的に無理なプログレッシブ60fpsを除けば) ただ一つ, 何も判定しなくて良いオートマチックな方法だからです.

自分でやるには aviutilなら30fpsのまま, インターレース解除に2重化を指定します.

元が完全な60fps映像 (TVカメラで撮影した, ドラマ, スポーツ, ニュースなど) の場合は, これをやると全部のコマがぶれた絵になるので, むしろ片方のフィールドを廃棄したほうが良いです. (30fpsで, インターレース解除は偶数ライン固定, または奇数固定)

結論

完全24fpsソースのアニメなら, 原理的に言えば, 本来の24fps映像に逆変換するのが最も良いのですが, とにかく失敗がつきものです. しかも成功したかどうかは人間が目をこらして番組の終わりまでチェックするしかありません. 完全保存版我が家の宝!てなものを作る時には良いかもしれませんが, とてもビデオ録画の気分でやってられるものでは…

にもかかわらず, とにかく24fps化しなきゃいけない, という知識ばかりが広まっているため, 解除失敗した動画の多いこと.

それと, よく24fps化する理由として挙げられるビットレート配分の問題ですが, 確かに完全CBRエンコードしてるならフレームが減った分1枚あたりの画質がよくなるものの, 実際にはm4cを使うなりDivXを使うなり, 何らかのVBRエンコードを行うことがほとんどなので, もはや見た目のフレーム数はファイルサイズや画質には無関係と見て良いでしょう. 手元で, 同一ソースをdivx-1pass-qualityの同一クオリティ指定で24fps版と30fps版でエンコードしてみましたが, ファイルサイズは誤差の範囲で同じ(30fps版の方がわずかに小さかった)でした.

うちでは, 番組がスクロールシーンで始まり, aviutilの自動で一発なもののみ24fps化しますが, 大半は30fps2重化で作っています. みなさんも, 場合によっては30fps2重化する勇気を.

[8/7 (2002)]