Інструменти Intel для творців відео кодеків

imageНа Хабре в блозі Intel регулярно з'являються статті з описом технологій та інструментів, створених у стінах Intel. Багато з них так чи інакше пов'язані з обробкою та аналізом відео і зображень. Це такі продукти, як, наприклад, Intel Media Server Studio або Intel RealSense. Однак, існує набір інструментів, не так широко представлених в медіа просторі, але не менш значимих для такої категорії розробників, як творці медіа кодеків. Саме цю прогалину ми і спробуємо заповнити в даному топіку. Мова піде про Intel Video Pro Analyzer (Intel VPA) та Intel Stress Bitstreams and Encoder (Intel SBE), а також про ті можливості, що ховаються за цими назвами.

Для початку визначимося з предметом, сутністю, з якої працюють вищезгадані інструменти. Це бітові стріми. Бітовий стрім – це те, що виходить після того, як відпрацював відео енкодер. Бітовий стрім – це потік бітів, що відповідає специфікації того чи іншого кодека. Якщо ми заглянемо в специфікацію більшості кодеків, то побачимо, що цей битстрим являє собою ніщо інше як набір синтаксичних елементів даного кодека різної довжини. Це, приміром, ширина і висота картинки, профіль кодування, коефіцієнти трансформації, різні бітові прапори і т. д. Для стандарту HEVC це сотні синтаксичних елементів. Після кодування ці бітові стріми доходять до користувачів, поміщені в різні медіа контейнери – mkv, mp4, mpeg ts і т. д. Але розробники кодеків в основному працюють саме з бітовими стримами. Розробники, дизайнери, інженери – електронщики, тестери мають свої інструменти для роботи. Чому ж розробникам кодеків їх не мати?

Отже, як Intel Video Pro Analyzer та Intel Stress Bitstreams and Encoder можуть полегшити життя розробникам кодеків? Чому з Intel Video Pro Analyzer.

Intel Video Pro Analyzer представляє собою додаток, що вміє візуалізувати інформацію, приховану в надрах кодека і переглядати весь його синтаксис. Так, для HEVC це синтаксис починаючи від параметрів заголовків (VPS, SPS, PPS) і закінчуючи блоками трансформації (TU), блоками прогнозу (PU) і блоками кодування (CU).

image

Intel Video Pro Analyzer зможе виявити проблеми, пов'язані з відхиленням від стандарту і вказати на конкретний блок або проблемний синтаксичний елемент. Така можливість дуже сильно полегшує життя розробників, які реалізують сучасні відео кодеки. Якщо ви вивчаєте кодеки, то зможете побачити його структуру, побачити наочно вектора руху і дерево розбиття конкретного блоку. При цьому, вибравши кожен елемент, ви зможете перейти до його опису в стандарті. Існує ще одне важливе застосування для Intel Video Pro Analyzer: це додаток – велике ілюстроване посібник, який може замінити читання стандарту на етапі вивчення/ознайомлення з технологіями кодування. Настільки зручна навігація по стандарту може сильно прискорити вивчення як самого стандарту, так і технологій кодування відео. В даний час Intel Video Pro Analyzer підтримує наступні кодеки: HEVC (включаючи RExt, SCC, Multiview і SHVC), VP9, MPEG2, AVC. Так само він уміє відкривати стріми, упаковані в контейнери MPEG2-TS, MP4, MKV, MMT і MPEG4-DASH. Intel Video Pro Analyzer дозволяє оцінити якість кодування, використовую PSNR метрику, забезпечити відповідність стандарту, а так само підтримує технологію HRD (Hypothetical Reference Decoder).

Отже, у нас є зручний інструмент для візуалізації синтаксису кодека, що дозволяє швидко знайти помилки в його реалізації. Наступний інструмент, який прискорює створення кодека це Intel Stress Bitstreams and Encoder. Цей інструмент створений для швидкого налагодження реалізацій кодеків. По суті Intel Stress Bitstreams and Encoder представляє собою енкодер, який забезпечує найбільше покриття синтаксису кодека шляхом його рандомізації. На виході ми отримаємо стріми, який на відміну від звичайних стримов забезпечують максимальну комбінацію різних значень елементів синтаксису. Intel Video Pro Analyzer на цих стримах покаже приблизно таку картинку:

image
Intel Stress Bitstreams and Encoder підтримує наступні кодеки: HEVC, SHVC, VP9, AVS2. Крім цього, Intel Stress Bitstreams and Encoder дозволяє створювати так звані broken стріми, які містять завідомо неправильні значення елементів синтаксису і моделюють основні проблеми передачі стримов в мережі, такі як втрата пакетів, інверсія бітів і т. д. Це дозволяє дуже швидко створити власні обробники нештатних ситуацій і підвищити якість кодеків. Звіт про роботу цих інструментів дозволяє оцінити якість покриття синтаксису і виглядає приблизно так:

image
Отже, всі вищеописані інструменти дозволяють прискорити вихід кодеків на ринок і підвищити їх якість. Крім цього, вони містять в собі безліч інших корисних інструментів і можливостей для налагодження та оптимізації як енкодерів так і декодерів. Якщо ви хочете вивчити технології, які використовуються в кодуванні відео, то Intel Video Pro Analyzer може допомогти вам значно прискорити цей процес і показати наочно синтаксис кодека і те, як елементи «упаковуються» стрім.
Дякую за увагу.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.