Конвертуємо відео в 10 разів швидше
Ми дивимося відео на самих різних пристроях - від смартфонів до HD-телевізорів. Кодеки, що задіють ресурси відеокарти, швидко виконують конвертацію в правильний формат для будь-якої техніки. Але який з них кращий?
Тільки на YouTube кількість завантажених роликів за минулий рік збільшилася вдвічі. Цей обсяг необхідно було конвертувати з урахуванням відповідного дозволу, правильного формату або обох параметрів відразу. Для відеокодеків це означає величезну роботу, оскільки конвертація фільмів є однією з небагатьох обчислювальних операцій, які завантажують до межі навіть найсучасніший процесор.
Особливо це стосується поширеного стандарту H.264. Даний формат демонструє дуже гарне стиснення даних, зберігаючи при цьому високу якість зображення. Але це ускладнює процес кодування і вимагає великого обсягу обчислень.
Турбокодекі використовують ресурси відеокарти
GPU-Конвертери прискорюють цей процес за рахунок ресурсів відеокарти. Наприклад, при використанні продуктивного центрального процесора Intel Core i7-2600K найпотужніший і кращий CPU-кодек х264 обробляє фільми з роздільною здатністю 1080р в реальному часі - таким чином, на конвертування півторагодинного фільму знадобиться півтори години. Швидкі GPU-кодеки виконують цю операцію за 10 хвилин. Проте тест повинен виявити не тільки найшвидший кодек, але і найкращу якість зображення. Тому CHIP порівняв учасників тесту з х264, щоб перевірити, наскільки далеко вони пішли вперед.
Кодування відео є комплексним процесом, в ході якого кілька етапів слідують один за одним, але багато обчислення здійснюються паралельно. Щоб виконати ці одночасні обчислювальні завдання з мінімальними втратами часу, центральному процесору потрібні були б сотні ядер. Ними мають графічні чіпи. У тесті ми використовували GPU AMD Radeon HD 6950, що складається з більш ніж 1400 потокових процесорів, які можуть виконувати обчислення паралельно.
Обчислення: швидкість на межі можливого
Тільки правильне поєднання графічної платформи та відеокодека дозволяє досягти максимально швидкої конвертації.
Intel оптимально прискорює кодеки. Щоб використовувати такий потенціал, необхідно грамотно адаптувати кодеки. Три найпоширеніші графічні платформи - Intel, NVIDIA і AMD - супроводжуються власними бібліотеками для управління графічними движками. Це означає, що GPU-конвертор на кожній з платформ веде себе по-різному і працює з різною швидкістю. Наші виміри при конвертації фільмів з роздільною здатністю 1080р показують, що відмінності в швидкості між платформами іноді навіть більше, ніж між кодеками. Особливо ефективним показав себе графічний чіп на картах Sandy Bridge від Intel. З ним не змогли змагатися навіть відеоплати від NVIDIA і AMD, чистий графічна продуктивність яких набагато вище. Конвертор MediaEspresso від CyberLink домігся на платформі Intel максимального результату: кодування відеороликів з дозволом 1080p (1920х1080 пікселів) у формат 720p (1280х720 пікселів) він виконав зі швидкістю майже 186 FPS (кадрів / с). Інші кодеки також працювали значно швидше на платформі Intel.
Конвертація за допомогою графічних процесорів інших виробників не настільки ефективна: найшвидшим виявився MediaConverter від ArcSoft на відеокарті NVIDIA GeForce GTX 480, який виконував аналогічну задачу зі швидкістю близько 140 FPS. Найповільнішою була платформа AMD - 113 FPS. Але в порівнянні з CPU-кодеком це все ще швидко: х264 на оптимізованої швидкості досяг лише 40 FPS.
AMD: поки обмежена підтримка. Серед учасників тесту інтерфейс AMD APP (прискорена паралельна обробка даних) підтримували тільки TotalCode Studio, MediaConverter і MediaEspresso. TMPGEnc Video Mastering Works, DVDFab і Badaboom обмежилися підтримкою NVIDIA і Intel. До того ж користувач повинен, крім драйвера графічної карти, встановити пакет AMD Media Codec Package, інакше для всіх декодерів буде недоступна опція апаратного прискорення. Для тих, хто в цілому надає значення швидкості, оптимальним поєднанням програмного і апаратного забезпечення буде MediaEspresso з відеокартою Sandy Bridge. Для NVIDIA швидше виявиться ArcSoft, а з відеокартами AMD високій швидкості домагається тільки TotalCode.
При кодуванні відео співвідношення між швидкістю і якістю зображення чітко визначено: якщо результат повинен бути краще, кодеку потрібно більше часу. У цій залежності нічого не можуть змінити навіть GPU-конвертери, хоча високий відсоток паралельного виконання окремих операцій кодування на графічному чіпі значно збільшує швидкість. Одночасно це ускладнює реалізацію функцій, за допомогою яких кодек виконує перевірку якості ще в процесі кодування і при необхідності виправляє їх.
Хороший CPU-кодек, наприклад х264, досягає пристойних результатів, коли аналізує і конвертує фільм у кілька проходів. За рахунок цього він може використовувати для складних сцен більш високий бітрейт, який потім знову заощадить на простих, статичних сценах. Цю функцію пропонує тільки TotalCode на відеокартах AMD - у всіх інших GPU-конвертерів вона відсутня.
Якість зображення: дійсно гарні тільки два конвертери
Не всі GPU-Конвертери підтримують баланс між високою швидкістю і хорошим результатом.
GPU-кодекам не вистачає функцій. У GPU-конвертерів є проблеми з прийняттям рішень в логічних ситуаціях «якщо ... то ...». Процесори графічного чіпа придатні для цього лише частково. З цієї причини тільки два GPU-кодека підтримують високий профіль стандарту H.264, який, зокрема, використовується для Blu-ray, - TotalCode і TMPGEnc. Даний профіль вимагає гнучкого поділу кожного окремого зображення на блоки різного розміру в залежності від того, наповнений чи відповідний фрагмент динамічними сценами, чи мова йде скоріше про статичному фоні. Тому окремі GPU-Конвертери чітко розрізняються щодо якості. Але різниця в будь-якому разі менше, ніж між графічними платформами.
Критерії оцінки: швидкість, якість, функціональність. У випадку з якістю зображення об'єктивна оцінка - досить умовна характеристика. Ми виконували стиснення кліпу «Хазяїн морів» з формату Blu-ray з бітрейтом 23 Мбит / с у формат з 6 Мбіт / с і роздільною здатністю 1080р, а також варіант з 3 Мбіт / с і 720р. В обох випадках ми визначали PSNR (пікове відношення сигналу до шуму) і SSIM (структурний подібність).
Швидкість є основною перевагою GPU-конвертерів. Ми конвертували кліп на всіх графічних платформах, для яких написані кодеки, і вимірювали продуктивність в FPS. В якості основи апаратного забезпечення виступали відеокарти Sandy Bridge Core i7, NVIDIA GeForce GTX 480 і AMD Radeon HD 6950.
Можливості налаштування грають важливу роль для оптимізації кодека щодо якості або швидкості. Ми оцінювали, які опції пропонують конвертери і якими профілями вони розташовують для цієї мети.
Наші вимірювання з використанням об'єктивних метрик для оцінки якості зображення, таких як PSNR і SSIM, показують, що кодеки на всіх трьох графічних платформах демонструють приблизно однакову якість. Виняток становить лише MediaEspresso, який з Intel і AMD показує значно кращий результат, ніж з NVIDIA. В цілому ж якість нижче, ніж у x264.
Великі відмінності в якості зображення. Показники SSIM і PSNR дають об'єктивні дані, але вирішальним є суб'єктивне враження. І тут деякі конвертери демонструють відмінності в якості на різних апаратних платформах. MediaEspresso на NVIDIA і ArcSoft на AMD дають гіршу якість зображення, ніж на інших платформах. Ще сильніше виражені відмінності між окремими конвертерами: в усіх, крім TotalCode і TMPGEnc, розмиваються деталі в динамічних сценах - тільки ці два кодека наближаються до якості х264. Це особливо помітно при відносно низькому бітрейті 3 Мбіт / с. Тут у більшості GPU-конвертерів виникають окремі артефакти у вигляді прямокутників. Ці недоліки добре видно на великих моніторах і HD-телевізорах. Для тих, хто конвертує відео тільки для маленьких екранів планшетів і смартфонів, можливостей GPU-конвертерів буде достатньо.
Результат тестування
Розробникам комерційних конвертерів доводиться нелегко. Більшість користувачів кодують фільми майже виключно в відеоформат H.264, а для цього існує якісний безкоштовний кодек х264. Навіщо ж тоді купувати інші програми? Головним аргументом на користь покупки є швидкість, яку пропонують GPU-Конвертери: всі учасники нашого тесту конвертують фільми у багато разів швидше. Тому вони чудово підходять для тих користувачів, які не бажають довго чекати готовності фільму.
Переможці тесту TotalСode і TMPGEnc відносяться до GPU-конвертерів, які за якістю зображення можуть зрівнятися з х264. Однак TMPGEnc працює досить повільно, а TotalСode занадто дорогий для приватного користувача. Ця програма призначена для професіоналів, які займаються виробництвом Blu-ray-дисків і DVD. Що ж стосується недорогих GPU-конвертерів, то вони вимагають доопрацювання, щоб здобути успіх серед кінолюбителів.
Теги: конвертування відео