CaptyTV Firewireで録ったMPEG2ファイルをCapty MPEG Editで編集してて気付いたんだが…
その前にちょっとうんちく。
MPEG2というのは、動画をGOPという単位に区切っており、そのGOP一個の中には15フレーム(=0.5秒)ぶんの動画が入っている。
で、そのフレームの最初は、代表画と呼ばれる、そのフレームの情報を全て持った画像が入っており、次以降のフレームは、前のフレームの差分だけを情報として持っている。
そうすると、動きの少ない動画であれば差分情報は少なくて済み、より効率的に圧縮出来るのだが、GOP内のフレームで劇的に激しい動きが起きたり、全く違う絵に切り替わったりすると差分情報が大きくなって効率的な圧縮が難しくなり、結果、動画にノイズが走るのだ。
…で、CaptyTV Firewireで録った動画の話を始めると、…USB版で録ったMPEG2の場合、ひとつのGOPは必ず15フレームと固定しているのに対し、Firewire版で録ったMPEG2の場合、CMになったりとかで全く違う絵に切り替わった場合、その場面を録っていたタイミングのGOPが15フレームに達していなくてもそこでそのGOPを打ち切り、切り替わった直後の絵を代表画にした新しいGOPを作り始めるのだ。
動きが少ないところだろうと激しいところだろうと、15フレームに達したら新しい代表画を生成してその分容量を喰わないとならないのだから、極力画面が切り替わった瞬間を代表画にする事によってノイズの発生を低減しようという理屈のようだ。
…なかなか賢い考えだね。
もっとも、この処理は必ず行われる訳でもないらしく、CMに入ったり場面転換したりした場所でも新しい代表画を作らない場合もある。
まあこのへんは、Captyの中の人がいろいろと考えて処理をしているのだろうが、なんかこれで、USB版で録った動画でよく出る強烈なブロックノイズがFirewire版ではあまり目立たなかった理由が分かった気がした