Sony Movie Studio: выжимаю максимум на двухъядернике

для раздела Блоги

Я регулярно снимаю и выкладываю видео на YouTube.
Но между камерой и готовым файлом находится ещё софт для монтажа и рендера видео с ПК, на котором это всё работает.

Рендер-машина

Для работы с видео я использую Sony Movie Studio Platinum 12 — это облегчённый и намного более дешёвый вариант Vegas'а.
И да, он у меня лицензионный, купленный в коробочке. Т.ч. любые комментарии вида «да выкинь и поставь XXXXX» без перечисления денег на покупку указанного софта отправляются прямиком в мусорное ведро.
Версия установлена самая последняя, доступная на сайте Sony (12.0.1183). Версия 13 сильно отличается в худшую сторону интерфейсом — его сделали сильно упрощённым и казуальным, убрав кучу полезных функций и сделав кнопки на пол-экрана.

В моём ПК установлен процессор Intel Core i3-2130 на ядре Sandy Bridge (2 ядра + HT на частоте 3,4 ГГц) со встроенной видеокартой Intel HD Graphics 2000. Также я пробовал устанавливать внешние видеокарты: AMD Radeon HD 5570, nVidia GeForce GTX570, но они не давали преимуществ в рендеринге видео, однако уровень шума и потребления повышали.
Недавно в мои руки попала профессиональная видеокарта nVidia Quadro FX 1800. По сути своей — это заторможенный вариант GeForce 9600, т.е. по современным меркам довольно слабой видеокарты. Однако, чем чёрт не шутит... Я решил попробовать ещё раз помучать настройки софта и выжать максимум из имеющегося железа. Возможно, попутно внедрив Quadro, ведь выяснилось что у неё очень тихая система охлаждения.

К сожалению, софт от Sony довольно хреново написан: не отличается ни стабильностью (навскидку скажу два-три метода, как крашнуть его за минуту), ни скоростью обработки.
По факту в Sony Movie Studio есть три кодера в MPEG-4:
— MainConcept AVC/AAC
— Sony AVC/AAC
— Windows Media Video V11

WMV не умеет использовать ничего, кроме ЦПУ.


MainConcept AVC/AAC предлагает три опции: ЦПУ, с использованием OpenCL, с использованием CUDA (nVidia)

Sony AVC/AAC по сути также даёт три опции: ЦПУ, с использованием ГПУ (OpenCL/CUDA), с использованием Intel QSV


Немного теории

Поясню для тех, кто не в курсе.
По умолчанию любой кодер сжимает видео силами процессора (ЦПУ), используя все доступные ядра (процесс хорошо распараллеливается).
Однако, прогресс не стоит на месте и современные видеокарты получили большие массивы простых исполнительных устройств, откуда появился соблазн применить видеокарты в процессе сжатия видео.
Карты компании nVidia поддерживают собственный стандарт вычислений CUDA. Существует также более универсальный стандарт OpenCL, который поддерживают как платы nVidia, так и AMD.
Но, есть не только универсальные вычислители (ядра процессора или вычислительные блоки в чипе видеокарты), но и специализированные аппаратные блоки, заточенные строго под одну функцию — работу с видео.
Во всех современных видеокартах есть такой блок: он занимается декодированием видео (во время просмотра), но можно его использовать и для обратного процесса — сжатия видео.
У AMD блок носит название VCE (появился с Radeon HD 7700), у nVidia — NVENC (с GeForce 600-й серии), а у Intel — QSV (со встройки в ядра Sandy Bridge).
В имеющемся у меня парке железа не нашлось плат с VCE или NVENC (самое свежее — GTX570 — не имеет блока NVENC). Но в процессоре Core i3-2130 на ядре Sandy Bridge во встроенной видеокарте таки притаился аппаратный блок QSV.
До ковыряний с Quadro я проводил оценочные тесты и выяснил, что GTX570 при помощи CUDA «ускоряет» обработку медленнее, чем аппаратный блок QSV во встроенной видеокарте Intel.

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

Sony Movie Studio позволяет включить ускорение обработки видео при помощи ГПУ, для этого в настройках есть отдельный пункт «GPU acceleration of video processing».
Уточню, что эта обработка не связана с сжатием видео, это разные процессы.
Однако, если в ПК есть только встроенная в процессор видеокарта Intel (HD Graphics 2000 в моём случае), то единственный тут доступный вариант — это «Off». Т.е. вся обработка ложится на ядра процессора.
Если добавить отдельную видеокарту, то она появляется в этом списке (я пробовал Radeon HD 5570, GeForce GTX570, Quadro FX 1800).

Чтобы сделать более-менее адекватные тесты, я сделал проект длительностью ровно 60 секунд с типовыми для меня дорожками, фильтрами, наложениями и обработкой.
Далее этот проект будет рендериться на разных кодерах, с разными настройками и будет сравниваться время рендеринга проекта.

Тесты, этап №1.

Для начала я сравнил доступные кодеки без внешней видеокарты в системе.
Т.е. настройка «GPU acceleration of video processing» жёстко в положении «Off».
Обычно я использую кодер Sony AVC/AAC, т.к. ранее проводил экспресс-тесты и выяснил, что он работает быстрее всех.
Результаты получились такие:
«Automatic (recommended)» — 03:56
«Render using CPU only» — 03:56
«Intel Quick Sync Video (quality)» — 03:26


Выводы.
1. «Автоматика» не работает, хотя и рекомендована: скорость не отличается от рендеринга только на ЦПУ.
2. Рассчитывать на небольшие мощности унифицированных процессоров встроенной видеокарты Intel не приходится: опции «GPU acceleration of video processing» и «Render using GPU if available» не доступны.
3. Блок QSV действительно ускоряет обработку.

Тесты, этап №2.

Далее я установил в качестве видеокарты nVidia Quadro FX 1800, подключил к ней монитор и установил драйвера.
При этом встроенная в процессор видеокарта Intel автоматически отключилась, соответственно исчезла возможность использовать блок QSV.
Первым делом я сравнил, даёт ли что-то отдельный ускоритель и включение опции «GPU acceleration of video processing».
Тот же кодер Sony AVC/AAC, а также ставшая доступной опция «Render using GPU if available», которая задействовала ускорение CUDA.
«GPU acceleration of video processing: Off» — 03:44
«GPU acceleration of video processing: Quadro FX 1800» — 03:32


Выводы.
1. Использование CUDA ускоряет рендеринг...
2. ...но «ускоряет» медленнее, чем блок QSV во встройке (03:26 у QSV, против 03:44 у CUDA).
3. Перенос части обработки видео на ГПУ тоже даёт ускорение, но всё равно недостаточное, чтобы догнать блок QSV (03:32 у CUDA+обработка, против 03:26 у QSV без ускорения обработки).

Тесты, этап №3.

Пока конфигурация не изменилась, я решил проверить все три доступных кодека — может, какой-то другой всё-таки быстрее?
Windows Media Video V11 сжимает только силами ЦПУ.
Для Sony AVC/AAC по-прежнему включено «Render using GPU if available» (рендеринг с использованием CUDA).
Для MainConcept AVC/AAC использовалось «Render using CUDA if available».
Опция «GPU acceleration of video processing» была задействована.
«MainConcept AVC/AAC» — 03:49
«Sony AVC/AAC» — 03:32
«Windows Media Video V11» — 06:59

Выводы.
При максимальном ускорении, доступном для каждого кодера, выиграл (как и ранее) кодер Sony AVC/AAC.

Тесты, этап №4.

И всё же, любой вариант (что встройка со своим QSV, что Quadro с CUDA) даёт слишком незначительное ускорение. Без каких-либо ускорений получается 03:56, а самое быстрое решение — 03:26.
И использование внешней видеокарты не приносит в этом плане никаких плюсов. Пока что...
По тестам выше было ясно, что по-отдельности использование QSV и ускорение при помощи ГПУ даёт прирост. Но проблема в том, что эти ускорения не совмещались: со встройкой Intel недоступно ускорение обработки видео, а с картой nVidia ускорение доступно, но она не настолько эффективно сжимает видео.
Как объединить две видеокарты для работы над рендерингом? Ясно, что для начала нужно сделать так, чтобы обе они были включены.

Я перезагрузил ПК, зашёл в Setup и переключил Intel Graphics (встройка в проц) из положения «Auto» (работает только пока нет отдельной видеокарты) в «Enabled». Монитор по-прежнему был подключён к Quadro.
Загрузил систему, Intel HD Graphics обнаружилась, установилась. Однако, в Sony Movie Studio при попытке использовать опцию «Intel Quick Sync Video» приводило к сообщению об ошибке. Т.е., очевидно, блок QSV не был доступен.
Я вернулся в Setup, выбрал первую инициализируемую видеокарту как «IGPU» (встроенная видеокарта) и переподключил монитор к разъёму встройки. Снова загрузил ОС, обе видеокарты по-прежнему были в диспетчере устройств.
Однако теперь выбор «Intel Quick Sync Video» в настройках кодера не приводил к ошибке.
Итак, последний рывок: нужно перенести обработку видео (наложения, эффекты) на Quadro с её CUDA, а рендер поручить блоку QSV во встройке. По идее это должен был быть получиться самый быстрый вариант.
«GPU acceleration of video processing» установлено в «Quadro FX 1800», а в кодере Sony AVC/AAC выбрано «Intel Quick Sync Video (quality)».
Результат: 02:48


Выводы.
1. Заставить работать связку видеокарт (для совместного использования QSV и CUDA) получилось!
2. Результат получился ощутимым: только на ЦПУ рендер шёл в 3,56 раза медленнее реалтайма, а теперь уже в 2,48 раз. Это значит, что видео длительностью в час будет рендериться не 4 часа, а чуть менее трёх.

Подведение итогов.

Пожалуй, максимум из имеющегося железа и ПО выжат (разгон, несмотря на тематику сайта, тут не рассматриваю). Довольно ощутимое ускорение получено.

Верну ли я в ПК GeForce GTX570, ведь она намного мощнее Quadro FX 1800 и тоже поддерживает CUDA? Нет.
Во-первых, по графикам загрузки ГПУ было видно, что даже FX 1800 не загружается выше 75%.
Во-вторых, ПЕЧ570 слишком горяча и шумна для того, чтобы постоянно пыхтеть в корпусе. Учитывая, что она не даст прироста по сравнению с FX 1800, то нафиг оно нужно?
В-третьих, чтобы был доступен блок Intel QSV нужно, чтобы встроенная видеокарта была первичной. Т.е. поиграть толком ни с Quadro FX 1800, ни с GeForce GTX570 не получится — основной останется Intel HD Graphics.

Единственное, что можно сделать, чтобы улучшить ситуацию — это проапгрейдить процессор. Оптимально — топовый для LGA1155 Core i7 — 3770. Это на 100 МГц больше частота, больше кэша L3 и 4 ядра (8 потоков) против 2-х ядер (4-х потоков) сейчас. А также более быстрое ядро Ivy Bridge. Попутно ускорится ОЗУ, т.к. будет доступен режим DDR3-1600. Ведь планки у меня рассчитаны на 1600, однако Core i3-2130 понимает максимум DDR3-1333.
Но это уже совсем другие деньги и совсем другая история...

P.S.
Подробности про nVidia Quadro FX 1800.
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают