2010年01月16日

なんでもフルスクリーン化ツールを更新しました

去年の正月に公開してから放置していた「なんでもフルスクリーン化ツール」を1年ぶりに更新しました。

当時はVistaの普及率の低さから需要があまりありませんでしたが、Windows7が出てから使っている人が増えたようなので、もっと動くゲームが増えるように互換性の向上に努めてみました。また、それに伴い名前から「for Vista」を外しました。

主にマウス関係の処理をいじったので、以前のバージョンでは動いていたのに、今回の更新で動かなくなったものがあるかもしれません。

ちなみに、フルスクリーンのゲームをアスペクト比固定拡大するだけなら、今はこのようなツールを使わなくても、大抵はビデオカードやモニタの設定で可能です。怪しげなツールに手を出す前に、設定で対応できないか調べてみて下さい。(最近のドライバではGeForceもRadeonもうまく機能していないようですが…)

2010年01月16日 【雑記】 | コメント(0) |
2009年12月19日

XBMouse Version 1.1 リリース

XBMouseのVersion1.1を公開しました。

変更点は次のようになっています。

  • アプリケーションを終了せずに無効化する機能を追加
  • Media Center操作時はボタン設定を変更
  • Lスロットルでホイール操作も低速化するように変更
  • カーソル移動、ホイール操作の速度を微調整
  • コントローラ操作でスクリーンセーバーのタイマーがリセットされるように修正
  • プロセス優先度を「通常以上」に引き上げ
  • 処理頻度を秒間125回から62.5回に半減

ダウンロードは元のエントリからどうぞ。

Xbox360コントローラでPCを操作するツール XBMouse

Windows Media Centerではマウスの第4,5ボタンがあまり役に立たないので、Media Center操作中は左右トリガーが[前のトラック]/[次のトラック]になるように変更しました。ビデオ再生中は30秒スキップ、番組表では12時間送りになります。

プロセスの優先度は1段階上げて「通常以上」にし、過剰気味だった処理頻度は半分に落としました。

他のゲームをするときに邪魔で終了したら、いざ動画を見るときにXBMouseが起動していなくてコントローラで操作ができなかったことが何度かあったので、終了せずに動作を一時停止する機能もつけました。再開はコントローラ側の操作で行えます。

Combined Community Codec Packをインストールしたら、Media Centerでほとんどの動画が再生できるようになったので、私はプロジェクタ使用時の動画再生はMedia Centerに一本化しました。動画によってプレイヤーを使い分ける必要がなくなって、かなり便利です。特にテレビ録画したものは、30秒スキップができるのが良いですね。

2009年12月19日 【雑記】 | コメント(0) |
2009年12月02日

再帰性反射(Retroreflection)

コンピュータグラフィックスを勉強している人ならば、鏡面反射と拡散反射という光の反射の仕方には馴染み深いと思います。しかしそのどちらでもない、再帰性反射という反射の仕方もあります。

鏡面反射

鏡面反射はその名の通り、ある面に当たった光が鏡で反射するかのごとく、正反射に近い角度で反射する性質です。ツヤや光沢が鏡面反射にあたります。特に滑らかな面で完全な正反射をすると、鏡になります。

specular

拡散反射

拡散反射は、ある面に入射した光があらゆる方向に均一に反射します。鏡面反射が見る角度(観測角)に依存して変化するのに対して、拡散反射はどこから見ても同じように見えます。

diffuse

再帰性反射

再帰性反射では、ある面に入射した光がそのまま光源の方に戻るように反射します。反射角は入射角のみに依存し、受光面がどこを向いていても同じように反射します。

retroreflection

自転車や自動車のテール部分やガードレール等に付けられている反射板が、この再帰性反射の性質を持っています。車のヘッドライトとドライバーの目線は非常に近い角度になるので、光源方向に鋭く反射する再帰性反射の性質は、ドライバーに注意を促すのに役立ちます。

また、猫などの夜行性動物の目にも再帰性反射をする組織があります。よく猫の目が光ると言いますが、本当に光っているのではなく、こちらから照らした光を強烈に反射しているので光って見えるだけです。

鏡面反射と再帰性反射は、拡散反射と比べると狭い範囲に集中して反射するので、同じ光量でも輝度が高くなります。しかし、反射する範囲が狭いので、観測角がずれると急激に輝度が落ちてしまいます。

プロジェクタ用スクリーン

拡散反射・鏡面反射・再帰性反射を上手く使い分けているものに、プロジェクタ用のスクリーンがあります。スクリーンには、マット系・パール系・ビーズ系の3種類がありますが、これらのスクリーンはそれぞれ拡散反射・鏡面反射・再帰性反射の性質を持っています。

パール系のスクリーンは鏡面反射の性質が強いので、プロジェクタの光が正反射する位置から見ると明るく見えます。天井付近にプロジェクタを設置する場合に向いています。

ビーズ系のスクリーンは再帰性反射の性質が強いので、プロジェクタの投射位置の近くから見ると明るく見えます。プロジェクタを低い位置に置いて、その近くから見るのに向いています。

主に交通安全のために使われる再帰性反射材が手元にいくつかあったので、これをスクリーンとして使用したらどうなるか試してみました。用意した反射材はほぼA4サイズで、白色と黒色の2枚です。特に黒い方は面白くて、黒いのに反射するという不思議な素材です。(拡散反射光がほとんどないので黒く見える)

再帰性反射材をスクリーンとして使用

使用したプロジェクタは前回紹介したμviewで、明るさは15ルーメンしかありません。横幅170cmくらいになるように投影しているので、A4の30倍程度の面積に相当します。

前回のA4サイズに投影した場合と比べて、30倍の面積に投影しているにも関わらず、かなり明るく見えるのが分かると思います。ただし、これだけの明るさが得られるかわりに視野角は非常に狭くて、角度が2度ずれるだけで半減、15度もずれるとほとんど見えなくなってしまいます。

これではプロジェクタが視界を遮らない位置で見るのはほとんど不可能で、スクリーンとしてはとても使い物になりませんね。

2009年12月02日 【雑記】 | コメント(1) |
2009年10月20日

SilverlightとFlashの動画再生負荷を比べてみた

YouTubeでは、URLにfmt=18やfmt=22を追加すると、mp4フォーマットでH.264+AAC形式の動画を取得することができます。fmt=18はiPod用、fmt=22はHD画質となっています。

Silverlight3はこの形式に対応しているので、実はYouTubeの動画をSilverlightで再生することも可能です。

ただし、現在YouTubeはcrossdomain.xmlによって、外部サイトからのFlash/Silverlightのアクセスを拒否しているので、Silverlightから直接YouTubeのファイルは再生できません。いったん動画ファイルをダウンロードするか、crossdomain.xmlを無視してファイルを取ってくるプロキシ的な物を用意する必要があります。

そこで今回は、同じ動画をSilverlightとFlashで再生して、CPU負荷を比較してみました。

Silverlightでの再生にはExpression EncoderについてきたMediaPlayer.dllを、Flashでの再生にはYouTubeをそのまま使っています。動画の表示されるサイズが全く同じになるように調整し、再生中のCPU使用率を調べます。

今回テストに使用した動画は「Where the Hell is Matt? (2008)」です。Matt Hardingさんが世界中で様々な人種の人達と楽しそうにヘンテコなダンスをする動画です。

http://www.youtube.com/watch?v=zlfKdbWwruY&fmt=22 (HD画質)

http://www.youtube.com/watch?v=zlfKdbWwruY&fmt=18 (iPod用)

テスト環境はCPUがCore2Duo E8400、OSがVista SP2、ブラウザがIE8です。CPUのクロックは最高値で固定になるように設定してあります。

Silverlightで再生

Silverlightで動画再生

Flashで再生

Flashで動画再生

正確に集計をしたわけではなく、値の変動を見ながら私の感覚で平均を取った感じだと、Silverlightでは28%程度、Flashでは26%程度といったところでした。

僅かですがSilverlightの方がCPU負荷が高い印象でしたが、タスクマネージャのグラフからも分かるように、Flashでは1つのコアしか使われていないのに対して、Silverlightでは2つのコアが平均的に使われています。

実は最初に実験したときはCPUのクロックを可変にしたままやってしまい、SilverlightでのテストではCPUのクロックが低い状態で見かけ上の負荷がもう少し高くなってしまいました。

現時点ではSilverlightの方がマルチコアを上手く使っている感じです。

ただし、同じテストをAtom N270のネットブックでiPod用動画を使用して行ったところ、Flashでも2つのコア(HTですが)を使っていました。CPUによってコードを変えているのかもしれませんね。

ちなみにネットブックでのCPU使用率は、HD動画とは逆にSilverlightの方が少し低かったです。

もう少し有意な差があれば「動画共有サイトはSilverlight(またはFlash)で作るべき」みたいな結論も出たのですが、今回は微妙な結果となりました。

ところで先日、Flash Player 10.1でGPUを使用した動画再生支援にも対応することが発表されました。現在はAtomでYouTubeのHD動画を見ると紙芝居になってしまいますが、今後は改善されそうです。今までは嫌われていたUS15Wチップセットを搭載したネットブックが、強力な動画再生支援機能のおかげで945GSE搭載機よりも優位になるかもしれませんね。私のネットブックは945GSEなので、そうなったら悲しいですがw

タグ:Silverlight
2009年10月20日 【雑記】 | コメント(0) |
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が残ってしまうのは後から修正が効きますが、誤検出で本編がカットされるのは非常に困ります。そこで、もっと良い方法が無いかと考えていました。

続きを読む
2009年08月21日 【雑記】 | コメント(1) |
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。