• 締切済み

エンコーダのCPU使用率が25%

パソコンに詳しいかたに質問です。 私はよく借りてきたCD等をPCに取り込んだりするですが、その時にエンコーダのCPUの使用率が25%くいます。 これは仕様なのでしょうか? とりあえず確認しているだけで ・Windows MediaPlayerでCDをmp3エンコード ・LameMP3 エンコーダでのエンコード ・MP3 Gain(音量調節)でのエンコード よく使うのは、LameエンコーダとMP3 Gainです。 CPU:Core2 Quad Q6600 OS:Windows XP Pro SP3 Coreまるまる1個使ってエンコードをしているのではないのでマルチスレッド?と思っていいのでしょうか? 1回Lameエンコーダを新しい物に入れ替えたときに解消して5%程度しかくわなかったことがあるのですが、今新しい物にしても何も変わりません。

みんなの回答

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

ごく一般的な動作(仕様)だと思います。 Core2Quad≒最大4系統の処理が同時に走る、と理解してもらえれば、 25%になるということは、そのうちの1つをほぼ100%使っているということです。(なので、全体からみれば25%) > Coreまるまる1個使ってエンコードをしているのではないので > マルチスレッド?と思っていいのでしょうか? むしろ、動作的にはシングルにみえます。(だからこそ25%にしかならない) そして、「ソースが単一」で「処理が間に合っている」限り、通常は単一のエンコードを並列処理する利点もあまりありませんし、 (むしろ並列処理間で同期を取る方が無駄かも…) ストリーム再生などのリアルタイムエンコーディング(順次直列処理)だとシングルの方がシンプルで素直なので、そういう仕様なんだと思います。  つまり、1曲(シーケンシャルなデータ)を同時に別々にエンコードするのは効率が悪いと考えられます(理由は↑)。  なら、同時に2曲以上(トラック別)にエンコードすればどうか、という考えはありますが、  「CDという機器からの読み出し」は同時にできませんので(レンズはひとつで単一の円盤が回転しますね>CD)  これも必ずしも効率がよいとはかぎりませんし(読み出し待ちをするなら1人でも2人でも大差ないかも) CPU使用率というのは、つまりCPUがどれだけ仕事をしてるか、です。 (CPUがシングルコアだった頃は特に)CPU使用率を下げて閑古鳥を鳴かせていれば他への反応がよくなるとか、 永いこと過労状態に置くのはあまりよくない(耐用年数やバッテリ消耗なども含め)、などの話は確かにありますが、 エンコードという比較的「重い」処理をやっている最中にCPU使用率が上がるのは一般に正常ですし、 それで即座に悪いということではありません。 昨今のPC用OSでは、単一のアプリが長い時間を占有しようとしても、 他のアプリも割り込んで最低限動作できるようになってますし、 特に、1系統が100%使われていても、全体としては25%でしかないわけで、 他の動作にはあまり影響しないでしょう。(残り3っつも残ってます) 既にあるように、5%しか仕事してない方が、何かあったかのかもしれません。 # おそらく外部入力待ち等でしょうか…。 外部同期等を考慮せずに単純に同じ仕事量として考えると、 例えばプログラムにSleep等で「サボる」時間を入れればCPU使用率は下げられますが、 それだけエンコード完了が遅くなることを意味します。こういうエンコーダがご希望ですか?

回答No.1

エンコードは結構CPUパワーを必要とします。 逆に考えればCPUの使用率が高い方がちゃんと仕事をしていることになります。 私の経験から言えば5%の時の方がおかしな感じがします。 現在はCore2Quadをご使用とのことですから1つのコアが100%ぐらい利用されているのでトータルで25%なのだと思います。タスクマネージャーを見れば大体わかります。 すべてのコアをフルに利用しているわけではないと思います。それはプログラムの作り次第ですが、mp3にエンコードする程度なら最近のCPUの性能を考えるとマルチコアに対応する必要は無いと思います。 仮にLameなりがマルチコアに対応したらエンコードはもっと早く終わるかもしれませんが。

rubys
質問者

お礼

お早い回答ありがとうございます。 やっぱりそうなんですね。 ffmpegでも同じように25%になってしまいますが。これは正常ということですか・・・・。