web-dev-qa-db-ja.com

デコード中にCPU / GPUの負荷を最小限に抑えるビデオコーデックはどれですか?

スクリーンセーバーとして使用するために所有しているビデオをトランスコードすることに興味があります。サイズは問題ではありませんが、ビデオのデコードに関しては、プロセッサとビデオカードにできるだけ負担をかけたくありません。

私の最良の選択肢は何ですか?

問題のシステムは、10GB RAMおよびIntelHD Graphics4000とNVIDIAGeForce 620Mの選択を備えたデュアルコア2.4GHz i7でWindowsを実行しますが、一般的な答えに興味があります。他のOSとハードウェアの選択肢もあります。さまざまな古いコンピューターから選択できます。

6
oKtosiTe

複雑さの主な要素は、コーデック標準自体です。 Stefan Seidelがすでに述べたように、MPEG-1はおそらくエンコードとデコードが最も簡単です。 MPEG-2も比較的扱いやすいはずです。しかし、まともな品質が必要な場合、ビデオは巨大になります。

MPEG-4とH.264は、ここで少し複雑になります。ここで最も重要な(そして広く使用されている)機能の1つは、 Bフレーム です。ここで、ビデオのフレームは、前に表示された、または後で表示される可能性のある複数のフレームに依存する可能性があります。つまり、より多くの計算が必要であり、より多くのメモリが必要であり、より多くのディスクアクセスが必要です。

したがって、ビデオをエンコードする場合は、必ずB画像を無効にしてください。 H.264では、これは ベースラインプロファイル に固執することで実現できます(例:FFmpegで-profile:v baseline)。ベースラインプロファイルは、処理能力の低い高速なエンコードおよび再生デバイス(携帯電話など)をサポートするために含まれています。

いずれの場合も、結果はオペレーティングシステムがデコードタスクを委任する方法によって異なります。 CPUを使用しているだけの場合は、「単純な」コーデックに固執します。 GPUを使用している場合は、H.264を使用しても問題ありません。

VLCなどの特定のプレーヤーはビデオのデコードにGPUを使用する場合がありますが、これは保証されておらず、OSとグラフィックカードに大きく依存します。異なるコーデックでいくつかのテストを行うことをお勧めします。専用のプレーヤーではなくスクリーンセーバーを使用しているという事実も、結果を大きく変える可能性があるため、たとえば、でのテストに依存しないでください。 VLC。

10
slhck

CPU負荷の観点から、そしてこれについて多くの研究をしなくても、MPEG1はおそらく良い選択だと思います。ただし、ハードウェアがMPEG2、MPEG4、h264、または同様のコーデックをハードウェアでデコードできる場合は、これを使用することをお勧めします。グラフィックチップはこれらを再生するために高度に最適化されており、消費電力が非常に少なく、CPUはほとんどの状態を維持できます。このタスク中はアイドル状態です。

3
Stefan Seidel