ページングファイルを少なくするには?


Kajio  2004-02-21 08:08:19  No: 7263

はじめまして。
Delphi7にて画像処理ソフトを作成しているのですが、
扱っている画像が医用画像(CTなど)で1つのファイル容量が約100MB
ほどあります。8×512×512×512のinteger型の3次元配列を
使用しており、実行時のページングファイルが1GB弱にもなってしまいます。
これでは非力なPCではソフトが起動できない可能性があるのでなんとかページングファイルを減らしたいのですが、どのようにすればよいのか
分かりません。どなたかうまいやり方がありましたらよろしくお願いいたします。


たかみちえ  URL  2004-02-21 22:08:51  No: 7264

自分でテンポラリファイルを作って、そこに一定の区切りをつけてかきこむとか。
今回は区切りが明確なので、ある意味やりやすいかもしれません。


jok  2004-02-22 08:26:34  No: 7265

>扱っている画像が医用画像(CTなど)で1つのファイル容量が約100MB
>ほどあります。8×512×512×512のinteger型の3次元配列を
>使用しており、実行時のページングファイルが1GB弱にもなってしまいます。

うーむ、ファイルの容量が100MBなのに、なぜ、配列に読み込むと10倍になるのか
分かりません。

> 8×512×512×512のinteger型の3次元配列

最初の8の意味はなんですか? また、integer = 4バイトの配列が本当に必要
ですか?


Mr.XRAY  URL  2004-02-22 09:33:08  No: 7266

>最初の8の意味はなんですか? また、integer = 4バイトの配列が本当に必要
>ですか?

最初の8はビットですね.最近の医用画像は2バイト使用するものがあるので,ちょっと違うような気もしますが,実験用のデータかも知れません.
最近は医用画像処理からはなれていますが,100MBというのはあまり
聞いたことがないんですが...
何か特殊な研究用かも...

また,3次元の処理ですが,処理の内容にもよりますが,オンメモリでなく
ても可能な場合があります(つまり一度に全部のデータを同時に使う処理で
ないこともある).


Mr.XRAY  URL  2004-02-22 09:55:50  No: 7267

参考までに,胸部のCR(コンピュータ画像)でも大きくても4MBです.
胸部は放射線画像の中でも情報量(情報工学でいう情報量ではなく,
データ数が多いという意味で)が多い方です.
X線CTやMRIの画像の1枚分はそれよりも少ないハズです.

でも質問は  ページングファイルを少なくするには?
ということですので,直接関係はないと思いますが.


jok  2004-02-22 12:23:12  No: 7268

>最初の8はビットですね.

それなら integer の配列使うのは無駄にメモリを消費するだけで byte の配列にする
と1/4になりますね。処理用のPCだけメモリを1GBくらい積めば、ページフォールト
は起こらないのでは?


通りすがり  2004-02-22 17:18:43  No: 7269

CTのスライス(?)画像が複数枚一括で入ったDICOMデータのような気がします。
本筋と離れてしまいました。。。失礼しました。


kajio  2004-02-23 03:10:39  No: 7270

お返事ありがとうございます。
通りすがりさんのおっしゃる通り、1スライス512×512画素の2byteデータ
の画像が複数枚(最大512枚を想定)入ったDICOMデータを使用しております。また、研究等でも使用するため、4byteのデータも扱えるようにinteger型の配列も使用しています。最初の8×というのはボリュームレンダリングをさせるための配列等を考慮すると、3次元配列が8つ必要になってくるのです。
jokさんのおっしゃるように一度byet型に変換してやってみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加