2009年3月14日土曜日

マルチスレッド対応 lameフロントエンド (もどき) v2.0a

※追記 09.07.26
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/


ここより下の情報は古いです…(´・ω・`)スマソ




マルチスレッド対応 lameフロントエンド (もどき) v1.8aに大幅な改良を加え、v1.9aをすっ飛ばしv2.0aにしてみた。

今回は、ディレクトリ選択操作の効率化と、扱えるスレッド数の増量…といったことをメインの目標として、作りなおしてみた。
今回の改変で、同時実行可能スレッド数が一気に16スレッドに。
これで、6コア12スレッドのCPUでも100%使うことができる。
…これで当分は拡張しなくても大丈夫…だよな…

UltraSPARCのデュアルプロセッサ、とかは…(´・ω・`)知らんがな


どういう処理をするのか、などの解説はこちら


特徴

  • lameのエンコード処理を並列して行うことができ、Corei7・Phenomなどのマルチコア・マルチスレッドCPUや、デュアルプロセッサ環境も有効に使える。
  • ディレクトリごとに一気にエンコードが可能。
  • 一度設定するだけで2回目以降の設定は不要。
  • wav→mp3変換とmp3→mp3変換に対応。
  • Rubyがインストールしてあれば、Windows、Unix、Linux、MacOSXなどの、どんなOSでも使用することができる。
  • Windowsの場合は、Rubyが無くても動く。
  • Cygwinなどは必要ない。
  • プロセスを多重起動しているだけなので、音質に影響するということがない。
  • 大量のファイルを登録しても、登録エラーなどが発生しない(ハズ)
  • エンコードのログを残せる。
  • エンコードにかかった時間を計測できるようにしたので、ファイルやlameバイナリを統一すれば、mp3エンコードのベンチマークとして使える…かもしれない。

今回の変更・更新

  • 最大16スレッドまで対応。
  • ディレクトリ選択操作を大幅改良。
  • 端末の大きさを自動取得し、それに合わせて表示するようにした。
  • 設定の個別変更を可能にした。
  • ログファイルを$HOME/.mtlamef/に出力するようにした。
    (Windowsの場合は%HOMEDRIVE%%HOMEPATH%/.mtlamef/)
  • だいぶ長くなってきたので、関数をライブラリとしてまとめた。

解決していない問題

  • mp3ファイルの再エンコードが終わってからでないとwavファイルのエンコードが開始できない。
  • ディレクトリごとにしかエンコードできない(ファイルを個別にエンコードすることはできない)
  • CUIである。
  • 一時ファイルなどの出力先の問題。
    (OSごとに環境変数が違うので厄介)
  • aiff形式に対応していない。
  • バグが取りきれていない可能性が…(´;ω;`)ウッ…

必ず必要なもの




プログラムのダウンロードは以下から。

旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/


バグあったら報告してもらえると、非常に助かります…(´・ω・`)必ずバグがあると思うので…


せっかく16スレッドに対応したので、試しにやってみた。
mtlamef 16thread
Phenomx4タン(´・ω・)カワイソス…
そしてタスクマネージャーが凄いことに…

ようやく普通のコンソールアプリ位に使えるレベルになってきた…かもしれない…'`,、('∀`) '`,、

0 件のコメント: