2011/11/29

logoGuillo開発近況

v2.00をリリースしました。

今月に入ってからlogoGuilloの大幅な更新作業を行っています。数週間以内にはリリース出来る予定です。

主な変更内容(予定含む):

機能追加:
・GUIフロントエンドを搭載
・シーンチェンジを検出してカット位置を補正する機能を追加
・自動調整時にカットマージンも自動で調整するようにした
・ 従来通り-cutMrgIn.-cutMrgOutオプションによる手動指定も可能
・.chapter.txt形式での出力に対応
・出力フレーム番号を指定値だけずらす機能を追加
・読み込み時のタイムアウト処理を追加
・29.97fps以外に25fpsや60fpsに対応(未検証)

2011/11/13

地上波ソースをエンコードする際にFFT3DGPUでシャープフィルタを縦と横で異なる強度でかける理由

Avisynth用のGPUノイズリダクションフィルタ、FFT3DGPUにはNR後に若干甘くなった画を補正する為にシャープフィルタが搭載されていますが、このフィルタは縦方向と横方向で異なる強度に設定する事が出来ます。
そこで私は地上波の横1440ピクセルのソースをエンコードする際に、横方向には縦方向に比べ20%程度強くかけています。

ソースが1920x1080の場合は縦横同じですが
FFT3DGPU(sigma=1.7,beta=1 ,plane=0 ,bw=32 ,bh=32 ,ow=16 ,oh=16,bt=4 ,mode=1 ,degrid=1,interlaced=false ,wintype=2 ,precision=0,sharpen=0.125,svr=1.0,smin=6,smax=13)

ソースが1440x1080の場合は横に強くかけます
FFT3DGPU(sigma=1.7,beta=1 ,plane=0 ,bw=32 ,bh=32 ,ow=16 ,oh=16,bt=4 ,mode=1 ,degrid=1,interlaced=false ,wintype=2 ,precision=0,sharpen=0.125,svr=0.8,smin=6,smax=13)

何故1440ソースではこの様にする必要があるのかというと、再生時には以下の図のような事が起きるからです。

動画のファイルサイズが指定値以上の場合だけ処理を行うBAT

動画のファイルサイズが指定値以上の場合だけ処理を行うBATコードです。番組の前後のゴミを削除する為に使用しています。
99GB以下のファイルなら正常に動作します。

では以下にコードを示します。

2011/11/09

HDD(WD Caviar Green WD20EARS)のC1:Load/unload cyclesが49万回に達する

24時間連続稼働の録画機のシステムドライブとして使用していた
WD20EARSのLoad/unload cyclesが49万回を超えました。
SMARTの値(C1)も200から37まで落ちています。

2011/11/07

AviUtlで手動CMカットした結果をAvisynth用のTrimコマンドにする方法

(12/01/22修正)

私が普段手動CMカットに使用している方法です。所用時間は30分番組1本あたり2分以内程度です。
AviUtlのキーフレーム書きだし機能を使ってCMカットの結果を出力することでAvisynthと連携します。


2011/11/06

ロゴ検出型自動CMカットプログラム logoGuillo v1.00b を公開しました

v2.00を公開したのでそちらを使用して下さい。旧版は削除しました。



v1.00からの変更点(v1.00b)
logoGuilloをAviUtlと連携させるための補助ソフトを追加同梱しました。
AviUtlを使用して結果を確認する半自動CMカット又は手動CMカットに利用できます。
logoGuillo本体には変更はありません。

・logoGuillo連携プラグイン (logoGuilloAUP.auf) v0.01
logoGuilloで出力したフレームリストに基づき、AviUtlで該当フレームをマークフレームにします。
マークフレーム位置を参考にしてキーフレームを打ち、下記のatf02と組み合わせる事で自動処理の結果を確認しながら半自動CMカットが出来ます。

・atf02 v1.00
logoGuilloで出力したフレームリスト又はAviUtlで出力したキーフレームリストから、Avisynth用のTrimコマンドを生成するプログラムです。
AviUtlのキーフレーム書き出し機能を使ってCMを手動カットするために作成したものです。

2011/11/05

HD5850CFX(時価2万円)でのBF3のfps測定結果

先日導入したRadeon HD5850CFでのBattlefield 3のfpsを見てみました。

測定環境
Intel Core i7-860(定格)
プライマリ AMD Radeon HD5850 (リファレンスOC版 , Core 765 MHz / Mem 1125 MHz 1GB)
セカンダリ AMD Radeon HD5850 (リファレンス定格 , Core 725 MHz / Mem 1000 MHz 1GB)
CCC 11.10

*fpsの確認とファンの制御にMSI Afterburnerを使用しています。

メインディスプレイ(1920x1200,60Hz)にゲーム画面をフルスクリーン表示
サブディスプレイ(1920x1200,60Hz)にはデスクトップを表示

垂直同期           :ON(ティアリングしないように入れてます)


2011/11/03

ロゴ検出型自動CMカットプログラム logoGuilloとは

2016/04/03更新 (v2.12 準拠)

概要

「ロゴ検出型自動CMカットプログラム logoGuillo」は動画から放送局のロゴが表示されるシーンを検出することで自動的にCMを判別し、CMカットを自動で行うための情報を出力するフリーソフトウェアです。
*本ソフトウェアは個人的な研究として開発したフリーウェアです。そのため商用利用はご遠慮下さい。非商用目的であれば個人・団体を問わず無料で使用可能です。

出力した情報はAvisynthやAviUtlに加えMP4Boxやmp4chaps等でも利用出来るので、実際にCMカットをせずにCMスキップ用のチャプターを埋め込む使い方にも対応しています。また、出力を反転してCMのみ取り出す事も可能です。

検出に使用するロゴデータはAviUtl用のロゴ解析プラグインと互換性があるので、お手持ちのロゴデータの流用が可能です。
また、同梱のAviUtl用プラグインを使用するとlogoGuilloで出力したフレームリストを元にAviUtl上でCMのカット位置のフレームがマークされるので効率的な半自動CMカットが行えます。

動作原理

基本的にはロゴの有無を判定して本編とCMを判別します。ロゴ判定閾値等のパラメータの調整は局毎に一度、手動でCMカットした手本を与える事で教師付き機械学習により自動調整されます。
logoGuilloではロゴの検出に加え、シーン分析結果と字幕データ、無音フレーム情報を組み合わせたポスト処理を行う事で判定精度を上げています。
また安全側に動作する設計となっているので、本編かCMか判定が曖昧な場合には本編と見なす事で取りこぼしが極力発生しないようにしています。

・画像処理
・ 局ロゴの検出
・ シーンチェンジ検出
・ その他、シーン分析等

・テキスト処理
・ 字幕データの読み込み
・ 無音フレーム情報の読み込み

・ポスト処理
・ 本編/CMの尺やシーン分析結果を組み合わせた最終成形処理

主な機能

・CM位置情報の出力
・ 自動CMカットへの利用
・ 半自動CMカットへの利用
・ チャプター情報の出力(未CMカット用/CMカット後用)
・ CMのみの抜き出しへの利用

・字幕データによるポスト処理
・ NGワードでのシーン除外
・ キーワードマッチングによる特定パートの抜き出し

対応入力形式

本編にのみロゴが表示される動画

圧縮形式
・MPEG2 Video(*.m2v)
・DGIndexプロジェクトファイル(*.d2v)
等々
*本ソフトは動画をAvisynth経由で入力プラグイン( m2v.vfp/DGDecode.dll/ffms2.dll/LSMASHSource.dll /DirectShow Filter)を使用して読み込みます。
そのため、上記入力プラグインで読み込み可能な各種圧縮形式に対応しています。
また、AVSファイルをソースとして指定する事で上記以外のAvisynth対応の入力プラグインを使用可能です。

対応出力形式

.keyframe形式 :本編と判断された区間の開始フレームと終了フレームを順番に記述した形式です。TMPGEnc/AviUtl/atf02で使用できます。

Trimコマンド形式 :本編と判断された区間をAvisynthのTrimコマンドの形で記述した形式です。Avisynthスクリプトで使用できます。

.chapters.txt形式 :本編と判断された区間の開始時間と終了時間を順番に記述した形式です。CMカットせずそのままエンコードしたファイルに埋め込む用途を想定しています。

.chapters.txt形式(本編開始位置のみ) :本編と判断された区間の開始時間を順番に記述した形式です。CMカットせずそのままエンコードしたファイルに埋め込む用途を想定しています。

Avisynth Script形式:入力動画と音声を本編のみ切出し、YUY2形式で出力するAVSファイルを出力します。AviUtl ver 0.99k以降ならCMカット済の動画ソースとしてそのまま開く事が出来ます。音声は動画と同一ディレクトリ内の"拡張子抜き入力動画ファイル名.wav"から読み込みます。

最新版

現在のバージョンはv2.12です。

logoGuilloの局毎の動作確認状況 (v1.00向け)

この記事はv1.00向けです。最新版では動作が異なりますのでご注意下さい。

2011/11/11時点でのlogoGuilloの動作確認状況です。
大抵の局では正常に自動CMカット出来ると思います。

テレビ東京
正常に動作します。

テレビ埼玉
正常に動作します。

TOKYO MX
正常に動作します。

BF3の為にHD5850をCFしてメモリクロックの固定に手こずる

ついにBattlefield 3が発売しました。
しかし手持ちのHD5850では推奨環境(HD6950 or 560Ti)に若干足りない為、もう一枚追加してCFすることにしました。

今までの単発では問題なかったのですが、ドライバ類を入れ直してCF化したところメモリクロックが可変して画面が乱れるようになってしまいました。
昔からPowerPlayでのメモリクロック変化による画面の乱れにはメモリクロックを固定するのが有効でした。メモリクロック固定の方法を検索すると、CCCのProfiles.xmlを編集する方法が出てきますが、最近のCCCでは通用しないようです。少なくともCCC 11.10ではこの方法では無理でした。