Транскодування та Quick Sync
В останні роки транскодування відео стало одним із найпоширеніших споживачів процесорних потужностей. Популярність YouTube, TiкTok і т.д. перетворила майже кожного, хто має веб-камеру, на продюсера, а ПК - на станцію відеомонтажу. Мобільна революція призвела до того, що левова частка зберігання/споживання відео припадає на мобільні телефони та планшети. Нікому не спаде на думку зберігати на телефоні образ Blu-ray диска з повним бітрейтом/роздільною здатністю, тому, якщо ви хочете носити з собою фільми та телепередачі високої якості, доведеться перекодувати їх у більш стислий формат.
На високому рівні перекодування відео включає отримання стиснутого відеопотоку і його подальше стиснення для кращого відповідності можливостям зберігання і декодування цільового пристрою. Це саме транскодування, а не кодування, оскільки вихідний матеріал майже завжди закодований у якомусь стислому форматі. Найбільш поширеним у наші дні є AVC/VP9/HEVC/AV1.
Апаратне транскодування
Технічно все транскодування зводиться до роботи програмного забезпечення. Коли говорять про апаратне транскодування, мають на увазі використання виділеного обладнання (зазвичай графічного процесора) для прискорення процесу. Це знижує навантаження на CPU, дозволяючи виділяти його ресурси іншим програмам. Як правило, апаратне перекодування виконується швидше та ефективніше, ніж програмне. Однак важливіше те, що апаратне перекодування має більше обмежень і проблем сумісності, ніж програмне.
Транскодування - досить ресурсомістка задача для процесора через тривимірну природу стиснення. Стиснутий може бути кожен окремий кадр відео, але послідовні кадри зазвичай містять багато однакових елементів, тому алгоритми стиснення розглядають дані, що повторюються як у часі, так і просторі.
Першим кроком процесу транскодування відео є декодування вихідного коду. Оскільки відео береться в стислому форматі і перекодується в новий, ключове значення має апаратне прискорення декодування відео.
Продуктивність механізму декодування має першорядне значення з двох причин. Якщо для відтворення нам потрібно декодувати лише швидше, ніж частота кадрів відео, то при транскодуванні механізм декодування відео має працювати якнайшвидше. Чим швидше кадри можуть бути декодовані, тим швидше вони можуть бути передані механізм транскодування. Другий і менш очевидний момент полягає в тому, що зворотна операція кодування відео концептуально і структурно схожа з прямою операцією тому для обох завдань можна використовувати те саме «обладнання».
Як це працює
"Обладнання" - це комбінація дискретного косинусного перетворення (ДКП) для внутрішньокадрової компресії, алгоритму компенсації руху та ентропійного кодування Хаффмана.
Розбивка вихідного зображення на блоки пікселів (на практиці 8х8 або 16х16) скорочує складність обчислень ДКП і векторів рухів, що дозволяє реалізувати ці обчислення на матриці програмованих однопотокових Unified Execution Units (EU).
Шлях Intel
Матриці EU з'явилися вже у першому поколінні процесорів Intel Core – компанія чудово розуміла важливість обробки відео. У міру спеціалізації на шляху до швидкості та ефективності перейшли від універсальних EU до спеціалізованих, з фіксованими функціями . Разом із мікроархітектурою Sandy Bridge процесорів Core другого покоління була представлена апаратна технологія Intel для кодування та декодування відео Intel Quick Sync, інтегрована у графічне ядро iGPU. З того часу декодування відео повністю здійснюється апаратними засобами з фіксованими функціями. Це неідеально з точки зору гнучкості (наприклад, нові відеокодеки не можуть бути повністю апаратно прискорені на існуючому устаткуванні), але це найефективніший та найекономічніший метод побудови відеодекодера з точки зору енергоспоживання та продуктивності.
Графічне ядро iGPU на сьогоднішній день пройшло шлях до 12 поколінь. На довідковому ресурсі ark.intel.com перераховані процесори , які підтримують Quick Sync. З кожною новою версією Quick Sync додавав у швидкості, роздільній здатності, обростав кількістю кодеків і значним функціоналом попередньої обробки відео. iGPU процесорів Alder Lake може одночасно кодувати 16 та більше потоків @1080P. Сущий звір. Реальна продуктивність залежить від номіналу процесора, бітрейту потоку, частоти пам'яті.
Intel наводить список підтримуваних кодеків .
Не тільки Intel, AMD та NVIDIA реалізували у своїх GPU апаратне забезпечення для декодування відео з фіксованими функціями. Ніхто не покладається на шейдерні ядра для прискорення декодування відео. Порівняльні тести показують, що платформи Intel продуктивні (при цьому, економічні). Так у тесті з вихідним форматом H.264 6-ядерний процесор Intel Core i5 10600K не поступався 32-ядерному AMD Threadripper 3970X. Якщо ви працюєте з великою кількістю носіїв H.264/H.265 і хочете мінімізувати час експорту, можна покладатися на Quick Sync.
Спочатку транскодування Quick Sync від Intel підтримували лише дві програми: Media Espresso 6 від Cyberlink і Media Converter 7 від Arcsoft. Як тільки Intel зробила загальнодоступним набір розробника Intel Media Software Development Kit і доклала зусиль для його популяризації, підтримка Quick Sync стала стандартом для кодування/транскодування та обробки відео. Неповний список «клубу»: Wowza Streaming Engine, MainConcept, Noisypeak, Handbrake, Adobe Premiere Pro, Blackmagic DaVince Resolve, Grass Valley Mync.