Відеосервер кодування відео за допомогою спеціалізованих ASIC VPU NETINT.
ASIC (Application-specific integrated circuit) - інтегральна схема для специфічного застосування, в нашому випадку - оптимізована для кодування відео в реальному часі.
Контент створений користувачами, події навколо нас, які транслюються онлайн, відеоспостереження, онлайн відеоігри і т.д, цей перелік неосяжний, ландшафт потокового відео зазнає значних змін і буде тільки зростати збільшуючи розподільчу здатність. Увесь відеоконтент потребує обробки, яку умовно можна розділити на три етапи: кодування, транскодування та декодування.
Кодування - процес перетворення необробленого відео (прямої трансляції) за допомогою програмного чи апаратного забезпечення, щоб надіслати її в хмару для розповсюдження.
Транскодування (або інша назва перекодування) - це загальний термін, який означає взяття вже закодованого вмісту, його декодування/розпакування, внесення змін і повторне стиснення перед відправкою. Перекодування відео може передбачати внесення змін, таких як - додавання титрів, водяних знаків, графіки, перетворення вмісту з одного кодека в інший.
Декодування – це розпакування закодованих відеоданих для їх відображення у користувача.
Вхідний потік кодується в хмарі в різні роздільні здатності. Від першоджерела, наприклад, 4320р (8к) в наступні роздільні здатності: 2160р, 1440р, 1080р, 720р, 480р, 360р, 240р та 144р. Підтримка різних кодеків необхідна для видачі користувачу відео в максимально можливій якості для його пристрою та пропускної спроможності, що потребує транскодування у реальному часі і можливістю кодування різними кодеками, тому що деякі мобільні пристрої підтримують виключно кодек H.264, платформи SMART-TV виключно HEVC, а починаючи з моделі iPhone 15 Pro, Apple оголосила про підтримку AV1.
Мал.1. Шлях відео-контенту від зйомки до відображення у користувача.
Час затримки для кодування і відправки користувачу відео при онлайн трансляції – це дуже критичний параметр, глядачів не хвилює технологія обробки та розповсюдження. Головне занепокоєння глядача - це «ефект спойлера», який вони відчуватимуть під час перегляду гри, якщо сусіди вже святкують гол, а у Вас на екрані ще нічого не відбувається.
Зараз активно використовуються декілька кодеків: AV1, H.264, H.265(HEVC), H.266 (VVC) і VP9. Кожен з кодеків має свої сильні властивості і недоліки:
- AV1 - потребує значних апаратних ресурсів і за ефективністю стиснення обганяє HEVC у середньому на 17% (на високих бітрейтах на 30-43%);
- H.265 (HEVC) - забезпечує кращу ефективність стиснення і дозволяє зменшити вимоги до пропускної здатності та пам’яті, що робить його більш економічно ефективним наступником класичного кодека H.264;
- VP9 від Google - має повільнішу швидкість кодування та трохи меншу підтримка відтворення ніж H.264, але якщо ви відтворюєте відео високої роздільної здатності, VP9 є одним із найпотужніших відеокодеків. VP9 можна знайти в багатьох місцях. Google використовує його на YouTube і Google Stadia.
AV1 пропонує вищу якість при значно нижчому бітрейті порівняно з попередніми поколіннями відеокодеків. У наведеному нижче відео є очевидна різниця в якості між H.264, VP9 і AV1 при приблизно однаковій швидкості потоку. Для недорогих телефонів залишається складним відтворення бітових потоків високої роздільної здатності AV1. Вирішити цю проблему може маніфест змішаних кодеків. На стороні сервера алгоритм доставки ABR генерує маніфест змішаного кодека, який містить кілька наборів відеоадаптації з бітовими потоками, закодованими за допомогою різних кодеків, таких як VP9 і AV1. Він також визначає, з яких смуг AV1 і VP9 пристрій має вибрати на основі оцінки продуктивності. Наприклад, недорогий телефон може відтворювати AV1 до 540p і переключатися на VP9 для смуг з вищою роздільною здатністю.
Відео: Джерело: Meta Engineering Blog
AV1 наслідує структуру попередніх кодеків, це гібридний відеокодек заснований на I-кадрах і передбачених кадрах. Він використовує поняття групи зображень (GOP) де початковий кадр береться як еталонний та наступні кадри в GOP описані лише в деталях, які відрізняються від цього початкового еталонного. AV1 розроблено спеціально для трансляції OTT і одним із проявів специфічної орієнтації кодека OTT є той факт, що з самого початку він підтримував розширений динамічний діапазон (HDR) для покращених кольорів. Це означає, що це не фрагментований кодек, він відрізняється від HEVC, який включає окремі кодеки: один для стандартного динамічного діапазону (SDR) і один для HDR. В цій ситуації, AV1 як кодек з відкритим кодом і можливістю безоплатного використання, є гарною альтернативою для HEVC, VVC і VP9, що і стимулює впровадження рішень на ASIC для кодування відео.
Кодеки стають складнішими, кожне наступне покоління приносить приблизно 50-відсоткову додаткову ефективність стиснення, яку можна використовувати для надання високоякісного відео з нижчою швидкістю потоку, але ця ефективність стиснення супроводжується 10-кратними обчислювальними витратами. Поступово ми переходимо від H.264 до HEVC далі AV1, далі до VVC і, можливо, LCEVC та EVC і графічні (GPU) та центральні процесори (CPU) вже можуть не встигати за багатопотоковою обробкою при великому коефіцієнті стиснення. У той же час, потужність споживання і щільність стають критичними факторами тому що вартість електроенергії в центрах обробки даних постійно росте і як наслідок, використання центральних і графічних процесорів стає малоефективним.
Однією з ключових переваг ASIC є їх здатність обробляти велику кількість потоків на сервер, значно збільшуючи щільність обробки. Будь-який ASIC кодек має дві основні мети: бути високоенергоефективним і забезпечувати таку ж або кращу якість відео, що й програмні кодеки.
Розглянемо дієві стратегії оптимізації робочих процесів потокового відео від лідерів - Мета, Google, AMD та NETINT:
MSVP (Meta Scalable Video Processor) перша ASIC від Meta для перекодування відео,
але при анонсі ми почули цікавий факт - «AV1 дуже важливий для Meta, а апаратне прискорення для AV1 необхідне для підвищення рівня впровадження в усіх наших робочих навантаженнях. Однак ми хотіли якнайшвидше ввімкнути апаратне прискорення для більшості наших робочих навантажень і вирішили перенести підтримку кодування AV1 у наступне покоління MSVP». AV1 — це безкоштовний стандарт відеокодування першого покоління, розроблений Alliance for Open Media (AOMedia), конгломератом таких гігантів як - Google, Facebook, Netflix, Amazon, Windows і Bitmovin. Він забезпечує кращу ефективність кодування, ніж VP9 і HEVC. У Facebook щодня переглядаються більш ніж 4 мільярди відео. Meta, особливо Facebook, широко використовують VP9, але вони заявили про свій намір оновити більшість свого кодування відео до AV1.
Google створив Argos ASIC для перекодування відео під абревіатурою Video transCoding Unit (VCU). В середньому понад 500 годин відеовмісту завантажується щохвилини на YouTube, перехід на Argos VCU не лише покращив взаємодію з користувачем YouTube, але й знизив витрати на інфраструктуру значно зменшивши закупівлю серверів. Підтримка кодування AV1 буде інтегрована в наступне покоління ASIC.
Alveo MA35D МАС (Media Accelerator Card) - медіа-прискорювач від (AMD), спеціально створений для потокового передавання великого обсягу в реальному часі, відкриває нову еру інтерактивних медіа-сервісів, включаючи живі події, електронне навчання, соціальні потоки, покупки в реальному часі, спортивні ставки, хмарні ігри тощо... Підтримуючи як стандартні кодеки H.264 і H.265, так і стандарти наступного покоління AV1 та VP9.
Мал.2. Конвеєр перекодування відео AMD Xilinx Alveo MA35D
Компанія NETINT Technologies розробила спеціальну серію ASIC транскодерів G4 та блоків обробки відео (VPU) G5, які пропонують спеціалізовані можливості кодування та декодування відео. VPU оптимізовані для відеобробки данних, забезпечуючи максимальну продуктивність і ефективність, підтримуючи кодеки H.264, H.265, AV1 та VP9.
Мал.3. Блок схеми транскодера ASIC G4 та блока обробки відео (VPU) ASIC G5.
Ви можете керувати всіма транскодерами за допомогою FFmpeg, GStreamer або API (Libxcoder).
Різниця між транскодером і блоком обробки відео (VPU) полягає в тому що, транскодер може тільки кодувати або декодувати потік, а всі функції з масштабування з джерела високої якості для нижчих рівнів, накладання логотипів, коригування і т.д. виконує центральний процесор (CPU), в той час як VPU всю обробку виконує самостійно.
Мал.4. Функції VPU з обробки відео.
Мал.5 Відображений алгоритм роботи блока обробки відео ASIC G5 NETINT.
Якщо Вас бентежить припущення, що алгоритм обробки, який використовує ASIC, з часом застаріє і не буде актуальним - це не відповідає дійсності. Частина апаратного забезпечення фіксується в ASIC, проте функції, реалізовані в апаратному забезпеченні, зазвичай є частинами нижчого рівня стандарту відеокодеків, які не змінюються з часом, тому апаратне забезпечення не потребує оновлення. Частини відеокодеків вищого рівня містяться у мікропрограмі та програмному забезпеченні драйверів, і їх можна змінити. Наприклад, апаратне забезпечення кодера T408 розроблено для H.264 і H.265, Ви не можете додати нові кодеки AP1, VVC та VP9 до T408, але Ви можемо додати нові функції до існуючих кодеків.
Мал.6. Блок схема (VPU) ASIC 2-го покоління Codensity G5.
Архітектура Codensity G5 унікальним чином поєднує в собі кодування відео AV1, VP9, HEVC і H.264 та функції з масштабування, накладання логотипів, коригування і т.д. і вбудовані механізми обробки штучного інтелекту. ASIC VPU розроблено для кодування великої кількості прямих трансляцій, інтерактивних програм метавсесвіту, вони недорогі, потужні, гнучкі, надзвичайно ефективні та забезпечують масштабованість при інтеграції в сучасні сервери.
Саме тут ми і акцентуємо увагу, що саме надає апаратне прискорення за допомогою спеціалізованих ASIC:
- Легкість масштабування та забезпечення дуже високої енергоефективності
- Покращення загальної якості і ефективності стиснення кодування відео в усіх кодеках
- Зменшити обсяг обчислювальної техніки для кодувань відео
- Зменшити кількість бітів із тією самою якістю або збільшити якість із тією самою швидкістю потоку
Найближчим часом, кодеки наступного покоління, такі як VVC (випущений у 2020 році) і AV1 (випущений у 2018 році), обіцяють значне покращення обробки відео. Але між випуском і масовим впровадженням потрібен час, щоб вони поширилися. VVC, наступник H.265, обіцяє покращення бітрейту на 50% . AV1, створений на основі VP10, обіцяє покращення рівня стиснення відео на 30% порівняно з H.265. Обидва вони варті захоплення, але, звичайно, підтримка браузера, пристрою та функцій буде вирішальною для прийняття рішення і всі розробники повинні стежити за горизонтом подій. Інформацію з приводу % сьогоднішнього розподілу кодеків і перспективні зміни, які відбудуться в найближчі 12-24 місяців, можна побачити в звітах відомих виробників відео, наприклад BITMOVIN.
Мал.7. Перспективи змін розподілу відео-кодеків в найближчі 12-24 місяці.
Кількість пристроїв, на яких споживачі можуть переглядати потокове відео, постійно зростає і важливо враховувати, що середній споживач дивиться відеоконтент орієнтовно на чотирьох унікальних пристроях, що є відчутним додатковим показником.
Створений на серверній платформі Supermicro, відеосервер Onix Quadra, може похвалитися потужністю кодування надвисокої щільності, що забезпечується десятьма VPU T1U. Це відповідь на запити клієнтів про горизонтально масштабовані рішення обробки відео на кількох серверах, зберігаючи при цьому синхронізацію потоків.
У нас на сайті, Ви можете самостійно сконфігурувати відеосервер під свої задачі на базі процесорів AMD або Аmpere та надіслати нам запит для надання віддаленого доступу до тестового стенду і проведення довгострокового тестування.
Мал.8. Відео сервер Onix Quadra.
Використовуючи серверну платформу Supermicro з процесором AMD EPYC 9xxx серії, 16/24/32 або більшою кількістю ядер під управлінням Ubuntu 24.04. LTS, сервер постачається з 128 або 256 ГБ оперативної пам’яті DDR5 і завантажувальним накопичувачем 960ГБ M.2 SSD. Два слоти PCI-E 5.0 x16 дозволяють використовувати сучасні GPU або додаткові потужні PCI-E VPU Quadra T2A (2x Codensity G5), а два слоти AIOM (OCP 3.0) використовуються для мережевих підключень від 1G до 200G. Десять слотів NVME, у яких розміщуються VPU Quadra T1U, оснащені ASIC NETINT Codensity G5 у форм-факторі U.2 та обмінюються даними через шину PCIe 4.0 із надвисокою пропускною здатністю. Quadra VPU можуть декодувати вхідні дані H.264, HEVC і VP9 і кодувати їх у стандарти H.264, HEVC і AV1.
Окрім транскодування, процесори Quadra VPU містять механізми 2D-обробки, які можуть обрізати, доповнювати та масштабувати відео, а також виконувати накладання відео, перетворення YUV та RGB, зменшуючи навантаження на центральний процесор і збільшуючи загальну пропускну здатність. Ці механізми можуть виконувати операції xStack в апаратному забезпеченні, що робить сервер Quadra ідеальним для програм конференцій і безпеки, які поєднують кілька каналів у мозаїчне вікно виводу з кількох панелей.
Кожен Quadra T1U на сервері Quadra містить 15 механізмів глибокого нейронного висновку TOPS, який підтримує моделі, навчені всіма основними платформами глибокого навчання, включаючи Caffe, TensorFlow, TensorFlow Lite, Keras, Darknet, PyTorch і ONNX. NETINT надає кілька еталонних моделей, у тому числі модель розпізнавання обличчя, яка використовує кодування регіону інтересу для покращення якості обличчя в захищених та інших сильно стиснутих потоках. Інша модель забезпечує видалення фону для програм конференц-зв’язку.
Мал.9.
Розглянемо декілька технологій, які NETINT інтегрував в свої продукти:
- Одноранговий прямий доступ до пам'яті (DMA).
У хмарній ігровій архітектурі головна роль графічного процесора полягає у відтворенні кадрів із вихідних даних ігрового механізму. Потім ці кадри кодуються в стандартний кодек, який легко декодується на багатьох пристроях. Зазвичай це H.264 або HEVC, хоча AV1 починає цікавити тих, хто має широке коло користувачів Android. Кодування на графічному процесорі є ефективним з точки зору передачі даних, оскільки рендеринг і кодування відбувається на одному кремнієвому кристалі; немає передачі візуалізованого кадру YUV на окремий транскодер через повільніші шини PCIe або NVMe. Однак, оскільки для кодування потрібні значні ресурси графічного процесора, це різко знижує загальну пропускну здатність системи, бо саме кодер часто працює на повну потужність і, отже, є вузьким місцем, а не механізм візуалізації. Встановивши спеціальний відеокодер у систему та використовуючи традиційні методи передачі даних, центральний процесор може легко керувати передачею кадру YUV від графічного процесора до транскодера, але оскільки кількість одночасних ігрових сеансів збільшує ймовірність пропущених або пошкоджених кадрів, шина передачі даних робить цю технологію непридатною для використання.
NETINT, працюючи з AMD, увімкнув одноранговий прямий доступ до пам’яті (DMA), щоб подолати цю ситуацію.
Мал.10. Одноранговий DMA забезпечує до 200 ігрових потоків 720p60 з одного сервера або до 400 потоків 720p30.
DMA — це технологія, яка дозволяє пристроям у системі обмінюватися даними в пам’яті, дозволяючи GPU надсилати кадри безпосередньо до VPU, що усуває ситуацію засміченої шини передачі даних при кількісті одночасних сеансів понад 48 потоків 720p. Одноранговий DMA забезпечує численні переваги. По-перше, усуваючи потребу в участі центрального процесора в передачі даних, одноранговий DMA значно зменшує затримку, що означає більш чуйний і захоплюючий ігровий досвід для кінцевих користувачів. NETINT VPU мають затримки всього 8 мс при повному завантаженні та тривалій роботі. Крім того, одноранговий DMA звільняє центральний процесор від керування передачею даних між пристроями. Це звільняє цінні цикли ЦП, дозволяючи ЦП зосередитися на інших критичних завданнях, таких як логіка гри та обчислення фізики, оптимізуючи загальну продуктивність системи та створюючи більш плавний ігровий процес.
Сервери Quadra підтримують обмежене кодування CRF для H.264, HEVC і AV1, а для T408 - обмежене кодування CRF доступне для H.264/HEVC. Завдяки широкому впровадженню методів адаптивного кодування (CAE), кодування з постійним коефіцієнтом швидкості (CRF) із обмеженням бітрейту набуло популярності як полегшена форма CAE для зменшення бітрейту послідовностей, які легко кодувати, зберігаючи пропускну здатність доставки та забезпечуючи якість подібну до CBR, на послідовностях, які важко кодувати. Обмежене кодування CRF — це дуже цікавий режим, який буде використовуватись багатьма клієнтами.
Відповідна строка в командному рядку FFmpeg виглядатиме так:
-crf 21 -maxrate 6 Мб
Це зобов’язує FFmpeg забезпечити якість CRF 21, яка для H.264 зазвичай дорівнює приблизно 95 балам VMAF, однак показник maxrate гарантує, що бітрейт ніколи не перевищує 6 Мбіт/с.
Метрика для оцінки якості відео VMAF (Video Multimethod Assessment Fusion), розроблена Netflix, витіснила старі методи, такі як, співвідношення пікового сигналу до шуму (PSNR) і які не відображають людське сприйняття. Моделювання людського зору в поєднанні з машинним навчанням в VMAF, забезпечує стабільну оцінку незалежно від предмета і показує сильну кореляцію з людським сприйняттям. Netflix широко використовує VMAF у таких областях, як моніторинг якості відео та оптимізація кодування.
Значення VMAF варіюються від 0 до 100, середнім показником буде 90, а VMAF 95 є гарною метою для творців високоякісного матеріалу.
Як показано на малюнку, під час роботи Quadra VPU перекодує легко закодовані кадри з якістю CRF 21, створюючи бітрейт близько 2 Мбіт/с., а під час реального кадру гри з високим рухом, обмеження буде контролювати бітрейт в 6 Мбіт/с , і VPU забезпечуватиме таку ж якість, як CBR. Таким чином обмежений CRF зберігає пропускну здатність за допомогою сцен, які легко кодувати, одночасно забезпечуючи еквівалентну якість CBR зі сценами, які важко кодувати.
Мал.11. Робота CRF на футбольному ролику.
Зйомки з відносно низьким рівнем руху кодуються до якості CRF 21 (~95 VMAF), тоді як обмеження бітрейту 6 Мбіт/с контролює відеоматеріали гри з високим рухом.
Використовуючи обмежений CRF, інженери можуть ефективно передавати високоякісні відеопотоки, покращувати враження глядачів і зменшувати експлуатаційні витрати. Оскільки попит на потокове відео продовжує зростати, підтримка CRF стає кардинальним фактором для інженерів, які прагнуть залишатися в авангарді оптимізації доставки відео.
Як це все працює на практиці?
В 2024р компанія NETINT Technologies оголосила про першу в галузі автоматичну функцію субтитрів на основі моделі автоматичного розпізнавання мовлення Whisper від OpenAI, навченої на основі 680 000 годин багатомовних даних. Whisper інтегровано в програму обробки медіафайлів NETINT Bitstreams Edge, яка працює на NETINT Quadra Video Server Ampere Edition, а 96-ядерний процесор Ampere ® Altra ® забезпечує неперевершеною потужністю і точну транскрипцію в режимі реального часу для прямих трансляцій і відеопотоків.
Відеосервер Quadra Ampere Edition під час роботи OpenAI Whisper, інтегрованого з Bitstreams Edge, підтримуватиме до 30 одночасно перекодованих живих каналів із п’ятьма пакетними профілями HLS або DASH. Завдяки десяти блокам обробки відео NETINT Quadra, відеосервер може деінтерлейсувати 95 потоків 1080i30 під час транскодування в 1080p30 за допомогою стандартів кодеків AV1, HEVC або H.264. Сервер також обробляє понад 300 одночасних транскодів 1080p до H.264, HEVC або AV1 маючи достатній запас ресурсу процесора для додаткових функцій обробки відео. Роздільна здатність масштабується до 8K і включає 10-бітний HDR і розширені механізми контролю швидкості, як обмежений CRF.
Транскрипція мовлення в текст, виконується Whisper у режимі реального часу з використанням останніх моделей автоматичного розпізнавання мовлення OpenAI та підтримується технологією штучного інтелекту без графічного процесора за підтримкою процесорів сімейства Altra. Це дозволяє мовникам додавати закриті субтитри, переклади тощо до живих відеострічок.
Whisper — це система автоматичного розпізнавання мовлення (ASR) загального призначення , навчена на основі 680 000 годин багатомовних та багатозадачних контрольованих даних, зібраних з інтернету. Використання такого великого та різноманітного набору даних, призводить до покращення стійкості до акцентів, фонового шуму та технічної мови. Крім того, дозволяє транскрипцію кількома мовами, а також переклад з цих мов на англійську, використовуючи бібліотеку моделей з відкритим вихідним кодом і код висновку які слугують основою для надійної обробки мовлення, створення корисних програм і подальших досліджень.
Мал.12.Модель розпізнавання мовлення Whisper AI
Архітектура Whisper — це простий наскрізний підхід, реалізований як кодер-декодер Transformer. Вхідний звук розбивається на 30-секундні фрагменти, перетворюється на спектрограму log-Mel, а потім передається в кодер. Декодер навчений передбачати відповідний текстовий підпис, змішаний зі спеціальними маркерами, які направляють єдину модель для виконання таких завдань, як ідентифікація мови, позначки часу на рівні фрази, багатомовна транскрипція мовлення та переклад мовлення на англійську або українську.
І як фінальну крапку в статті, наведемо відгук клієнта з максимальним рівнем компетенції в обробці відеоконтенту:
"T1U приємно вразив своїми можливостями. Модуль повністю відповідає заявленим технічним характеристикам — підтримка потрібних нам відеокодеків,
висока якість зображення та стабільна робота. Особливо хочеться відзначити продуктивність у режимі реального часу: один VPU здатен замінити один,
а іноді й кілька традиційних серверів-транскодерів. Це справді потужне та ефективне рішення."
Олександр БАБКО, керівник відділу ІТ в
телевиробництві, 1+1 media.
Матеріал підготовлено співробітниками «Онікс Солюшинз».
Першоджерела:
NETINT Technologies
VP9 Overview
MSVP: Meta’s first ASIC for video transcoding
AMD
Open AI
The 6th ANNUAL BITMOVIN VIDEO DEVELOPER REPORT
How Meta brought AV1 to Reels
|