ページ 11

DXライブラリのメモリへの読み込みについて

Posted: 2017年7月04日(火) 18:07
by BP
こんばんは。
疑問に思ったことが合ったので質問させていただきます。
ゲームの起動時に、使用する音声データを全てLoadSoundMemを使いメモリに読み込んでいるのですが、タスクマネージャーを見ると音声データの容量に対して実際にタスクマネージャーで確認できるメモリの使用量には約2倍の差がありました。

これは内部でどのような処理が行われているため発生しているのでしょうか?

環境はWindows10,visualC#でDxLibDotNetを使用しています。

Re: DXライブラリのメモリへの読み込みについて

Posted: 2017年7月06日(木) 22:32
by Dixq (管理人)
ロードした音声ファイルフォーマットは何ですか?
デコードしてメモリ上に展開したデータフォーマットと容量が異なれば元データとのサイズも異なります。
例えばBitmapを展開する時も中身がRGB565のBitmapでもメモリ上にARGB8888で展開すれば容量は2倍になります。
もし詳細な展開されたメモリ上のデータフォーマットまで知りたければDXライブラリの掲示板で聞いた方が良いかと思います。

Re: DXライブラリのメモリへの読み込みについて

Posted: 2017年7月07日(金) 00:13
by BP
主にmp3を読み込んでいました

なんとなく使用メモリが増えた理由がわかってきました……!
少し自分で調べ直し、それでもわからなければ本家の掲示板で再度質問してみようと思います。
ありがとうございました。

Re: DXライブラリのメモリへの読み込みについて

Posted: 2017年7月07日(金) 00:17
by Dixq (管理人)
mp3なら圧縮されているので、もし全て展開したら2倍どころの話じゃないはずです。
今2倍で済んでいるのはリアルタイムデコードの設定になっているからだと思います。
DXライブラリは音楽ファイルのメモリ取り込みの形式に3種類選択できます。
必要最小限のデータだけ展開して後はリアルタイムにデコードしながら再生するようになっているので2倍で済んでいる物と思います。
展開後のデータフォーマットについては詳しく知りませんが、容量的には.mp3を.wavに変換した時のWavファイルの方が近いと思います。