Почему видео отображается процессором, а не графическим процессором?

8

Ну, я знаю, что это может звучать довольно глупо, но я не смог найти ответ с помощью Google, так что да ...
Итак, я знаю, что есть методы, такие как OpenCL и CUDA, но почему, по умолчанию, используется процессор рендерить, например, видео файл из программного обеспечения для редактирования видео? Мне кажется нелогичным, что графический процессор не используется для обработки графики. Играя в видеоигры, графический процессор отвечает за создание изображения на моем экране, не так ли?

Опять же, я знаю, что это может звучать глупо для вас. Пожалуйста, будьте осторожны ° A °

Изменить: я говорил конкретно о видеовыходах программного обеспечения NLE, как Premiere Pro

MoritzLost
источник
3
Большинство онлайн-видео сжимается, поэтому настоящая работа заключается в распаковке файла, что является обычной операцией, выполняемой процессором. Скорее всего, графические процессоры будут очень хорошо справляться со сжатием / распаковкой файлов, если библиотеки поддерживают это, но обычно они используются для конкретных вызовов для рисования элементов на экране, а не для общих вычислений. Игры используют преимущества, поскольку все они динамичны, поэтому они действительно используют графический процессор - видео не генерируется на лету - он предопределен этим цветным пикселем по этой координате, поэтому графические процессоры для этого не нужны.
Эрни
Вы говорите конкретно о программном обеспечении для редактирования видео рендеринга видео файла? Если нет, не могли бы вы предложить другие примеры? Сколько графического процессора использует видеоредактор во время рендеринга, очень сильно зависит от используемого программного пакета рендеринга. Как-то это слишком широко (ИМО).
Ƭᴇcʜιᴇ007
Да, я говорил об этом. Извините, если это было неясно.
MoritzLost
Затем отредактируйте свой вопрос, чтобы он касался конкретной проблемы, с которой вы столкнулись, включая программное обеспечение, которое вы пробовали, какую ОС и что вы пытались исправить. Затем задайте конкретный вопрос об этой конкретной проблеме. Опять же, как-то это слишком широко, так как многие пакеты рендеринга видео могут использовать графический процессор, если они настроены правильно. Тогда мы сможем помочь вам понять, почему у вас нет. :)
Ƭᴇcʜιᴇ007

Ответы:

14

До появления HD процессоры могли легко справляться с декодированием видео. Когда 8 лет назад HD стал популярным, производители графических процессоров начали внедрять ускоренное декодирование видео в своих чипах. Вы можете легко найти видеокарты, которые продаются как поддерживающие HD видео и некоторые другие лозунги. Сегодня любой графический процессор поддерживает ускоренное видео, даже интегрированные графические процессоры, такие как Intel HD Graphics или их предшественники Intel GMA. Без этого вашему процессору будет трудно переваривать видео 1080p с приемлемой частотой кадров, не говоря уже о повышенном энергопотреблении. Таким образом, вы уже используете ускоренное видео каждый день.

Теперь, когда графические процессоры все более широко используют вычислительную мощность, они также широко используются для ускорения обработки видео. Эта тенденция началась примерно в то же время, когда было введено ускоренное декодирование. Такие программы, как Badaboom, стали набирать популярность, поскольку оказалось, что графические процессоры гораздо лучше (ре) кодируют видео, чем процессоры. Однако этого нельзя было сделать раньше, потому что графическим процессорам не хватало общих вычислительных возможностей.

Но графические процессоры уже могли масштабировать, вращать и преобразовывать изображения со средних лет, так почему же мы не смогли использовать эти функции для обработки видео? Ну, эти функции никогда не были реализованы для использования таким образом, поэтому они были неоптимальными по разным причинам.

Когда вы программируете игру, вы сначала загружаете всю графику, эффекты и т. Д. В графический процессор, а затем просто визуализируете полигоны и сопоставляете им соответствующие объекты. Вам не нужно отправлять текстуры каждый раз, когда они необходимы, вы можете загрузить их и использовать их повторно. Когда дело доходит до обработки видео, вы должны постоянно передавать кадры в GPU, обрабатывать их и извлекать их обратно, чтобы перекодировать их на CPU (помните, мы говорим о времени до вычисления на GPU). Это было не то, как должны работать графические процессоры, поэтому производительность не была отличной.

Другое дело, что графические процессоры не ориентированы на качество при преобразовании изображений. Когда вы играете в игру со скоростью 40+ кадров в секунду, вы не заметите небольшое искажение пикселей. Даже если бы вы, игровая графика была недостаточно детализированной, чтобы люди могли о ней заботиться. Существуют различные приемы и приемы, используемые для ускорения рендеринга, которые могут немного повлиять на качество. Видео также воспроизводятся с довольно высокой частотой кадров, поэтому динамическое масштабирование их при воспроизведении приемлемо, но перекодирование или рендеринг должны давать результаты с идеальным качеством пикселей или, по крайней мере, как можно ближе к ним при разумных затратах. Этого нельзя добиться без надлежащих функций, реализованных непосредственно в графическом процессоре.

В настоящее время использование графических процессоров для обработки видео является довольно распространенным явлением, потому что нам нужна технология на месте. Почему это не выбор по умолчанию, это скорее вопрос к издателю программы, а не к нам - это их выбор. Возможно, они считают, что их клиенты ориентированы на аппаратное обеспечение для обработки видео на процессоре, поэтому переключение на графический процессор отрицательно скажется на производительности, но это только мое предположение. Другая возможность заключается в том, что они по-прежнему рассматривают рендеринг с помощью графического процессора как экспериментальную функцию, которая недостаточно стабильна, чтобы установить ее по умолчанию. Вы не хотите тратить часы на рендеринг своего видео, просто чтобы понять, что что-то испорчено из-за ошибки рендеринга на GPU. Если вы все равно решите использовать его, то вы не сможете обвинить издателя программного обеспечения - это было ваше решение.

gronostaj
источник