Warum werden Videos von der CPU anstelle der GPU gerendert?


8

Nun weiß ich , diese Macht klingt wie eine ziemlich dumme Frage, aber ich konnte keine Antwort mit Google, so yeah ... finde
Also, ich weiß , es gibt Techniken wie OpenCL und CUDA, aber warum wird standardmäßig der Prozessor verwendet zB eine Videodatei aus einer Videobearbeitungssoftware rendern? Scheint mir nicht eingängig , dass die Grafikverarbeitungseinheit nicht zu verarbeiten, gut verwendet wird, Grafiken. Wenn Sie ein Videospiel spielen, ist die GPU dafür verantwortlich, das Bild auch auf meinem Bildschirm zu produzieren, nicht wahr?

Ich weiß wieder, dass das für dich vielleicht dumm klingt. Bitte sei sanft ° A °

Bearbeiten: Ich habe speziell über die Videoausgabe einer NLE-Software wie Premiere Pro gesprochen


3
Die meisten Online-Videos werden komprimiert, sodass die eigentliche Arbeit darin besteht, die Datei zu dekomprimieren. Dies ist eine allgemeine Operation, die von der CPU ausgeführt wird. GPUs sind wahrscheinlich sehr gut darin, die Komprimierung / Dekomprimierung von Dateien zu handhaben, wenn die Bibliotheken dies unterstützen, aber im Allgemeinen werden sie für bestimmte Aufrufe zum Zeichnen von Elementen auf dem Bildschirm genutzt, nicht für allgemeine Berechnungen. Spiele nutzen den Vorteil, dass sie alle dynamisch sind, sodass sie die GPU wirklich nutzen - Video wird nicht im laufenden Betrieb generiert - es ist dieses Farbpixel an dieser Koordinate vordefiniert, daher sind GPUs dafür nicht nützlich.
ernie

Sprechen Sie speziell über Videobearbeitungssoftware, die eine Videodatei rendert? Wenn nicht, können Sie bitte einige andere Beispiele anbieten? Wie viel GPU ein Video-Editor beim Rendern verwendet, hängt immens vom verwendeten Rendering-Softwarepaket ab. Wie es ist, ist dies zu weit gefasst (IMO).
Ƭᴇcʜιᴇ007

Ja, ich habe darüber gesprochen. Entschuldigung, wenn das unklar war.
MoritzLost

Bearbeiten Sie dann Ihre Frage, um das spezifische Problem zu ermitteln, mit dem Sie konfrontiert sind, und geben Sie die Software an, die Sie ausprobiert haben, welches Betriebssystem und was Sie versucht haben, es zu beheben. Stellen Sie dann eine bestimmte Frage zu diesem bestimmten Problem. Auch hier wie besehen ist dies nur allzu breit, wie viele Video - Rendering - Pakete können die GPU nutzen, wenn sie richtig konfiguriert ist. Dann können wir Ihnen vielleicht helfen, herauszufinden, warum Ihre nicht ist. :)
Ƭᴇcʜιᴇ007

Antworten:


14

Bevor es um HD ging, konnten CPUs problemlos mit der Videodekodierung umgehen. Als HD vor ungefähr 8 Jahren populär wurde, begannen GPU-Hersteller, beschleunigte Videodecodierung in ihre Chips zu implementieren. Sie könnten leicht Grafikkarten finden, die als Unterstützung für HD-Videos und einige andere Slogans vermarktet werden. Heutzutage unterstützt jede GPU beschleunigtes Video, sogar integrierte GPUs wie Intel HD Graphics oder deren Vorgänger Intel GMA. Ohne diesen Zusatz würde es Ihrer CPU schwer fallen, 1080p-Videos mit akzeptabler Framerate zu verarbeiten, ganz zu schweigen von einem erhöhten Energieverbrauch. Sie verwenden also bereits jeden Tag beschleunigtes Video.

Wenn GPUs jetzt immer allgemeiner Rechenleistung nutzen, werden sie häufig auch zur Beschleunigung der Videoverarbeitung eingesetzt. Dieser Trend begann ungefähr zur gleichen Zeit, als die beschleunigte Dekodierung eingeführt wurde. Programme wie Badaboom wurden immer beliebter, da sich herausstellte, dass GPUs Videos viel besser (neu) codieren können als CPUs. Dies war jedoch vorher nicht möglich, da GPUs keine allgemeinen Rechenfähigkeiten hatten.

GPUs konnten Bilder jedoch bereits seit dem Mittelalter skalieren, drehen und transformieren. Warum konnten wir diese Funktionen nicht für die Videoverarbeitung verwenden? Nun, diese Funktionen wurden nie implementiert, um auf diese Weise verwendet zu werden, daher waren sie aus verschiedenen Gründen nicht optimal.

Wenn Sie ein Spiel programmieren, laden Sie zuerst alle Grafiken, Effekte usw. auf die GPU hoch und rendern dann einfach Polygone und ordnen ihnen entsprechende Objekte zu. Sie müssen Texturen nicht jedes Mal senden, wenn sie benötigt werden. Sie können sie laden und wiederverwenden. Wenn es um die Videoverarbeitung geht, müssen Sie der GPU ständig Frames zuführen, verarbeiten und zurückholen, um sie auf der CPU neu zu codieren (denken Sie daran, wir sprechen von Zeiten vor der Berechnung der GPU). So sollten GPUs nicht funktionieren, daher war die Leistung nicht besonders gut.

Eine andere Sache ist, dass GPUs bei Bildtransformationen nicht qualitätsorientiert sind. Wenn Sie ein Spiel mit mehr als 40 fps spielen, werden Sie keine leichten Pixel-Falschdarstellungen bemerken. Selbst wenn Sie möchten, waren die Spielgrafiken nicht detailliert genug, damit sich die Leute darum kümmern konnten. Es gibt verschiedene Hacks und Tricks, um das Rendern zu beschleunigen, die die Qualität leicht beeinträchtigen können. Videos werden auch mit relativ hohen Frameraten abgespielt, sodass eine dynamische Skalierung bei der Wiedergabe akzeptabel ist. Eine Neukodierung oder Wiedergabe muss jedoch zu angemessenen Kosten pixelgenaue oder zumindest möglichst nahe Ergebnisse liefern. Sie können dies nicht erreichen, ohne die richtigen Funktionen, die direkt in der GPU implementiert sind.

Heutzutage ist die Verwendung von GPUs zur Verarbeitung von Videos weit verbreitet, da wir Technologie benötigt haben. Warum dies nicht die Standardauswahl ist, ist eher eine Frage an den Herausgeber des Programms, nicht an uns - es ist ihre Wahl. Vielleicht glauben sie, dass ihre Kunden Hardware haben, die auf die Verarbeitung von Videos auf der CPU ausgerichtet ist. Ein Wechsel zur GPU wirkt sich also negativ auf die Leistung aus, aber das ist nur meine Vermutung. Eine andere Möglichkeit besteht darin, dass sie das GPU-Rendering immer noch als experimentelle Funktion behandeln, die noch nicht stabil genug ist, um es als Standard festzulegen. Sie möchten keine Stunden damit verschwenden, Ihr Video zu rendern, nur um festzustellen, dass aufgrund des GPU-Rendering-Fehlers etwas schief gelaufen ist. Wenn Sie sich trotzdem für die Verwendung entscheiden, können Sie dem Softwarehersteller keine Vorwürfe machen - es war Ihre Entscheidung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.