2009年08月21日

高精度CM検出アルゴリズムを思いついた

私が使用しているHDDレコーダーのRD-H1EXにはCMを検出して自動的にチャプター区切りを設定する機能があります。再生中に次のチャプターまでジャンプする機能と組み合わせることで、半自動でCMをスキップすることができます。

無印のRD-H1では、CMは必ずステレオ放送であることを利用してモノラル/ステレオの切り替えでCMを検出していました。この方法は精度が高い半面、ステレオ放送の番組では使用できないという欠点があります。

アナログ放送の頃はほとんどの番組がモノラルで、音楽番組などの一部の番組だけがステレオ放送だったので、この方法でほとんどの番組が対応できました。しかし、テレビ局が番組を地デジ対応にする際にほとんどの番組がステレオ放送化してしまい、いまだにモノラル放送をしているのはタモリ倶楽部のような一部の番組だけとなってしまいました。

このような状況を受けてか、RD-H1に有償のアップグレードを適用したRD-H1EXでは異なるアルゴリズムが採用され、ステレオ放送でもCMを検出することが可能になりました。RD-H1EXがどのような方法でCMを検出しているのかは分かりませんが、確かにステレオ放送でもCM検出ができています。しかし、番組によっては全く検出されていなかったり、一部のCMの検出に失敗していたりと、完璧とは程遠い状態です。

CM検出の別の方法として、音声が無音状態で映像がシーンチェンジするタイミングを検出するという方法があります。音声が流れている最中に突然切り替えてしまうとブチッというノイズが発生してしまうので、テレビの映像は必ず切り替わる直前と直後は無音になっています。無音状態で映像が切り替わったら、そこをCM切り替えの候補とします。また、1本のCMは30秒等と時間が正確に決まっているので、候補の中からピッタリ30秒の部分を探し出せばCMを見つけることができます。

実際にこの方法でかなりの精度で検出できるようです。しかし、番組中に演出で無声部分が続いた場合の誤検出が怖いです。検出失敗でCMが残ってしまうのは後から修正が効きますが、誤検出で本編がカットされるのは非常に困ります。そこで、もっと良い方法が無いかと考えていました。

さて、前置きが長くなりましたが、ここからが本編です。

今回私が思い付いた方法では音声は利用せず、映像情報のみを利用します。次の画像はアニメ『クロスゲーム』の本編中の映像と、その番組中に放送された週刊少年サンデーのCMからキャプチャした画像です。

アニメ本編
アニメ本編

サンデーCM
サンデーのCM

どちらも似たような映像ですが、この2つには決定的な違いがあります。

分かりやすいように、2つの映像の一部を拡大したのが次の画像です。

アニメ本編(拡大)
アニメ本編

サンデーCM(拡大)
サンデーのCM

現在、地デジへの以降を促進するために、アナログ放送は右上に「アナログ」の文字が入っています。しかし、権利の関係かCM中にはこの文字が入りません。そこで、この「アナログ」の文字を検出すれば、CM中か判定することができます。

この方法の欠点は……説明するまでもないので省略します。

Posted by 新坂 | Comment(1) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
実際には、他番組の宣伝などテレビ局自身が出しているCMは「アナログ」の文字が入りますし、CM突入直前にはシーンチェンジより先に「アナログ」の文字が消えるので、この方法でも完璧とは言えません。

そもそもジョークなので、そんなことどうでもいいんですがw
Posted by 新坂 at 2009年08月21日
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL

※ブログオーナーが承認したトラックバックのみ表示されます。

※言及リンクのないトラックバックは受信されません。


この記事へのトラックバック