人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PC上で、複数のファイルを順番に読み込んで、モニタに動画として出力するソフトを探しています。

以下のような流れです。

複数ファイル(BMP) → ソフト → PCのメインメモリ → グラボ(DirectX対応) → モニタ

モニタは、以下のモニタを使用し、120fpsで出力しようとしてます。
http://www.viewsonic.com/products/desktop-monitors/lcd/x-series/vx2265wm-fuhzion-lcd.htm#tabbox_specs

ちなみに、ある会社ががわざわざ外注さんを使って作らせていることを知ったのですが、「そんなソフト、世の中にあるだろう」ということで、質問している次第です。

尚、PCのOSは、WidowsXPかLinuxです。


●質問者: renagon
●カテゴリ:コンピュータ 家電・AV機器
✍キーワード:BMP DirectX Linux OS pc
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●27ポイント

BMPファイルを1枚1枚読み込んで動画として表示するのでは、HDDのスペック的に無理があります。

  1. BMPファイルを、いったんメインメモリに読み込んでから動画表示するか、
  2. あらかじめBMP静止画像から動画ファイルをつくり出す必要があります

SD画像(720×480ピクセル、フルカラー)は、1枚あたり約1Mバイトです。したがって秒間120枚(ノンインターレスとする)のBMPファイルを読み込むためには、120Mバイト/秒以上の転送速度が必要です。

SATA-2の理論上の転送速度は300Mバイト/秒ですが、実際にこれほどの速度を出せる記憶装置はありません。普及しているATA100では、ランダムアクセス速度は、せいぜい5Mバイト/秒です。

しかし、秒間5枚では、コマ落としみたいな映像になってしまいます。せめて15Mバイト/秒のランダムアクセス速度を出せるHDDが必要です。

よって、BMPファイルを1枚1枚読み込んで動画として表示するのでは、いくらGPUの性能がよくても、HDD(SSDを含め)のスペック的に無理があります。


そこで、1のツールの存在可能性を検討します。

上記と同様の計算で、1分間(7200フレーム)の動画を表示するためには7Gバイト以上の容量が必要となります。20fpsに落としたとしても1Gバイトを超えます。

メモリの中で画像圧縮しておけば何とかなるかもしれませんが、そこまで特化されたツールが存在しているとは思えません。


したがって、実現可能性があるとすれば2のツールでしょう。いくつかのコマンドラインツールをバッチで組み合わせることによって、実現できないことは無さそうです。

ただ、このようなツールがご質問の主旨に合うかどうか分かりません。

◎質問者からの返答

pahooさん回答ありがとうございます。

すいません、私の質問が悪かったです。

出力する画像は、VGA(640x480)、YCbCr(4:2:2)10bitです。

120fpsは必須なんですが、再生時間は、30秒もあれば御の字です。

ただ、pahooさんご指摘のように、HDD/SSDの読み出し速度を考慮してませんでした。

なので、可能性があるのは、pahooさんおっしゃるところの1のツールになります。

640 x 480 x 20bpp x 120fps x 30s / 8 = 2.7684GB

と、こんな感じですが、何か心当たりのツールなり情報あれば、教えて頂けると助かります。


2 ● pahoo
●27ポイント

「1.メインメモリに読み込んで‥‥」という仕組みではないようですが、Windows 2000/XP/Vista 用のフリーソフト「SnapViewer」はどうでしょう。

更新周期を 8 msec にして、マシンが追いついてくれればいいのですが‥‥。

お試し下さい。

◎質問者からの返答

pahooさん回答ありがとうございます。試してみます。


3 ● きあ
●26ポイント

>HDD/SSDの読み出し速度

この点で回答させていただきます。ご存知でしたらごめんなさい。


メモリーをハードディスクとして使う方法がありますよ。

http://www.watch.impress.co.jp/akiba/hotline/20081108/sp_acard.h...

画像の容量が少なければこっちは無料でいけますね。画像が2G以上だとマシンとしてはメモリを4G以上積めたほうがいいですね。

http://pc.watch.impress.co.jp/docs/2008/0512/ramdisk.htm



ついでですが、上記のようなものを使い、ハードディスクへのアクセスを下げることで表示速度は上がります。

OPEN→読み込み・・・・・・→表示 が

OPEN→読み込み・→表示 ぐらいにはなるかと。

ソフト自体がHDDに読み込み(DLLだとかを)に行ってしまうとHDD待ちになっちゃうので、できればソフト自体をメモリに入れておきたいところです。

ネットゲームなどのロードがすこぶる早くなりました。

pahooさんの回答2のように動画にしちゃったほうがスムーズだとは思いました。

面白そうなのでSnapViewerを試してみました。職場なのでRAMDISKは試せませんが、HDDのままだと周期8では時々止まりました。


構成

CPU:core2Duo2.66GHz

メモリ:4G 内約3.5G認識

HDD:SATA300 7200rpm キャッシュ16M

◎質問者からの返答

kia_44さん、回答ありがとうございます。

「メモリーをハードディスクとして使う」なるほどです。検討します。

どうも、ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ