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
graphics-card
cpu
gpu
rendering
MoritzLost
quelle
quelle
Antworten:
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.
quelle