web-dev-qa-db-ja.com

ビデオがGPUではなくCPUによってレンダリングされるのはなぜですか?

まあ私はこれを知っているかもしれないはかなり愚かな質問のように聞こえるかもしれませんが、Googleを使用して答えを見つけることができなかったので、そうです...
だから、OpenCLやCUDAのようなテクニックがあることは知っていますが、なぜデフォルトで、たとえばビデオ編集ソフトウェアからのビデオファイル? Graphics処理ユニットは、グラフィックスの処理には使用されていないように思えます。ビデオゲームをプレイするとき、GPUは画面上での画像の生成も担当しますね。

繰り返しますが、これはあなたには愚かに聞こえるかもしれません。優しくしてください°A°

編集:Premiere ProなどのNLEソフトウェアのビデオ出力について具体的に話していました

8
MoritzLost

HDが登場する以前は、CPUはビデオのデコードを簡単に処理できました。 8年ほど前にHDが普及したとき、GPUメーカーはチップに高速ビデオデコードを実装し始めました。 HDビデオやその他のスローガンをサポートするものとして販売されているグラフィックスカードを簡単に見つけることができます。今日、どのGPUも、高速ビデオをサポートしており、Intel HD Graphicsやその前身であるIntel GMAなどの統合GPUもサポートしています。これを追加しないと、CPUは1080pビデオを許容可能なフレームレートで消化するのに苦労するでしょう。言うまでもなく、エネルギー消費が増加します。つまり、すでに加速ビデオを毎日使用しています。

GPUの計算能力がますます一般的になると、ビデオ処理の高速化にも広く使用されます。この傾向は、加速デコードが導入されたのと同じ頃に始まりました。 Badaboomのようなプログラムは、GPUがCPUよりもビデオの(再)エンコーディングに優れていることが判明したため、人気が高まり始めました。ただし、GPUには一般的な計算機能がなかったため、これを行うことはできませんでした。

しかし、GPUは中世以降すでに画像のスケーリング、回転、変換を行うことができたので、なぜこれらの機能をビデオ処理に使用できなかったのでしょうか。まあ、これらの機能はそのような方法で使用するために実装されたことはないので、さまざまな理由で最適ではありませんでした。

ゲームをプログラミングするときは、最初にすべてのグラフィックスやエフェクトなどをGPUにアップロードし、次にポリゴンをレンダリングして適切なオブジェクトをそれらにマッピングします。必要になるたびにテクスチャを送信する必要はありません。テクスチャをロードして再利用できます。ビデオ処理に関しては、常にフレームをGPUにフィードし、フレームを処理してフェッチし、CPUで再エンコードする必要があります(ここでは、計算前のGPU時間について話しています)。これはGPUが機能するはずの方法ではなかったため、パフォーマンスはあまりよくありませんでした。

もう1つは、GPUは画像変換に関して品質志向ではないということです。 40+ fpsでゲームをプレイしているときは、ピクセルのわずかな表現に気付くことはありません。たとえそうであっても、ゲームのグラフィックスは人々が気にするほど詳細ではありませんでした。レンダリングを高速化するために使用されるさまざまなハックやトリックがあり、品質にわずかに影響する可能性があります。ビデオもかなり高いフレームレートで再生されるため、再生時に動的にスケーリングすることは許容されますが、再エンコードまたはレンダリングは、ピクセルパーフェクトまたは少なくとも可能な限り妥当なコストで結果を生成する必要があります。 GPUに直接実装された適切な機能がなければ、それを実現することはできません。

今日では、GPUを使用してビデオを処理することは非常に一般的です。なぜなら、私たちには適切なテクノロジーが必要だからです。なぜそれがデフォルトの選択ではないのかは、むしろ私たちではなくプログラムの発行者への質問です-それは彼らの選択です。多分彼らは彼らのクライアントがCPUでビデオを処理するためのハードウェア指向であると信じているので、GPUへの切り替えはパフォーマンスに悪影響を及ぼしますが、それは私の推測です。別の可能性として、GPUレンダリングをまだデフォルトとして設定するのに十分安定していない実験的な機能として扱っている可能性があります。 GPUレンダリングのバグが原因で何かが台無しになっていることに気付くためだけに、ビデオのレンダリングに何時間も費やしたくない場合。とにかくそれを使用することを決定した場合、ソフトウェア発行元を責めることはできません-それはあなたの決定でした。

14
gronostaj