Чому відео відтворюються процесором замість gpu?


8

Ну, я знаю, це може здатися досить дурним питанням, але я не зміг знайти відповідь за допомогою google, так, так ...
Так, я знаю, що існують такі методи, як OpenCL та CUDA, але чому, за замовчуванням, використовується процесор надавати, наприклад, відеофайл із програмного забезпечення для редагування відео? Мені здається, що протиінтуїтивним є те, що блок обробки графіки не використовується для обробки графіки. Граючи у відеоігри, GPU також відповідає за створення зображення на моєму екрані, чи не так?

Знову ж таки, я знаю, що це може здатися вам дурним. Будьте ласкаві ° A °

Редагувати: Я конкретно говорив про відеовипуск програмного забезпечення NLE, як Premiere Pro


3
Більшість відео в Інтернеті стискаються, тому справжньою роботою є декомпресія файлу, що є загальною операцією, якою керує процесор. Графічні процесори, ймовірно, дуже добре справляються зі стисненням / декомпресією файлів, якщо бібліотеки його підтримують, але, як правило, вони користуються певними викликами для малювання елементів на екрані, а не для загальних обчислень. Ігри користуються перевагою, оскільки всі вони динамічні, тому вони дійсно використовують графічний процесор - відео не генерується з льоту - це заздалегідь визначено цей кольоровий піксель за цією координатою, тому графічні процесори для цього не корисні.
ernie

Ви конкретно говорите про програмне забезпечення для редагування відео, що надає відеофайл? Якщо ні, то можете запропонувати ще кілька прикладів? Скільки GPU використовує відеоредактор під час візуалізації, дуже залежить від використовуваного пакету програм візуалізації. Оскільки це занадто широко (ІМО).
Ƭᴇcʜιᴇ007

Так, я говорив про це. Вибачте, якщо це було незрозуміло.
МоріцЛост

Потім відредагуйте своє запитання щодо конкретної проблеми, з якою ви стикаєтеся, включіть програмне забезпечення, яке ви намагалися, яку ОС та що ви намагалися виправити. Потім задайте конкретне запитання щодо цієї конкретної проблеми. Знову ж таки, як - це просто занадто широко, тому що багато пакетів для візуалізації відео можуть використовувати GPU, якщо вони налаштовані належним чином. Тоді ми можемо допомогти вам зрозуміти, чому ваша ні. :)
Ƭᴇcʜιᴇ007

Відповіді:


14

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

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

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

Програмуючи гру, ви спочатку завантажуєте всі графічні зображення, ефекти тощо в GPU, а потім просто виводите багатокутники і наносите на них відповідні об'єкти. Вам не доведеться надсилати текстури кожен раз, коли вони знадобляться, ви можете завантажити їх і повторно використовувати. Якщо мова йде про обробку відео, вам доведеться постійно подавати кадри в GPU, обробляти їх і повертати їх назад, щоб перекодувати їх на процесорі (пам'ятайте, ми говоримо про час, який раніше був обчислений GPU). Це не так, як повинні були працювати GPU, тому продуктивність була не великою.

Інша справа - графічні процесори не орієнтовані на якість, що стосується перетворень зображень. Коли ви граєте в гру на 40+ кадрів в секунду, ви дійсно не помітите невеликих викривлень пікселів. Навіть якщо б ви хотіли, ігрова графіка не була достатньо детальною для того, щоб люди могли турбуватися. Існують різні хакі та хитрощі, які застосовуються для пришвидшення візуалізації, які можуть трохи вплинути на якість. Відео також відтворюється на досить високих частотах кадрів, тому динамічне масштабування їх при відтворенні є прийнятним, але перекодування або рендерінг має створити результати, які є ідеальними для пікселів або, принаймні, максимально близькими за розумну ціну. Це неможливо досягти без належних функцій, реалізованих безпосередньо в GPU.

В даний час використання графічних процесорів для обробки відео є досить поширеним, оскільки нам потрібна технологія. Чому це не вибір за замовчуванням, це скоріше питання до видавця програми, а не до нас - це їх вибір. Можливо, вони вважають, що їхні клієнти орієнтовані на апаратну обробку відео на процесорі, тому перехід на GPU негативно вплине на продуктивність, але це лише моя здогадка. Інша можливість полягає в тому, що вони все ще розглядають візуалізацію GPU як експериментальну функцію, яка недостатньо стабільна, щоб встановити її як стандартну. Ви не хочете витрачати години на відеозапис лише для того, щоб зрозуміти, що щось накручено через помилку відтворення GPU. Якщо ви все-таки вирішите його використовувати, то ви не можете звинувачувати видавця програмного забезпечення - це було ваше рішення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.